def heap_sort(items): heap = MinHeap(items) sorted_list = [] for i in xrange(len(items)): sorted_list.append(heap.remove_min()) return sorted_list
def test_insert_and_remove_many_random_items(self): heap = MinHeap() items = random.sample(range(1000), 50) for item in items: heap.insert(item) assert heap.size() == len(items) sorted_items = sorted(items) for index, item in enumerate(sorted_items): min_item = heap.remove_min() assert sorted_items[index] == min_item assert heap.size() == 0
def test_insert_and_remove_many_items(self): heap = MinHeap() items = [9, 25, 86, 3, 29, 5, 55] for item in items: heap.insert(item) assert heap.size() == len(items) sorted_items = sorted(items) for index, item in enumerate(sorted_items): min_item = heap.remove_min() assert sorted_items[index] == min_item assert heap.size() == 0
def test_insert_and_remove_one_item(self): heap = MinHeap() heap.insert(5) assert heap.size() == 1 assert heap.remove_min() == 5 assert heap.size() == 0
def test_remove_min_on_empty_heap(self): heap = MinHeap() with self.assertRaises(ValueError): heap.remove_min()