mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +03:00 
			
		
		
		
	This is Christoph Gohlke's test suite from his personal PIL package found at http://www.lfd.uci.edu/~gohlke/pythonlibs/. This is just to bring it in as a separate commit. Future commits will align it with Pillow.
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from tester import *
 | |
| 
 | |
| from PIL import Image
 | |
| from PIL import ImageMath
 | |
| 
 | |
| def pixel(im):
 | |
|     if hasattr(im, "im"):
 | |
|         return "%s %r" % (im.mode, im.getpixel((0, 0)))
 | |
|     else:
 | |
|         if isinstance(im, type(0)):
 | |
|             return int(im) # hack to deal with booleans
 | |
|         print(im)
 | |
| 
 | |
| A = Image.new("L", (1, 1), 1)
 | |
| B = Image.new("L", (1, 1), 2)
 | |
| F = Image.new("F", (1, 1), 3)
 | |
| I = Image.new("I", (1, 1), 4)
 | |
| 
 | |
| images = {"A": A, "B": B, "F": F, "I": I}
 | |
| 
 | |
| def test_sanity():
 | |
|     assert_equal(ImageMath.eval("1"), 1)
 | |
|     assert_equal(ImageMath.eval("1+A", A=2), 3)
 | |
|     assert_equal(pixel(ImageMath.eval("A+B", A=A, B=B)), "I 3")
 | |
|     assert_equal(pixel(ImageMath.eval("A+B", images)), "I 3")
 | |
|     assert_equal(pixel(ImageMath.eval("float(A)+B", images)), "F 3.0")
 | |
|     assert_equal(pixel(ImageMath.eval("int(float(A)+B)", images)), "I 3")
 | |
| 
 | |
| def test_ops():
 | |
| 
 | |
|     assert_equal(pixel(ImageMath.eval("-A", images)), "I -1")
 | |
|     assert_equal(pixel(ImageMath.eval("+B", images)), "L 2")
 | |
| 
 | |
|     assert_equal(pixel(ImageMath.eval("A+B", images)), "I 3")
 | |
|     assert_equal(pixel(ImageMath.eval("A-B", images)), "I -1")
 | |
|     assert_equal(pixel(ImageMath.eval("A*B", images)), "I 2")
 | |
|     assert_equal(pixel(ImageMath.eval("A/B", images)), "I 0")
 | |
|     assert_equal(pixel(ImageMath.eval("B**2", images)), "I 4")
 | |
|     assert_equal(pixel(ImageMath.eval("B**33", images)), "I 2147483647")
 | |
| 
 | |
|     assert_equal(pixel(ImageMath.eval("float(A)+B", images)), "F 3.0")
 | |
|     assert_equal(pixel(ImageMath.eval("float(A)-B", images)), "F -1.0")
 | |
|     assert_equal(pixel(ImageMath.eval("float(A)*B", images)), "F 2.0")
 | |
|     assert_equal(pixel(ImageMath.eval("float(A)/B", images)), "F 0.5")
 | |
|     assert_equal(pixel(ImageMath.eval("float(B)**2", images)), "F 4.0")
 | |
|     assert_equal(pixel(ImageMath.eval("float(B)**33", images)), "F 8589934592.0")
 | |
| 
 | |
| def test_logical():
 | |
|     assert_equal(pixel(ImageMath.eval("not A", images)), 0)
 | |
|     assert_equal(pixel(ImageMath.eval("A and B", images)), "L 2")
 | |
|     assert_equal(pixel(ImageMath.eval("A or B", images)), "L 1")
 | |
| 
 | |
| def test_convert():
 | |
|     assert_equal(pixel(ImageMath.eval("convert(A+B, 'L')", images)), "L 3")
 | |
|     assert_equal(pixel(ImageMath.eval("convert(A+B, '1')", images)), "1 0")
 | |
|     assert_equal(pixel(ImageMath.eval("convert(A+B, 'RGB')", images)), "RGB (3, 3, 3)")
 | |
| 
 | |
| def test_compare():
 | |
|     assert_equal(pixel(ImageMath.eval("min(A, B)", images)), "I 1")
 | |
|     assert_equal(pixel(ImageMath.eval("max(A, B)", images)), "I 2")
 | |
|     assert_equal(pixel(ImageMath.eval("A == 1", images)), "I 1")
 | |
|     assert_equal(pixel(ImageMath.eval("A == 2", images)), "I 0")
 |