def test_sub_op_pos_neg_neg_overflow(self): # Subtract -2 from POS_MAX self.vmac.flags |= ZERO value = self.vmac._sub(0x7FFF, utils.to_hex(-2) ) self.assertEqual(value, 0x8001) self.assertTrue(self.vmac.flags & OVERFLOW) self.assertTrue(self.vmac.flags & CARRY) self.assertFalse(self.vmac.flags & ZERO) self.assertTrue(self.vmac.flags & NEGATIVE)
def test_sub_op_pos_pos_neg(self): # Subtract 49 from 7 self.vmac.flags |= OVERFLOW | ZERO value = self.vmac._sub(7, 49) self.assertEqual(value, utils.to_hex(-42) ) self.assertFalse(self.vmac.flags & OVERFLOW) self.assertTrue(self.vmac.flags & CARRY) self.assertFalse(self.vmac.flags & ZERO) self.assertTrue(self.vmac.flags & NEGATIVE)
def test_sub_op_neg_pos_pos_underflow(self): # Subtract POS_MAX from -2 self.vmac.flags |= CARRY | ZERO | NEGATIVE value = self.vmac._sub(utils.to_hex(-2), 0x7FFF) self.assertEqual(value, 0x7FFF) self.assertTrue(self.vmac.flags & OVERFLOW) self.assertFalse(self.vmac.flags & CARRY) self.assertFalse(self.vmac.flags & ZERO) self.assertFalse(self.vmac.flags & NEGATIVE)
def test_neg_max_to_hex(self): self.assertEqual(utils.to_hex(-32768), 0x8000)
def test_neg_one_to_hex(self): self.assertEqual(utils.to_hex(-1), 0xFFFF)
def test_max_to_hex(self): self.assertEqual(utils.to_hex(32767), 0x7FFF)
def test_1_to_hex(self): self.assertEqual(utils.to_hex(1), 0x1)
def test_0_to_hex(self): self.assertEqual(utils.to_hex(0), 0x0)