def test_06_traducenot(self): norma.loader("test/not.a") self.assertListEqual(norma.mem[norma.DATA : norma.DATA+1], [0]) self.assertListEqual(norma.mem[0:3], [norma.DATA, norma.DATA, norma.OUT]) self.assertListEqual(norma.mem[3:6], [1003, 1003, norma.IP]) self.assertListEqual(norma.mem[6:norma.DATA], [0]*(norma.DATA-6)) self.assertListEqual(norma.mem[norma.DATA + 1:norma.OUT], [0]*(0xFFC))
def test_04_traduce02(self): norma.loader("test/movmacro.a") self.assertListEqual(norma.mem[0:3], [1000, 1000, 1001]) # NOT 1000, 1001 self.assertListEqual(norma.mem[3:6], [1001, 1001, norma.DATA]) # MOV 1001, 1002 -> OR 1001, 1001, 1002 (1er linea): 1001, 1001, t self.assertListEqual(norma.mem[6:9], [norma.DATA, norma.DATA, norma.OUT]) # MOV 1001, OUT -> OR 1001, 1001, OUT (2da linea): NOT t, OUT -> t, t, OUT self.assertListEqual(norma.mem[9:12], [1003, 1003, norma.IP]) # NOT 1003, IP self.assertListEqual(norma.mem[12:norma.DATA], [0]*(norma.DATA-12)) self.assertListEqual(norma.mem[norma.DATA:norma.DATA + 1], [0]) self.assertListEqual(norma.mem[norma.DATA + 1:norma.OUT], [0]*(0xFFC))
def test_01_carga(self): norma.loader("test/loadmacro.a") self.assertEqual(len(norma.macros), 3) self.assertDictEqual(norma.macros[0], {'name': 'NOT', 'args': ['a','r'], 'body': [['a', 'a', 'r']]}) self.assertDictEqual(norma.macros[1], {'name': 'OR', 'args': ['a','b','r'], 'body': [['local', 't'], ['a', 'b', 't'], ['NOT', 't', 'r']]}) self.assertDictEqual(norma.macros[2], {'name': 'SET', 'args': ['a','b','r'], 'body': [['local', 't'], ['set', 'a', 't'], ['a', 'b', 'r']]})
def test_05_traduce03(self): norma.loader("test/branchmacro.a")
def test_03_traduce01(self): norma.mem[1000] = 200 norma.loader("test/simplemacro.a") self.assertListEqual(norma.mem[0:3], [1000, 1000, 1001])