Skip to content

Commit 154e98b

Browse files
simonjayhawkinsPingviinituutti
authored andcommitted
TST: follow-up to Test nested pandas array pandas-dev#24993 (pandas-dev#25155)
* revert changes to tests in pandas-devgh-24993 * Test nested PandasArray * isort test_numpy.py * change NP_VERSION_INFO * use LooseVersion * add _np_version_under1p16 * remove blank line from merge master * add doctstrings to fixtures
1 parent 9896bb1 commit 154e98b

File tree

11 files changed

+497
-531
lines changed

11 files changed

+497
-531
lines changed

pandas/tests/extension/base/groupby.py

+6-11
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,14 @@ def test_groupby_extension_transform(self, data_for_grouping):
5555

5656
self.assert_series_equal(result, expected)
5757

58-
@pytest.mark.parametrize('op', [
59-
lambda x: 1,
60-
lambda x: [1] * len(x),
61-
lambda x: pd.Series([1] * len(x)),
62-
lambda x: x,
63-
], ids=['scalar', 'list', 'series', 'object'])
64-
def test_groupby_extension_apply(self, data_for_grouping, op):
58+
def test_groupby_extension_apply(
59+
self, data_for_grouping, groupby_apply_op):
6560
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1, 4],
6661
"B": data_for_grouping})
67-
df.groupby("B").apply(op)
68-
df.groupby("B").A.apply(op)
69-
df.groupby("A").apply(op)
70-
df.groupby("A").B.apply(op)
62+
df.groupby("B").apply(groupby_apply_op)
63+
df.groupby("B").A.apply(groupby_apply_op)
64+
df.groupby("A").apply(groupby_apply_op)
65+
df.groupby("A").B.apply(groupby_apply_op)
7166

