(self)
| 2106 | assert_equal(mx.mask, [1, 1, 0]) |
| 2107 | |
| 2108 | def test_hardmask(self): |
| 2109 | # Test hard_mask |
| 2110 | d = arange(5) |
| 2111 | n = [0, 0, 0, 1, 1] |
| 2112 | m = make_mask(n) |
| 2113 | xh = array(d, mask=m, hard_mask=True) |
| 2114 | # We need to copy, to avoid updating d in xh ! |
| 2115 | xs = array(d, mask=m, hard_mask=False, copy=True) |
| 2116 | xh[[1, 4]] = [10, 40] |
| 2117 | xs[[1, 4]] = [10, 40] |
| 2118 | assert_equal(xh._data, [0, 10, 2, 3, 4]) |
| 2119 | assert_equal(xs._data, [0, 10, 2, 3, 40]) |
| 2120 | assert_equal(xs.mask, [0, 0, 0, 1, 0]) |
| 2121 | assert_(xh._hardmask) |
| 2122 | assert_(not xs._hardmask) |
| 2123 | xh[1:4] = [10, 20, 30] |
| 2124 | xs[1:4] = [10, 20, 30] |
| 2125 | assert_equal(xh._data, [0, 10, 20, 3, 4]) |
| 2126 | assert_equal(xs._data, [0, 10, 20, 30, 40]) |
| 2127 | assert_equal(xs.mask, nomask) |
| 2128 | xh[0] = masked |
| 2129 | xs[0] = masked |
| 2130 | assert_equal(xh.mask, [1, 0, 0, 1, 1]) |
| 2131 | assert_equal(xs.mask, [1, 0, 0, 0, 0]) |
| 2132 | xh[:] = 1 |
| 2133 | xs[:] = 1 |
| 2134 | assert_equal(xh._data, [0, 1, 1, 3, 4]) |
| 2135 | assert_equal(xs._data, [1, 1, 1, 1, 1]) |
| 2136 | assert_equal(xh.mask, [1, 0, 0, 1, 1]) |
| 2137 | assert_equal(xs.mask, nomask) |
| 2138 | # Switch to soft mask |
| 2139 | xh.soften_mask() |
| 2140 | xh[:] = arange(5) |
| 2141 | assert_equal(xh._data, [0, 1, 2, 3, 4]) |
| 2142 | assert_equal(xh.mask, nomask) |
| 2143 | # Switch back to hard mask |
| 2144 | xh.harden_mask() |
| 2145 | xh[xh < 3] = masked |
| 2146 | assert_equal(xh._data, [0, 1, 2, 3, 4]) |
| 2147 | assert_equal(xh._mask, [1, 1, 1, 0, 0]) |
| 2148 | xh[filled(xh > 1, False)] = 5 |
| 2149 | assert_equal(xh._data, [0, 1, 2, 5, 5]) |
| 2150 | assert_equal(xh._mask, [1, 1, 1, 0, 0]) |
| 2151 | |
| 2152 | xh = array([[1, 2], [3, 4]], mask=[[1, 0], [0, 0]], hard_mask=True) |
| 2153 | xh[0] = 0 |
| 2154 | assert_equal(xh._data, [[1, 0], [3, 4]]) |
| 2155 | assert_equal(xh._mask, [[1, 0], [0, 0]]) |
| 2156 | xh[-1, -1] = 5 |
| 2157 | assert_equal(xh._data, [[1, 0], [3, 5]]) |
| 2158 | assert_equal(xh._mask, [[1, 0], [0, 0]]) |
| 2159 | xh[filled(xh < 5, False)] = 2 |
| 2160 | assert_equal(xh._data, [[1, 2], [2, 5]]) |
| 2161 | assert_equal(xh._mask, [[1, 0], [0, 0]]) |
| 2162 | |
| 2163 | def test_hardmask_again(self): |
| 2164 | # Another test of hardmask |
nothing calls this directly
no test coverage detected