def test_merge_fail(self): image1 = Image(data=np.zeros((4, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1)) image2 = Image(data=np.zeros((3, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1)) with pytest.raises(ValueError): image1.merge(image2, "C")
def test_different_axes_order(self): image1 = Image(data=np.zeros((3, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1)) image2 = ChangeChannelPosImage(data=np.zeros((3, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1)) res_image = image1.merge(image2, "C") assert res_image.channels == 2 assert isinstance(res_image, Image) assert isinstance(image2.merge(image1, "C"), ChangeChannelPosImage)
def test_merge_chanel(self, chanel_mark, check_dtype): image1 = Image(data=np.zeros((3, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1)) image2 = Image(data=np.ones((3, 10, 10), dtype=check_dtype), axes_order="ZXY", image_spacing=(1, 1, 1)) res_image = image1.merge(image2, chanel_mark) assert res_image.channels == 2 assert np.all(res_image.get_channel(0) == 0) assert np.all(res_image.get_channel(1) == 1) assert res_image.dtype == check_dtype
def test_merge_channel_name(self): image1 = Image( data=np.zeros((4, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1), channel_names=["channel 1"], ) image2 = Image( data=np.zeros((4, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1), channel_names=["channel 1"], ) image3 = Image( data=np.zeros((4, 10, 10), dtype=np.uint8), axes_order="ZXY", image_spacing=(1, 1, 1), channel_names=["channel 5"], ) res_image = image1.merge(image2, "C") assert res_image.channel_names == ["channel 1", "channel 2"] res_image = image1.merge(image3, "C") assert res_image.channel_names == ["channel 1", "channel 5"]