public void ShouldSubVariable() { var _interpreter = new Interpretator(); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("set a 5\n" + "sub a 2\n" + "print a"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("run"); }
public void ShouldStepOverWork() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("def test\n" + " set a 4\n" + " set b 5\n" + "set t 5\n" + "call test\n" + "print a"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("add break 1"); _interpreter.ExecuteLine("add break 4"); _interpreter.ExecuteLine("run"); _interpreter.ExecuteLine("step over"); _interpreter.ExecuteLine("step"); var output = Int32.Parse(_writer.ToString()); Assert.That(output, Is.EqualTo(4)); }
public void ShouldShowTrace() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("def test\n" + " set a 4\n" + "set t 5\n" + "call test\n" + "sub a 3\n" + "call test\n" + "print a"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("add break 1"); _interpreter.ExecuteLine("run"); _interpreter.ExecuteLine("print trace"); _interpreter.ExecuteLine("run"); _interpreter.ExecuteLine("run"); var output = _writer.ToString(); Assert.That(output.Contains("3 test") && output.Contains("4"), Is.EqualTo(true)); }
public void ShouldCallFunctionAndPrint() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("def test\n" + " print a\n" + "set a 5\n" + "call test"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("run"); var output = _writer.ToString(); var a = int.Parse(output); Assert.That(a, Is.EqualTo(5)); }
public void ShouldOverrideVariable() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("set a 5\n" + "set a 6\n" + "print a"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("run"); var output = Int32.Parse(_writer.ToString()); Assert.That(output, Is.EqualTo(6)); }
public void ShouldPostFuncDefinitionWorks() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("call test\n" + "print a\n" + "def test\n" + " set a 5"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("run"); var output = Int32.Parse(_writer.ToString()); Assert.That(output, Is.EqualTo(5)); }
public void ShouldShowMemoryVars() { var _interpreter = new Interpretator(); var _writer = new StringWriter(); Console.SetOut(_writer); _interpreter.ExecuteLine("set code"); _interpreter.ExecuteLine("set a 5\n" + "set b 4\n" + "set c 3\n" + "set d 2\n" + "set e 1"); _interpreter.ExecuteLine("end set code"); _interpreter.ExecuteLine("add break 2"); _interpreter.ExecuteLine("run"); _interpreter.ExecuteLine("print mem"); var output = _writer.ToString(); Assert.That(output.Contains("a 5 0") && output.Contains("b 4 1"), Is.EqualTo(true)); }