Skip to content

Commit 2c2b8aa

Browse files
committed
Add test and benchmark coverage for more Point modes
1 parent 8f86212 commit 2c2b8aa

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

Tests/benchmarks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ def test_point_lut(bench: BenchmarkFixture, mode: str, size: tuple[int, int]) ->
488488

489489

490490
@pytest.mark.benchmark(group="point")
491-
@pytest.mark.parametrize("mode", ["I", "F"])
491+
@pytest.mark.parametrize("mode", ["I", "F", "LA", "RGBA"])
492492
@pytest.mark.parametrize("size", SIZES, ids=_format_size)
493493
def test_point_transform(
494494
bench: BenchmarkFixture, mode: str, size: tuple[int, int]

Tests/test_image_point.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ def test_sanity() -> None:
3939
im.point(lambda x: x // 2)
4040

4141

42+
@pytest.mark.parametrize("mode", ("LA", "RGBA", "CMYK"))
43+
def test_multiband(mode: str) -> None:
44+
# Exercises im_point_2x8_2x8 (2 bands) and im_point_4x8_4x8 (4 bands)
45+
im = hopper(mode)
46+
lut = [(x + 1) % 256 for x in range(256)] * len(im.getbands())
47+
out = im.point(lut)
48+
49+
assert out.mode == mode
50+
assert isinstance(px := im.getpixel((0, 0)), tuple) # Placate mypy
51+
expected_px = tuple((v + 1) % 256 for v in px)
52+
assert out.getpixel((0, 0)) == expected_px
53+
54+
4255
def test_16bit_lut() -> None:
4356
"""Tests for 16 bit -> 8 bit lut for converting I->L images
4457
see https://github.com/python-pillow/Pillow/issues/440

0 commit comments

Comments
 (0)