Skip to content

Commit 46abe18

Browse files
h-vetinarijreback
authored andcommitted
TST: fixturize series/test_alter_axes.py (#22526)
1 parent 851b75a commit 46abe18

File tree

2 files changed

+88
-51
lines changed

2 files changed

+88
-51
lines changed

pandas/tests/series/conftest.py

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import pytest
2+
3+
import pandas.util.testing as tm
4+
5+
from pandas import Series
6+
7+
8+
@pytest.fixture
9+
def datetime_series():
10+
"""
11+
Fixture for Series of floats with DatetimeIndex
12+
"""
13+
s = tm.makeTimeSeries()
14+
s.name = 'ts'
15+
return s
16+
17+
18+
@pytest.fixture
19+
def string_series():
20+
"""
21+
Fixture for Series of floats with Index of unique strings
22+
"""
23+
s = tm.makeStringSeries()
24+
s.name = 'series'
25+
return s
26+
27+
28+
@pytest.fixture
29+
def object_series():
30+
"""
31+
Fixture for Series of dtype datetime64[ns] with Index of unique strings
32+
"""
33+
s = tm.makeObjectSeries()
34+
s.name = 'objects'
35+
return s
36+
37+
38+
@pytest.fixture
39+
def empty_series():
40+
"""
41+
Fixture for empty Series
42+
"""
43+
return Series([], index=[])

pandas/tests/series/test_alter_axes.py

+45-51
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,39 @@
66
from datetime import datetime
77

88
import numpy as np
9-
import pandas as pd
109

11-
from pandas import Index, Series
12-
from pandas.core.index import MultiIndex, RangeIndex
10+
from pandas import Series, DataFrame, Index, MultiIndex, RangeIndex
1311

1412
from pandas.compat import lrange, range, zip
15-
from pandas.util.testing import assert_series_equal, assert_frame_equal
1613
import pandas.util.testing as tm
1714

18-
from .common import TestData
1915

16+
class TestSeriesAlterAxes(object):
2017

21-
class TestSeriesAlterAxes(TestData):
22-
23-
def test_setindex(self):
18+
def test_setindex(self, string_series):
2419
# wrong type
25-
series = self.series.copy()
26-
pytest.raises(TypeError, setattr, series, 'index', None)
20+
pytest.raises(TypeError, setattr, string_series, 'index', None)
2721

2822
# wrong length
29-
series = self.series.copy()
30-
pytest.raises(Exception, setattr, series, 'index',
31-
np.arange(len(series) - 1))
23+
pytest.raises(Exception, setattr, string_series, 'index',
24+
np.arange(len(string_series) - 1))
3225

3326
# works
34-
series = self.series.copy()
35-
series.index = np.arange(len(series))
36-
assert isinstance(series.index, Index)
27+
string_series.index = np.arange(len(string_series))
28+
assert isinstance(string_series.index, Index)
29+
30+
# Renaming
3731

38-
def test_rename(self):
32+
def test_rename(self, datetime_series):
33+
ts = datetime_series
3934
renamer = lambda x: x.strftime('%Y%m%d')
40-
renamed = self.ts.rename(renamer)
41-
assert renamed.index[0] == renamer(self.ts.index[0])
35+
renamed = ts.rename(renamer)
36+
assert renamed.index[0] == renamer(ts.index[0])
4237

4338
# dict
44-
rename_dict = dict(zip(self.ts.index, renamed.index))
45-
renamed2 = self.ts.rename(rename_dict)
46-
assert_series_equal(renamed, renamed2)
39+
rename_dict = dict(zip(ts.index, renamed.index))
40+
renamed2 = ts.rename(rename_dict)
41+
tm.assert_series_equal(renamed, renamed2)
4742

4843
# partial dict
4944
s = Series(np.arange(4), index=['a', 'b', 'c', 'd'], dtype='int64')
@@ -105,12 +100,12 @@ def test_set_name(self):
105100
assert s.name is None
106101
assert s is not s2
107102

108-
def test_rename_inplace(self):
103+
def test_rename_inplace(self, datetime_series):
109104
renamer = lambda x: x.strftime('%Y%m%d')
110-
expected = renamer(self.ts.index[0])
105+
expected = renamer(datetime_series.index[0])
111106

112-
self.ts.rename(renamer, inplace=True)
113-
assert self.ts.index[0] == expected
107+
datetime_series.rename(renamer, inplace=True)
108+
assert datetime_series.index[0] == expected
114109

115110
def test_set_index_makes_timeseries(self):
116111
idx = tm.makeDateIndex(10)
@@ -135,7 +130,7 @@ def test_reset_index(self):
135130
s = ser.reset_index(drop=True)
136131
s2 = ser
137132
s2.reset_index(drop=True, inplace=True)
138-
assert_series_equal(s, s2)
133+
tm.assert_series_equal(s, s2)
139134

140135
# level
141136
index = MultiIndex(levels=[['bar'], ['one', 'two', 'three'], [0, 1]],
@@ -150,8 +145,8 @@ def test_reset_index(self):
150145
assert isinstance(rs, Series)
151146

152147
def test_reset_index_level(self):
153-
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]],
154-
columns=['A', 'B', 'C'])
148+
df = DataFrame([[1, 2, 3], [4, 5, 6]],
149+
columns=['A', 'B', 'C'])
155150

