()
| 385 | |
| 386 | |
| 387 | def test_replace_callable() -> None: |
| 388 | values = xr.DataArray(["fooBAD__barBAD"]) |
| 389 | |
| 390 | # test with callable |
| 391 | repl = lambda m: m.group(0).swapcase() |
| 392 | result = values.str.replace("[a-z][A-Z]{2}", repl, n=2) |
| 393 | exp = xr.DataArray(["foObaD__baRbaD"]) |
| 394 | assert result.dtype == exp.dtype |
| 395 | assert_equal(result, exp) |
| 396 | |
| 397 | # test regex named groups |
| 398 | values = xr.DataArray(["Foo Bar Baz"]) |
| 399 | pat = r"(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)" |
| 400 | repl = lambda m: m.group("middle").swapcase() |
| 401 | result = values.str.replace(pat, repl) |
| 402 | exp = xr.DataArray(["bAR"]) |
| 403 | assert result.dtype == exp.dtype |
| 404 | assert_equal(result, exp) |
| 405 | |
| 406 | # test broadcast |
| 407 | values = xr.DataArray(["Foo Bar Baz"], dims=["x"]) |
| 408 | pat = r"(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)" |
| 409 | repl2 = xr.DataArray( |
| 410 | [ |
| 411 | lambda m: m.group("first").swapcase(), |
| 412 | lambda m: m.group("middle").swapcase(), |
| 413 | lambda m: m.group("last").swapcase(), |
| 414 | ], |
| 415 | dims=["Y"], |
| 416 | ) |
| 417 | result = values.str.replace(pat, repl2) |
| 418 | exp = xr.DataArray([["fOO", "bAR", "bAZ"]], dims=["x", "Y"]) |
| 419 | assert result.dtype == exp.dtype |
| 420 | assert_equal(result, exp) |
| 421 | |
| 422 | |
| 423 | def test_replace_unicode() -> None: |
nothing calls this directly
no test coverage detected
searching dependent graphs…