def _setup_heap(self, simplices): heap_entries = [ ObjectValuePair(simplex, self.simplex_bounder.bound(simplex)) for simplex in simplices ] heap = Heap.create_from_iterable(heap_entries) return heap
def test_pop_min_bubbles_up_next(self): values = sorted([1, 2, 3]) heap = Heap.create_from_iterable(values) first = heap.pop_min() second = heap.pop_min() third = heap.pop_min() popped = [first, second, third] self.assertEqual(values, popped)
def test_len(self): num_total = 10 heap = Heap.create_from_iterable(range(num_total)) self.assertEqual(len(heap), heap.num_in_heap)
def test_pop_min_decrements_num_in_heap(self): num_total = 10 heap = Heap.create_from_iterable(range(num_total)) _ = heap.pop_min() self.assertEqual(heap.num_in_heap, num_total - 1)
def test_pop_min_returns_min_value(self): values = [2, 5, 9, 2, 5, 3, 0, 1, 2] # random integers on [0, 10] heap = Heap.create_from_iterable(values) out = heap.pop_min() self.assertEqual(out, min(values))
def test_create_from_iterable_returns_correct_length(self): values = [i for i in range(18)] heap = Heap.create_from_iterable(values) self.assertEqual(heap.num_in_heap, len(values))