Пример #1
0
        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");
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }
Пример #7
0
        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));
        }