@@ -1783,16 +1783,22 @@ def test_prod(self):
17831783 self .assertRaises (TypeError , prod )
17841784 self .assertRaises (TypeError , prod , 42 )
17851785 self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ])
1786- self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ], '' )
1787- self .assertRaises (TypeError , prod , [b'a' , b'c' ], b'' )
1786+ self .assertRaises (TypeError , prod , ['a' , 'b' , 'c' ], start = '' )
1787+ self .assertRaises (TypeError , prod , [b'a' , b'c' ], start = b'' )
17881788 values = [bytearray (b'a' ), bytearray (b'b' )]
1789- self .assertRaises (TypeError , prod , values , bytearray (b'' ))
1789+ self .assertRaises (TypeError , prod , values , start = bytearray (b'' ))
17901790 self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]])
17911791 self .assertRaises (TypeError , prod , [{2 :3 }])
1792- self .assertRaises (TypeError , prod , [{2 :3 }]* 2 , {2 :3 })
1793- self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]], [])
1792+ self .assertRaises (TypeError , prod , [{2 :3 }]* 2 , start = {2 :3 })
1793+ self .assertRaises (TypeError , prod , [[1 ], [2 ], [3 ]], start = [])
1794+
1795+ # Some odd cases
1796+ self .assertEqual (prod ([2 , 3 ], start = 'ab' ), 'abababababab' )
1797+ self .assertEqual (prod ([2 , 3 ], start = [1 , 2 ]), [1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ])
1798+ self .assertEqual (prod ([], start = {2 : 3 }), {2 :3 })
1799+
17941800 with self .assertRaises (TypeError ):
1795- prod ([10 , 20 ], [ 30 , 40 ] ) # start is a keyword-only argument
1801+ prod ([10 , 20 ], 1 ) # start is a keyword-only argument
17961802
17971803 self .assertEqual (prod ([0 , 1 , 2 , 3 ]), 0 )
17981804 self .assertEqual (prod ([1 , 0 , 2 , 3 ]), 0 )
0 commit comments