Skip to content

Commit 6afd5d2

Browse files
sinhrksjreback
authored andcommitted
TST/CLN: Cleanup test_pickle
Author: sinhrks <[email protected]> Closes #13081 from sinhrks/test_pickle and squashes the following commits: 0b9743a [sinhrks] TST/CLN: Cleanup test_pickle
1 parent deb35c3 commit 6afd5d2

File tree

1 file changed

+32
-41
lines changed

1 file changed

+32
-41
lines changed

pandas/io/tests/test_pickle.py

+32-41
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,37 @@ def compare(self, vf, version):
6868
try:
6969
expected = self.data[typ][dt]
7070
except (KeyError):
71-
continue
71+
if version in ('0.10.1', '0.11.0') and dt == 'reg':
72+
break
73+
else:
74+
raise
7275

7376
# use a specific comparator
7477
# if available
75-
comparator = getattr(self, "compare_{typ}_{dt}".format(
76-
typ=typ, dt=dt), self.compare_element)
78+
comparator = "compare_{typ}_{dt}".format(typ=typ, dt=dt)
79+
comparator = getattr(self, comparator, self.compare_element)
7780
comparator(result, expected, typ, version)
7881
return data
7982

83+
def compare_series_ts(self, result, expected, typ, version):
84+
# GH 7748
85+
tm.assert_series_equal(result, expected)
86+
tm.assert_equal(result.index.freq, expected.index.freq)
87+
tm.assert_equal(result.index.freq.normalize, False)
88+
tm.assert_numpy_array_equal(result > 0, expected > 0)
89+
90+
# GH 9291
91+
freq = result.index.freq
92+
tm.assert_equal(freq + Day(1), Day(2))
93+
94+
res = freq + pandas.Timedelta(hours=1)
95+
tm.assert_equal(isinstance(res, pandas.Timedelta), True)
96+
tm.assert_equal(res, pandas.Timedelta(days=1, hours=1))
97+
98+
res = freq + pandas.Timedelta(nanoseconds=1)
99+
tm.assert_equal(isinstance(res, pandas.Timedelta), True)
100+
tm.assert_equal(res, pandas.Timedelta(days=1, nanoseconds=1))
101+
80102
def compare_series_dt_tz(self, result, expected, typ, version):
81103
# 8260
82104
# dtype is object < 0.17.0
@@ -95,6 +117,13 @@ def compare_frame_dt_mixed_tzs(self, result, expected, typ, version):
95117
else:
96118
tm.assert_frame_equal(result, expected)
97119

120+
def compare_index_period(self, result, expected, typ, version):
121+
tm.assert_index_equal(result, expected)
122+
tm.assertIsInstance(result.freq, MonthEnd)
123+
tm.assert_equal(result.freq, MonthEnd())
124+
tm.assert_equal(result.freqstr, 'M')
125+
tm.assert_index_equal(result.shift(2), expected.shift(2))
126+
98127
def read_pickles(self, version):
99128
if not is_platform_little_endian():
100129
raise nose.SkipTest("known failure on non-little endian")
@@ -107,16 +136,6 @@ def read_pickles(self, version):
107136

108137
if data is None:
109138
continue
110-
111-
if 'series' in data:
112-
if 'ts' in data['series']:
113-
self._validate_timeseries(
114-
data['series']['ts'], self.data['series']['ts'])
115-
self._validate_frequency(data['series']['ts'])
116-
if 'index' in data:
117-
if 'period' in data['index']:
118-
self._validate_periodindex(data['index']['period'],
119-
self.data['index']['period'])
120139
n += 1
121140
assert n > 0, 'Pickle files are not tested'
122141

@@ -181,34 +200,6 @@ def python_unpickler(path):
181200
result = python_unpickler(path)
182201
self.compare_element(result, expected, typ)
183202

184-
def _validate_timeseries(self, pickled, current):
185-
# GH 7748
186-
tm.assert_series_equal(pickled, current)
187-
tm.assert_equal(pickled.index.freq, current.index.freq)
188-
tm.assert_equal(pickled.index.freq.normalize, False)
189-
tm.assert_numpy_array_equal(pickled > 0, current > 0)
190-
191-
def _validate_frequency(self, pickled):
192-
# GH 9291
193-
freq = pickled.index.freq
194-
result = freq + Day(1)
195-
tm.assert_equal(result, Day(2))
196-
197-
result = freq + pandas.Timedelta(hours=1)
198-
tm.assert_equal(isinstance(result, pandas.Timedelta), True)
199-
tm.assert_equal(result, pandas.Timedelta(days=1, hours=1))
200-
201-
result = freq + pandas.Timedelta(nanoseconds=1)
202-
tm.assert_equal(isinstance(result, pandas.Timedelta), True)
203-
tm.assert_equal(result, pandas.Timedelta(days=1, nanoseconds=1))
204-
205-
def _validate_periodindex(self, pickled, current):
206-
tm.assert_index_equal(pickled, current)
207-
tm.assertIsInstance(pickled.freq, MonthEnd)
208-
tm.assert_equal(pickled.freq, MonthEnd())
209-
tm.assert_equal(pickled.freqstr, 'M')
210-
tm.assert_index_equal(pickled.shift(2), current.shift(2))
211-
212203

213204
if __name__ == '__main__':
214205
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],

0 commit comments

Comments
 (0)