3 changed files with 92 additions and 53 deletions
-
1.gitignore
-
53test.py
-
91tests.py
@ -1,3 +1,4 @@ |
|||
|
|||
.dir-locals.el |
|||
__pycache__ |
|||
.#* |
|||
@ -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() |
|||
@ -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() |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue