From eb36d31bb8d0fdf4be14fd14deaf88149e771417 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Wed, 24 Jun 2009 18:36:46 +0000 Subject: Issue #6334: Fix buggy internal length calculation in builtin range function --- Lib/test/test_builtin.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'Lib/test/test_builtin.py') diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index a62e1244c2..fdb0ea28f5 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -924,6 +924,24 @@ class BuiltinTest(unittest.TestCase): self.assertEqual(list(range(1, 10, 3)), [1, 4, 7]) #self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4]) + #issue 6334: the internal stored range length was being + #computed incorrectly in some cases involving large arguments. + x = range(10**20, 10**20+10, 3) + self.assertEqual(len(x), 4) + self.assertEqual(len(list(x)), 4) + + x = range(10**20+10, 10**20, 3) + self.assertEqual(len(x), 0) + self.assertEqual(len(list(x)), 0) + + x = range(10**20, 10**20+10, -3) + self.assertEqual(len(x), 0) + self.assertEqual(len(list(x)), 0) + + x = range(10**20+10, 10**20, -3) + self.assertEqual(len(x), 4) + self.assertEqual(len(list(x)), 4) + """ XXX(nnorwitz): # Now test range() with longs self.assertEqual(list(range(-2**100)), []) -- cgit v1.2.1