Skip to content

Commit bd7575e

Browse files
committed
Add more tests, add more casts
1 parent bf58358 commit bd7575e

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

Lib/test/test_range.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ def test_range_iterators(self):
507507
# exercise 'fast' iterators, that use a rangeiterobject internally.
508508
# see issue 7298
509509
limits = [base + jiggle
510-
for M in (2**32, 2**64)
510+
for M in (2**15, 2**30, 2**32, 2**64)
511511
for base in (-M, -M//2, 0, M//2, M)
512512
for jiggle in (-2, -1, 0, 1, 2)]
513513
test_ranges = [(start, end, step)
@@ -519,13 +519,14 @@ def test_range_iterators(self):
519519
iter1 = range(start, end, step)
520520
iter2 = pyrange(start, end, step)
521521
test_id = "range({}, {}, {})".format(start, end, step)
522-
# check first 100 entries
523-
self.assert_iterators_equal(iter1, iter2, test_id, limit=100)
522+
# check first 10 entries
523+
self.assert_iterators_equal(iter1, iter2, test_id, limit=10)
524524

525525
iter1 = reversed(range(start, end, step))
526526
iter2 = pyrange_reversed(start, end, step)
527527
test_id = "reversed(range({}, {}, {}))".format(start, end, step)
528-
self.assert_iterators_equal(iter1, iter2, test_id, limit=100)
528+
self.assert_iterators_equal(iter1, iter2, test_id, limit=10)
529+
529530

530531
def test_range_iterators_invocation(self):
531532
# verify range iterators instances cannot be created by

Objects/rangeobject.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -1097,10 +1097,10 @@ range_iter(PyObject *seq)
10971097
goto long_range;
10981098
}
10991099
ulen = get_len_of_range(lstart, lstop, lstep);
1100-
if (ulen > PyLong_MASK ||
1101-
lstart > PyLong_MASK || lstart < -(long)PyLong_MASK ||
1102-
lstop > PyLong_MASK || lstop < -(long)PyLong_MASK ||
1103-
lstep > PyLong_MASK || lstep < -(long)PyLong_MASK)
1100+
if (ulen > (long)PyLong_MASK ||
1101+
lstart > (long)PyLong_MASK || lstart < -(long)PyLong_MASK ||
1102+
lstop > (long)PyLong_MASK || lstop < -(long)PyLong_MASK ||
1103+
lstep > (long)PyLong_MASK || lstep < -(long)PyLong_MASK)
11041104
{
11051105
goto long_range;
11061106
}
@@ -1190,10 +1190,10 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))
11901190

11911191
new_stop = lstart - lstep;
11921192
new_start = (long)(new_stop + ulen * lstep);
1193-
if (ulen > PyLong_MASK ||
1194-
new_start > PyLong_MASK || new_start < -(long)PyLong_MASK ||
1195-
new_stop > PyLong_MASK || new_stop < -(long)PyLong_MASK ||
1196-
lstep > PyLong_MASK || lstep < -(long)PyLong_MASK)
1193+
if (ulen > (long)PyLong_MASK ||
1194+
new_start > (long)PyLong_MASK || new_start < -(long)PyLong_MASK ||
1195+
new_stop > (long)PyLong_MASK || new_stop < -(long)PyLong_MASK ||
1196+
lstep > (long)PyLong_MASK || lstep < -(long)PyLong_MASK)
11971197
{
11981198
goto long_range;
11991199
}

0 commit comments

Comments
 (0)