def setUp(self): """Setup the test. """ import os import tempfile one_channel = np.random.rand(random.randint(1, 10), random.randint(1, 10)) self.rand_img = image.Image(channels=[one_channel] * 3, mode="RGB") self.rand_img2 = image.Image(channels=[one_channel] * 3, mode="RGB", fill_value=(0, 0, 0)) two_channel = np.array([[0, 0.5, 0.5], [0.5, 0.25, 0.25]]) self.img = image.Image(channels=[two_channel] * 3, mode="RGB") self.flat_channel = [[1, 1, 1], [1, 1, 1]] self.flat_img = image.Image(channels=[self.flat_channel], mode="L", fill_value=0) self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"] self.modes_len = [1, 2, 3, 4, 3, 4, 1, 2] # create an unusable directory for permission error checking self.tempdir = tempfile.mkdtemp() os.chmod(self.tempdir, 0000)
def test_merge(self): """Merging of an empty image with another. """ newimg = image.Image() self.assertRaises(ValueError, self.img.merge, newimg) newimg = image.Image(np.array([[1, 2], [3, 4]])) self.assertRaises(ValueError, self.img.merge, newimg) newimg = image.Image(np.array([[1, 2, 3, 4]])) self.assertRaises(ValueError, self.img.merge, newimg)
def test_merge(self): """Merging of an image with another. """ newimg = image.Image() self.assertRaises(ValueError, self.img.merge, newimg) newimg = image.Image(np.array([[1, 2], [3, 4]])) self.assertRaises(ValueError, self.img.merge, newimg) newimg = image.Image(np.array([[1, 2, 3, 4]])) self.assertRaises(ValueError, self.img.merge, newimg) newimg = image.Image(np.ma.array([[1, 2, 3], [4, 5, 6]], mask=[[1, 0, 0], [1, 1, 0]]), mode="L") self.img.convert("L") newimg.merge(self.img) self.assert_( np.all( np.abs(newimg.channels[0] - np.array([[0, 2, 3], [0.5, 0.25, 6]])) < EPSILON))
def setUp(self): channel = np.ma.array([[0, 0.5, 0.5], [0.5, 0.25, 0.25]], mask=[[1, 1, 1], [1, 1, 1]]) self.img = image.Image(channels=[channel] * 3, mode="RGB") self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"]
def setUp(self): """Setup the test. """ self.img = image.Image() self.modes = ["L", "LA", "RGB", "RGBA", "YCbCr", "YCbCrA", "P", "PA"]
def test_creation(self): """Creation of an image. """ self.assertRaises(TypeError, image.Image, channels=random.randint(1, 1000)) self.assertRaises(TypeError, image.Image, channels=random.random()) self.assertRaises(TypeError, image.Image, channels=random_string(random.randint(1, 10))) chs = [ np.random.rand(random.randint(1, 10), random.randint(1, 10)), np.random.rand(random.randint(1, 10), random.randint(1, 10)), np.random.rand(random.randint(1, 10), random.randint(1, 10)), np.random.rand(random.randint(1, 10), random.randint(1, 10)) ] self.assertRaises(ValueError, image.Image, channels=chs) one_channel = np.random.rand(random.randint(1, 10), random.randint(1, 10)) i = 0 for mode in self.modes: # Empty image, no channels self.img[mode] = image.Image(mode=mode) self.assertEqual(self.img[mode].channels, []) # Empty image, no channels, fill value self.img[mode] = image.Image(mode=mode, fill_value=0) self.assertEqual(self.img[mode].channels, []) # Empty image, no channels, fill value, wrong color_range self.assertRaises(ValueError, image.Image, mode=mode, fill_value=0, color_range=((0, (1, 2)))) self.assertRaises(ValueError, image.Image, mode=mode, fill_value=0, color_range=((0, 0), (1, 2), (0, 0), (1, 2), (0, 0), (1, 2))) # Regular image, too many channels self.assertRaises(ValueError, image.Image, channels=([one_channel] * (self.modes_len[i] + 1)), mode=mode) # Regular image, not enough channels self.assertRaises(ValueError, image.Image, channels=([one_channel] * (self.modes_len[i] - 1)), mode=mode) # Regular image, channels self.img[mode] = image.Image(channels=([one_channel] * (self.modes_len[i])), mode=mode) for nb_chan in range(self.modes_len[i]): self.assert_( np.all(self.img[mode].channels[nb_chan] == one_channel)) self.assert_( isinstance(self.img[mode].channels[nb_chan], np.ma.core.MaskedArray)) i = i + 1