diff options
author | Raymond Hettinger <python@rcn.com> | 2011-04-13 11:50:34 -0700 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2011-04-13 11:50:34 -0700 |
commit | f400ab40e4eb7dc6ad886920fb02ce4f7d1e929f (patch) | |
tree | 2dac445eda2208fe82615298da4f84f30fbd8c37 | |
parent | c6652ca468f7017fbfad15676b873919a9ee56dd (diff) | |
parent | 8a9c4d9866a29839e045bef51445085fe7938853 (diff) | |
download | cpython-git-f400ab40e4eb7dc6ad886920fb02ce4f7d1e929f.tar.gz |
merge
-rw-r--r-- | Lib/heapq.py | 9 | ||||
-rw-r--r-- | Lib/test/test_heapq.py | 16 |
2 files changed, 9 insertions, 16 deletions
diff --git a/Lib/heapq.py b/Lib/heapq.py index 464663a78a..3fe6b4646a 100644 --- a/Lib/heapq.py +++ b/Lib/heapq.py @@ -212,11 +212,10 @@ def nsmallest(n, iterable): pop = result.pop los = result[-1] # los --> Largest of the nsmallest for elem in it: - if los <= elem: - continue - insort(result, elem) - pop() - los = result[-1] + if elem < los: + insort(result, elem) + pop() + los = result[-1] return result # An alternative approach manifests the whole iterable in memory but # saves comparisons by heapifying all at once. Also, saves time diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py index 3295869668..b41458bb53 100644 --- a/Lib/test/test_heapq.py +++ b/Lib/test/test_heapq.py @@ -211,12 +211,6 @@ class TestHeapC(TestHeap): self.assertEqual(hsort(data, LT), target) self.assertRaises(TypeError, data, LE) - # As an early adopter, we sanity check the - # test.support.import_fresh_module utility function - def test_accelerated(self): - self.assertTrue(sys.modules['heapq'] is self.module) - self.assertFalse(hasattr(self.module.heapify, '__code__')) - #============================================================================== @@ -319,16 +313,16 @@ class TestErrorHandling(unittest.TestCase): def test_non_sequence(self): for f in (self.module.heapify, self.module.heappop): - self.assertRaises(TypeError, f, 10) + self.assertRaises((TypeError, AttributeError), f, 10) for f in (self.module.heappush, self.module.heapreplace, self.module.nlargest, self.module.nsmallest): - self.assertRaises(TypeError, f, 10, 10) + self.assertRaises((TypeError, AttributeError), f, 10, 10) def test_len_only(self): for f in (self.module.heapify, self.module.heappop): - self.assertRaises(TypeError, f, LenOnly()) + self.assertRaises((TypeError, AttributeError), f, LenOnly()) for f in (self.module.heappush, self.module.heapreplace): - self.assertRaises(TypeError, f, LenOnly(), 10) + self.assertRaises((TypeError, AttributeError), f, LenOnly(), 10) for f in (self.module.nlargest, self.module.nsmallest): self.assertRaises(TypeError, f, 2, LenOnly()) @@ -353,7 +347,7 @@ class TestErrorHandling(unittest.TestCase): for f in (self.module.heapify, self.module.heappop, self.module.heappush, self.module.heapreplace, self.module.nlargest, self.module.nsmallest): - self.assertRaises(TypeError, f, 10) + self.assertRaises((TypeError, AttributeError), f, 10) def test_iterable_args(self): for f in (self.module.nlargest, self.module.nsmallest): |