def test_speed_compare(self): H = FibHeap() random.seed() n = 10000 gc.disable() t1 = time.time() for d in range(n): H.insert_node(FibNode(random.randint(1, 100000))) for d in range(n): H.extract_node() t2 = time.time() zenFinal = t2-t1 gc.collect() h = [] t1 = time.time() for d in range(n): heappush(h, random.randint(1, 100000)) for d in range(n): heappop(h) t2 = time.time() pythonFinal = t2-t1 gc.enable() self.assertGreater(pythonFinal, zenFinal)
def test_rigorous_insert_extract(self): H = FibHeap() random.seed() for d in range(10000): n = FibNode(random.randint(1, 100000)) H.insert_node(n) H.extract_node()
def test_child_ref(self): H = FibHeap() n1 = FibNode(1) n2 = FibNode(2) n3 = FibNode(3) H.insert_node(n1) H.insert_node(n2) H.insert_node(n3) self.assertIsNone(n1.get_child()) self.assertIsNone(n2.get_child()) self.assertIsNone(n3.get_child()) H.extract_node() self.assertEqual(n3, n2.get_child()) self.assertIsNone(n3.get_child())
def test_child_ref(self): H = FibHeap() n1 = FibNode(1) n2 = FibNode(2) n3 = FibNode(3) H.insert_node(n1) H.insert_node(n2) H.insert_node(n3) self.assertIsNone(n1.get_child()) self.assertIsNone(n2.get_child()) self.assertIsNone(n3.get_child()) H.extract_node() self.assertEquals(n3, n2.get_child()) self.assertIsNone(n3.get_child())
def test_insert_extract_order(self): nodes = [] extractedNodes = [] H = FibHeap() random.seed() for d in range(10000): n = FibNode(random.randint(1, 100000)) nodes.append(n.get_key()) H.insert_node(n) for i in range(H.get_node_count()): n = H.extract_node() extractedNodes.append(n.get_key()) nodes.sort() self.assertEqual(extractedNodes, nodes)