@@ -1195,35 +1195,38 @@ def test_fillna_index_period(self):
11951195 pass
11961196
11971197
1198- @td .skip_if_windows
1199- @td .skip_if_32bit
1200- class TestReplaceSeriesCoercion (CoercionBase ):
1198+ @pytest .mark .parametrize ('how' , ['dict' , 'series' ])
1199+ @pytest .mark .parametrize ('to_key' , [
1200+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1201+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1202+ @pytest .mark .parametrize ('from_key' , [
1203+ 'object' , 'int64' , 'float64' , 'complex128' , 'bool' , 'datetime64[ns]' ,
1204+ 'datetime64[ns, UTC]' , 'datetime64[ns, US/Eastern]' , 'timedelta64[ns]' ])
1205+ class TestReplaceSeriesCoercion (object ):
1206+
1207+ rep = {}
1208+ rep ['object' ] = ['a' , 'b' ]
1209+ rep ['int64' ] = [4 , 5 ]
1210+ rep ['float64' ] = [1.1 , 2.2 ]
1211+ rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1212+ rep ['bool' ] = [True , False ]
1213+ rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1214+ pd .Timestamp ('2011-01-03' )]
1215+
1216+ for tz in ['UTC' , 'US/Eastern' ]:
1217+ # to test tz => different tz replacement
1218+ key = 'datetime64[ns, {0}]' .format (tz )
1219+ rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1220+ pd .Timestamp ('2011-01-03' , tz = tz )]
1221+
1222+ rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1223+ pd .Timedelta ('2 day' )]
1224+
1225+ def test_replace_series (self , how , to_key , from_key ):
1226+ if from_key == 'bool' and how == 'series' and compat .PY3 :
1227+ # doesn't work in PY3, though ...dict_from_bool works fine
1228+ pytest .skip ("doesn't work as in PY3" )
12011229
1202- # not indexing, but place here for consisntency
1203-
1204- klasses = ['series' ]
1205- method = 'replace'
1206-
1207- def setup_method (self , method ):
1208- self .rep = {}
1209- self .rep ['object' ] = ['a' , 'b' ]
1210- self .rep ['int64' ] = [4 , 5 ]
1211- self .rep ['float64' ] = [1.1 , 2.2 ]
1212- self .rep ['complex128' ] = [1 + 1j , 2 + 2j ]
1213- self .rep ['bool' ] = [True , False ]
1214- self .rep ['datetime64[ns]' ] = [pd .Timestamp ('2011-01-01' ),
1215- pd .Timestamp ('2011-01-03' )]
1216-
1217- for tz in ['UTC' , 'US/Eastern' ]:
1218- # to test tz => different tz replacement
1219- key = 'datetime64[ns, {0}]' .format (tz )
1220- self .rep [key ] = [pd .Timestamp ('2011-01-01' , tz = tz ),
1221- pd .Timestamp ('2011-01-03' , tz = tz )]
1222-
1223- self .rep ['timedelta64[ns]' ] = [pd .Timedelta ('1 day' ),
1224- pd .Timedelta ('2 day' )]
1225-
1226- def _assert_replace_conversion (self , from_key , to_key , how ):
12271230 index = pd .Index ([3 , 4 ], name = 'xxx' )
12281231 obj = pd .Series (self .rep [from_key ], index = index , name = 'yyy' )
12291232 assert obj .dtype == from_key
@@ -1245,6 +1248,9 @@ def _assert_replace_conversion(self, from_key, to_key, how):
12451248 (from_key == 'complex128' and
12461249 to_key in ('int64' , 'float64' ))):
12471250
1251+ td .skip_if_32bit ()
1252+ td .skip_if_windows ()
1253+
12481254 # Expected: do not downcast by replacement
12491255 exp = pd .Series (self .rep [to_key ], index = index ,
12501256 name = 'yyy' , dtype = from_key )
@@ -1254,78 +1260,3 @@ def _assert_replace_conversion(self, from_key, to_key, how):
12541260 assert exp .dtype == to_key
12551261
12561262 tm .assert_series_equal (result , exp )
1257-
1258- def test_replace_series_object (self ):
1259- from_key = 'object'
1260- for to_key in self .rep :
1261- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1262-
1263- for to_key in self .rep :
1264- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1265-
1266- def test_replace_series_int64 (self ):
1267- from_key = 'int64'
1268- for to_key in self .rep :
1269- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1270-
1271- for to_key in self .rep :
1272- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1273-
1274- def test_replace_series_float64 (self ):
1275- from_key = 'float64'
1276- for to_key in self .rep :
1277- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1278-
1279- for to_key in self .rep :
1280- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1281-
1282- def test_replace_series_complex128 (self ):
1283- from_key = 'complex128'
1284- for to_key in self .rep :
1285- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1286-
1287- for to_key in self .rep :
1288- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1289-
1290- def test_replace_series_bool (self ):
1291- from_key = 'bool'
1292- for to_key in self .rep :
1293- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1294-
1295- for to_key in self .rep :
1296-
1297- if compat .PY3 :
1298- # doesn't work in PY3, though ...dict_from_bool works fine
1299- pytest .skip ("doesn't work as in PY3" )
1300-
1301- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1302-
1303- def test_replace_series_datetime64 (self ):
1304- from_key = 'datetime64[ns]'
1305- for to_key in self .rep :
1306- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1307-
1308- from_key = 'datetime64[ns]'
1309- for to_key in self .rep :
1310- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1311-
1312- def test_replace_series_datetime64tz (self ):
1313- from_key = 'datetime64[ns, US/Eastern]'
1314- for to_key in self .rep :
1315- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1316-
1317- from_key = 'datetime64[ns, US/Eastern]'
1318- for to_key in self .rep :
1319- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1320-
1321- def test_replace_series_timedelta64 (self ):
1322- from_key = 'timedelta64[ns]'
1323- for to_key in self .rep :
1324- self ._assert_replace_conversion (from_key , to_key , how = 'dict' )
1325-
1326- from_key = 'timedelta64[ns]'
1327- for to_key in self .rep :
1328- self ._assert_replace_conversion (from_key , to_key , how = 'series' )
1329-
1330- def test_replace_series_period (self ):
1331- pass
0 commit comments