From b9009359270cc44bb73289d5b5780993a8af57f7 Mon Sep 17 00:00:00 2001 From: Raphael Roberts Date: Fri, 8 Nov 2019 17:53:47 -0600 Subject: [PATCH] Using unit tests for testing --- .gitignore | 1 + test.py | 53 ------------------------------- tests.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 53 deletions(-) delete mode 100644 test.py create mode 100755 tests.py diff --git a/.gitignore b/.gitignore index 8e4ec4a..bc75feb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .dir-locals.el __pycache__ +.#* \ No newline at end of file diff --git a/test.py b/test.py deleted file mode 100644 index b97b129..0000000 --- a/test.py +++ /dev/null @@ -1,53 +0,0 @@ -from register import Accumulator - -TESTS = [] - - -def test(func): - global TESTS - TESTS.append(func) - return func - - -@test -def test_set(): - pass - - -@test -def test_get(): - pass - - -@test -def test_get_signed(): - pass - - -@test -def test_negate(): - pass - - -@test -def test_shift_right(): - pass - - -@test -def test_shift_left(): - pass - - -@test -def test_add(): - pass - - -@test -def test_subtract(): - pass - -if __name__ == "__main__": - for test_func in TESTS: - test_func() diff --git a/tests.py b/tests.py new file mode 100755 index 0000000..c11d2e7 --- /dev/null +++ b/tests.py @@ -0,0 +1,91 @@ +import random +from unittest import TestCase + +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(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 = -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 = -randint(128, 1024) + self.test_register.set(test_val) + self.assertEqual(self.test_register.value, 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()) + + 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()) + + +class TestAritmetic(RegisterTest): + pass + + +@test +def test_shift_right(): + pass + + +@test +def test_shift_left(): + pass + + +@test +def test_add(): + pass + + +@test +def test_subtract(): + pass + + +if __name__ == "__main__": + for test_func in TESTS: + test_func()