@@ -402,60 +402,30 @@ def test_downcast(self):
402
402
tm .assert_numpy_array_equal (res , expected )
403
403
404
404
# check that the smallest and largest values in each integer type pass to each type.
405
- integer_dtype_min_max = {
406
- 'int8' : [np .iinfo (np .int8 ).min , np .iinfo (np .int8 ).max ],
407
- 'int16' : [np .iinfo (np .int16 ).min , np .iinfo (np .int16 ).max ],
408
- 'int32' : [np .iinfo (np .int32 ).min , np .iinfo (np .int32 ).max ],
409
- 'int64' : [np .iinfo (np .int64 ).min , np .iinfo (np .int64 ).max ]
410
- }
411
-
412
- for dtype , min_max in integer_dtype_min_max .items ():
413
- series = pd .to_numeric (pd .Series (min_max ), downcast = 'integer' )
405
+ dtype_downcast_min_max = [
406
+ ('int8' , 'integer' , [np .iinfo (np .int8 ).min , np .iinfo (np .int8 ).max ]),
407
+ ('int16' , 'integer' , [np .iinfo (np .int16 ).min , np .iinfo (np .int16 ).max ]),
408
+ ('int32' , 'integer' , [np .iinfo (np .int32 ).min , np .iinfo (np .int32 ).max ]),
409
+ ('int64' , 'integer' , [np .iinfo (np .int64 ).min , np .iinfo (np .int64 ).max ]),
410
+ ('uint8' , 'unsigned' , [np .iinfo (np .uint8 ).min , np .iinfo (np .uint8 ).max ]),
411
+ ('uint16' , 'unsigned' , [np .iinfo (np .uint16 ).min , np .iinfo (np .uint16 ).max ]),
412
+ ('uint32' , 'unsigned' , [np .iinfo (np .uint32 ).min , np .iinfo (np .uint32 ).max ]),
413
+ # ('uint64', 'unsigned', [np.iinfo(np.uint64).min, np.iinfo(np.uint64).max]),
414
+ ('int16' , 'integer' , [np .iinfo (np .int8 ).min , np .iinfo (np .int8 ).max + 1 ]),
415
+ ('int32' , 'integer' , [np .iinfo (np .int16 ).min , np .iinfo (np .int16 ).max + 1 ]),
416
+ ('int64' , 'integer' , [np .iinfo (np .int32 ).min , np .iinfo (np .int32 ).max + 1 ]),
417
+ ('int16' , 'integer' , [np .iinfo (np .int8 ).min - 1 , np .iinfo (np .int16 ).max ]),
418
+ ('int32' , 'integer' , [np .iinfo (np .int16 ).min - 1 , np .iinfo (np .int32 ).max ]),
419
+ ('int64' , 'integer' , [np .iinfo (np .int32 ).min - 1 , np .iinfo (np .int64 ).max ]),
420
+ ('uint16' , 'unsigned' , [np .iinfo (np .uint8 ).min , np .iinfo (np .uint8 ).max + 1 ]),
421
+ ('uint32' , 'unsigned' , [np .iinfo (np .uint16 ).min , np .iinfo (np .uint16 ).max + 1 ]),
422
+ # ('uint64', 'unsigned', [np.iinfo(np.uint32).min, np.iinfo(np.uint32).max + 1]),
423
+ ]
424
+
425
+ for dtype , downcast , min_max in dtype_downcast_min_max :
426
+ series = pd .to_numeric (pd .Series (min_max ), downcast = downcast )
414
427
tm .assert_equal (series .dtype , dtype )
415
428
416
-
417
- unsigned_dtype_min_max = {
418
- 'uint8' : [np .iinfo (np .uint8 ).min , np .iinfo (np .uint8 ).max ],
419
- 'uint16' : [np .iinfo (np .uint16 ).min , np .iinfo (np .uint16 ).max ],
420
- 'uint32' : [np .iinfo (np .uint32 ).min , np .iinfo (np .uint32 ).max ],
421
- # 'uint64': [np.iinfo(np.uint64).min, np.iinfo(np.uint64).max]
422
- }
423
-
424
- for dtype , min_max in unsigned_dtype_min_max .items ():
425
- series = pd .to_numeric (pd .Series (min_max ), downcast = 'unsigned' )
426
- tm .assert_equal (series .dtype , dtype )
427
-
428
- #check to see if the minimum number to shift integer types actually shifts
429
-
430
- integer_dtype_min_max_plus = {
431
- 'int16' : [np .iinfo (np .int8 ).min , np .iinfo (np .int8 ).max + 1 ],
432
- 'int32' : [np .iinfo (np .int16 ).min , np .iinfo (np .int16 ).max + 1 ],
433
- 'int64' : [np .iinfo (np .int32 ).min , np .iinfo (np .int32 ).max + 1 ],
434
- }
435
-
436
- for dtype , min_max in integer_dtype_min_max_plus .items ():
437
- series = pd .to_numeric (pd .Series (min_max ), downcast = 'integer' )
438
- tm .assert_equal (series .dtype , dtype )
439
-
440
- integer_dtype_min_max_minus = {
441
- 'int16' : [np .iinfo (np .int8 ).min - 1 , np .iinfo (np .int16 ).max ],
442
- 'int32' : [np .iinfo (np .int16 ).min - 1 , np .iinfo (np .int32 ).max ],
443
- 'int64' : [np .iinfo (np .int32 ).min - 1 , np .iinfo (np .int64 ).max ]
444
- }
445
-
446
- for dtype , min_max in integer_dtype_min_max_minus .items ():
447
- series = pd .to_numeric (pd .Series (min_max ), downcast = 'integer' )
448
- tm .assert_equal (series .dtype , dtype )
449
-
450
- unsigned_dtype_min_max_plus = {
451
- 'uint16' : [np .iinfo (np .uint8 ).min , np .iinfo (np .uint8 ).max + 1 ],
452
- 'uint32' : [np .iinfo (np .uint16 ).min , np .iinfo (np .uint16 ).max + 1 ],
453
- # 'uint64': [np.iinfo(np.uint32).min, np.iinfo(np.uint32).max + 1],
454
- }
455
-
456
- for dtype , min_max in unsigned_dtype_min_max_plus .items ():
457
- series = pd .to_numeric (pd .Series (min_max ), downcast = 'unsigned' )
458
- tm .assert_equal (series .dtype , dtype )
459
429
460
430
if __name__ == '__main__' :
461
431
nose .runmodule (argv = [__file__ , '-vvs' , '-x' , '--pdb' , '--pdb-failure' ],
0 commit comments