mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Exercise xrange a bit
This commit is contained in:
		
							parent
							
								
									d7be118626
								
							
						
					
					
						commit
						1c0423a2da
					
				
					 1 changed files with 59 additions and 0 deletions
				
			
		
							
								
								
									
										59
									
								
								Lib/test/test_xrange.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Lib/test/test_xrange.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,59 @@ | |||
| # 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(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]) | ||||
| 
 | ||||
|         a = 10 | ||||
|         b = 100 | ||||
|         c = 50 | ||||
| 
 | ||||
|         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_(a in seq) | ||||
|         self.assert_(b not in seq) | ||||
|         self.assertEqual(len(seq), 2) | ||||
| 
 | ||||
|         seq = list(xrange(b, a, -c)) | ||||
|         self.assert_(b in seq) | ||||
|         self.assert_(a not in seq) | ||||
|         self.assertEqual(len(seq), 2) | ||||
| 
 | ||||
|         seq = list(xrange(-a, -b, -c)) | ||||
|         self.assert_(-a in seq) | ||||
|         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.assertRaises(OverflowError, xrange, 0, sys.maxint, sys.maxint-1) | ||||
|         self.assertRaises(OverflowError, xrange, -sys.maxint, sys.maxint) | ||||
|         self.assertRaises(OverflowError, xrange, 0, 2*sys.maxint) | ||||
| 
 | ||||
| def test_main(): | ||||
|     test.test_support.run_unittest(XrangeTest) | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     test_main() | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Neal Norwitz
						Neal Norwitz