ShowFile("src/HotSwap_BaseChange.bf")
GotoText("//Test_Start")
ToggleBreakpoint()
RunWithCompiling()

ToggleCommentAt("ClassC_0")
ToggleCommentAt("DoTest0_Body")

Stop()

Compile()

# DoTest0
StepInto()
StepOver()
StepOver()
StepOver()
StepOver()
AssertEvalEquals("a0", "100")
AssertEvalEquals("a1", "101")
AssertEvalEquals("c0", "300")
StepOut()

# DoTest1
ToggleCommentAt("ClassC_0")
ToggleCommentAt("ClassC_1")
ToggleCommentAt("DoTest0_Body")
ToggleCommentAt("DoTest1_Body")
ToggleCommentAt("DoTest2_Decl")
Compile()
StepInto()
StepOver()
StepOver()
StepOver()
AssertEvalEquals("b0", "200")
AssertEvalEquals("c0", "300")

# DoTest1
ToggleCommentAt("ClassB_MethodB1")
ToggleCommentAt("ClassC_1")
ToggleCommentAt("ClassC_2")
ToggleCommentAt("DoTest2_Body")
Compile()
StepOver()
StepOver()
AssertEvalEquals("b0", "200")
AssertEvalEquals("c0", "1300")
StepInto()
StepOver()
StepOver()
StepOver()
StepOver()
AssertEvalEquals("b0", "200")
AssertEvalEquals("b1", "201")
AssertEvalEquals("c0", "1300")
AssertEvalEquals("c1", "1301")