(dtype)
| 101 | |
| 102 | |
| 103 | def test_contains(dtype) -> None: |
| 104 | values = xr.DataArray(["Foo", "xYz", "fOOomMm__fOo", "MMM_"]).astype(dtype) |
| 105 | |
| 106 | # case insensitive using regex |
| 107 | pat = values.dtype.type("FOO|mmm") |
| 108 | result = values.str.contains(pat, case=False) |
| 109 | expected = xr.DataArray([True, False, True, True]) |
| 110 | assert result.dtype == expected.dtype |
| 111 | assert_equal(result, expected) |
| 112 | result = values.str.contains(re.compile(pat, flags=re.IGNORECASE)) |
| 113 | assert result.dtype == expected.dtype |
| 114 | assert_equal(result, expected) |
| 115 | |
| 116 | # case sensitive using regex |
| 117 | pat = values.dtype.type("Foo|mMm") |
| 118 | result = values.str.contains(pat) |
| 119 | expected = xr.DataArray([True, False, True, False]) |
| 120 | assert result.dtype == expected.dtype |
| 121 | assert_equal(result, expected) |
| 122 | result = values.str.contains(re.compile(pat)) |
| 123 | assert result.dtype == expected.dtype |
| 124 | assert_equal(result, expected) |
| 125 | |
| 126 | # case insensitive without regex |
| 127 | result = values.str.contains("foo", regex=False, case=False) |
| 128 | expected = xr.DataArray([True, False, True, False]) |
| 129 | assert result.dtype == expected.dtype |
| 130 | assert_equal(result, expected) |
| 131 | |
| 132 | # case sensitive without regex |
| 133 | result = values.str.contains("fO", regex=False, case=True) |
| 134 | expected = xr.DataArray([False, False, True, False]) |
| 135 | assert result.dtype == expected.dtype |
| 136 | assert_equal(result, expected) |
| 137 | |
| 138 | # regex regex=False |
| 139 | pat_re = re.compile("(/w+)") |
| 140 | with pytest.raises( |
| 141 | ValueError, |
| 142 | match=r"Must use regular expression matching for regular expression object.", |
| 143 | ): |
| 144 | values.str.contains(pat_re, regex=False) |
| 145 | |
| 146 | |
| 147 | def test_contains_broadcast(dtype) -> None: |
nothing calls this directly
no test coverage detected
searching dependent graphs…