from unittest import TestCase from literal import Literal from memory_array import MemoryArray import random from pathlib import Path class TestMemoryArray(TestCase): def test_create_array(self): l = random.randint(5,10) size = Literal(l) a = MemoryArray(size) self.assertEqual(len(a), l) def test_set_item(self): l = random.randint(5,10) size = Literal(l) a = MemoryArray(size) i = Literal(random.randint(0,l-1)) v = Literal(random.randint(1,100)) a[i] = v self.assertEqual(a[i].value, v.value) def test_get_item(self): l = random.randint(5,10) size = Literal(l) a = MemoryArray(size) values = [] for i in a.indices(): v = Literal(random.randint(1,100)) values.append(v.value) a[i] = v for pos, i in enumerate(a.indices()): self.assertEqual(a[i].value, values[pos]) def test_reset_counters(self): l = random.randint(5,10) size = Literal(l) a = MemoryArray(size) for i in a.indices(): v = Literal(random.randint(1,100)) a[i] = v for i in a.indices(): self.assertEqual(a[i].write_count, 1) a.reset_counters() for i in a.indices(): self.assertEqual(a[i].write_count, 0) def test_create_random_array(self): a = MemoryArray.create_random_array(10, 1, 100) self.assertEqual(len(a), 10) def test_create_array_from_file(self): a = MemoryArray.create_array_from_file("data/seq0.txt") self.assertEqual(len(a), 14)