예제 #1
0
        public void JmpLabelPushWritePopPushTest()
        {
            var commands = new List <string>
            {
                "JMP main",
                "LABEL 123",
                "PUSH '456'",
                "WRITE",
                "POP",
                "JMP",
                "LABEL main",
                "PUSH 'point'",
                "JMP 123",
                "LABEL point",
                "PUSH '111'",
                "WRITE"
            };
            var input          = new List <string>();
            var expectedOutput = new List <string> {
                "456", "111"
            };

            var output = Robot.Evaluate(commands, input);

            OutputShouldBe(output, expectedOutput);
        }
예제 #2
0
        public void JmpLabelPushReplaceoneCopyPopSwapWriteTest()
        {
            var commands = new List <string>
            {
                "JMP main",
                "",
                "LABEL contains.l",
                "PUSH 'contains.l1'",
                "COPY 3",
                "COPY 1",
                "COPY 4",
                "REPLACEONE",
                "POP",
                "POP",
                "POP",
                "POP",
                "JMP",
                "",
                "LABEL contains.l1",
                "POP",
                "POP",
                "SWAP 1 2",
                "POP",
                "JMP",
                "",
                "LABEL main",
                "PUSH 'contains.true'",
                "PUSH 'contains.false'",
                "PUSH '123'",
                "PUSH '1123'",

                "LABEL contains.true",
                "PUSH 'true'",
                "WRITE",
                "JMP end",

                "LABEL contains.false",
                "PUSH 'false'",
                "WRITE",
                "JMP end",

                "LABEL end"
            };
            var input          = new List <string>();
            var expectedOutput = new List <string> {
                "true"
            };

            var output = Robot.Evaluate(commands, input);

            OutputShouldBe(output, expectedOutput);
        }
예제 #3
0
        public void ReadWriteTest()
        {
            var commands = new List <string> {
                "READ",
                "WRITE"
            };
            var lines = new List <string> {
                "123"
            };

            var output = Robot.Evaluate(commands, lines);

            OutputShouldBe(lines, output);
        }
예제 #4
0
        public void PushWriteConcatTest()
        {
            var commands = new List <string>
            {
                "PUSH 'b'",
                "PUSH 'a'",
                "CONCAT",
                "WRITE"
            };
            var input          = new List <string>();
            var expectedOutput = new List <string> {
                "ab"
            };

            var output = Robot.Evaluate(commands, input);

            OutputShouldBe(output, expectedOutput);
        }
예제 #5
0
        public void ReadWritePopTest()
        {
            var commands = new List <string>
            {
                "READ",
                "READ",
                "POP",
                "WRITE"
            };
            var input = new List <string> {
                "123", "456"
            };
            var expectedOutput = new List <string> {
                "123"
            };

            var output = Robot.Evaluate(commands, input);

            OutputShouldBe(expectedOutput, output);
        }