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 process_candidate(self, candidate): simplex = candidate.object new_simplices = self.branch_on_candidate(simplex) for simplex in new_simplices: candidate = ObjectValuePair(simplex, self.simplex_bounder.bound(simplex)) self._heap.add_to_heap(candidate)
def test_heapsortable(self): np.random.seed(1148) random.seed(1150) simplices = [make_simplex() for _ in range(20)] correct_order = [ ObjectValuePair(simplex, i) for i, simplex in enumerate(simplices)] random_order = correct_order.copy() random.shuffle(random_order) sorted_order = heapsort(random_order) for correct, check in zip(correct_order, sorted_order): self.assertIs(correct, check)
def test_le(self): ovp1 = ObjectValuePair('abc', 1) ovp2 = ObjectValuePair('def', ovp1.value + 1) self.assertLessEqual(ovp1, ovp2)
def test_ge(self): ovp1 = ObjectValuePair('abc', 1) ovp2 = ObjectValuePair('def', ovp1.value - 1) self.assertGreaterEqual(ovp1, ovp2)
def test_eq(self): ovp1 = ObjectValuePair('abc', 1) ovp2 = ObjectValuePair('def', ovp1.value) self.assertEqual(ovp1, ovp2)
def test_stores_object_value(self): obj = 'abcdef' value = 1 object_value_pair = ObjectValuePair(obj, value) self.assertEqual(object_value_pair.object, obj) self.assertEqual(object_value_pair.value, value)