def test_decrease_key(self): heap = MinHeap() heap.array = [2, 3, 4] heap.size = 3 heap.decrease_key(2, 1) self.assertEqual(heap.array, [1, 3, 2]) self.assertEqual(heap.size, 3) heap.decrease_key(0, 4) self.assertEqual(heap.array, [1, 3, 2]) self.assertEqual(heap.size, 3)
def test_insert(self): heap = MinHeap() heap.array = [] heap.size = 0 heap.insert(2) self.assertEqual(heap.array, [2], "Error in inserting on empty heap.") self.assertEqual(heap.size, 1) nonempty = "Error in inserting on nonempty heap." heap.insert(3) heap.insert(4) self.assertEqual(heap.array, [2, 3, 4], nonempty) self.assertEqual(heap.size, 3) heap.insert(5) self.assertEqual(heap.array, [2, 3, 4, 5], nonempty) self.assertEqual(heap.size, 4) heap.insert(1) self.assertEqual(heap.array, [1, 2, 4, 5, 3], nonempty) self.assertEqual(heap.size, 5)
def test_extract_min(self): heap = MinHeap() heap.array = [2, 3, 4, 5] heap.size = 4 item = heap.extract_min() self.assertEqual(heap.array[0:heap.size], [3, 5, 4]) self.assertEqual(item, 2) item = heap.extract_min() self.assertEqual(heap.array[0:heap.size], [4, 5]) self.assertEqual(item, 3) item = heap.extract_min() self.assertEqual(heap.array[0:heap.size], [5]) self.assertEqual(item, 4) item = heap.extract_min() self.assertEqual(heap.array[0:heap.size], []) self.assertEqual(item, 5) item = heap.extract_min() self.assertEqual(item, None)