@@ -1803,16 +1803,22 @@ def test_prod(self):
1803
1803
self .assertRaises (TypeError , prod )
1804
1804
self .assertRaises (TypeError , prod , 42 )
1805
1805
self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ])
1806
- self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ], '' )
1807
- self .assertRaises (TypeError , prod , [b'a' , b'c' ], b'' )
1806
+ self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ], start = '' )
1807
+ self .assertRaises (TypeError , prod , [b'a' , b'c' ], start = b'' )
1808
1808
values = [bytearray (b'a' ), bytearray (b'b' )]
1809
- self .assertRaises (TypeError , prod , values , bytearray (b'' ))
1809
+ self .assertRaises (TypeError , prod , values , start = bytearray (b'' ))
1810
1810
self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]])
1811
1811
self .assertRaises (TypeError , prod , [{2 :3 }])
1812
- self .assertRaises (TypeError , prod , [{2 :3 }]* 2 , {2 :3 })
1813
- self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]], [])
1812
+ self .assertRaises (TypeError , prod , [{2 :3 }]* 2 , start = {2 :3 })
1813
+ self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]], start = [])
1814
+
1815
+ # Some odd cases
1816
+ self .assertEqual (prod ([2 , 3 ], start = 'ab' ), 'abababababab' )
1817
+ self .assertEqual (prod ([2 , 3 ], start = [1 , 2 ]), [1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ])
1818
+ self .assertEqual (prod ([], start = {2 : 3 }), {2 :3 })
1819
+
1814
1820
with self .assertRaises (TypeError ):
1815
- prod ([10 , 20 ], [ 30 , 40 ] ) # start is a keyword-only argument
1821
+ prod ([10 , 20 ], 1 ) # start is a keyword-only argument
1816
1822
1817
1823
self .assertEqual (prod ([0 , 1 , 2 , 3 ]), 0 )
1818
1824
self .assertEqual (prod ([1 , 0 , 2 , 3 ]), 0 )
0 commit comments