Pillow/Tests/test_imagestat.py

64 lines
1.5 KiB
Python
Raw Normal View History

2014-07-07 21:03:50 +04:00
from helper import unittest, PillowTestCase, lena
from PIL import Image
from PIL import ImageStat
2014-06-10 13:10:47 +04:00
class TestImageStat(PillowTestCase):
2014-06-10 13:10:47 +04:00
def test_sanity(self):
2014-06-10 13:10:47 +04:00
im = lena()
2014-06-10 13:10:47 +04:00
st = ImageStat.Stat(im)
st = ImageStat.Stat(im.histogram())
st = ImageStat.Stat(im, Image.new("1", im.size, 1))
2014-06-10 13:10:47 +04:00
# Check these run. Exceptions will cause failures.
st.extrema
st.sum
st.mean
st.median
st.rms
st.sum2
st.var
st.stddev
2014-06-10 13:10:47 +04:00
self.assertRaises(AttributeError, lambda: st.spam)
2014-06-10 13:10:47 +04:00
self.assertRaises(TypeError, lambda: ImageStat.Stat(1))
2014-06-10 13:10:47 +04:00
def test_lena(self):
2014-06-10 13:10:47 +04:00
im = lena()
2014-06-10 13:10:47 +04:00
st = ImageStat.Stat(im)
2014-06-10 13:10:47 +04:00
# verify a few values
self.assertEqual(st.extrema[0], (61, 255))
self.assertEqual(st.median[0], 197)
self.assertEqual(st.sum[0], 2954416)
self.assertEqual(st.sum[1], 2027250)
self.assertEqual(st.sum[2], 1727331)
2014-06-10 13:10:47 +04:00
def test_constant(self):
im = Image.new("L", (128, 128), 128)
st = ImageStat.Stat(im)
self.assertEqual(st.extrema[0], (128, 128))
self.assertEqual(st.sum[0], 128**3)
self.assertEqual(st.sum2[0], 128**4)
self.assertEqual(st.mean[0], 128)
self.assertEqual(st.median[0], 128)
self.assertEqual(st.rms[0], 128)
self.assertEqual(st.var[0], 0)
self.assertEqual(st.stddev[0], 0)
if __name__ == '__main__':
unittest.main()
# End of file