7267
def test_in_numeric_groupby(self, data_for_grouping):
7368
df = pd.DataFrame({"A": [1, 1, 2, 2, 3, 3, 1, 4],

pandas/tests/extension/base/methods.py

-6
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ def test_shift_fill_value(self, data):
240240
expected = data.take([2, 3, 0, 0])
241241
self.assert_extension_array_equal(result, expected)
242242

243-
@pytest.mark.parametrize("as_frame", [True, False])
244243
def test_hash_pandas_object_works(self, data, as_frame):
245244
# https://github.com/pandas-dev/pandas/issues/23066
246245
data = pd.Series(data)
@@ -250,7 +249,6 @@ def test_hash_pandas_object_works(self, data, as_frame):
250249
b = pd.util.hash_pandas_object(data)
251250
self.assert_equal(a, b)
252251

253-
@pytest.mark.parametrize("as_series", [True, False])
254252
def test_searchsorted(self, data_for_sorting, as_series):
255253
b, c, a = data_for_sorting
256254
arr = type(data_for_sorting)._from_sequence([a, b, c])
@@ -275,7 +273,6 @@ def test_searchsorted(self, data_for_sorting, as_series):
275273
sorter = np.array([1, 2, 0])
276274
assert data_for_sorting.searchsorted(a, sorter=sorter) == 0
277275

278-
@pytest.mark.parametrize("as_frame", [True, False])
279276
def test_where_series(self, data, na_value, as_frame):
280277
assert data[0] != data[1]
281278
cls = type(data)
@@ -309,8 +306,6 @@ def test_where_series(self, data, na_value, as_frame):
309306
expected = expected.to_frame(name='a')
310307
self.assert_equal(result, expected)
311308

312-
@pytest.mark.parametrize("use_numpy", [True, False])
313-
@pytest.mark.parametrize("as_series", [True, False])
314309
@pytest.mark.parametrize("repeats", [0, 1, 2, [1, 2, 3]])
315310
def test_repeat(self, data, repeats, as_series, use_numpy):
316311
arr = type(data)._from_sequence(data[:3], dtype=data.dtype)
@@ -327,7 +322,6 @@ def test_repeat(self, data, repeats, as_series, use_numpy):
327322

328323
self.assert_equal(result, expected)
329324

330-
@pytest.mark.parametrize("use_numpy", [True, False])
331325
@pytest.mark.parametrize('repeats, kwargs, error, msg', [
332326
(2, dict(axis=1), ValueError, "'axis"),
333327
(-1, dict(), ValueError, "negative"),

pandas/tests/extension/base/missing.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import numpy as np
2-
import pytest
32

43
import pandas as pd
54
import pandas.util.testing as tm
@@ -89,14 +88,13 @@ def test_fillna_series(self, data_missing):
8988
result = ser.fillna(ser)
9089
self.assert_series_equal(result, ser)
9190

92-
@pytest.mark.parametrize('method', ['ffill', 'bfill'])
93-
def test_fillna_series_method(self, data_missing, method):
91+
def test_fillna_series_method(self, data_missing, fillna_method):
9492
fill_value = data_missing[1]
9593

96-
if method == 'ffill':
94+
if fillna_method == 'ffill':
9795
data_missing = data_missing[::-1]
9896

99-
result = pd.Series(data_missing).fillna(method=method)
97+
result = pd.Series(data_missing).fillna(method=fillna_method)
10098
expected = pd.Series(data_missing._from_sequence(
10199
[fill_value, fill_value], dtype=data_missing.dtype))
102100

pandas/tests/extension/base/setitem.py

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ def test_setitem_sequence(self, data, box_in_series):
2424
assert data[0] == original[1]
2525
assert data[1] == original[0]
2626

27-
@pytest.mark.parametrize('as_array', [True, False])
2827
def test_setitem_sequence_mismatched_length_raises(self, data, as_array):
2928
ser = pd.Series(data)
3029
original = ser.copy()

pandas/tests/extension/conftest.py

+57
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import pytest
44

5+
from pandas import Series
6+
57

68
@pytest.fixture
79
def dtype():
@@ -108,3 +110,58 @@ def data_for_grouping():
108110
def box_in_series(request):
109111
"""Whether to box the data in a Series"""
110112
return request.param
113+
114+
115+
@pytest.fixture(params=[
116+
lambda x: 1,
117+
lambda x: [1] * len(x),
118+
lambda x: Series([1] * len(x)),
119+
lambda x: x,
120+
], ids=['scalar', 'list', 'series', 'object'])
121+
def groupby_apply_op(request):
122+
"""
123+
Functions to test groupby.apply().
124+
"""
125+
return request.param
126+
127+
128+
@pytest.fixture(params=[True, False])
129+
def as_frame(request):
130+
"""
131+
Boolean fixture to support Series and Series.to_frame() comparison testing.
132+
"""
133+
return request.param
134+
135+
136+
@pytest.fixture(params=[True, False])
137+
def as_series(request):
138+
"""
139+
Boolean fixture to support arr and Series(arr) comparison testing.
140+
"""
141+
return request.param
142+
143+
144+
@pytest.fixture(params=[True, False])
145+
def use_numpy(request):
146+
"""
147+
Boolean fixture to support comparison testing of ExtensionDtype array
148+
and numpy array.
149+
"""
150+
return request.param
151+
152+
153+
@pytest.fixture(params=['ffill', 'bfill'])
154+
def fillna_method(request):
155+
"""
156+
Parametrized fixture giving method parameters 'ffill' and 'bfill' for
157+
Series.fillna(method=<method>) testing.
158+
"""
159+
return request.param
160+
161+
162+
@pytest.fixture(params=[True, False])
163+
def as_array(request):
164+
"""
165+
Boolean fixture to support ExtensionDtype _from_sequence method testing.
166+
"""
167+
return request.param

pandas/tests/extension/numpy_/__init__.py

Whitespace-only changes.

pandas/tests/extension/numpy_/conftest.py

-38
This file was deleted.

pandas/tests/extension/numpy_/test_numpy.py

-182
This file was deleted.

0 commit comments

Comments
 (0)