Skip to content

Commit c424093

Browse files
move test comparing with python to test_find_replace.py
1 parent 70e82b1 commit c424093

File tree

2 files changed

+42
-13
lines changed

2 files changed

+42
-13
lines changed

pandas/tests/extension/test_arrow.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,6 +1870,8 @@ def test_str_match(pat, case, na, exp):
18701870

18711871
@pytest.mark.parametrize(
18721872
"pat, case, na, exp",
1873+
# Note: keep cases in sync with
1874+
# pandas/tests/strings/test_find_replace.py::test_str_fullmatch_extra_cases
18731875
[
18741876
["abc", False, None, [True, False, False, None]],
18751877
["Abc", True, None, [False, False, False, None]],
@@ -1884,19 +1886,11 @@ def test_str_match(pat, case, na, exp):
18841886
["Abc\\$", True, None, [False, False, False, None]],
18851887
],
18861888
)
1887-
class TestFullmatch:
1888-
def test_str_fullmatch(self, pat, case, na, exp):
1889-
ser = pd.Series(["abc", "abc$", "$abc", None], dtype=ArrowDtype(pa.string()))
1890-
result = ser.str.fullmatch(pat, case=case, na=na)
1891-
expected = pd.Series(exp, dtype=ArrowDtype(pa.bool_()))
1892-
tm.assert_series_equal(result, expected)
1893-
1894-
def test_str_fullmatch_against_python_fullmatch(self, pat, case, na, exp):
1895-
ser = pd.Series(["abc", "abc$", "$abc"], dtype=ArrowDtype(pa.string()))
1896-
ser2 = pd.Series(["abc", "abc$", "$abc"], dtype=str)
1897-
result = ser.str.fullmatch(pat, case=case, na=na)
1898-
result2 = ser2.str.fullmatch(pat, case=case, na=na).astype(result.dtype)
1899-
tm.assert_series_equal(result, result2)
1889+
def test_str_fullmatch(pat, case, na, exp):
1890+
ser = pd.Series(["abc", "abc$", "$abc", None], dtype=ArrowDtype(pa.string()))
1891+
result = ser.str.fullmatch(pat, case=case, na=na)
1892+
expected = pd.Series(exp, dtype=ArrowDtype(pa.bool_()))
1893+
tm.assert_series_equal(result, expected)
19001894

19011895

19021896
@pytest.mark.parametrize(

pandas/tests/strings/test_find_replace.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,41 @@ def test_fullmatch_compiled_regex(any_string_dtype):
10751075
values.str.fullmatch(re.compile("ab"), flags=re.IGNORECASE)
10761076

10771077

1078+
@pytest.mark.parametrize(
1079+
"pat, case, na, exp",
1080+
# Note: keep cases in sync with
1081+
# pandas/tests/extension/test_arrow.py::test_str_fullmatch
1082+
[
1083+
["abc", False, None, [True, False, False, None]],
1084+
["Abc", True, None, [False, False, False, None]],
1085+
["bc", True, None, [False, False, False, None]],
1086+
["ab", False, None, [False, False, False, None]],
1087+
["a[a-z]{2}", False, None, [True, False, False, None]],
1088+
["A[a-z]{1}", True, None, [False, False, False, None]],
1089+
# GH Issue: #56652
1090+
["abc$", False, None, [True, False, False, None]],
1091+
["abc\\$", False, None, [False, True, False, None]],
1092+
["Abc$", True, None, [False, False, False, None]],
1093+
["Abc\\$", True, None, [False, False, False, None]],
1094+
],
1095+
)
1096+
def test_str_fullmatch_extra_cases(any_string_dtype, pat, case, na, exp):
1097+
ser = Series(["abc", "abc$", "$abc", None], dtype=any_string_dtype)
1098+
result = ser.str.fullmatch(pat, case=case, na=na)
1099+
1100+
if any_string_dtype == "str":
1101+
# NaN propagates as False
1102+
exp[-1] = False
1103+
expected_dtype = bool
1104+
else:
1105+
expected_dtype = (
1106+
"object" if is_object_or_nan_string_dtype(any_string_dtype) else "boolean"
1107+
)
1108+
expected = Series([True, False, np.nan, False], dtype=expected_dtype)
1109+
expected = Series(exp, dtype=expected_dtype)
1110+
tm.assert_series_equal(result, expected)
1111+
1112+
10781113
# --------------------------------------------------------------------------------------
10791114
# str.findall
10801115
# --------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)