Skip to content

Commit 36ef2f5

Browse files
committed
Checked out test_coercion from upstream; fixed LINT
1 parent 4d8dbd0 commit 36ef2f5

File tree

3 files changed

+106
-36
lines changed

3 files changed

+106
-36
lines changed

pandas/tests/indexing/test_coercion.py

+105-34
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import pandas as pd
77
import pandas.util.testing as tm
8-
import pandas.util._test_decorators as td
98
import pandas.compat as compat
109

1110

@@ -1195,38 +1194,33 @@ def test_fillna_index_period(self):
11951194
pass
11961195

11971196

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")
1197+
class TestReplaceSeriesCoercion(CoercionBase):
12291198

1199+
# not indexing, but place here for consisntency
1200+
1201+
klasses = ['series']
1202+
method = 'replace'
1203+
1204+
def setup_method(self, method):
1205+
self.rep = {}
1206+
self.rep['object'] = ['a', 'b']
1207+
self.rep['int64'] = [4, 5]
1208+
self.rep['float64'] = [1.1, 2.2]
1209+
self.rep['complex128'] = [1 + 1j, 2 + 2j]
1210+
self.rep['bool'] = [True, False]
1211+
self.rep['datetime64[ns]'] = [pd.Timestamp('2011-01-01'),
1212+
pd.Timestamp('2011-01-03')]
1213+
1214+
for tz in ['UTC', 'US/Eastern']:
1215+
# to test tz => different tz replacement
1216+
key = 'datetime64[ns, {0}]'.format(tz)
1217+
self.rep[key] = [pd.Timestamp('2011-01-01', tz=tz),
1218+
pd.Timestamp('2011-01-03', tz=tz)]
1219+
1220+
self.rep['timedelta64[ns]'] = [pd.Timedelta('1 day'),
1221+
pd.Timedelta('2 day')]
1222+
1223+
def _assert_replace_conversion(self, from_key, to_key, how):
12301224
index = pd.Index([3, 4], name='xxx')
12311225
obj = pd.Series(self.rep[from_key], index=index, name='yyy')
12321226
assert obj.dtype == from_key
@@ -1248,8 +1242,10 @@ def test_replace_series(self, how, to_key, from_key):
12481242
(from_key == 'complex128' and
12491243
to_key in ('int64', 'float64'))):
12501244

1251-
td.skip_if_32bit()
1252-
td.skip_if_windows()
1245+
# buggy on 32-bit / window
1246+
if compat.is_platform_32bit() or compat.is_platform_windows():
1247+
pytest.skip("32-bit platform buggy: {0} -> {1}".format
1248+
(from_key, to_key))
12531249

12541250
# Expected: do not downcast by replacement
12551251
exp = pd.Series(self.rep[to_key], index=index,
@@ -1260,3 +1256,78 @@ def test_replace_series(self, how, to_key, from_key):
12601256
assert exp.dtype == to_key
12611257

12621258
tm.assert_series_equal(result, exp)
1259+
1260+
def test_replace_series_object(self):
1261+
from_key = 'object'
1262+
for to_key in self.rep:
1263+
self._assert_replace_conversion(from_key, to_key, how='dict')
1264+
1265+
for to_key in self.rep:
1266+
self._assert_replace_conversion(from_key, to_key, how='series')
1267+
1268+
def test_replace_series_int64(self):
1269+
from_key = 'int64'
1270+
for to_key in self.rep:
1271+
self._assert_replace_conversion(from_key, to_key, how='dict')
1272+
1273+
for to_key in self.rep:
1274+
self._assert_replace_conversion(from_key, to_key, how='series')
1275+
1276+
def test_replace_series_float64(self):
1277+
from_key = 'float64'
1278+
for to_key in self.rep:
1279+
self._assert_replace_conversion(from_key, to_key, how='dict')
1280+
1281+
for to_key in self.rep:
1282+
self._assert_replace_conversion(from_key, to_key, how='series')
1283+
1284+
def test_replace_series_complex128(self):
1285+
from_key = 'complex128'
1286+
for to_key in self.rep:
1287+
self._assert_replace_conversion(from_key, to_key, how='dict')
1288+
1289+
for to_key in self.rep:
1290+
self._assert_replace_conversion(from_key, to_key, how='series')
1291+
1292+
def test_replace_series_bool(self):
1293+
from_key = 'bool'
1294+
for to_key in self.rep:
1295+
self._assert_replace_conversion(from_key, to_key, how='dict')
1296+
1297+
for to_key in self.rep:
1298+
1299+
if compat.PY3:
1300+
# doesn't work in PY3, though ...dict_from_bool works fine
1301+
pytest.skip("doesn't work as in PY3")
1302+
1303+
self._assert_replace_conversion(from_key, to_key, how='series')
1304+
1305+
def test_replace_series_datetime64(self):
1306+
from_key = 'datetime64[ns]'
1307+
for to_key in self.rep:
1308+
self._assert_replace_conversion(from_key, to_key, how='dict')
1309+
1310+
from_key = 'datetime64[ns]'
1311+
for to_key in self.rep:
1312+
self._assert_replace_conversion(from_key, to_key, how='series')
1313+
1314+
def test_replace_series_datetime64tz(self):
1315+
from_key = 'datetime64[ns, US/Eastern]'
1316+
for to_key in self.rep:
1317+
self._assert_replace_conversion(from_key, to_key, how='dict')
1318+
1319+
from_key = 'datetime64[ns, US/Eastern]'
1320+
for to_key in self.rep:
1321+
self._assert_replace_conversion(from_key, to_key, how='series')
1322+
1323+
def test_replace_series_timedelta64(self):
1324+
from_key = 'timedelta64[ns]'
1325+
for to_key in self.rep:
1326+
self._assert_replace_conversion(from_key, to_key, how='dict')
1327+
1328+
from_key = 'timedelta64[ns]'
1329+
for to_key in self.rep:
1330+
self._assert_replace_conversion(from_key, to_key, how='series')
1331+
1332+
def test_replace_series_period(self):
1333+
pass

pandas/tests/io/test_pytables.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
set_timezone)
2626

2727
from pandas.compat import (is_platform_windows, is_platform_little_endian,
28-
PY3, PY35, PY36, BytesIO, text_type,
28+
PY35, PY36, BytesIO, text_type,
2929
range, lrange, u)
3030
from pandas.io.formats.printing import pprint_thing
3131
from pandas.core.dtypes.common import is_categorical_dtype

pandas/tests/util/test_testing.py

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
assert_index_equal, assert_series_equal,
1111
assert_frame_equal, assert_numpy_array_equal,
1212
RNGContext)
13-
from pandas.compat import is_platform_windows
1413

1514

1615
class TestAssertAlmostEqual(object):

0 commit comments

Comments
 (0)