From 6530c9c05537200d0948a35d40a5eded7c920ac7 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Mon, 14 Apr 2025 19:20:06 +1000 Subject: [PATCH] Added additional tests --- Tests/test_image_resample.py | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py index 6acb9de23..fc22991f7 100644 --- a/Tests/test_image_resample.py +++ b/Tests/test_image_resample.py @@ -165,6 +165,32 @@ class TestImagingCoreResampleAccuracy: for channel in case.split(): self.check_case(channel, self.make_sample(data, (8, 8))) + @pytest.mark.parametrize("mode", ("RGBX", "RGB", "La", "L")) + def test_reduce_mks2013(self, mode: str) -> None: + case = self.make_case(mode, (16, 16), 0xE1) + case = case.resize((8, 8), Image.Resampling.MKS2013) + # fmt: off + data = ("e1 e1 e9 dc" + "e1 e1 e9 dc" + "e9 e9 f1 e3" + "dc dc e4 d8") + # fmt: on + for channel in case.split(): + self.check_case(channel, self.make_sample(data, (8, 8))) + + @pytest.mark.parametrize("mode", ("RGBX", "RGB", "La", "L")) + def test_reduce_mks2021(self, mode: str) -> None: + case = self.make_case(mode, (16, 16), 0xE1) + case = case.resize((8, 8), Image.Resampling.MKS2021) + # fmt: off + data = ("e1 e1 e3 d7" + "e1 e1 e3 d7" + "e3 e3 e5 d9" + "d7 d7 d9 ce") + # fmt: on + for channel in case.split(): + self.check_case(channel, self.make_sample(data, (8, 8))) + @pytest.mark.parametrize("mode", ("RGBX", "RGB", "La", "L")) def test_enlarge_box(self, mode: str) -> None: case = self.make_case(mode, (2, 2), 0xE1) @@ -226,6 +252,36 @@ class TestImagingCoreResampleAccuracy: for channel in case.split(): self.check_case(channel, self.make_sample(data, (12, 12))) + @pytest.mark.parametrize("mode", ("RGBX", "RGB", "La", "L")) + def test_enlarge_mks2013(self, mode: str) -> None: + case = self.make_case(mode, (6, 6), 0xE1) + case = case.resize((12, 12), Image.Resampling.MKS2013) + data = ( + "e1 e1 e2 ef fb be" + "e1 e1 e2 ef fb be" + "e2 e2 e3 f1 fd bf" + "ef ef f0 ff ff c7" + "fb fb fc ff ff cf" + "be be bf c7 cf a8" + ) + for channel in case.split(): + self.check_case(channel, self.make_sample(data, (12, 12))) + + @pytest.mark.parametrize("mode", ("RGBX", "RGB", "La", "L")) + def test_enlarge_mks2021(self, mode: str) -> None: + case = self.make_case(mode, (6, 6), 0xE1) + case = case.resize((12, 12), Image.Resampling.MKS2021) + data = ( + "e3 e1 df e9 f5 bb" + "e1 df dd e7 f3 b9" + "df dd db e5 f1 b8" + "e9 e7 e5 ef fc be" + "f5 f3 f0 fc ff c5" + "bb ba b8 bf c6 a3" + ) + for channel in case.split(): + self.check_case(channel, self.make_sample(data, (12, 12))) + def test_box_filter_correct_range(self) -> None: im = Image.new("RGB", (8, 8), "#1688ff").resize( (100, 100), Image.Resampling.BOX