Skip to content

Commit c5a640d

Browse files
Add tests (#47420)
* multiindex lexsort depth test * add periodindex loc test * import * pep * Fixes from pre-commit [automated commit] * fix assert * fewer elements
1 parent 9821a2e commit c5a640d

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

pandas/tests/indexes/multi/test_setops.py

+21
Original file line numberDiff line numberDiff line change
@@ -544,3 +544,24 @@ def test_union_duplicates(index, request):
544544

545545
result = mi2.union(mi1)
546546
tm.assert_index_equal(result, mi2.sort_values())
547+
548+
549+
@pytest.mark.parametrize(
550+
"levels1, levels2, codes1, codes2, names",
551+
[
552+
(
553+
[["a", "b", "c"], [0, ""]],
554+
[["c", "d", "b"], [""]],
555+
[[0, 1, 2], [1, 1, 1]],
556+
[[0, 1, 2], [0, 0, 0]],
557+
["name1", "name2"],
558+
),
559+
],
560+
)
561+
def test_intersection_lexsort_depth(levels1, levels2, codes1, codes2, names):
562+
# GH#25169
563+
mi1 = MultiIndex(levels=levels1, codes=codes1, names=names)
564+
mi2 = MultiIndex(levels=levels2, codes=codes2, names=names)
565+
mi_int = mi1.intersection(mi2)
566+
567+
assert mi_int.lexsort_depth == 0

pandas/tests/indexing/test_loc.py

+17
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
IndexSlice,
2626
MultiIndex,
2727
Period,
28+
PeriodIndex,
2829
Series,
2930
SparseDtype,
3031
Timedelta,
@@ -2876,6 +2877,22 @@ def test_loc_set_int_dtype():
28762877
tm.assert_frame_equal(df, expected)
28772878

28782879

2880+
def test_loc_periodindex_3_levels():
2881+
# GH#24091
2882+
p_index = PeriodIndex(
2883+
["20181101 1100", "20181101 1200", "20181102 1300", "20181102 1400"],
2884+
name="datetime",
2885+
freq="B",
2886+
)
2887+
mi_series = DataFrame(
2888+
[["A", "B", 1.0], ["A", "C", 2.0], ["Z", "Q", 3.0], ["W", "F", 4.0]],
2889+
index=p_index,
2890+
columns=["ONE", "TWO", "VALUES"],
2891+
)
2892+
mi_series = mi_series.set_index(["ONE", "TWO"], append=True)["VALUES"]
2893+
assert mi_series.loc[(p_index[0], "A", "B")] == 1.0
2894+
2895+
28792896
class TestLocSeries:
28802897
@pytest.mark.parametrize("val,expected", [(2**63 - 1, 3), (2**63, 4)])
28812898
def test_loc_uint64(self, val, expected):

0 commit comments

Comments
 (0)