MCPcopy
hub / github.com/pydata/xarray / test_replace_literal

Function test_replace_literal

xarray/tests/test_accessor_str.py:509–549  ·  view source on GitHub ↗
(dtype)

Source from the content-addressed store, hash-verified

507
508
509def test_replace_literal(dtype) -> None:
510 # GH16808 literal replace (regex=False vs regex=True)
511 values = xr.DataArray(["f.o", "foo"], dims=["X"]).astype(dtype)
512 expected = xr.DataArray(["bao", "bao"], dims=["X"]).astype(dtype)
513 result = values.str.replace("f.", "ba")
514 assert result.dtype == expected.dtype
515 assert_equal(result, expected)
516
517 expected = xr.DataArray(["bao", "foo"], dims=["X"]).astype(dtype)
518 result = values.str.replace("f.", "ba", regex=False)
519 assert result.dtype == expected.dtype
520 assert_equal(result, expected)
521
522 # Broadcast
523 pat = xr.DataArray(["f.", ".o"], dims=["yy"]).astype(dtype)
524 expected = xr.DataArray([["bao", "fba"], ["bao", "bao"]], dims=["X", "yy"]).astype(
525 dtype
526 )
527 result = values.str.replace(pat, "ba")
528 assert result.dtype == expected.dtype
529 assert_equal(result, expected)
530
531 expected = xr.DataArray([["bao", "fba"], ["foo", "foo"]], dims=["X", "yy"]).astype(
532 dtype
533 )
534 result = values.str.replace(pat, "ba", regex=False)
535 assert result.dtype == expected.dtype
536 assert_equal(result, expected)
537
538 # Cannot do a literal replace if given a callable repl or compiled
539 # pattern
540 callable_repl = lambda m: m.group(0).swapcase()
541 compiled_pat = re.compile("[a-z][A-Z]{2}")
542
543 msg = "Cannot use a callable replacement when regex=False"
544 with pytest.raises(ValueError, match=msg):
545 values.str.replace("abc", callable_repl, regex=False)
546
547 msg = "Cannot use a compiled regex as replacement pattern with regex=False"
548 with pytest.raises(ValueError, match=msg):
549 values.str.replace(compiled_pat, "", regex=False)
550
551
552def test_extract_extractall_findall_empty_raises(dtype) -> None:

Callers

nothing calls this directly

Calls 4

assert_equalFunction · 0.90
replaceMethod · 0.80
swapcaseMethod · 0.80
astypeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…