9f9daa7bf88ff8628c4bf80a7d156c724ade7d3c
# Python test set -- built-in functions
import test
.test_support
, unittest
warnings
.filterwarnings("ignore", "integer argument expected",
DeprecationWarning, "unittest")
class XrangeTest(unittest
.TestCase
):
self
.assertEqual(list(xrange(3)), [0, 1, 2])
self
.assertEqual(list(xrange(1, 5)), [1, 2, 3, 4])
self
.assertEqual(list(xrange(0)), [])
self
.assertEqual(list(xrange(-3)), [])
self
.assertEqual(list(xrange(1, 10, 3)), [1, 4, 7])
self
.assertEqual(list(xrange(5, -5, -3)), [5, 2, -1, -4])
self
.assertEqual(list(xrange(a
, a
+2)), [a
, a
+1])
self
.assertEqual(list(xrange(a
+2, a
, -1L)), [a
+2, a
+1])
self
.assertEqual(list(xrange(a
+4, a
, -2)), [a
+4, a
+2])
seq
= list(xrange(a
, b
, c
))
self
.assert_(b
not in seq
)
self
.assertEqual(len(seq
), 2)
seq
= list(xrange(b
, a
, -c
))
self
.assert_(a
not in seq
)
self
.assertEqual(len(seq
), 2)
seq
= list(xrange(-a
, -b
, -c
))
self
.assert_(-b
not in seq
)
self
.assertEqual(len(seq
), 2)
self
.assertRaises(TypeError, xrange)
self
.assertRaises(TypeError, xrange, 1, 2, 3, 4)
self
.assertRaises(ValueError, xrange, 1, 2, 0)
self
.assertRaises(OverflowError, xrange, 1e100
, 1e101
, 1e101
)
self
.assertRaises(TypeError, xrange, 0, "spam")
self
.assertRaises(TypeError, xrange, 0, 42, "spam")
self
.assertEqual(len(xrange(0, sys
.maxint
, sys
.maxint
-1)), 2)
self
.assertRaises(OverflowError, xrange, -sys
.maxint
, sys
.maxint
)
self
.assertRaises(OverflowError, xrange, 0, 2*sys
.maxint
)
r
= xrange(-sys
.maxint
, sys
.maxint
, 2)
if sys
.maxint
> 0x7fffffff:
# XXX raising ValueError is less than ideal, but this can't
# be fixed until range_length() returns a long in rangeobject.c
self
.assertRaises(ValueError, len, r
)
self
.assertEqual(len(r
), sys
.maxint
)
self
.assertRaises(OverflowError, xrange, -sys
.maxint
-1, sys
.maxint
, 2)
test
.test_support
.run_unittest(XrangeTest
)
if __name__
== "__main__":