Skip to content

Commit 5da1b24

Browse files
authored
TST: pytest.mark.parameterize some tests (#44776)
1 parent 4b71090 commit 5da1b24

File tree

2 files changed

+50
-58
lines changed

2 files changed

+50
-58
lines changed

pandas/tests/test_multilevel.py

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,28 @@ def test_reindex_level(self, multiindex_year_month_day_dataframe_random_data):
4848
expected = ymd.groupby(level="month").transform(np.sum).T
4949
tm.assert_frame_equal(result, expected)
5050

51-
def test_binops_level(self, multiindex_year_month_day_dataframe_random_data):
51+
@pytest.mark.parametrize("opname", ["sub", "add", "mul", "div"])
52+
def test_binops_level(
53+
self, opname, multiindex_year_month_day_dataframe_random_data
54+
):
5255
ymd = multiindex_year_month_day_dataframe_random_data
5356

54-
def _check_op(opname):
55-
op = getattr(DataFrame, opname)
56-
with tm.assert_produces_warning(FutureWarning):
57-
month_sums = ymd.sum(level="month")
58-
result = op(ymd, month_sums, level="month")
59-
60-
broadcasted = ymd.groupby(level="month").transform(np.sum)
61-
expected = op(ymd, broadcasted)
62-
tm.assert_frame_equal(result, expected)
63-
64-
# Series
65-
op = getattr(Series, opname)
66-
result = op(ymd["A"], month_sums["A"], level="month")
67-
broadcasted = ymd["A"].groupby(level="month").transform(np.sum)
68-
expected = op(ymd["A"], broadcasted)
69-
expected.name = "A"
70-
tm.assert_series_equal(result, expected)
71-
72-
_check_op("sub")
73-
_check_op("add")
74-
_check_op("mul")
75-
_check_op("div")
57+
op = getattr(DataFrame, opname)
58+
with tm.assert_produces_warning(FutureWarning):
59+
month_sums = ymd.sum(level="month")
60+
result = op(ymd, month_sums, level="month")
61+
62+
broadcasted = ymd.groupby(level="month").transform(np.sum)
63+
expected = op(ymd, broadcasted)
64+
tm.assert_frame_equal(result, expected)
65+
66+
# Series
67+
op = getattr(Series, opname)
68+
result = op(ymd["A"], month_sums["A"], level="month")
69+
broadcasted = ymd["A"].groupby(level="month").transform(np.sum)
70+
expected = op(ymd["A"], broadcasted)
71+
expected.name = "A"
72+
tm.assert_series_equal(result, expected)
7673

7774
def test_reindex(self, multiindex_dataframe_random_data):
7875
frame = multiindex_dataframe_random_data
@@ -235,25 +232,25 @@ def aggf(x):
235232

236233
tm.assert_frame_equal(leftside, rightside)
237234

238-
def test_std_var_pass_ddof(self):
235+
@pytest.mark.parametrize("meth", ["var", "std"])
236+
def test_std_var_pass_ddof(self, meth):
239237
index = MultiIndex.from_arrays(
240238
[np.arange(5).repeat(10), np.tile(np.arange(10), 5)]
241239
)
242240
df = DataFrame(np.random.randn(len(index), 5), index=index)
243241

244-
for meth in ["var", "std"]:
245-
ddof = 4
246-
alt = lambda x: getattr(x, meth)(ddof=ddof)
242+
ddof = 4
243+
alt = lambda x: getattr(x, meth)(ddof=ddof)
247244

248-
with tm.assert_produces_warning(FutureWarning):
249-
result = getattr(df[0], meth)(level=0, ddof=ddof)
250-
expected = df[0].groupby(level=0).agg(alt)
251-
tm.assert_series_equal(result, expected)
245+
with tm.assert_produces_warning(FutureWarning):
246+
result = getattr(df[0], meth)(level=0, ddof=ddof)
247+
expected = df[0].groupby(level=0).agg(alt)
248+
tm.assert_series_equal(result, expected)
252249

253-
with tm.assert_produces_warning(FutureWarning):
254-
result = getattr(df, meth)(level=0, ddof=ddof)
255-
expected = df.groupby(level=0).agg(alt)
256-
tm.assert_frame_equal(result, expected)
250+
with tm.assert_produces_warning(FutureWarning):
251+
result = getattr(df, meth)(level=0, ddof=ddof)
252+
expected = df.groupby(level=0).agg(alt)
253+
tm.assert_frame_equal(result, expected)
257254

258255
def test_agg_multiple_levels(
259256
self, multiindex_year_month_day_dataframe_random_data, frame_or_series
@@ -284,9 +281,6 @@ def test_groupby_multilevel(self, multiindex_year_month_day_dataframe_random_dat
284281
result2 = ymd.groupby(level=ymd.index.names[:2]).mean()
285282
tm.assert_frame_equal(result, result2)
286283

287-
def test_groupby_multilevel_with_transform(self):
288-
pass
289-
290284
def test_multilevel_consolidate(self):
291285
index = MultiIndex.from_tuples(
292286
[("foo", "one"), ("foo", "two"), ("bar", "one"), ("bar", "two")]

pandas/tests/test_nanops.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,9 @@ def test_nanvar_ddof(self):
846846
# The overestimated variance.
847847
tm.assert_almost_equal(variance_2, (n - 1.0) / (n - 2.0) * var, rtol=1e-2)
848848

849-
def test_ground_truth(self):
849+
@pytest.mark.parametrize("axis", range(2))
850+
@pytest.mark.parametrize("ddof", range(3))
851+
def test_ground_truth(self, axis, ddof):
850852
# Test against values that were precomputed with Numpy.
851853
samples = np.empty((4, 4))
852854
samples[:3, :3] = np.array(
@@ -875,26 +877,22 @@ def test_ground_truth(self):
875877
)
876878

877879
# Test nanvar.
878-
for axis in range(2):
879-
for ddof in range(3):
880-
var = nanops.nanvar(samples, skipna=True, axis=axis, ddof=ddof)
881-
tm.assert_almost_equal(var[:3], variance[axis, ddof])
882-
assert np.isnan(var[3])
880+
var = nanops.nanvar(samples, skipna=True, axis=axis, ddof=ddof)
881+
tm.assert_almost_equal(var[:3], variance[axis, ddof])
882+
assert np.isnan(var[3])
883883

884884
# Test nanstd.
885-
for axis in range(2):
886-
for ddof in range(3):
887-
std = nanops.nanstd(samples, skipna=True, axis=axis, ddof=ddof)
888-
tm.assert_almost_equal(std[:3], variance[axis, ddof] ** 0.5)
889-
assert np.isnan(std[3])
885+
std = nanops.nanstd(samples, skipna=True, axis=axis, ddof=ddof)
886+
tm.assert_almost_equal(std[:3], variance[axis, ddof] ** 0.5)
887+
assert np.isnan(std[3])
890888

891-
def test_nanstd_roundoff(self):
889+
@pytest.mark.parametrize("ddof", range(3))
890+
def test_nanstd_roundoff(self, ddof):
892891
# Regression test for GH 10242 (test data taken from GH 10489). Ensure
893892
# that variance is stable.
894893
data = Series(766897346 * np.ones(10))
895-
for ddof in range(3):
896-
result = data.std(ddof=ddof)
897-
assert result == 0.0
894+
result = data.std(ddof=ddof)
895+
assert result == 0.0
898896

899897
@property
900898
def prng(self):
@@ -959,12 +957,12 @@ def setup_method(self, method):
959957
self.samples = np.sin(np.linspace(0, 1, 200))
960958
self.actual_kurt = -1.2058303433799713
961959

962-
def test_constant_series(self):
960+
@pytest.mark.parametrize("val", [3075.2, 3075.3, 3075.5])
961+
def test_constant_series(self, val):
963962
# xref GH 11974
964-
for val in [3075.2, 3075.3, 3075.5]:
965-
data = val * np.ones(300)
966-
kurt = nanops.nankurt(data)
967-
assert kurt == 0.0
963+
data = val * np.ones(300)
964+
kurt = nanops.nankurt(data)
965+
assert kurt == 0.0
968966

969967
def test_all_finite(self):
970968
alpha, beta = 0.3, 0.1

0 commit comments

Comments
 (0)