def test_not(self): mc = Microcontroller() self.assertEqual(0, mc.acc) mc.execute("not") self.assertEqual(100, mc.acc) mc.register('acc').write('-999') mc.execute("not") self.assertEqual(0, mc.acc)
def test_dat_registers(self): mc = Microcontroller(name='mc1', dats=1) d0 = mc.dat0 dat = mc.dat self.assertEqual(d0, dat) self.assertIsInstance(d0, Register) d0.write(5) self.assertEqual(5, d0.read()) with self.assertRaises(x.RegisterException): mc.register('d1')
def test_tgt(self): code = """ tgt acc 2 + mov 3 acc - mov 1 acc """ mc = Microcontroller() mc.execute(code) self.assertEqual(1, mc.acc) mc.register('acc').write(2) mc.execute(code) self.assertEqual(1, mc.acc)
def test_teq(self): code = """ teq acc 2 + mov 1 acc - mov 3 acc """ mc = Microcontroller(name='mc1') mc.execute(code) self.assertEqual(3, mc.acc) mc.register('acc').write(2) self.assertEqual(2, mc.acc) mc.execute(code) self.assertEqual(1, mc.acc)
def test_acc_register(self): mc1 = Microcontroller(name='mc1', gpio=1) acc = mc1.register('acc') self.assertEqual(0, acc.read()) self.assertEqual(0, mc1.acc) mc1.execute('add 1') self.assertEqual(1, acc.read()) self.assertEqual(1, mc1.acc)
def test_mov(self): mc1 = Microcontroller(name='mc1', dats=1) acc = mc1.register('acc') dat = mc1.register('dat') acc.write(42) mc1.execute('mov acc dat') self.assertEqual(42, dat.read()) self.assertEqual(42, acc.read()) dat.write(12) mc1.execute('mov dat acc') self.assertEqual(12, acc.read()) self.assertEqual(12, dat.read())
def test_dst(self): mc = Microcontroller() mc.register('acc').write(567) mc.execute('dst 0 9') self.assertEqual(569, mc.acc) mc.register('acc').write(567) mc.execute('dst 1 9') self.assertEqual(597, mc.acc) mc.register('acc').write(567) mc.execute('dst 2 9') self.assertEqual(967, mc.acc) mc.register('acc').write(567) mc.execute('dst 3 9') self.assertEqual(0, mc.acc)
def test_dgt(self): mc = Microcontroller() mc.register('acc').write(567) mc.execute('dgt 0') self.assertEqual(7, mc.acc) mc.register('acc').write(567) mc.execute('dgt 1') self.assertEqual(6, mc.acc) mc.register('acc').write(567) mc.execute('dgt 2') self.assertEqual(5, mc.acc) mc.register('acc').write(567) mc.execute('dgt 3') self.assertEqual(0, mc.acc)
def test_null_register(self): mc = Microcontroller() n = mc.register('null') n.write(100) self.assertEqual(0, n.read())
def test_mul(self): mc = Microcontroller() mc.register('acc').write(2) mc.execute('mul 5') self.assertEqual(10, mc.acc)