from .helper import unittest, PillowTestCase from PIL import GimpGradientFile class TestImage(PillowTestCase): def test_linear_pos_le_middle(self): # Arrange middle = 0.5 pos = 0.25 # Act ret = GimpGradientFile.linear(middle, pos) # Assert self.assertEqual(ret, 0.25) def test_linear_pos_le_small_middle(self): # Arrange middle = 1e-11 pos = 1e-12 # Act ret = GimpGradientFile.linear(middle, pos) # Assert self.assertEqual(ret, 0.0) def test_linear_pos_gt_middle(self): # Arrange middle = 0.5 pos = 0.75 # Act ret = GimpGradientFile.linear(middle, pos) # Assert self.assertEqual(ret, 0.75) def test_linear_pos_gt_small_middle(self): # Arrange middle = 1 - 1e-11 pos = 1 - 1e-12 # Act ret = GimpGradientFile.linear(middle, pos) # Assert self.assertEqual(ret, 1.0) def test_curved(self): # Arrange middle = 0.5 pos = 0.75 # Act ret = GimpGradientFile.curved(middle, pos) # Assert self.assertEqual(ret, 0.75) def test_sine(self): # Arrange middle = 0.5 pos = 0.75 # Act ret = GimpGradientFile.sine(middle, pos) # Assert self.assertEqual(ret, 0.8535533905932737) def test_sphere_increasing(self): # Arrange middle = 0.5 pos = 0.75 # Act ret = GimpGradientFile.sphere_increasing(middle, pos) # Assert self.assertAlmostEqual(ret, 0.9682458365518543) def test_sphere_decreasing(self): # Arrange middle = 0.5 pos = 0.75 # Act ret = GimpGradientFile.sphere_decreasing(middle, pos) # Assert self.assertEqual(ret, 0.3385621722338523) def test_load_via_imagepalette(self): # Arrange from PIL import ImagePalette test_file = "Tests/images/gimp_gradient.ggr" # Act palette = ImagePalette.load(test_file) # Assert # load returns raw palette information self.assertEqual(len(palette[0]), 1024) self.assertEqual(palette[1], "RGBA") def test_load_1_3_via_imagepalette(self): # Arrange from PIL import ImagePalette # GIMP 1.3 gradient files contain a name field test_file = "Tests/images/gimp_gradient_with_name.ggr" # Act palette = ImagePalette.load(test_file) # Assert # load returns raw palette information self.assertEqual(len(palette[0]), 1024) self.assertEqual(palette[1], "RGBA") if __name__ == '__main__': unittest.main()