From 512d2cc64328d06f4ff627497ab444e83e513348 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 25 Jan 2011 21:32:39 +0000 Subject: Issue #11004: Repair edge case in deque.count(). (Reviewed by Georg Brandl.) Also made similar changes to deque.reverse() though this wasn't strictly necessary (the edge case cannot occur with two pointers moving to meet in the middle). Making the change in reverse() was more a matter of future-proofing. --- Lib/test/test_deque.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Lib/test/test_deque.py') diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py index da00c0d206..0dcadeb3c5 100644 --- a/Lib/test/test_deque.py +++ b/Lib/test/test_deque.py @@ -138,6 +138,15 @@ class TestBasic(unittest.TestCase): m.d = d self.assertRaises(RuntimeError, d.count, 3) + # test issue11004 + # block advance failed after rotation aligned elements on right side of block + d = deque([None]*16) + for i in range(len(d)): + d.rotate(-1) + d.rotate(1) + self.assertEqual(d.count(1), 0) + self.assertEqual(d.count(None), 16) + def test_comparisons(self): d = deque('xabc'); d.popleft() for e in [d, deque('abc'), deque('ab'), deque(), list(d)]: -- cgit v1.2.1