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

Side by Side Diff: Lib/test/test_range.py

Issue 602: range: lean and mean (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/branches/py3k/
Patch Set: __len__ is back! Created 3 months, 3 weeks ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
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
54 def test_repr(self):
55 self.assertEqual(repr(range(1)), 'range(0, 1)')
56 self.assertEqual(repr(range(1, 2)), 'range(1, 2)')
57 self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)')
58
59 def test_attributes(self):
60 r = range(0, 10, 2)
61 self.assertEqual(r.start, 0)
62 self.assertEqual(r.stop, 10)
63 self.assertEqual(r.step, 2)
64 r = range(10)
65 self.assertEqual(r.start, 0)
66 self.assertEqual(r.stop, 10)
67 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)
53 77
54 self.assertEqual(len(range(0, sys.maxsize, sys.maxsize-1)), 2) 78 self.assertEqual(len(range(0, sys.maxsize, sys.maxsize-1)), 2)
55 79
56 r = range(-sys.maxsize, sys.maxsize, 2) 80 r = range(-sys.maxsize, sys.maxsize, 2)
57 self.assertEqual(len(r), sys.maxsize) 81 self.assertEqual(len(r), sys.maxsize)
58 82
59 def test_repr(self):
60 self.assertEqual(repr(range(1)), 'range(0, 1)')
61 self.assertEqual(repr(range(1, 2)), 'range(1, 2)')
62 self.assertEqual(repr(range(1, 2, 3)), 'range(1, 2, 3)')
63
64 def test_main(): 83 def test_main():
65 test.test_support.run_unittest(RangeTest) 84 test.test_support.run_unittest(RangeTest)
66 85
67 if __name__ == "__main__": 86 if __name__ == "__main__":
68 test_main() 87 test_main()
OLDNEW

Powered by Google App Engine
This is Rietveld r292