156151
for levels in ['A', 'B'], [0, 1]:
157152
# With MultiIndex
@@ -189,19 +184,19 @@ def test_reset_index_level(self):
189184
s.reset_index(level=[0, 1, 2])
190185

191186
# Check that .reset_index([],drop=True) doesn't fail
192-
result = pd.Series(range(4)).reset_index([], drop=True)
193-
expected = pd.Series(range(4))
194-
assert_series_equal(result, expected)
187+
result = Series(range(4)).reset_index([], drop=True)
188+
expected = Series(range(4))
189+
tm.assert_series_equal(result, expected)
195190

196191
def test_reset_index_range(self):
197192
# GH 12071
198-
s = pd.Series(range(2), name='A', dtype='int64')
193+
s = Series(range(2), name='A', dtype='int64')
199194
series_result = s.reset_index()
200195
assert isinstance(series_result.index, RangeIndex)
201-
series_expected = pd.DataFrame([[0, 0], [1, 1]],
202-
columns=['index', 'A'],
203-
index=RangeIndex(stop=2))
204-
assert_frame_equal(series_result, series_expected)
196+
series_expected = DataFrame([[0, 0], [1, 1]],
197+
columns=['index', 'A'],
198+
index=RangeIndex(stop=2))
199+
tm.assert_frame_equal(series_result, series_expected)
205200

206201
def test_reorder_levels(self):
207202
index = MultiIndex(levels=[['bar'], ['one', 'two', 'three'], [0, 1]],
@@ -212,11 +207,11 @@ def test_reorder_levels(self):
212207

213208
# no change, position
214209
result = s.reorder_levels([0, 1, 2])
215-
assert_series_equal(s, result)
210+
tm.assert_series_equal(s, result)
216211

217212
# no change, labels
218213
result = s.reorder_levels(['L0', 'L1', 'L2'])
219-
assert_series_equal(s, result)
214+
tm.assert_series_equal(s, result)
220215

221216
# rotate, position
222217
result = s.reorder_levels([1, 2, 0])
@@ -225,17 +220,16 @@ def test_reorder_levels(self):
225220
[0, 0, 0, 0, 0, 0]],
226221
names=['L1', 'L2', 'L0'])
227222
expected = Series(np.arange(6), index=e_idx)
228-
assert_series_equal(result, expected)
223+
tm.assert_series_equal(result, expected)
229224

230-
def test_rename_axis_inplace(self):
225+
def test_rename_axis_inplace(self, datetime_series):
231226
# GH 15704
232-
series = self.ts.copy()
233-
expected = series.rename_axis('foo')
234-
result = series.copy()
227+
expected = datetime_series.rename_axis('foo')
228+
result = datetime_series
235229
no_return = result.rename_axis('foo', inplace=True)
236230

237231
assert no_return is None
238-
assert_series_equal(result, expected)
232+
tm.assert_series_equal(result, expected)
239233

240234
def test_set_axis_inplace_axes(self, axis_series):
241235
# GH14636
@@ -291,25 +285,25 @@ def test_reset_index_drop_errors(self):
291285
# GH 20925
292286

293287
# KeyError raised for series index when passed level name is missing
294-
s = pd.Series(range(4))
288+
s = Series(range(4))
295289
with tm.assert_raises_regex(KeyError, 'must be same as name'):
296290
s.reset_index('wrong', drop=True)
297291
with tm.assert_raises_regex(KeyError, 'must be same as name'):
298292
s.reset_index('wrong')
299293

300294
# KeyError raised for series when level to be dropped is missing
301-
s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2))
295+
s = Series(range(4), index=MultiIndex.from_product([[1, 2]] * 2))
302296
with tm.assert_raises_regex(KeyError, 'not found'):
303297
s.reset_index('wrong', drop=True)
304298

305299
def test_droplevel(self):
306300
# GH20342
307-
ser = pd.Series([1, 2, 3, 4])
308-
ser.index = pd.MultiIndex.from_arrays([(1, 2, 3, 4), (5, 6, 7, 8)],
309-
names=['a', 'b'])
301+
ser = Series([1, 2, 3, 4])
302+
ser.index = MultiIndex.from_arrays([(1, 2, 3, 4), (5, 6, 7, 8)],
303+
names=['a', 'b'])
310304
expected = ser.reset_index('b', drop=True)
311305
result = ser.droplevel('b', axis='index')
312-
assert_series_equal(result, expected)
306+
tm.assert_series_equal(result, expected)
313307
# test that droplevel raises ValueError on axis != 0
314308
with pytest.raises(ValueError):
315309
ser.droplevel(1, axis='columns')

0 commit comments

Comments
 (0)