@@ -402,60 +402,30 @@ def test_downcast(self):
402402 tm .assert_numpy_array_equal (res , expected )
403403
404404 # 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 )
414427 tm .assert_equal (series .dtype , dtype )
415428
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 )
459429
460430if __name__ == '__main__' :
461431 nose .runmodule (argv = [__file__ , '-vvs' , '-x' , '--pdb' , '--pdb-failure' ],
0 commit comments