|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | + |
1 | 3 | # Tests for the `str` accessor are derived from the original
|
2 | 4 | # pandas string accessor tests.
|
3 | 5 |
|
@@ -93,18 +95,52 @@ def test_starts_ends_with(dtype):
|
93 | 95 | assert_equal(result, expected)
|
94 | 96 |
|
95 | 97 |
|
96 |
| -def test_case(dtype): |
97 |
| - da = xr.DataArray(["SOme word"]).astype(dtype) |
| 98 | +def test_case_bytes(dtype): |
| 99 | + dtype = np.bytes_ |
| 100 | + |
| 101 | + da = xr.DataArray(["SOme wOrd"]).astype(dtype) |
98 | 102 | capitalized = xr.DataArray(["Some word"]).astype(dtype)
|
99 | 103 | lowered = xr.DataArray(["some word"]).astype(dtype)
|
100 |
| - swapped = xr.DataArray(["soME WORD"]).astype(dtype) |
| 104 | + swapped = xr.DataArray(["soME WoRD"]).astype(dtype) |
101 | 105 | titled = xr.DataArray(["Some Word"]).astype(dtype)
|
102 | 106 | uppered = xr.DataArray(["SOME WORD"]).astype(dtype)
|
| 107 | + |
| 108 | + assert_equal(da.str.capitalize(), capitalized) |
| 109 | + assert_equal(da.str.lower(), lowered) |
| 110 | + assert_equal(da.str.swapcase(), swapped) |
| 111 | + assert_equal(da.str.title(), titled) |
| 112 | + assert_equal(da.str.upper(), uppered) |
| 113 | + |
| 114 | + |
| 115 | +def test_case_str(dtype): |
| 116 | + dtype = np.str_ |
| 117 | + |
| 118 | + # This string includes some unicode characters |
| 119 | + # that are common case management corner cases |
| 120 | + da = xr.DataArray(["SOme wOrd DŽ ß ᾛ ΣΣ ffi⁵Å Ç Ⅰ"]).astype(dtype) |
| 121 | + capitalized = xr.DataArray(["Some word dž ß ᾓ σς ffi⁵å ç ⅰ"]).astype(dtype) |
| 122 | + lowered = xr.DataArray(["some word dž ß ᾓ σς ffi⁵å ç ⅰ"]).astype(dtype) |
| 123 | + swapped = xr.DataArray(["soME WoRD dž SS ᾛ σς FFI⁵å ç ⅰ"]).astype(dtype) |
| 124 | + titled = xr.DataArray(["Some Word Dž Ss ᾛ Σς Ffi⁵Å Ç Ⅰ"]).astype(dtype) |
| 125 | + uppered = xr.DataArray(["SOME WORD DŽ SS ἫΙ ΣΣ FFI⁵Å Ç Ⅰ"]).astype(dtype) |
| 126 | + casefolded = xr.DataArray(["some word dž ss ἣι σσ ffi⁵å ç ⅰ"]).astype(dtype) |
| 127 | + |
| 128 | + norm_nfc = xr.DataArray(["SOme wOrd DŽ ß ᾛ ΣΣ ffi⁵Å Ç Ⅰ"]).astype(dtype) |
| 129 | + norm_nfkc = xr.DataArray(["SOme wOrd DŽ ß ᾛ ΣΣ ffi5Å Ç I"]).astype(dtype) |
| 130 | + norm_nfd = xr.DataArray(["SOme wOrd DŽ ß ᾛ ΣΣ ffi⁵Å Ç Ⅰ"]).astype(dtype) |
| 131 | + norm_nfkd = xr.DataArray(["SOme wOrd DŽ ß ᾛ ΣΣ ffi5Å Ç I"]).astype(dtype) |
| 132 | + |
103 | 133 | assert_equal(da.str.capitalize(), capitalized)
|
104 | 134 | assert_equal(da.str.lower(), lowered)
|
105 | 135 | assert_equal(da.str.swapcase(), swapped)
|
106 | 136 | assert_equal(da.str.title(), titled)
|
107 | 137 | assert_equal(da.str.upper(), uppered)
|
| 138 | + assert_equal(da.str.casefold(), casefolded) |
| 139 | + |
| 140 | + assert_equal(da.str.normalize("NFC"), norm_nfc) |
| 141 | + assert_equal(da.str.normalize("NFKC"), norm_nfkc) |
| 142 | + assert_equal(da.str.normalize("NFD"), norm_nfd) |
| 143 | + assert_equal(da.str.normalize("NFKD"), norm_nfkd) |
108 | 144 |
|
109 | 145 |
|
110 | 146 | def test_replace(dtype):
|
|
0 commit comments