MCPcopy Create free account
hub / github.com/numpy/numpy / test_hardmask

Method test_hardmask

numpy/ma/tests/test_core.py:1941–1994  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1939 assert_equal(mx.mask, [1, 1, 0])
1940
1941 def test_hardmask(self):
1942 # Test hard_mask
1943 d = arange(5)
1944 n = [0, 0, 0, 1, 1]
1945 m = make_mask(n)
1946 xh = array(d, mask=m, hard_mask=True)
1947 # We need to copy, to avoid updating d in xh !
1948 xs = array(d, mask=m, hard_mask=False, copy=True)
1949 xh[[1, 4]] = [10, 40]
1950 xs[[1, 4]] = [10, 40]
1951 assert_equal(xh._data, [0, 10, 2, 3, 4])
1952 assert_equal(xs._data, [0, 10, 2, 3, 40])
1953 assert_equal(xs.mask, [0, 0, 0, 1, 0])
1954 assert_(xh._hardmask)
1955 assert_(not xs._hardmask)
1956 xh[1:4] = [10, 20, 30]
1957 xs[1:4] = [10, 20, 30]
1958 assert_equal(xh._data, [0, 10, 20, 3, 4])
1959 assert_equal(xs._data, [0, 10, 20, 30, 40])
1960 assert_equal(xs.mask, nomask)
1961 xh[0] = masked
1962 xs[0] = masked
1963 assert_equal(xh.mask, [1, 0, 0, 1, 1])
1964 assert_equal(xs.mask, [1, 0, 0, 0, 0])
1965 xh[:] = 1
1966 xs[:] = 1
1967 assert_equal(xh._data, [0, 1, 1, 3, 4])
1968 assert_equal(xs._data, [1, 1, 1, 1, 1])
1969 assert_equal(xh.mask, [1, 0, 0, 1, 1])
1970 assert_equal(xs.mask, nomask)
1971 # Switch to soft mask
1972 xh.soften_mask()
1973 xh[:] = arange(5)
1974 assert_equal(xh._data, [0, 1, 2, 3, 4])
1975 assert_equal(xh.mask, nomask)
1976 # Switch back to hard mask
1977 xh.harden_mask()
1978 xh[xh < 3] = masked
1979 assert_equal(xh._data, [0, 1, 2, 3, 4])
1980 assert_equal(xh._mask, [1, 1, 1, 0, 0])
1981 xh[filled(xh > 1, False)] = 5
1982 assert_equal(xh._data, [0, 1, 2, 5, 5])
1983 assert_equal(xh._mask, [1, 1, 1, 0, 0])
1984
1985 xh = array([[1, 2], [3, 4]], mask=[[1, 0], [0, 0]], hard_mask=True)
1986 xh[0] = 0
1987 assert_equal(xh._data, [[1, 0], [3, 4]])
1988 assert_equal(xh._mask, [[1, 0], [0, 0]])
1989 xh[-1, -1] = 5
1990 assert_equal(xh._data, [[1, 0], [3, 5]])
1991 assert_equal(xh._mask, [[1, 0], [0, 0]])
1992 xh[filled(xh < 5, False)] = 2
1993 assert_equal(xh._data, [[1, 2], [2, 5]])
1994 assert_equal(xh._mask, [[1, 0], [0, 0]])
1995
1996 def test_hardmask_again(self):
1997 # Another test of hardmask

Callers

nothing calls this directly

Calls 8

make_maskFunction · 0.90
arrayFunction · 0.90
assert_equalFunction · 0.90
filledFunction · 0.90
arangeFunction · 0.85
assert_Function · 0.50
soften_maskMethod · 0.45
harden_maskMethod · 0.45

Tested by

no test coverage detected