def heapsort_test(self, array): "Verifies that the heap can be used to sort array" h = heap_delete.heap_delete() for elem in array: h.insert(elem) sorted_array = sorted(array) for elem in sorted_array: self.assertEquals(h.extract_min(), elem)
def test1(self): "Insert one element and then delete it" h = heap_delete.heap_delete() self.assertEquals(h.A, [None]) self.assertEquals(h.heapsize, 0) h.insert(5) h.delete(1) self.assertEquals(h.A, [None]) self.assertEquals(h.heapsize, 0)
def test2(self): "Insert many elements and then delete one" h = heap_delete.heap_delete() h.insert(5) h.insert(15) h.insert(10) h.insert(0) h.delete(h.A.index(10)) self.assertEquals(0, h.extract_min()) self.assertEquals(5, h.extract_min()) self.assertEquals(15, h.extract_min()) self.assertEquals(h.A, [None]) self.assertEquals(h.heapsize, 0)
def test0(self): "Test original heap functionality" h = heap_delete.heap_delete() import random for i in range(20): h.insert(random.randint(0, 10)) l = [] while h.heapsize > 0: l.append(h.extract_min()) self.assertEquals(len(l), 20) for i in range(len(l) - 1): self.assertTrue(l[i] <= l[i + 1]) self.assertEquals(h.heapsize, 0) self.assertEquals(h.A, [None])