From 4ad94210d1b8477b0cb7a4bca2f39dc385ab21a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Walter=20D=C3=B6rwald?= Date: Mon, 21 May 2007 18:01:17 +0000 Subject: Rename test_xrange.py to test_range.py and fix the type name in various spots. --- Include/rangeobject.h | 3 --- Lib/test/test_range.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ Lib/test/test_xrange.py | 68 ------------------------------------------------- Objects/rangeobject.c | 4 +-- 4 files changed, 70 insertions(+), 73 deletions(-) create mode 100644 Lib/test/test_range.py delete mode 100644 Lib/test/test_xrange.py diff --git a/Include/rangeobject.h b/Include/rangeobject.h index 359bcb69f5..847da80b89 100644 --- a/Include/rangeobject.h +++ b/Include/rangeobject.h @@ -7,9 +7,6 @@ extern "C" { #endif -/* This is about the type 'xrange', not the built-in function range(), which - returns regular lists. */ - /* A range object represents an integer range. This is an immutable object; a range cannot change its value after creation. diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py new file mode 100644 index 0000000000..65433d4fab --- /dev/null +++ b/Lib/test/test_range.py @@ -0,0 +1,68 @@ +# Python test set -- built-in functions + +import test.test_support, unittest +import sys + +import warnings +warnings.filterwarnings("ignore", "integer argument expected", + DeprecationWarning, "unittest") + +class RangeTest(unittest.TestCase): + def test_range(self): + self.assertEqual(list(range(3)), [0, 1, 2]) + self.assertEqual(list(range(1, 5)), [1, 2, 3, 4]) + self.assertEqual(list(range(0)), []) + self.assertEqual(list(range(-3)), []) + self.assertEqual(list(range(1, 10, 3)), [1, 4, 7]) + self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4]) + + a = 10 + b = 100 + c = 50 + + self.assertEqual(list(range(a, a+2)), [a, a+1]) + self.assertEqual(list(range(a+2, a, -1)), [a+2, a+1]) + self.assertEqual(list(range(a+4, a, -2)), [a+4, a+2]) + + seq = list(range(a, b, c)) + self.assert_(a in seq) + self.assert_(b not in seq) + self.assertEqual(len(seq), 2) + + seq = list(range(b, a, -c)) + self.assert_(b in seq) + self.assert_(a not in seq) + self.assertEqual(len(seq), 2) + + seq = list(range(-a, -b, -c)) + self.assert_(-a in seq) + self.assert_(-b not in seq) + self.assertEqual(len(seq), 2) + + self.assertRaises(TypeError, range) + self.assertRaises(TypeError, range, 1, 2, 3, 4) + self.assertRaises(ValueError, range, 1, 2, 0) + + self.assertRaises(TypeError, range, 0.0, 2, 1) + self.assertRaises(TypeError, range, 1, 2.0, 1) + self.assertRaises(TypeError, range, 1, 2, 1.0) + self.assertRaises(TypeError, range, 1e100, 1e101, 1e101) + + self.assertRaises(TypeError, range, 0, "spam") + self.assertRaises(TypeError, range, 0, 42, "spam") + + self.assertEqual(len(range(0, sys.maxint, sys.maxint-1)), 2) + + r = range(-sys.maxint, sys.maxint, 2) + self.assertEqual(len(r), sys.maxint) + + def test_repr(self): + self.assertEqual(repr(range(1)), 'range(0, 1)') + self.assertEqual(repr(range(1, 2)), 'range(1, 2)') + self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)') + +def test_main(): + test.test_support.run_unittest(XrangeTest) + +if __name__ == "__main__": + test_main() diff --git a/Lib/test/test_xrange.py b/Lib/test/test_xrange.py deleted file mode 100644 index 3a5adf2b76..0000000000 --- a/Lib/test/test_xrange.py +++ /dev/null @@ -1,68 +0,0 @@ -# Python test set -- built-in functions - -import test.test_support, unittest -import sys - -import warnings -warnings.filterwarnings("ignore", "integer argument expected", - DeprecationWarning, "unittest") - -class XrangeTest(unittest.TestCase): - def test_xrange(self): - self.assertEqual(list(range(3)), [0, 1, 2]) - self.assertEqual(list(range(1, 5)), [1, 2, 3, 4]) - self.assertEqual(list(range(0)), []) - self.assertEqual(list(range(-3)), []) - self.assertEqual(list(range(1, 10, 3)), [1, 4, 7]) - self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4]) - - a = 10 - b = 100 - c = 50 - - self.assertEqual(list(range(a, a+2)), [a, a+1]) - self.assertEqual(list(range(a+2, a, -1)), [a+2, a+1]) - self.assertEqual(list(range(a+4, a, -2)), [a+4, a+2]) - - seq = list(range(a, b, c)) - self.assert_(a in seq) - self.assert_(b not in seq) - self.assertEqual(len(seq), 2) - - seq = list(range(b, a, -c)) - self.assert_(b in seq) - self.assert_(a not in seq) - self.assertEqual(len(seq), 2) - - seq = list(range(-a, -b, -c)) - self.assert_(-a in seq) - self.assert_(-b not in seq) - self.assertEqual(len(seq), 2) - - self.assertRaises(TypeError, range) - self.assertRaises(TypeError, range, 1, 2, 3, 4) - self.assertRaises(ValueError, range, 1, 2, 0) - - self.assertRaises(TypeError, range, 0.0, 2, 1) - self.assertRaises(TypeError, range, 1, 2.0, 1) - self.assertRaises(TypeError, range, 1, 2, 1.0) - self.assertRaises(TypeError, range, 1e100, 1e101, 1e101) - - self.assertRaises(TypeError, range, 0, "spam") - self.assertRaises(TypeError, range, 0, 42, "spam") - - self.assertEqual(len(range(0, sys.maxint, sys.maxint-1)), 2) - - r = range(-sys.maxint, sys.maxint, 2) - self.assertEqual(len(r), sys.maxint) - - def test_repr(self): - self.assertEqual(repr(range(1)), 'range(0, 1)') - self.assertEqual(repr(range(1, 2)), 'range(1, 2)') - self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)') - -def test_main(): - test.test_support.run_unittest(XrangeTest) - -if __name__ == "__main__": - test_main() diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 4a45212dbe..8cefe67220 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -214,7 +214,7 @@ range_item(rangeobject *r, Py_ssize_t i) if (i < 0 || i >= len) { if (!PyErr_Occurred()) PyErr_SetString(PyExc_IndexError, - "xrange object index out of range"); + "range object index out of range"); return NULL; } @@ -313,7 +313,7 @@ PyTypeObject PyRange_Type = { range_new, /* tp_new */ }; -/*********************** Xrange Iterator **************************/ +/*********************** range Iterator **************************/ /* There are 2 types of iterators, one for C longs, the other for Python longs (ie, PyObjects). This should make iteration fast -- cgit v1.2.1