test that getter and setter go via baseclass
(self)
| 288 | assert_equal(mxsub._mask, m) |
| 289 | |
| 290 | def test_subclass_items(self): |
| 291 | """test that getter and setter go via baseclass""" |
| 292 | x = np.arange(5) |
| 293 | xcsub = ComplicatedSubArray(x) |
| 294 | mxcsub = masked_array(xcsub, mask=[True, False, True, False, False]) |
| 295 | # getter should return a ComplicatedSubArray, even for single item |
| 296 | # first check we wrote ComplicatedSubArray correctly |
| 297 | assert_(isinstance(xcsub[1], ComplicatedSubArray)) |
| 298 | assert_(isinstance(xcsub[1,...], ComplicatedSubArray)) |
| 299 | assert_(isinstance(xcsub[1:4], ComplicatedSubArray)) |
| 300 | |
| 301 | # now that it propagates inside the MaskedArray |
| 302 | assert_(isinstance(mxcsub[1], ComplicatedSubArray)) |
| 303 | assert_(isinstance(mxcsub[1,...].data, ComplicatedSubArray)) |
| 304 | assert_(mxcsub[0] is masked) |
| 305 | assert_(isinstance(mxcsub[0,...].data, ComplicatedSubArray)) |
| 306 | assert_(isinstance(mxcsub[1:4].data, ComplicatedSubArray)) |
| 307 | |
| 308 | # also for flattened version (which goes via MaskedIterator) |
| 309 | assert_(isinstance(mxcsub.flat[1].data, ComplicatedSubArray)) |
| 310 | assert_(mxcsub.flat[0] is masked) |
| 311 | assert_(isinstance(mxcsub.flat[1:4].base, ComplicatedSubArray)) |
| 312 | |
| 313 | # setter should only work with ComplicatedSubArray input |
| 314 | # first check we wrote ComplicatedSubArray correctly |
| 315 | assert_raises(ValueError, xcsub.__setitem__, 1, x[4]) |
| 316 | # now that it propagates inside the MaskedArray |
| 317 | assert_raises(ValueError, mxcsub.__setitem__, 1, x[4]) |
| 318 | assert_raises(ValueError, mxcsub.__setitem__, slice(1, 4), x[1:4]) |
| 319 | mxcsub[1] = xcsub[4] |
| 320 | mxcsub[1:4] = xcsub[1:4] |
| 321 | # also for flattened version (which goes via MaskedIterator) |
| 322 | assert_raises(ValueError, mxcsub.flat.__setitem__, 1, x[4]) |
| 323 | assert_raises(ValueError, mxcsub.flat.__setitem__, slice(1, 4), x[1:4]) |
| 324 | mxcsub.flat[1] = xcsub[4] |
| 325 | mxcsub.flat[1:4] = xcsub[1:4] |
| 326 | |
| 327 | def test_subclass_nomask_items(self): |
| 328 | x = np.arange(5) |
nothing calls this directly
no test coverage detected