Pillow
1from __future__ import annotations2
3import pytest4
5from PIL import Image, ImageStat6
7from .helper import hopper8
9
10def test_sanity() -> None:11im = hopper()12
13st = ImageStat.Stat(im)14st = ImageStat.Stat(im.histogram())15st = ImageStat.Stat(im, Image.new("1", im.size, 1))16
17# Check these run. Exceptions will cause failures.18st.extrema19st.sum20st.mean21st.median22st.rms23st.sum224st.var25st.stddev26
27with pytest.raises(AttributeError):28st.spam() # type: ignore[attr-defined]29
30with pytest.raises(TypeError):31ImageStat.Stat(1) # type: ignore[arg-type]32
33
34def test_hopper() -> None:35im = hopper()36
37st = ImageStat.Stat(im)38
39# verify a few values40assert st.extrema[0] == (0, 255)41assert st.median[0] == 7242assert st.sum[0] == 147021843assert st.sum[1] == 131189644assert st.sum[2] == 156300845
46
47def test_constant() -> None:48im = Image.new("L", (128, 128), 128)49
50st = ImageStat.Stat(im)51
52assert st.extrema[0] == (128, 128)53assert st.sum[0] == 128**354assert st.sum2[0] == 128**455assert st.mean[0] == 12856assert st.median[0] == 12857assert st.rms[0] == 12858assert st.var[0] == 059assert st.stddev[0] == 060