mirror of
https://github.com/python/cpython.git
synced 2024-11-26 03:14:27 +08:00
Exercise some error conditions
This commit is contained in:
parent
739a8f86d6
commit
d7be118626
@ -38,6 +38,10 @@ class TestHeap(unittest.TestCase):
|
|||||||
# 2) Check that the invariant holds for a sorted array
|
# 2) Check that the invariant holds for a sorted array
|
||||||
self.check_invariant(results)
|
self.check_invariant(results)
|
||||||
|
|
||||||
|
self.assertRaises(TypeError, heappush, [])
|
||||||
|
self.assertRaises(TypeError, heappush, None, None)
|
||||||
|
self.assertRaises(TypeError, heappop, None)
|
||||||
|
|
||||||
def check_invariant(self, heap):
|
def check_invariant(self, heap):
|
||||||
# Check the heap invariant.
|
# Check the heap invariant.
|
||||||
for pos, item in enumerate(heap):
|
for pos, item in enumerate(heap):
|
||||||
@ -51,6 +55,8 @@ class TestHeap(unittest.TestCase):
|
|||||||
heapify(heap)
|
heapify(heap)
|
||||||
self.check_invariant(heap)
|
self.check_invariant(heap)
|
||||||
|
|
||||||
|
self.assertRaises(TypeError, heapify, None)
|
||||||
|
|
||||||
def test_naive_nbest(self):
|
def test_naive_nbest(self):
|
||||||
data = [random.randrange(2000) for i in range(1000)]
|
data = [random.randrange(2000) for i in range(1000)]
|
||||||
heap = []
|
heap = []
|
||||||
@ -75,6 +81,10 @@ class TestHeap(unittest.TestCase):
|
|||||||
heapreplace(heap, item)
|
heapreplace(heap, item)
|
||||||
self.assertEqual(list(heapiter(heap)), sorted(data)[-10:])
|
self.assertEqual(list(heapiter(heap)), sorted(data)[-10:])
|
||||||
|
|
||||||
|
self.assertRaises(TypeError, heapreplace, None)
|
||||||
|
self.assertRaises(TypeError, heapreplace, None, None)
|
||||||
|
self.assertRaises(IndexError, heapreplace, [], None)
|
||||||
|
|
||||||
def test_heapsort(self):
|
def test_heapsort(self):
|
||||||
# Exercise everything with repeated heapsort checks
|
# Exercise everything with repeated heapsort checks
|
||||||
for trial in xrange(100):
|
for trial in xrange(100):
|
||||||
|
Loading…
Reference in New Issue
Block a user