@@ -967,6 +967,12 @@ def test_repeat(self):
967967 self .assertEqual (take (2 , copy .deepcopy (c )), list ('a' * 2 ))
968968 self .pickletest (repeat (object = 'a' , times = 10 ))
969969
970+ def test_repeat_with_negative_times (self ):
971+ self .assertEqual (repr (repeat ('a' , - 1 )), "repeat('a', 0)" )
972+ self .assertEqual (repr (repeat ('a' , - 2 )), "repeat('a', 0)" )
973+ self .assertEqual (repr (repeat ('a' , times = - 1 )), "repeat('a', 0)" )
974+ self .assertEqual (repr (repeat ('a' , times = - 2 )), "repeat('a', 0)" )
975+
970976 def test_map (self ):
971977 self .assertEqual (list (map (operator .pow , range (3 ), range (1 ,7 ))),
972978 [0 ** 1 , 1 ** 2 , 2 ** 3 ])
@@ -1741,8 +1747,15 @@ class LengthTransparency(unittest.TestCase):
17411747
17421748 def test_repeat (self ):
17431749 self .assertEqual (operator .length_hint (repeat (None , 50 )), 50 )
1750+ self .assertEqual (operator .length_hint (repeat (None , 0 )), 0 )
17441751 self .assertEqual (operator .length_hint (repeat (None ), 12 ), 12 )
17451752
1753+ def test_repeat_with_negative_times (self ):
1754+ self .assertEqual (operator .length_hint (repeat (None , - 1 )), 0 )
1755+ self .assertEqual (operator .length_hint (repeat (None , - 2 )), 0 )
1756+ self .assertEqual (operator .length_hint (repeat (None , times = - 1 )), 0 )
1757+ self .assertEqual (operator .length_hint (repeat (None , times = - 2 )), 0 )
1758+
17461759class RegressionTests (unittest .TestCase ):
17471760
17481761 def test_sf_793826 (self ):
0 commit comments