@@ -510,21 +510,29 @@ def test_count(self):
510510 self .assertEqual (take (2 , zip ('abc' ,count (- 3 ))), [('a' , - 3 ), ('b' , - 2 )])
511511 self .assertRaises (TypeError , count , 2 , 3 , 4 )
512512 self .assertRaises (TypeError , count , 'a' )
513- self .assertEqual (list ( islice ( count (maxsize - 5 ), 10 )),
513+ self .assertEqual (take ( 10 , count (maxsize - 5 )),
514514 list (range (maxsize - 5 , maxsize + 5 )))
515- self .assertEqual (list ( islice ( count (- maxsize - 5 ), 10 )),
515+ self .assertEqual (take ( 10 , count (- maxsize - 5 )),
516516 list (range (- maxsize - 5 , - maxsize + 5 )))
517- self .assertEqual (list (islice (count (10 , maxsize + 5 ), 3 )),
518- list (range (10 , 10 + 3 * (maxsize + 5 ), maxsize + 5 )))
517+ self .assertEqual (take (3 , count (3.25 )), [3.25 , 4.25 , 5.25 ])
518+ self .assertEqual (take (3 , count (3.25 - 4j )), [3.25 - 4j , 4.25 - 4j , 5.25 - 4j ])
519+ self .assertEqual (take (3 , count (Decimal ('1.1' ))),
520+ [Decimal ('1.1' ), Decimal ('2.1' ), Decimal ('3.1' )])
521+ self .assertEqual (take (3 , count (Fraction (2 , 3 ))),
522+ [Fraction (2 , 3 ), Fraction (5 , 3 ), Fraction (8 , 3 )])
523+ BIGINT = 1 << 1000
524+ self .assertEqual (take (3 , count (BIGINT )), [BIGINT , BIGINT + 1 , BIGINT + 2 ])
519525 c = count (3 )
520526 self .assertEqual (repr (c ), 'count(3)' )
521527 next (c )
522528 self .assertEqual (repr (c ), 'count(4)' )
523529 c = count (- 9 )
524530 self .assertEqual (repr (c ), 'count(-9)' )
525531 next (c )
526- self .assertEqual (repr (count (10.25 )), 'count(10.25)' )
527532 self .assertEqual (next (c ), - 8 )
533+ self .assertEqual (repr (count (10.25 )), 'count(10.25)' )
534+ self .assertEqual (repr (count (10.0 )), 'count(10.0)' )
535+ self .assertEqual (type (next (count (10.0 ))), float )
528536 for i in (- sys .maxsize - 5 , - sys .maxsize + 5 ,- 10 , - 1 , 0 , 10 , sys .maxsize - 5 , sys .maxsize + 5 ):
529537 # Test repr
530538 r1 = repr (count (i ))
@@ -548,16 +556,22 @@ def test_count_with_stride(self):
548556 [('a' , 2 ), ('b' , 5 ), ('c' , 8 )])
549557 self .assertEqual (lzip ('abc' ,count (step = - 1 )),
550558 [('a' , 0 ), ('b' , - 1 ), ('c' , - 2 )])
559+ self .assertRaises (TypeError , count , 'a' , 'b' )
551560 self .assertEqual (lzip ('abc' ,count (2 ,0 )), [('a' , 2 ), ('b' , 2 ), ('c' , 2 )])
552561 self .assertEqual (lzip ('abc' ,count (2 ,1 )), [('a' , 2 ), ('b' , 3 ), ('c' , 4 )])
553562 self .assertEqual (lzip ('abc' ,count (2 ,3 )), [('a' , 2 ), ('b' , 5 ), ('c' , 8 )])
554563 self .assertEqual (take (20 , count (maxsize - 15 , 3 )), take (20 , range (maxsize - 15 , maxsize + 100 , 3 )))
555564 self .assertEqual (take (20 , count (- maxsize - 15 , 3 )), take (20 , range (- maxsize - 15 ,- maxsize + 100 , 3 )))
565+ self .assertEqual (take (3 , count (10 , maxsize + 5 )),
566+ list (range (10 , 10 + 3 * (maxsize + 5 ), maxsize + 5 )))
567+ self .assertEqual (take (3 , count (2 , 1.25 )), [2 , 3.25 , 4.5 ])
556568 self .assertEqual (take (3 , count (2 , 3.25 - 4j )), [2 , 5.25 - 4j , 8.5 - 8j ])
557569 self .assertEqual (take (3 , count (Decimal ('1.1' ), Decimal ('.1' ))),
558570 [Decimal ('1.1' ), Decimal ('1.2' ), Decimal ('1.3' )])
559571 self .assertEqual (take (3 , count (Fraction (2 ,3 ), Fraction (1 ,7 ))),
560572 [Fraction (2 ,3 ), Fraction (17 ,21 ), Fraction (20 ,21 )])
573+ BIGINT = 1 << 1000
574+ self .assertEqual (take (3 , count (step = BIGINT )), [0 , BIGINT , 2 * BIGINT ])
561575 self .assertEqual (repr (take (3 , count (10 , 2.5 ))), repr ([10 , 12.5 , 15.0 ]))
562576 c = count (3 , 5 )
563577 self .assertEqual (repr (c ), 'count(3, 5)' )
@@ -575,6 +589,10 @@ def test_count_with_stride(self):
575589 self .assertEqual (repr (count (10.5 , 1.25 )), 'count(10.5, 1.25)' )
576590 self .assertEqual (repr (count (10.5 , 1 )), 'count(10.5)' ) # suppress step=1 when it's an int
577591 self .assertEqual (repr (count (10.5 , 1.00 )), 'count(10.5, 1.0)' ) # do show float values lilke 1.0
592+ self .assertEqual (repr (count (10 , 1.00 )), 'count(10, 1.0)' )
593+ c = count (10 , 1.0 )
594+ self .assertEqual (type (next (c )), int )
595+ self .assertEqual (type (next (c )), float )
578596 for i in (- sys .maxsize - 5 , - sys .maxsize + 5 ,- 10 , - 1 , 0 , 10 , sys .maxsize - 5 , sys .maxsize + 5 ):
579597 for j in (- sys .maxsize - 5 , - sys .maxsize + 5 ,- 10 , - 1 , 0 , 1 , 10 , sys .maxsize - 5 , sys .maxsize + 5 ):
580598 # Test repr
0 commit comments