@@ -1269,6 +1269,9 @@ def testSumProd(self):
1269
1269
self .assertEqual (sumprod (iter ([10 , 20 , 30 ]), (1 , 2 , 3 )), 140 )
1270
1270
self .assertEqual (sumprod ([1.5 , 2.5 ], [3.5 , 4.5 ]), 16.5 )
1271
1271
self .assertEqual (sumprod ([], []), 0 )
1272
+ self .assertEqual (sumprod ([- 1 ], [1. ]), - 1 )
1273
+ self .assertEqual (sumprod ([1. ], [- 1 ]), - 1 )
1274
+ self .assertEqual (sumprod ([True ], [1.0 ]), 1 )
1272
1275
1273
1276
# Type preservation and coercion
1274
1277
for v in [
@@ -1294,6 +1297,7 @@ def testSumProd(self):
1294
1297
self .assertRaises (TypeError , sumprod , [], [], []) # Three args
1295
1298
self .assertRaises (TypeError , sumprod , None , [10 ]) # Non-iterable
1296
1299
self .assertRaises (TypeError , sumprod , [10 ], None ) # Non-iterable
1300
+ self .assertRaises (TypeError , sumprod , ['x' ], [1.0 ])
1297
1301
1298
1302
# Uneven lengths
1299
1303
self .assertRaises (ValueError , sumprod , [10 , 20 ], [30 ])
@@ -1304,6 +1308,8 @@ def testSumProd(self):
1304
1308
self .assertEqual (sumprod ([1 ], [10 ** 20 ]), 10 ** 20 )
1305
1309
self .assertEqual (sumprod ([10 ** 10 ], [10 ** 10 ]), 10 ** 20 )
1306
1310
self .assertEqual (sumprod ([10 ** 7 ]* 10 ** 5 , [10 ** 7 ]* 10 ** 5 ), 10 ** 19 )
1311
+ self .assertRaises (OverflowError , sumprod , [10 ** 1000 ], [1.0 ])
1312
+ self .assertRaises (OverflowError , sumprod , [1.0 ], [10 ** 1000 ])
1307
1313
1308
1314
# Error in iterator
1309
1315
def raise_after (n ):
0 commit comments