public void Assignments() { var source = "void main() { a = 123; b=80; }"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("a").Should().Be(123); fixture.GetReferenceValue("b").Should().Be(80); }
public void DoWhile_SentenceIsExecutedOnce() { var source = "void main() { int a=0; do { b = 123; } while (a < 0); }"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("a").Should().Be(0); fixture.GetReferenceValue("b").Should().Be(123); }
public void DoWhile() { var source = "void main() { int a=0; do { b = 123; a=a+1; } while (a < 2); }"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("a").Should().Be(2); fixture.GetReferenceValue("b").Should().Be(123); }
public void NestedCallsToReturn() { var source = "void main() { a = func1(); } int func1() { return func2(); } int func2() { return func3(); } int func3() { return 1234; }"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("a").Should().Be(1234); }
public void WhileStatement_WhenConditionIsMet_BlockIsExecuted() { var source = "void main() { int a=0; while (a==0) { b = 123; a=a+1; } }"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("b").Should().Be(123); }
public void OrOperation2() { var source = "void main()\n{\n\ta=5;\n\tif (a==12 || a==5) \n\t{\n\t\tb=3;\n\t}\n}"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("b").Should().Be(3); }
public void Fibonacci() { var n = 12; var result = 89; var source = $"void main() {{int first;int second;int next;int c; int n; n = {n}; first = 0; second = 1; for (c = 0; c<n ;c=c+1) {{ if ( c < 2 ) {{ next = c; }} if ( c > 1) {{ next = first + second; first = second; second = next; }} }} }}"; var fixture = new MachineFixture(); fixture.Run(source); fixture.GetReferenceValue("next").Should().Be(result); }