|
|
import randomfrom unittest import TestCase, main as unittest_main
from register import Accumulator, Register
TESTS = []
class RegisterTest(TestCase): def setUp(self): Register.registers = [] self.test_accumulator = Accumulator(8) self.test_register = Register(8)
class TestSetterGetter(RegisterTest): def test_set(self): test_val = random.randint(0, 255) self.test_register.set(test_val) self.assertEqual(self.test_register.value, test_val)
def test_set_overflow(self): test_val = random.randint(256, 1024) self.test_register.set(test_val) self.assertEqual(test_val % 256, self.test_register.value)
def test_2s_complement(self): test_val = -random.randint(0, 127) self.test_register.set(test_val) self.assertEqual(self.test_register.get_signed(), test_val)
def test_2s_complement_overflow(self): test_val = -random.randint(128, 1024) self.test_register.set(test_val) self.assertEqual(self.test_register.get_signed(), test_val % -128)
class TestNegation(RegisterTest): def test_negate(self): test_val = random.randint(0, 127) self.test_register.set(test_val) self.test_register.negate() self.assertEqual(self.test_register.get_signed(), -test_val)
def test_negate_overflow(self): test_val = random.randint(128, 1024) self.test_register.set(test_val) self.test_register.negate() self.assertEqual(self.test_register.get_signed(), -test_val % -128)
def test_negate_negative(self):
test_val = -random.randint(0, 127) self.test_register.set(test_val) self.test_register.negate() self.assertEqual(self.test_register.get_signed(), -test_val)
def test_negate_negative_overflow(self): test_val = -random.randint(128, 1024) self.test_register.set(test_val) self.test_register.negate() self.assertEqual(self.test_register.get_signed(), -test_val % 128)
class TestAritmetic(RegisterTest): pass
if __name__ == "__main__": unittest_main()
|