Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(77)

Delta Between Two Patch Sets: Lib/test/test_range.py

Issue 602: range: lean and mean (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/branches/py3k/
Left Patch Set: __len__ is back! Created 3 months, 3 weeks ago
Right Patch Set: use PyMemberDef Created 3 months, 3 weeks ago , Downloaded from: http://bugs.python.org/file10155/range_lean_and_mean2.patch
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
1 # Python test set -- built-in functions 1 # Python test set -- built-in functions
2 2
3 import test.test_support, unittest 3 import test.test_support, unittest
4 import sys 4 import sys
5 5
6 import warnings 6 import warnings
7 warnings.filterwarnings("ignore", "integer argument expected", 7 warnings.filterwarnings("ignore", "integer argument expected",
8 DeprecationWarning, "unittest") 8 DeprecationWarning, "unittest")
9 9
10 class RangeTest(unittest.TestCase): 10 class RangeTest(unittest.TestCase):
11 def test_range(self): 11 def test_range(self):
12 self.assertEqual(list(range(3)), [0, 1, 2]) 12 self.assertEqual(list(range(3)), [0, 1, 2])
13 self.assertEqual(list(range(1, 5)), [1, 2, 3, 4]) 13 self.assertEqual(list(range(1, 5)), [1, 2, 3, 4])
14 self.assertEqual(list(range(0)), []) 14 self.assertEqual(list(range(0)), [])
15 self.assertEqual(list(range(-3)), []) 15 self.assertEqual(list(range(-3)), [])
16 self.assertEqual(list(range(1, 10, 3)), [1, 4, 7]) 16 self.assertEqual(list(range(1, 10, 3)), [1, 4, 7])
17 self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4]) 17 self.assertEqual(list(range(5, -5, -3)), [5, 2, -1, -4])
18 18
19 a = 10 19 a = 10
20 b = 100 20 b = 100
21 c = 50 21 c = 50
22 22
23 self.assertEqual(list(range(a, a+2)), [a, a+1]) 23 self.assertEqual(list(range(a, a+2)), [a, a+1])
24 self.assertEqual(list(range(a+2, a, -1)), [a+2, a+1]) 24 self.assertEqual(list(range(a+2, a, -1)), [a+2, a+1])
25 self.assertEqual(list(range(a+4, a, -2)), [a+4, a+2]) 25 self.assertEqual(list(range(a+4, a, -2)), [a+4, a+2])
26 26
27 seq = list(range(a, b, c)) 27 seq = list(range(a, b, c))
28 self.assert_(a in seq) 28 self.assert_(a in seq)
29 self.assert_(b not in seq) 29 self.assert_(b not in seq)
30 self.assertEqual(len(seq), 2) 30 self.assertEqual(len(seq), 2)
31 31
32 seq = list(range(b, a, -c)) 32 seq = list(range(b, a, -c))
33 self.assert_(b in seq) 33 self.assert_(b in seq)
34 self.assert_(a not in seq) 34 self.assert_(a not in seq)
35 self.assertEqual(len(seq), 2) 35 self.assertEqual(len(seq), 2)
36 36
37 seq = list(range(-a, -b, -c)) 37 seq = list(range(-a, -b, -c))
38 self.assert_(-a in seq) 38 self.assert_(-a in seq)
39 self.assert_(-b not in seq) 39 self.assert_(-b not in seq)
40 self.assertEqual(len(seq), 2) 40 self.assertEqual(len(seq), 2)
41 41
42 self.assertRaises(TypeError, range) 42 self.assertRaises(TypeError, range)
43 self.assertRaises(TypeError, range, 1, 2, 3, 4) 43 self.assertRaises(TypeError, range, 1, 2, 3, 4)
44 self.assertRaises(ValueError, range, 1, 2, 0) 44 self.assertRaises(ValueError, range, 1, 2, 0)
45 45
46 self.assertRaises(TypeError, range, 0.0, 2, 1) 46 self.assertRaises(TypeError, range, 0.0, 2, 1)
47 self.assertRaises(TypeError, range, 1, 2.0, 1) 47 self.assertRaises(TypeError, range, 1, 2.0, 1)
48 self.assertRaises(TypeError, range, 1, 2, 1.0) 48 self.assertRaises(TypeError, range, 1, 2, 1.0)
49 self.assertRaises(TypeError, range, 1e100, 1e101, 1e101) 49 self.assertRaises(TypeError, range, 1e100, 1e101, 1e101)
50 50
51 self.assertRaises(TypeError, range, 0, "spam") 51 self.assertRaises(TypeError, range, 0, "spam")
52 self.assertRaises(TypeError, range, 0, 42, "spam") 52 self.assertRaises(TypeError, range, 0, 42, "spam")
53 53
54 self.assertEqual(len(range(0, sys.maxsize, sys.maxsize-1)), 2)
55
56 r = range(-sys.maxsize, sys.maxsize, 2)
57 self.assertEqual(len(r), sys.maxsize)
58
54 def test_repr(self): 59 def test_repr(self):
55 self.assertEqual(repr(range(1)), 'range(0, 1)') 60 self.assertEqual(repr(range(1)), 'range(0, 1)')
56 self.assertEqual(repr(range(1, 2)), 'range(1, 2)') 61 self.assertEqual(repr(range(1, 2)), 'range(1, 2)')
57 self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)') 62 self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)')
58 63
59 def test_attributes(self): 64 def test_attributes(self):
60 r = range(0, 10, 2) 65 r = range(0, 10, 2)
61 self.assertEqual(r.start, 0) 66 self.assertEqual(r.start, 0)
62 self.assertEqual(r.stop, 10) 67 self.assertEqual(r.stop, 10)
63 self.assertEqual(r.step, 2) 68 self.assertEqual(r.step, 2)
64 r = range(10) 69 r = range(10)
65 self.assertEqual(r.start, 0) 70 self.assertEqual(r.start, 0)
66 self.assertEqual(r.stop, 10) 71 self.assertEqual(r.stop, 10)
67 self.assertEqual(r.step, 1) 72 self.assertEqual(r.step, 1)
68 r = range(10, 0, 4)
69 self.assertEqual(r.start, 10)
70 self.assertEqual(r.stop, 0)
71 self.assertEqual(r.step, 4)
72
73 def test_len(self):
74 self.assertEqual(len(range(10)), 10)
75 self.assertEqual(len(range(10, 0)), 0)
76 self.assertEqual(len(range(0, 10, 2)), 5)
77
78 self.assertEqual(len(range(0, sys.maxsize, sys.maxsize-1)), 2)
79
80 r = range(-sys.maxsize, sys.maxsize, 2)
81 self.assertEqual(len(r), sys.maxsize)
82 73
83 def test_main(): 74 def test_main():
84 test.test_support.run_unittest(RangeTest) 75 test.test_support.run_unittest(RangeTest)
85 76
86 if __name__ == "__main__": 77 if __name__ == "__main__":
87 test_main() 78 test_main()
LEFTRIGHT

Powered by Google App Engine
This is Rietveld r292