def METHOD_NAME(show_plots, useFlag, testCase):
    testFail = False
    testFailCount = 0  # zero unit test result counter
    testMessages = []  # create empty array to store test log messages
    # configure module
    ReactionWheel = reactionWheelStateEffector.ReactionWheelStateEffector()
    ReactionWheel.ModelTag = "ReactionWheel"
    numRW = 2
    RWs = []
    for i in range(0, numRW):
        RWs.append(defaultReactionWheel())
    expOut = dict()  # expected output
    print(testCase)
    if testCase == 'basic':
        pass
    elif testCase == 'saturation':
        RWs.append(defaultReactionWheel())
        RWs[0].u_max = 1.
        RWs[1].u_max = 2.
        RWs[2].u_max = 2.
        u_cmd = [-1.2, 1.5, 2.5]
        writeNewRWCmds(ReactionWheel, u_cmd, len(RWs))
        expOut['u_current'] = [-1., 1.5, 2.]
    elif testCase == 'minimum':
        RWs[0].u_min = .1
        RWs[1].u_min = .0
        u_cmd = [-.09, 0.0001]
        writeNewRWCmds(ReactionWheel, u_cmd, len(RWs))
        expOut['u_current'] = [0., 0.0001]
    elif testCase == 'speedSaturation':
        RWs.append(defaultReactionWheel())
        RWs[0].Omega_max = 50.
        RWs[1].Omega_max = 50.
        RWs[2].Omega_max = 50.
        RWs[0].Omega = 49.
        RWs[1].Omega = 51.
        RWs[2].Omega = -52.
        u_cmd = [1.5, 1.5, 1.5]
        writeNewRWCmds(ReactionWheel, u_cmd, len(RWs))
        expOut['u_current'] = [1.5, 0.0, 1.5]
    elif testCase == 'powerSaturation':
        RWs.append(defaultReactionWheel())
        RWs[0].P_max = 1.
        RWs[1].P_max = 1.
        RWs[2].P_max = 1.
        RWs[0].Omega = 50.
        RWs[1].Omega = 50.
        RWs[2].Omega = 50.
        u_cmd = [0.01, -0.04, 0.04]
        writeNewRWCmds(ReactionWheel, u_cmd, len(RWs))
        expOut['u_current'] = [0.01, -0.02, 0.02]
    else:
        raise Exception('invalid test case')
    for i in range(0, len(RWs)):
        ReactionWheel.addReactionWheel(RWs[i])
    ReactionWheel.ConfigureRWRequests(0.)
    if 'accuracy' not in vars():
        accuracy = 1e-10
    for outputName in list(expOut.keys()):
        for i in range(0, len(RWs)):
            if expOut[outputName][i] != ReactionWheel.ReactionWheelData[i].u_current:
                print("expected: " + str(expOut[outputName][i]))
                print("got :" + str(ReactionWheel.ReactionWheelData[i].u_current))
                testFail = 1
                break
        if testFail:
            break
    if testFail:
        testFailCount += 1
        testMessages.append("FAILED: " + ReactionWheel.ModelTag + " Module failed " +
                            outputName + " unit test")
    np.set_printoptions(precision=16)
    # print out success message if no errors were found
    if testFailCount == 0:
        print("PASSED ")
        colorText = 'ForestGreen'
        passedText = r'\textcolor{' + colorText + '}{' + "PASSED" + '}'
    else:
        colorText = 'Red'
        passedText = r'\textcolor{' + colorText + '}{' + "FAILED" + '}'
    # Write some snippets for AutoTex
    snippetName = testCase + 'PassFail'
    unitTestSupport.writeTeXSnippet(snippetName, passedText, path)
    # each test method requires a single assert method to be called
    # this check below just makes sure no sub-test failures were found
    return [testFailCount, ''.join(testMessages)]