summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_range.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-03-20 07:37:31 (GMT)
committerGitHub <noreply@github.com>2017-03-20 07:37:31 (GMT)
commit4276068fe57e93b4c8d428f0b1cde8ca04b8fb99 (patch)
tree9d8c97075d46243d40cc75cbfd590bad2aff31c9 /Lib/test/test_range.py
parent7cc071c96b95e7422f64cb436d547c952e0ca52f (diff)
downloadcpython-4276068fe57e93b4c8d428f0b1cde8ca04b8fb99.zip
cpython-4276068fe57e93b4c8d428f0b1cde8ca04b8fb99.tar.gz
cpython-4276068fe57e93b4c8d428f0b1cde8ca04b8fb99.tar.bz2
bpo-28876: bool of large range raises OverflowError (#699) (#735)
(cherry picked from commit e46fb8611867fa3b407a813f53137929b7cb4a10)
Diffstat (limited to 'Lib/test/test_range.py')
-rw-r--r--Lib/test/test_range.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py
index c022f07..90efa1a 100644
--- a/Lib/test/test_range.py
+++ b/Lib/test/test_range.py
@@ -98,20 +98,24 @@ class RangeTest(unittest.TestCase):
x = range(10**20+10, 10**20, 3)
self.assertEqual(len(x), 0)
self.assertEqual(len(list(x)), 0)
+ self.assertFalse(x)
x = range(10**20, 10**20+10, -3)
self.assertEqual(len(x), 0)
self.assertEqual(len(list(x)), 0)
+ self.assertFalse(x)
x = range(10**20+10, 10**20, -3)
self.assertEqual(len(x), 4)
self.assertEqual(len(list(x)), 4)
+ self.assertTrue(x)
# Now test range() with longs
- self.assertEqual(list(range(-2**100)), [])
- self.assertEqual(list(range(0, -2**100)), [])
- self.assertEqual(list(range(0, 2**100, -1)), [])
- self.assertEqual(list(range(0, 2**100, -1)), [])
+ for x in [range(-2**100),
+ range(0, -2**100),
+ range(0, 2**100, -1)]:
+ self.assertEqual(list(x), [])
+ self.assertFalse(x)
a = int(10 * sys.maxsize)
b = int(100 * sys.maxsize)
@@ -152,6 +156,7 @@ class RangeTest(unittest.TestCase):
step = x[1] - x[0]
length = 1 + ((x[-1] - x[0]) // step)
return length
+
a = -sys.maxsize
b = sys.maxsize
expected_len = b - a
@@ -159,6 +164,7 @@ class RangeTest(unittest.TestCase):
self.assertIn(a, x)
self.assertNotIn(b, x)
self.assertRaises(OverflowError, len, x)
+ self.assertTrue(x)
self.assertEqual(_range_len(x), expected_len)
self.assertEqual(x[0], a)
idx = sys.maxsize+1
@@ -176,6 +182,7 @@ class RangeTest(unittest.TestCase):
self.assertIn(a, x)
self.assertNotIn(b, x)
self.assertRaises(OverflowError, len, x)
+ self.assertTrue(x)
self.assertEqual(_range_len(x), expected_len)
self.assertEqual(x[0], a)
idx = sys.maxsize+1
@@ -194,6 +201,7 @@ class RangeTest(unittest.TestCase):
self.assertIn(a, x)
self.assertNotIn(b, x)
self.assertRaises(OverflowError, len, x)
+ self.assertTrue(x)
self.assertEqual(_range_len(x), expected_len)
self.assertEqual(x[0], a)
idx = sys.maxsize+1
@@ -212,6 +220,7 @@ class RangeTest(unittest.TestCase):
self.assertIn(a, x)
self.assertNotIn(b, x)
self.assertRaises(OverflowError, len, x)
+ self.assertTrue(x)
self.assertEqual(_range_len(x), expected_len)
self.assertEqual(x[0], a)
idx = sys.maxsize+1