class GouramUnitTests(unittest.TestCase): def setUp(self): self.gouram = Gouram() def test_add_expand(self): expanded_code = self.gouram.expand_code([["ADD", "S1", "S2", 1]]) self.assertListEqual(expanded_code, [["S2", "TADD", 1], ["TADD", "S1", 2], ["TADD", "TADD", 3]]) def test_subtract_expand(self): expanded_code = self.gouram.expand_code([["SUB", "S1", "S2", 1]]) self.assertListEqual(expanded_code, [["S2", "S1", 1]]) def test_not_expand(self): expanded_code = self.gouram.expand_code([["NOT", "S1", 1]]) self.assertListEqual(expanded_code, [['S1', 'TNOT', 1], ['ON', 'TNOT', 2], ['S1', 'S1', 3], ['TNOT', 'TMOVE', 4], ['TMOVE', 'S1', 5], ['TMOVE', 'TMOVE', 6], ['TNOT', 'TNOT', 7]]) def test_multiply(self): expanded_code = self.gouram.expand_code([["MUL", "S3", "S4", 1]]) self.assertListEqual(expanded_code, [["ON", "S4", 5], ["S3", "TADD", 2], ["TADD", "TMUL", 3], ["TADD", "TADD", 4], ["Z", "Z", 0], ["TMUL", "TADD", 6], ["TADD", "S3", 7], ["TADD", "TADD", 8], ["TMUL", "TMUL", 9]]) def test_divide(self): expanded_code = self.gouram.expand_code([["DIV", "S6", "S7", 1]]) self.assertListEqual(expanded_code, [["S7", "S6", 5], ["ON", "TADD", 2], ["TADD", "TDIV", 3], ["TADD", "TADD", 4], ["Z", "Z", 0], ["S6", "S6", 6], ["TDIV", "TMOVE", 7], ["TMOVE", "S6", 8], ["TMOVE", "TMOVE", 9], ["TDIV", "TDIV", 10]]) def test_shift_right(self): expanded_code = self.gouram.expand_code([["SHR", "S2", "S3", 1]]) self.assertListEqual(expanded_code, [[]]) def test_shift_left(self): expanded_code = self.gouram.expand_code([["SHL", "S2", "S3", 1]]) self.assertListEqual(expanded_code, [[]])
def setUp(self): self.gouram = Gouram()
class GouramIntegrationTests(unittest.TestCase): gouram = None def setUp(self): self.gouram = Gouram() def test_assert_fail_output_is_as_expected(self): file = "test_cases/___assert_fail--00.kpa" self.assertEqual("{ 0x0240b004, 0x02c06008, 0x02c0b00c, 0x00000001, 0x00000025, 0x00000032, 0x0000000c, " "0x0000054f, 0x00000000, 0x00000010, 0x00000000, 0x00000000 }", self.gouram.expand(file))