Skip to content

Commit 0d34ebf

Browse files
committed
Parametrized TestReplaceSeriesCoercion
1 parent 08f1742 commit 0d34ebf

File tree

1 file changed

+31
-102
lines changed

1 file changed

+31
-102
lines changed

pandas/tests/indexing/test_coercion.py

+31-102
Original file line numberDiff line numberDiff line change
@@ -1156,33 +1156,38 @@ def test_fillna_index_period(self):
11561156
pass
11571157

11581158

1159-
class TestReplaceSeriesCoercion(CoercionBase):
1159+
@pytest.mark.parametrize('how', ['dict', 'series'])
1160+
@pytest.mark.parametrize('to_key', [
1161+
'object', 'int64', 'float64', 'complex128', 'bool', 'datetime64[ns]',
1162+
'datetime64[ns, UTC]', 'datetime64[ns, US/Eastern]', 'timedelta64[ns]'])
1163+
@pytest.mark.parametrize('from_key', [
1164+
'object', 'int64', 'float64', 'complex128', 'bool', 'datetime64[ns]',
1165+
'datetime64[ns, UTC]', 'datetime64[ns, US/Eastern]', 'timedelta64[ns]'])
1166+
class TestReplaceSeriesCoercion(object):
1167+
1168+
rep = {}
1169+
rep['object'] = ['a', 'b']
1170+
rep['int64'] = [4, 5]
1171+
rep['float64'] = [1.1, 2.2]
1172+
rep['complex128'] = [1 + 1j, 2 + 2j]
1173+
rep['bool'] = [True, False]
1174+
rep['datetime64[ns]'] = [pd.Timestamp('2011-01-01'),
1175+
pd.Timestamp('2011-01-03')]
1176+
1177+
for tz in ['UTC', 'US/Eastern']:
1178+
# to test tz => different tz replacement
1179+
key = 'datetime64[ns, {0}]'.format(tz)
1180+
rep[key] = [pd.Timestamp('2011-01-01', tz=tz),
1181+
pd.Timestamp('2011-01-03', tz=tz)]
1182+
1183+
rep['timedelta64[ns]'] = [pd.Timedelta('1 day'),
1184+
pd.Timedelta('2 day')]
1185+
1186+
def test_replace_series(self, how, to_key, from_key):
1187+
if from_key == 'bool' and how == 'series' and compat.PY3:
1188+
# doesn't work in PY3, though ...dict_from_bool works fine
1189+
pytest.skip("doesn't work as in PY3")
11601190

1161-
# not indexing, but place here for consisntency
1162-
1163-
klasses = ['series']
1164-
method = 'replace'
1165-
1166-
def setup_method(self, method):
1167-
self.rep = {}
1168-
self.rep['object'] = ['a', 'b']
1169-
self.rep['int64'] = [4, 5]
1170-
self.rep['float64'] = [1.1, 2.2]
1171-
self.rep['complex128'] = [1 + 1j, 2 + 2j]
1172-
self.rep['bool'] = [True, False]
1173-
self.rep['datetime64[ns]'] = [pd.Timestamp('2011-01-01'),
1174-
pd.Timestamp('2011-01-03')]
1175-
1176-
for tz in ['UTC', 'US/Eastern']:
1177-
# to test tz => different tz replacement
1178-
key = 'datetime64[ns, {0}]'.format(tz)
1179-
self.rep[key] = [pd.Timestamp('2011-01-01', tz=tz),
1180-
pd.Timestamp('2011-01-03', tz=tz)]
1181-
1182-
self.rep['timedelta64[ns]'] = [pd.Timedelta('1 day'),
1183-
pd.Timedelta('2 day')]
1184-
1185-
def _assert_replace_conversion(self, from_key, to_key, how):
11861191
index = pd.Index([3, 4], name='xxx')
11871192
obj = pd.Series(self.rep[from_key], index=index, name='yyy')
11881193
assert obj.dtype == from_key
@@ -1204,7 +1209,6 @@ def _assert_replace_conversion(self, from_key, to_key, how):
12041209
(from_key == 'complex128' and
12051210
to_key in ('int64', 'float64'))):
12061211

1207-
# buggy on 32-bit / window
12081212
if compat.is_platform_32bit() or compat.is_platform_windows():
12091213
pytest.skip("32-bit platform buggy: {0} -> {1}".format
12101214
(from_key, to_key))
@@ -1218,78 +1222,3 @@ def _assert_replace_conversion(self, from_key, to_key, how):
12181222
assert exp.dtype == to_key
12191223

12201224
tm.assert_series_equal(result, exp)
1221-
1222-
def test_replace_series_object(self):
1223-
from_key = 'object'
1224-
for to_key in self.rep:
1225-
self._assert_replace_conversion(from_key, to_key, how='dict')
1226-
1227-
for to_key in self.rep:
1228-
self._assert_replace_conversion(from_key, to_key, how='series')
1229-
1230-
def test_replace_series_int64(self):
1231-
from_key = 'int64'
1232-
for to_key in self.rep:
1233-
self._assert_replace_conversion(from_key, to_key, how='dict')
1234-
1235-
for to_key in self.rep:
1236-
self._assert_replace_conversion(from_key, to_key, how='series')
1237-
1238-
def test_replace_series_float64(self):
1239-
from_key = 'float64'
1240-
for to_key in self.rep:
1241-
self._assert_replace_conversion(from_key, to_key, how='dict')
1242-
1243-
for to_key in self.rep:
1244-
self._assert_replace_conversion(from_key, to_key, how='series')
1245-
1246-
def test_replace_series_complex128(self):
1247-
from_key = 'complex128'
1248-
for to_key in self.rep:
1249-
self._assert_replace_conversion(from_key, to_key, how='dict')
1250-
1251-
for to_key in self.rep:
1252-
self._assert_replace_conversion(from_key, to_key, how='series')
1253-
1254-
def test_replace_series_bool(self):
1255-
from_key = 'bool'
1256-
for to_key in self.rep:
1257-
self._assert_replace_conversion(from_key, to_key, how='dict')
1258-
1259-
for to_key in self.rep:
1260-
1261-
if compat.PY3:
1262-
# doesn't work in PY3, though ...dict_from_bool works fine
1263-
pytest.skip("doesn't work as in PY3")
1264-
1265-
self._assert_replace_conversion(from_key, to_key, how='series')
1266-
1267-
def test_replace_series_datetime64(self):
1268-
from_key = 'datetime64[ns]'
1269-
for to_key in self.rep:
1270-
self._assert_replace_conversion(from_key, to_key, how='dict')
1271-
1272-
from_key = 'datetime64[ns]'
1273-
for to_key in self.rep:
1274-
self._assert_replace_conversion(from_key, to_key, how='series')
1275-
1276-
def test_replace_series_datetime64tz(self):
1277-
from_key = 'datetime64[ns, US/Eastern]'
1278-
for to_key in self.rep:
1279-
self._assert_replace_conversion(from_key, to_key, how='dict')
1280-
1281-
from_key = 'datetime64[ns, US/Eastern]'
1282-
for to_key in self.rep:
1283-
self._assert_replace_conversion(from_key, to_key, how='series')
1284-
1285-
def test_replace_series_timedelta64(self):
1286-
from_key = 'timedelta64[ns]'
1287-
for to_key in self.rep:
1288-
self._assert_replace_conversion(from_key, to_key, how='dict')
1289-
1290-
from_key = 'timedelta64[ns]'
1291-
for to_key in self.rep:
1292-
self._assert_replace_conversion(from_key, to_key, how='series')
1293-
1294-
def test_replace_series_period(self):
1295-
pass

0 commit comments

Comments
 (0)