Skip to content

Commit ad9db99

Browse files
authored
REF: misplaced tests (#32713)
1 parent 23abcd9 commit ad9db99

File tree

2 files changed

+54
-49
lines changed

2 files changed

+54
-49
lines changed
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import numpy as np
2+
import pytest
3+
4+
import pandas as pd
5+
import pandas._testing as tm
6+
7+
8+
@pytest.mark.parametrize(
9+
"msg,labels,level",
10+
[
11+
(r"labels \[4\] not found in level", 4, "a"),
12+
(r"labels \[7\] not found in level", 7, "b"),
13+
],
14+
)
15+
def test_drop_raise_exception_if_labels_not_in_level(msg, labels, level):
16+
# GH 8594
17+
mi = pd.MultiIndex.from_arrays([[1, 2, 3], [4, 5, 6]], names=["a", "b"])
18+
s = pd.Series([10, 20, 30], index=mi)
19+
df = pd.DataFrame([10, 20, 30], index=mi)
20+
21+
with pytest.raises(KeyError, match=msg):
22+
s.drop(labels, level=level)
23+
with pytest.raises(KeyError, match=msg):
24+
df.drop(labels, level=level)
25+
26+
27+
@pytest.mark.parametrize("labels,level", [(4, "a"), (7, "b")])
28+
def test_drop_errors_ignore(labels, level):
29+
# GH 8594
30+
mi = pd.MultiIndex.from_arrays([[1, 2, 3], [4, 5, 6]], names=["a", "b"])
31+
s = pd.Series([10, 20, 30], index=mi)
32+
df = pd.DataFrame([10, 20, 30], index=mi)
33+
34+
expected_s = s.drop(labels, level=level, errors="ignore")
35+
tm.assert_series_equal(s, expected_s)
36+
37+
expected_df = df.drop(labels, level=level, errors="ignore")
38+
tm.assert_frame_equal(df, expected_df)
39+
40+
41+
def test_drop_with_non_unique_datetime_index_and_invalid_keys():
42+
# GH 30399
43+
44+
# define dataframe with unique datetime index
45+
df = pd.DataFrame(
46+
np.random.randn(5, 3),
47+
columns=["a", "b", "c"],
48+
index=pd.date_range("2012", freq="H", periods=5),
49+
)
50+
# create dataframe with non-unique datetime index
51+
df = df.iloc[[0, 2, 2, 3]].copy()
52+
53+
with pytest.raises(KeyError, match="not found in axis"):
54+
df.drop(["a", "b"]) # Dropping with labels not exist in the index

pandas/tests/indexes/multi/test_drop.py

-49
Original file line numberDiff line numberDiff line change
@@ -139,52 +139,3 @@ def test_drop_not_lexsorted():
139139
tm.assert_index_equal(lexsorted_mi, not_lexsorted_mi)
140140
with tm.assert_produces_warning(PerformanceWarning):
141141
tm.assert_index_equal(lexsorted_mi.drop("a"), not_lexsorted_mi.drop("a"))
142-
143-
144-
@pytest.mark.parametrize(
145-
"msg,labels,level",
146-
[
147-
(r"labels \[4\] not found in level", 4, "a"),
148-
(r"labels \[7\] not found in level", 7, "b"),
149-
],
150-
)
151-
def test_drop_raise_exception_if_labels_not_in_level(msg, labels, level):
152-
# GH 8594
153-
mi = MultiIndex.from_arrays([[1, 2, 3], [4, 5, 6]], names=["a", "b"])
154-
s = pd.Series([10, 20, 30], index=mi)
155-
df = pd.DataFrame([10, 20, 30], index=mi)
156-
157-
with pytest.raises(KeyError, match=msg):
158-
s.drop(labels, level=level)
159-
with pytest.raises(KeyError, match=msg):
160-
df.drop(labels, level=level)
161-
162-
163-
@pytest.mark.parametrize("labels,level", [(4, "a"), (7, "b")])
164-
def test_drop_errors_ignore(labels, level):
165-
# GH 8594
166-
mi = MultiIndex.from_arrays([[1, 2, 3], [4, 5, 6]], names=["a", "b"])
167-
s = pd.Series([10, 20, 30], index=mi)
168-
df = pd.DataFrame([10, 20, 30], index=mi)
169-
170-
expected_s = s.drop(labels, level=level, errors="ignore")
171-
tm.assert_series_equal(s, expected_s)
172-
173-
expected_df = df.drop(labels, level=level, errors="ignore")
174-
tm.assert_frame_equal(df, expected_df)
175-
176-
177-
def test_drop_with_non_unique_datetime_index_and_invalid_keys():
178-
# GH 30399
179-
180-
# define dataframe with unique datetime index
181-
df = pd.DataFrame(
182-
np.random.randn(5, 3),
183-
columns=["a", "b", "c"],
184-
index=pd.date_range("2012", freq="H", periods=5),
185-
)
186-
# create dataframe with non-unique datetime index
187-
df = df.iloc[[0, 2, 2, 3]].copy()
188-
189-
with pytest.raises(KeyError, match="not found in axis"):
190-
df.drop(["a", "b"]) # Dropping with labels not exist in the index

0 commit comments

Comments
 (0)