mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-24 15:50:33 +03:00
Convert more tests
This commit is contained in:
parent
133120c6a6
commit
82df06243c
24
test/test_image_tobitmap.py
Normal file
24
test/test_image_tobitmap.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
from helper import unittest, PillowTestCase, lena
|
||||
|
||||
from PIL import Image
|
||||
|
||||
|
||||
class TestImage(PillowTestCase):
|
||||
|
||||
def test_sanity(self):
|
||||
|
||||
self.assertRaises(ValueError, lambda: lena().tobitmap())
|
||||
assert_no_exception(lambda: lena().convert("1").tobitmap())
|
||||
|
||||
im1 = lena().convert("1")
|
||||
|
||||
bitmap = im1.tobitmap()
|
||||
|
||||
assert_true(isinstance(bitmap, bytes))
|
||||
assert_image_equal(im1, fromstring(bitmap))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
# End of file
|
74
test/test_imagechops.py
Normal file
74
test/test_imagechops.py
Normal file
|
@ -0,0 +1,74 @@
|
|||
from helper import unittest, PillowTestCase, lena
|
||||
|
||||
from PIL import Image
|
||||
from PIL import ImageChops
|
||||
|
||||
|
||||
class TestImage(PillowTestCase):
|
||||
|
||||
def test_sanity(self):
|
||||
|
||||
im = lena("L")
|
||||
|
||||
ImageChops.constant(im, 128)
|
||||
ImageChops.duplicate(im)
|
||||
ImageChops.invert(im)
|
||||
ImageChops.lighter(im, im)
|
||||
ImageChops.darker(im, im)
|
||||
ImageChops.difference(im, im)
|
||||
ImageChops.multiply(im, im)
|
||||
ImageChops.screen(im, im)
|
||||
|
||||
ImageChops.add(im, im)
|
||||
ImageChops.add(im, im, 2.0)
|
||||
ImageChops.add(im, im, 2.0, 128)
|
||||
ImageChops.subtract(im, im)
|
||||
ImageChops.subtract(im, im, 2.0)
|
||||
ImageChops.subtract(im, im, 2.0, 128)
|
||||
|
||||
ImageChops.add_modulo(im, im)
|
||||
ImageChops.subtract_modulo(im, im)
|
||||
|
||||
ImageChops.blend(im, im, 0.5)
|
||||
ImageChops.composite(im, im, im)
|
||||
|
||||
ImageChops.offset(im, 10)
|
||||
ImageChops.offset(im, 10, 20)
|
||||
|
||||
def test_logical(self):
|
||||
|
||||
def table(op, a, b):
|
||||
out = []
|
||||
for x in (a, b):
|
||||
imx = Image.new("1", (1, 1), x)
|
||||
for y in (a, b):
|
||||
imy = Image.new("1", (1, 1), y)
|
||||
out.append(op(imx, imy).getpixel((0, 0)))
|
||||
return tuple(out)
|
||||
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_and, 0, 1), (0, 0, 0, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_or, 0, 1), (0, 255, 255, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_xor, 0, 1), (0, 255, 255, 0))
|
||||
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_and, 0, 128), (0, 0, 0, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_or, 0, 128), (0, 255, 255, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_xor, 0, 128), (0, 255, 255, 0))
|
||||
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_and, 0, 255), (0, 0, 0, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_or, 0, 255), (0, 255, 255, 255))
|
||||
self.assertEqual(
|
||||
table(ImageChops.logical_xor, 0, 255), (0, 255, 255, 0))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
# End of file
|
78
test/test_imagemath.py
Normal file
78
test/test_imagemath.py
Normal file
|
@ -0,0 +1,78 @@
|
|||
from helper import unittest, PillowTestCase
|
||||
|
||||
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}
|
||||
|
||||
|
||||
class TestImageMath(PillowTestCase):
|
||||
|
||||
def test_sanity(self):
|
||||
self.assertEqual(ImageMath.eval("1"), 1)
|
||||
self.assertEqual(ImageMath.eval("1+A", A=2), 3)
|
||||
self.assertEqual(pixel(ImageMath.eval("A+B", A=A, B=B)), "I 3")
|
||||
self.assertEqual(pixel(ImageMath.eval("A+B", images)), "I 3")
|
||||
self.assertEqual(pixel(ImageMath.eval("float(A)+B", images)), "F 3.0")
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("int(float(A)+B)", images)), "I 3")
|
||||
|
||||
def test_ops(self):
|
||||
|
||||
self.assertEqual(pixel(ImageMath.eval("-A", images)), "I -1")
|
||||
self.assertEqual(pixel(ImageMath.eval("+B", images)), "L 2")
|
||||
|
||||
self.assertEqual(pixel(ImageMath.eval("A+B", images)), "I 3")
|
||||
self.assertEqual(pixel(ImageMath.eval("A-B", images)), "I -1")
|
||||
self.assertEqual(pixel(ImageMath.eval("A*B", images)), "I 2")
|
||||
self.assertEqual(pixel(ImageMath.eval("A/B", images)), "I 0")
|
||||
self.assertEqual(pixel(ImageMath.eval("B**2", images)), "I 4")
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("B**33", images)), "I 2147483647")
|
||||
|
||||
self.assertEqual(pixel(ImageMath.eval("float(A)+B", images)), "F 3.0")
|
||||
self.assertEqual(pixel(ImageMath.eval("float(A)-B", images)), "F -1.0")
|
||||
self.assertEqual(pixel(ImageMath.eval("float(A)*B", images)), "F 2.0")
|
||||
self.assertEqual(pixel(ImageMath.eval("float(A)/B", images)), "F 0.5")
|
||||
self.assertEqual(pixel(ImageMath.eval("float(B)**2", images)), "F 4.0")
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("float(B)**33", images)), "F 8589934592.0")
|
||||
|
||||
def test_logical(self):
|
||||
self.assertEqual(pixel(ImageMath.eval("not A", images)), 0)
|
||||
self.assertEqual(pixel(ImageMath.eval("A and B", images)), "L 2")
|
||||
self.assertEqual(pixel(ImageMath.eval("A or B", images)), "L 1")
|
||||
|
||||
def test_convert(self):
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("convert(A+B, 'L')", images)), "L 3")
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("convert(A+B, '1')", images)), "1 0")
|
||||
self.assertEqual(pixel(
|
||||
ImageMath.eval("convert(A+B, 'RGB')", images)), "RGB (3, 3, 3)")
|
||||
|
||||
def test_compare(self):
|
||||
self.assertEqual(pixel(ImageMath.eval("min(A, B)", images)), "I 1")
|
||||
self.assertEqual(pixel(ImageMath.eval("max(A, B)", images)), "I 2")
|
||||
self.assertEqual(pixel(ImageMath.eval("A == 1", images)), "I 1")
|
||||
self.assertEqual(pixel(ImageMath.eval("A == 2", images)), "I 0")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
# End of file
|
Loading…
Reference in New Issue
Block a user