Browse Source

Using unit tests for testing

master
Raphael Roberts 6 years ago
parent
commit
b900935927
  1. 1
      .gitignore
  2. 53
      test.py
  3. 91
      tests.py

1
.gitignore

@ -1,3 +1,4 @@
.dir-locals.el
__pycache__
.#*

53
test.py

@ -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()

91
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()
Loading…
Cancel
Save