ShowFile("src/Methods.bf")
GotoText("//Test_Start")
ToggleBreakpoint()
RunWithCompiling()
StepOver()
AssertAutocompleteEquals("ClassA.TEST_", "TEST_StaticMethodA\nTEST_StaticMethodB")
AssertAutocompleteEquals("ca.TEST_", "TEST_MethodA\nTEST_MethodB")
NavigateBackwards()
AssertEvalEquals("ca.TEST_MethodA()", "200")
AssertEvalContains("ca.TEST_MethodB()", "Unable to find address for method")
AssertEvalEquals("ClassA.TEST_StaticMethodA()", "100")
AssertEvalContains("ClassA.TEST_StaticMethodB()", "Unable to find address for method")
AssertAutocompleteEquals("ClassA.TEST_", "TEST_StaticMethodA\nTEST_StaticMethodB")
AssertAutocompleteEquals("ca.TEST_", "TEST_MethodA\nTEST_MethodB")
AssertEvalEquals("Test0(EnumA.C, 200)", "1202")
NavigateBackwards()

ToggleCommentAt("ClassA_MethodC")
ToggleCommentAt("ClassA_StaticMethodC")
ToggleCommentAt("DoTest_Body")
Compile()
AssertEvalEquals("ca.TEST_MethodA()", "200")
AssertEvalEquals("ca.TEST_MethodB()", "201")
AssertEvalEquals("ca.TEST_MethodC()", "202")
AssertEvalEquals("ClassA.TEST_StaticMethodA()", "100")
AssertEvalEquals("ClassA.TEST_StaticMethodB()", "101")
AssertEvalEquals("ClassA.TEST_StaticMethodC()", "102")
AssertAutocompleteEquals("ClassA.TEST_", "TEST_StaticMethodA\nTEST_StaticMethodB\nTEST_StaticMethodC")
AssertAutocompleteEquals("ca.TEST_", "TEST_MethodA\nTEST_MethodB\nTEST_MethodC")