def METHOD_NAME(problem, equations, output_dir):
    import os.path as op
    if sops is None:
        tst.report('cannot import sympy, skipping')
        return True
    ok = True
    for eq_name, equation in equations.items():
        problem.set_equations({eq_name : equation})
        problem.update_materials()
        rhss = _build_rhs(problem.equations[eq_name], solutions)
        erhs = problem.conf.equations_rhs[eq_name]
        problem.set_equations({eq_name : equation + erhs})
        variables = problem.get_variables()
        materials = problem.get_materials()
        rhs_mat = materials['rhs']
        for sol_name, sol in problem.conf.solutions.items():
            tst.report('testing', sol_name)
            var_name, sol_expr = sol
            rhs_expr = rhss[sol_name]
            tst.report('sol:', sol_expr)
            tst.report('rhs:', rhs_expr)
            globals()['solution'][0] = sol_expr
            rhs_mat.function.set_extra_args(expression=rhs_expr)
            problem.time_update()
            state = problem.solve(save_results=False)
            coor = variables[var_name].field.get_coor()
            ana_sol = tst.eval_coor_expression(sol_expr, coor)
            num_sol = state(var_name)
            ana_norm = nm.linalg.norm(ana_sol, nm.inf)
            ret = tst.compare_vectors(ana_sol, num_sol,
                                      allowed_error=ana_norm * 1e-2,
                                      label1='analytical %s' % var_name,
                                      label2='numerical %s' % var_name,
                                      norm=nm.inf)
            if not ret:
                tst.report('variable %s: failed' % var_name)
            fname = op.join(output_dir, 'test_msm_symbolic_%s.vtk')
            out = {}
            astate = state.copy()
            astate.set_state(ana_sol)
            aux = astate.create_output()
            out['ana_t'] = aux['t']
            aux = state.create_output()
            out['num_t'] = aux['t']
            problem.domain.mesh.write(fname % '_'.join((sol_name, eq_name)),
                                      io='auto', out=out)
            ok = ok and ret
    return ok