def test_min_heap(): heap = MinHeap() heap.add(1) heap.add(2) value = heap.retrieve_min() assert value == 1
def test_retrieve_min(capsys): heap = MinHeap() heap.heap_list = [None, 1, 2, 4, 3] heap.size = 4 minimum = heap.retrieve_min() assert heap.size == 3 assert minimum == 1 assert heap.heap_list == [None, 2, 3, 4] heap.retrieve_min() heap.retrieve_min() heap.retrieve_min() assert heap.retrieve_min() is None captured = capsys.readouterr() assert captured.out == "Error, heap is empty!\n"
# import heap class from min_heap import MinHeap # make an instance of MinHeap min_heap = MinHeap() # set internal list for testing purposes... min_heap.heap_list = [None, 10, 13, 21, 61, 22, 23, 99] min_heap.count = 7 while len(min_heap.heap_list) != 1: print(min_heap.heap_list) min_heap.retrieve_min()
from random import randrange # import heap class from min_heap import MinHeap # make an instance of MinHeap min_heap = MinHeap() # populate min_heap with descending numbers descending_nums = [n for n in range(10001, 1, -1)] print("ADDING!") for el in descending_nums: min_heap.add(el) print("REMOVING!") # remove minimum until min_heap is empty min_heap.retrieve_min() @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ # min_heap.py class MinHeap: def __init__(self): self.heap_list = [None] self.count = 0 def parent_idx(self, idx): return idx // 2 def left_child_idx(self, idx): return idx * 2