123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- import unittest
- import sys
- import os
- from utils import execute, kill, run_file, run_barebone
- class TestConstructorsActionLanguage(unittest.TestCase):
- def test_constructors_simple(self):
- commands = ['"output"', # Output
- '"const"', 'true',
- 'true', # (has next)
- '"return"', # Return
- 'true', # (has value)
- '"const"', 'true',
- ]
- self.assertTrue(run_barebone(commands, ["True"], 1))
- def test_constructors_if_else_true(self):
- commands = ['"if"', # If
- '"const"', 'true', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'true', # Has else
- '"output"', # False-part
- '"const"', 'false',
- 'false', # Has next
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["True"], 1))
- def test_constructors_if_else_false(self):
- commands = ['"if"', # If
- '"const"', 'false', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'true', # Has else
- '"output"', # False-part
- '"const"', 'false',
- 'false', # Has next
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["False"], 1))
- def test_constructors_if_true(self):
- commands = ['"if"', # If
- '"const"', 'true', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'false', # Has else
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["True"], 1))
- def test_constructors_if_false(self):
- commands = ['"if"', # If
- '"const"', 'false', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'false', # Has else
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, [None], 1, timeout=True))
- def test_constructors_addition(self):
- commands = ['"output"',
- '"call"',
- '"deref"', '"primitives/integer_addition"',
- '2',
- '"const"', '1',
- '"const"', '5',
- 'false',
- 'true',
- '"return"', 'true', '"const"', 'true',
- ]
- self.assertTrue(run_barebone(commands, ["6"], 1))
- def test_constructors_while_false(self):
- commands = ['"while"', # While
- '"const"', 'false', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'true', # Has next
- '"output"', # Output false
- '"const"', 'false',
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["False"], 1))
- def test_constructors_while_true(self):
- commands = ['"while"', # While
- '"const"', 'true', # Condition
- '"output"', # True-part
- '"const"', 'true',
- 'false', # Has next
- 'true', # Has next
- '"output"', # False-part
- '"const"', 'false',
- 'true', # Has next
- '"return"', # Return
- 'true', # Has value
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["True", "True", "True", "True"], 1))
- def test_constructors_declare_and_assign(self):
- commands = ['"declare"',
- '"1"',
- 'true',
- '"assign"',
- '"resolve"', '"1"',
- '"const"', '5',
- 'true',
- '"output"',
- '"access"', '"resolve"', '"1"',
- 'true',
- '"return"',
- 'true',
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands, ["5"], 1))
- def test_constructors_output_input(self):
- commands = ['"output"',
- '"input"',
- 'true',
- '"return"',
- 'true',
- '"const"', "true",
- ]
- self.assertTrue(run_barebone(commands + ['123456'], ["123456"], 1))
- def test_constructors_continue(self):
- commands = ['"while"',
- '"const"', 'true',
- '"output"', '"const"', '1',
- 'true',
- '"if"',
- '"const"', 'true',
- '"continue"',
- 'false',
- 'true',
- '"output"', '"const"', '2',
- 'false',
- 'true',
- '"output"', '"const"', '3',
- 'true',
- '"return"', 'true',
- '"const"', 'true',
- ]
- self.assertTrue(run_barebone(commands, ['1', '1', '1', '1', '1'], 1))
- def test_constructors_break(self):
- commands = ['"while"',
- '"const"', 'true',
- '"output"', '"const"', '1',
- 'true',
- '"if"',
- '"const"', 'true',
- '"break"',
- 'false',
- 'true',
- '"output"', '"const"', '2',
- 'false',
- 'true',
- '"output"', '"const"', '3',
- 'true',
- '"return"', 'true',
- '"const"', 'true',
- ]
- self.assertTrue(run_barebone(commands, ['1', '3'], 1))
|