Skip to content

Commit fe97aa2

Browse files
authored
TST/REF: collect tests from test_multilevel (pandas-dev#38006)
1 parent 3788d74 commit fe97aa2

File tree

3 files changed

+47
-34
lines changed

3 files changed

+47
-34
lines changed

pandas/tests/frame/test_repr_info.py

+8
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@
2323

2424

2525
class TestDataFrameReprInfoEtc:
26+
def test_repr_unicode_level_names(self, frame_or_series):
27+
index = MultiIndex.from_tuples([(0, 0), (1, 1)], names=["\u0394", "i1"])
28+
29+
obj = DataFrame(np.random.randn(2, 4), index=index)
30+
if frame_or_series is Series:
31+
obj = obj[0]
32+
repr(obj)
33+
2634
def test_assign_index_sequences(self):
2735
# GH#2200
2836
df = DataFrame({"a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9]}).set_index(

pandas/tests/indexing/test_loc.py

+34
Original file line numberDiff line numberDiff line change
@@ -1222,6 +1222,40 @@ def test_loc_getitem_slice_datetime_objs_with_datetimeindex(self):
12221222
result = ser.loc[datetime(1900, 1, 1) : datetime(2100, 1, 1)]
12231223
tm.assert_series_equal(result, ser)
12241224

1225+
def test_loc_getitem_sorted_index_level_with_duplicates(self):
1226+
# GH#4516 sorting a MultiIndex with duplicates and multiple dtypes
1227+
mi = MultiIndex.from_tuples(
1228+
[
1229+
("foo", "bar"),
1230+
("foo", "bar"),
1231+
("bah", "bam"),
1232+
("bah", "bam"),
1233+
("foo", "bar"),
1234+
("bah", "bam"),
1235+
],
1236+
names=["A", "B"],
1237+
)
1238+
df = DataFrame(
1239+
[
1240+
[1.0, 1],
1241+
[2.0, 2],
1242+
[3.0, 3],
1243+
[4.0, 4],
1244+
[5.0, 5],
1245+
[6.0, 6],
1246+
],
1247+
index=mi,
1248+
columns=["C", "D"],
1249+
)
1250+
df = df.sort_index(level=0)
1251+
1252+
expected = DataFrame(
1253+
[[1.0, 1], [2.0, 2], [5.0, 5]], columns=["C", "D"], index=mi.take([0, 1, 4])
1254+
)
1255+
1256+
result = df.loc[("foo", "bar")]
1257+
tm.assert_frame_equal(result, expected)
1258+
12251259

12261260
class TestLocSetitemWithExpansion:
12271261
@pytest.mark.slow

pandas/tests/test_multilevel.py

+5-34
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ def test_groupby_level_no_obs(self):
135135
result = grouped.sum()
136136
assert (result.columns == ["f2", "f3"]).all()
137137

138-
def test_insert_index(self, multiindex_year_month_day_dataframe_random_data):
138+
def test_setitem_with_expansion_multiindex_columns(
139+
self, multiindex_year_month_day_dataframe_random_data
140+
):
139141
ymd = multiindex_year_month_day_dataframe_random_data
140142

141143
df = ymd[:5].T
@@ -242,12 +244,11 @@ def test_std_var_pass_ddof(self):
242244
expected = df.groupby(level=0).agg(alt)
243245
tm.assert_frame_equal(result, expected)
244246

245-
@pytest.mark.parametrize("klass", [Series, DataFrame])
246247
def test_agg_multiple_levels(
247-
self, multiindex_year_month_day_dataframe_random_data, klass
248+
self, multiindex_year_month_day_dataframe_random_data, frame_or_series
248249
):
249250
ymd = multiindex_year_month_day_dataframe_random_data
250-
if klass is Series:
251+
if frame_or_series is Series:
251252
ymd = ymd["A"]
252253

253254
result = ymd.sum(level=["year", "month"])
@@ -349,14 +350,6 @@ def test_reindex_level_partial_selection(self, multiindex_dataframe_random_data)
349350
result = frame.T.loc[:, ["foo", "qux"]]
350351
tm.assert_frame_equal(result, expected.T)
351352

352-
def test_unicode_repr_level_names(self):
353-
index = MultiIndex.from_tuples([(0, 0), (1, 1)], names=["\u0394", "i1"])
354-
355-
s = Series(range(2), index=index)
356-
df = DataFrame(np.random.randn(2, 4), index=index)
357-
repr(s)
358-
repr(df)
359-
360353
@pytest.mark.parametrize("d", [4, "d"])
361354
def test_empty_frame_groupby_dtypes_consistency(self, d):
362355
# GH 20888
@@ -386,28 +379,6 @@ def test_duplicate_groupby_issues(self):
386379
result = s.groupby(s.index).first()
387380
assert len(result) == 3
388381

389-
def test_duplicate_mi(self):
390-
# GH 4516
391-
df = DataFrame(
392-
[
393-
["foo", "bar", 1.0, 1],
394-
["foo", "bar", 2.0, 2],
395-
["bah", "bam", 3.0, 3],
396-
["bah", "bam", 4.0, 4],
397-
["foo", "bar", 5.0, 5],
398-
["bah", "bam", 6.0, 6],
399-
],
400-
columns=list("ABCD"),
401-
)
402-
df = df.set_index(["A", "B"])
403-
df = df.sort_index(level=0)
404-
expected = DataFrame(
405-
[["foo", "bar", 1.0, 1], ["foo", "bar", 2.0, 2], ["foo", "bar", 5.0, 5]],
406-
columns=list("ABCD"),
407-
).set_index(["A", "B"])
408-
result = df.loc[("foo", "bar")]
409-
tm.assert_frame_equal(result, expected)
410-
411382
def test_subsets_multiindex_dtype(self):
412383
# GH 20757
413384
data = [["x", 1]]

0 commit comments

Comments
 (0)