def test_get_chips_on_boards(self): vm = VirtualMachine(width=24, height=36, with_wrap_arounds=True) # check each chip appears only once on the entire board count00 = 0 count50 = 0 count04 = 0 count2436 = 0 for eth_chip in vm._ethernet_connected_chips: list_of_chips = list(vm.get_chips_on_board(eth_chip)) self.assertEqual(len(list_of_chips), 48) if (0, 0) in list_of_chips: count00 += 1 if (5, 0) in list_of_chips: count50 += 1 if (0, 4) in list_of_chips: count04 += 1 if (24, 36) in list_of_chips: count2436 += 1 # (0,0), (5,0), (0,4) are all on this virtual machine self.assertEqual(count00, 1) self.assertEqual(count50, 1) self.assertEqual(count04, 1) # (24,36) is not on this virtual machine self.assertEqual(count2436, 0)
def test_version_5_guess_12x12(self): vm = VirtualMachine(height=12, width=12, version=None, with_wrap_arounds=None) self.assertEqual(vm.max_chip_x, 11) self.assertEqual(vm.max_chip_y, 11) self.assertEqual(144, vm.n_chips) self.assertEqual(3, len(vm.ethernet_connected_chips)) count = sum(1 for _chip in vm.chips for _link in _chip.router.links) self.assertEqual(864, count) count = 0 for _chip in vm.get_chips_on_board(vm.get_chip_at(1, 1)): count += 1 self.assertEqual(48, count)
def test_version_2(self): vm = VirtualMachine(version=2, with_wrap_arounds=None) self.assertEqual(vm.max_chip_x, 1) self.assertEqual(vm.max_chip_y, 1) self.assertEqual(4, vm.n_chips) self.assertTrue(vm.is_chip_at(0, 0)) self.assertTrue(vm.is_chip_at(0, 1)) self.assertTrue(vm.is_chip_at(1, 0)) self.assertTrue(vm.is_chip_at(1, 1)) self.assertEqual(1, len(vm.ethernet_connected_chips)) self.assertTrue(vm.is_link_at(0, 0, 0)) self.assertTrue(vm.is_link_at(0, 0, 1)) self.assertTrue(vm.is_link_at(0, 0, 2)) self.assertFalse(vm.is_link_at(0, 0, 3)) self.assertFalse(vm.is_link_at(0, 0, 4)) self.assertTrue(vm.is_link_at(0, 0, 5)) self.assertTrue(vm.is_link_at(0, 1, 0)) self.assertTrue(vm.is_link_at(0, 1, 1)) self.assertTrue(vm.is_link_at(0, 1, 2)) self.assertFalse(vm.is_link_at(0, 1, 3)) self.assertFalse(vm.is_link_at(0, 1, 4)) self.assertTrue(vm.is_link_at(0, 1, 5)) self.assertFalse(vm.is_link_at(1, 0, 0)) self.assertFalse(vm.is_link_at(1, 0, 1)) self.assertTrue(vm.is_link_at(1, 0, 2)) self.assertTrue(vm.is_link_at(1, 0, 3)) self.assertTrue(vm.is_link_at(1, 0, 4)) self.assertTrue(vm.is_link_at(1, 0, 5)) self.assertFalse(vm.is_link_at(1, 1, 0)) self.assertFalse(vm.is_link_at(1, 1, 1)) self.assertTrue(vm.is_link_at(1, 1, 2)) self.assertTrue(vm.is_link_at(1, 1, 3)) self.assertTrue(vm.is_link_at(1, 1, 4)) self.assertTrue(vm.is_link_at(1, 1, 5)) count = 0 for _chip in vm.chips: for _link in _chip.router.links: count += 1 self.assertEqual(16, count) self.assertEqual(str(vm), "[VirtualMachine: max_x=1, max_y=1, n_chips=4]") self.assertEqual(vm.get_cores_and_link_count(), (72, 8)) count = 0 for _chip in vm.get_chips_on_board(vm.get_chip_at(1, 1)): count += 1 self.assertEqual(4, count)