def test_copy(self, deep: bool): cont = ImageContainer(np.random.normal(size=(10, 10))) sentinel = object() cont.data.attrs["sentinel"] = sentinel copy = cont.copy(deep=deep) if deep: assert not np.shares_memory(copy["image"].values, cont["image"].values) assert copy.data.attrs["sentinel"] is not sentinel else: assert np.shares_memory(copy["image"].values, cont["image"].values) assert copy.data.attrs["sentinel"] is sentinel
def test_apply(self, copy: bool, channel: Optional[int]): cont = ImageContainer(np.random.normal(size=(100, 100, 3))) orig = cont.copy() res = cont.apply(lambda arr: arr + 42, channel=channel, copy=copy) if copy: assert isinstance(res, ImageContainer) data = res["image"] else: assert res is None assert len(cont) == 1 data = cont["image"] if channel is None: np.testing.assert_allclose(data.values, orig["image"].values + 42) else: np.testing.assert_allclose(data.values[..., 0], orig["image"].values[..., channel] + 42)