def METHOD_NAME(
    inputSetup, comp="All", freq=False, testLocations=False, testSingle=False
):
    if testLocations:
        if testSingle:
            (
                m,
                simulation,
            ) = nsem.utils.test_utils.setupSimpegNSEM_tests_location_assign_list(
                inputSetup, [freq], comp=comp, singleFreq=False, singleList=True
            )
        else:
            (
                m,
                simulation,
            ) = nsem.utils.test_utils.setupSimpegNSEM_tests_location_assign_list(
                inputSetup, [freq], comp=comp, singleFreq=False
            )
            # print(simulation.)
    else:
        m, simulation = nsem.utils.test_utils.setupSimpegNSEM_PrimarySecondary(
            inputSetup, [freq], comp=comp, singleFreq=False
        )
    print("Using {0} solver for the simulation".format(simulation.solver))
    print(
        "Adjoint test of eForm primary/secondary "
        "for {:s} comp at {:s}\n".format(comp, str(simulation.survey.frequencies))
    )
    u = simulation.fields(m)
    np.random.seed(1983)
    v = np.random.rand(
        simulation.survey.nD,
    )
    # print problem.PropMap.PropModel.nP
    w = np.random.rand(
        len(m),
    )
    # print(problem.Jvec(m, w, u))
    vJw = v.ravel().dot(simulation.Jvec(m, w, u))
    wJtv = w.ravel().dot(simulation.Jtvec(m, v, u))
    tol = np.max([TOL * (10 ** int(np.log10(np.abs(vJw)))), FLR])
    print(" vJw   wJtv  vJw - wJtv     tol    abs(vJw - wJtv) < tol")
    print(vJw, wJtv, vJw - wJtv, tol, np.abs(vJw - wJtv) < tol)
    return np.abs(vJw - wJtv) < tol