From 065c06a6227d1c3f0a7cfa636c8e69b94a0e10d0 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 7 Dec 2002 10:33:42 +0000 Subject: [PATCH] Add another test which exercises the whole suite with a heapsort and verifies the result against list.sort(). --- Lib/test/test_heapq.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index f0bb2e7d1be..8f3c6f9ac9a 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -70,6 +70,20 @@ def test_main(): if item > heap[0]: # this gets rarer the longer we run heapreplace(heap, item) vereq(list(heapiter(heap)), data_sorted[-10:]) + # 6) Exercise everything with repeated heapsort checks + for trial in xrange(100): + size = random.randrange(50) + data = [random.randrange(25) for i in range(size)] + if trial & 1: # Half of the time, use heapify + heap = data[:] + heapify(heap) + else: # The rest of the time, use heappush + heap = [] + for item in data: + heappush(heap,item) + data.sort() + sorted = [heappop(heap) for i in range(size)] + vereq(data, sorted) # Make user happy if verbose: print "All OK"