def METHOD_NAME():
    tape = Tape()
    set_working_tape(tape)
    mesh = UnitSquareMesh(10, 10)
    V = FunctionSpace(mesh, "Lagrange", 1)
    f = Function(V)
    f.vector()[:] = 30
    u = Function(V)
    v = TestFunction(V)
    c = Function(V)
    c.vector()[:] = 1
    bc = DirichletBC(V, c, "on_boundary")
    F = inner(grad(u), grad(v)) * dx + u**4*v*dx - f**2 * v * dx
    solve(F == 0, u, bc, solver_parameters={"snes_rtol": 1e-10})
    J = assemble(u ** 4 * dx)
    Jhat = ReducedFunctional(J, Control(c))
    h = Function(V)
    h.vector()[:] = rng.random(V.dim())
    J.block_variable.adj_value = 1.0
    c.block_variable.tlm_value = h
    tape.evaluate_adj()
    tape.evaluate_tlm()
    J.block_variable.hessian_value = 0
    tape.evaluate_hessian()
    g = c.copy(deepcopy=True)
    dJdm = J.block_variable.tlm_value
    Hm = c.block_variable.hessian_value.vector().inner(h.vector())
    assert taylor_test(Jhat, g, h, dJdm=dJdm, Hm=Hm) > 2.9