def test_split256(self): split = Split(self.bank0, self.bank1, self.main, offset=256) split.reset(self.machine) t = split.process(0, False, 0, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 1) self.assertEqual(self.bank1.reads, 0) self.assertEqual(self.bank0.writes, 0) self.assertEqual(self.bank1.writes, 0) self.assertEqual(self.main.reads, 1) self.assertEqual(self.main.writes, 0) t = split.process(0, False, 256, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 1) self.assertEqual(self.bank1.reads, 1) self.assertEqual(self.bank0.writes, 0) self.assertEqual(self.bank1.writes, 0) self.assertEqual(self.main.reads, 2) self.assertEqual(self.main.writes, 0) t = split.process(0, True, 256, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 1) self.assertEqual(self.bank1.reads, 1) self.assertEqual(self.bank0.writes, 0) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 2) self.assertEqual(self.main.writes, 1) t = split.process(0, True, 0, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 1) self.assertEqual(self.bank1.reads, 1) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 2) self.assertEqual(self.main.writes, 2) t = split.process(0, False, 252, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 2) self.assertEqual(self.bank1.reads, 2) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 4) self.assertEqual(self.main.writes, 2) t = split.process(0, False, 2 ** 32 - 4, 8) self.assertEqual(t, 1600) self.assertEqual(self.bank0.reads, 3) self.assertEqual(self.bank1.reads, 3) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 6) self.assertEqual(self.main.writes, 2) t = split.process(0, False, 2 ** 32 - 1, 1) self.assertEqual(t, 200) self.assertEqual(self.bank0.reads, 3) self.assertEqual(self.bank1.reads, 4) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 7) self.assertEqual(self.main.writes, 2) t = split.process(0, False, 255, 1) self.assertEqual(t, 200) self.assertEqual(self.bank0.reads, 4) self.assertEqual(self.bank1.reads, 4) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 8) self.assertEqual(self.main.writes, 2) t = split.process(0, False, 2 ** 32 - 1, 2) self.assertEqual(t, 400) self.assertEqual(self.bank0.reads, 5) self.assertEqual(self.bank1.reads, 5) self.assertEqual(self.bank0.writes, 1) self.assertEqual(self.bank1.writes, 1) self.assertEqual(self.main.reads, 10) self.assertEqual(self.main.writes, 2)
def test_path(self): split = Split(self.bank0, self.bank1, self.main, offset=8) split.reset(self.machine) self.assertEqual(split.get_path_length(), self.machine.addr_bits)