Skip to content

Commit 4d8dbd0

Browse files
committed
Fixed existing parameterization; added new one in test_coercion
1 parent 96d6f9b commit 4d8dbd0

File tree

2 files changed

+36
-107
lines changed

2 files changed

+36
-107
lines changed

pandas/tests/indexing/test_coercion.py

+34-103
Original file line numberDiff line numberDiff line change
@@ -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

pandas/tests/io/test_pytables.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -2888,8 +2888,7 @@ def test_timeseries_preepoch(self):
28882888
pytest.skip('known failer on some windows platforms')
28892889

28902890
@pytest.mark.parametrize("compression", [
2891-
(False,),
2892-
td.skip_if_windows_python_3()(True,)
2891+
False, pytest.param(True, marks=td.skip_if_windows_python_3)
28932892
])
28942893
def test_frame(self, compression):
28952894

@@ -3014,8 +3013,7 @@ def test_store_series_name(self):
30143013
tm.assert_series_equal(recons, series)
30153014

30163015
@pytest.mark.parametrize("compression", [
3017-
(False,),
3018-
td.skip_if_windows_python_3()(True,)
3016+
False, pytest.param(True, marks=td.skip_if_windows_python_3)
30193017
])
30203018
def test_store_mixed(self, compression):
30213019

0 commit comments

Comments
 (0)