def test_pop(self): data = [random.randrange(200) for _ in xrange(100)] heap = self.makeHeap(data) # heap invariant is preserved after popping from the back while heap: heap.pop() self.assert_heap_invariant(heap) heap = self.makeHeap(data) while heap: i = random.randrange(-len(heap),len(heap)) x = heap[i] assert heap.pop(i) == x self.assert_heap_invariant(heap)
def test_delitem(self): data = [random.randrange(200) for _ in xrange(100)] heap = self.makeHeap(data) while heap: index = random.randrange(len(heap)) value = heap.pop(index) data.remove(value) self.assert_heap_invariant(heap) assert list(heap.iterpop()) == self.sorted(data)