Skip to content

Commit 8501994

Browse files
authored
TST/REF: collect multilevel tests by method (pandas-dev#37431)
1 parent 5292533 commit 8501994

File tree

5 files changed

+43
-43
lines changed

5 files changed

+43
-43
lines changed

pandas/tests/frame/methods/test_append.py

+12
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77

88

99
class TestDataFrameAppend:
10+
@pytest.mark.parametrize("klass", [Series, DataFrame])
11+
def test_append_multiindex(self, multiindex_dataframe_random_data, klass):
12+
obj = multiindex_dataframe_random_data
13+
if klass is Series:
14+
obj = obj["A"]
15+
16+
a = obj[:5]
17+
b = obj[5:]
18+
19+
result = a.append(b)
20+
tm.assert_equal(result, obj)
21+
1022
def test_append_empty_list(self):
1123
# GH 28769
1224
df = DataFrame()

pandas/tests/frame/test_constructors.py

+13
Original file line numberDiff line numberDiff line change
@@ -2697,6 +2697,19 @@ def test_frame_ctor_datetime64_column(self):
26972697
df = DataFrame({"A": np.random.randn(len(rng)), "B": dates})
26982698
assert np.issubdtype(df["B"].dtype, np.dtype("M8[ns]"))
26992699

2700+
def test_dataframe_constructor_infer_multiindex(self):
2701+
index_lists = [["a", "a", "b", "b"], ["x", "y", "x", "y"]]
2702+
2703+
multi = DataFrame(
2704+
np.random.randn(4, 4),
2705+
index=[np.array(x) for x in index_lists],
2706+
)
2707+
assert isinstance(multi.index, MultiIndex)
2708+
assert not isinstance(multi.columns, MultiIndex)
2709+
2710+
multi = DataFrame(np.random.randn(4, 4), columns=index_lists)
2711+
assert isinstance(multi.columns, MultiIndex)
2712+
27002713
@pytest.mark.parametrize(
27012714
"input_vals",
27022715
[

pandas/tests/series/test_constructors.py

+12
Original file line numberDiff line numberDiff line change
@@ -1536,6 +1536,18 @@ def test_series_constructor_datetimelike_index_coercion(self):
15361536
assert ser.index.is_all_dates
15371537
assert isinstance(ser.index, DatetimeIndex)
15381538

1539+
def test_series_constructor_infer_multiindex(self):
1540+
index_lists = [["a", "a", "b", "b"], ["x", "y", "x", "y"]]
1541+
1542+
multi = Series(1.0, index=[np.array(x) for x in index_lists])
1543+
assert isinstance(multi.index, MultiIndex)
1544+
1545+
multi = Series(1.0, index=index_lists)
1546+
assert isinstance(multi.index, MultiIndex)
1547+
1548+
multi = Series(range(4), index=index_lists)
1549+
assert isinstance(multi.index, MultiIndex)
1550+
15391551

15401552
class TestSeriesConstructorInternals:
15411553
def test_constructor_no_pandas_array(self):

pandas/tests/test_multilevel.py

+6-43
Original file line numberDiff line numberDiff line change
@@ -21,42 +21,6 @@
2121

2222

2323
class TestMultiLevel:
24-
def test_append(self, multiindex_dataframe_random_data):
25-
frame = multiindex_dataframe_random_data
26-
27-
a, b = frame[:5], frame[5:]
28-
29-
result = a.append(b)
30-
tm.assert_frame_equal(result, frame)
31-
32-
result = a["A"].append(b["A"])
33-
tm.assert_series_equal(result, frame["A"])
34-
35-
def test_dataframe_constructor_infer_multiindex(self):
36-
multi = DataFrame(
37-
np.random.randn(4, 4),
38-
index=[np.array(["a", "a", "b", "b"]), np.array(["x", "y", "x", "y"])],
39-
)
40-
assert isinstance(multi.index, MultiIndex)
41-
assert not isinstance(multi.columns, MultiIndex)
42-
43-
multi = DataFrame(
44-
np.random.randn(4, 4), columns=[["a", "a", "b", "b"], ["x", "y", "x", "y"]]
45-
)
46-
assert isinstance(multi.columns, MultiIndex)
47-
48-
def test_series_constructor_infer_multiindex(self):
49-
multi = Series(
50-
1.0, index=[np.array(["a", "a", "b", "b"]), np.array(["x", "y", "x", "y"])]
51-
)
52-
assert isinstance(multi.index, MultiIndex)
53-
54-
multi = Series(1.0, index=[["a", "a", "b", "b"], ["x", "y", "x", "y"]])
55-
assert isinstance(multi.index, MultiIndex)
56-
57-
multi = Series(range(4), index=[["a", "a", "b", "b"], ["x", "y", "x", "y"]])
58-
assert isinstance(multi.index, MultiIndex)
59-
6024
def test_reindex_level(self, multiindex_year_month_day_dataframe_random_data):
6125
# axis=0
6226
ymd = multiindex_year_month_day_dataframe_random_data
@@ -278,18 +242,17 @@ def test_std_var_pass_ddof(self):
278242
expected = df.groupby(level=0).agg(alt)
279243
tm.assert_frame_equal(result, expected)
280244

281-
def test_frame_series_agg_multiple_levels(
282-
self, multiindex_year_month_day_dataframe_random_data
245+
@pytest.mark.parametrize("klass", [Series, DataFrame])
246+
def test_agg_multiple_levels(
247+
self, multiindex_year_month_day_dataframe_random_data, klass
283248
):
284249
ymd = multiindex_year_month_day_dataframe_random_data
250+
if klass is Series:
251+
ymd = ymd["A"]
285252

286253
result = ymd.sum(level=["year", "month"])
287254
expected = ymd.groupby(level=["year", "month"]).sum()
288-
tm.assert_frame_equal(result, expected)
289-
290-
result = ymd["A"].sum(level=["year", "month"])
291-
expected = ymd["A"].groupby(level=["year", "month"]).sum()
292-
tm.assert_series_equal(result, expected)
255+
tm.assert_equal(result, expected)
293256

294257
def test_groupby_multilevel(self, multiindex_year_month_day_dataframe_random_data):
295258
ymd = multiindex_year_month_day_dataframe_random_data

0 commit comments

Comments
 (0)