mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	To have the old API that always returns tuples, and fractions as pairs, set the `legacy_api` attribute of the IFD to True. This should alleviate concerns about backwards compatibility.
		
			
				
	
	
		
			128 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 | 
						|
 | 
						|
# End of file
 |