Skip to content

Commit fb165a3

Browse files
Test nested PandasArray
1 parent 0c9ad00 commit fb165a3

File tree

7 files changed

+280
-42
lines changed

7 files changed

+280
-42
lines changed

pandas/tests/extension/base/groupby.py

Lines changed: 6 additions & 11 deletions
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

Lines changed: 0 additions & 6 deletions
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

Lines changed: 3 additions & 5 deletions
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

Lines changed: 0 additions & 1 deletion
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

Lines changed: 38 additions & 0 deletions
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,39 @@ 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+
"""functions to test groupby.apply()"""
123+
return request.param
124+
125+
126+
@pytest.fixture(params=[True, False])
127+
def as_frame(request):
128+
return request.param
129+
130+
131+
@pytest.fixture(params=[True, False])
132+
def as_series(request):
133+
return request.param
134+
135+
136+
@pytest.fixture(params=[True, False])
137+
def use_numpy(request):
138+
return request.param
139+
140+
141+
@pytest.fixture(params=['ffill', 'bfill'])
142+
def fillna_method(request):
143+
return request.param
144+
145+
146+
@pytest.fixture(params=[True, False])
147+
def as_array(request):
148+
return request.param

0 commit comments

Comments
 (0)