コード例 #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 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)
コード例 #3
0
    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)
コード例 #4
0
 def test_le(self):
     ovp1 = ObjectValuePair('abc', 1)
     ovp2 = ObjectValuePair('def', ovp1.value + 1)
     self.assertLessEqual(ovp1, ovp2)
コード例 #5
0
 def test_ge(self):
     ovp1 = ObjectValuePair('abc', 1)
     ovp2 = ObjectValuePair('def', ovp1.value - 1)
     self.assertGreaterEqual(ovp1, ovp2)
コード例 #6
0
 def test_eq(self):
     ovp1 = ObjectValuePair('abc', 1)
     ovp2 = ObjectValuePair('def', ovp1.value)
     self.assertEqual(ovp1, ovp2)
コード例 #7
0
 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)