예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
 def test_len(self):
     num_total = 10
     heap = Heap.create_from_iterable(range(num_total))
     self.assertEqual(len(heap), heap.num_in_heap)
예제 #4
0
 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)
예제 #5
0
 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))
예제 #6
0
 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))