diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py index 62e38e002..7d08f7ec4 100644 --- a/Tests/test_image_resample.py +++ b/Tests/test_image_resample.py @@ -152,12 +152,12 @@ class TestImagingCoreResampleAccuracy(PillowTestCase): class CoreResampleConsistencyTest(PillowTestCase): - def test_8u(self): - im = Image.new('RGB', (512, 9), (0, 64, 255)) - im = im.resize((9, 512), Image.LANCZOS) - r, g, b = im.split() + def make_case(self, mode, fill): + im = Image.new(mode, (512, 9), fill) + return (im.resize((9, 512), Image.LANCZOS), im.load()[0, 0]) - for channel, color in [(r, 0), (g, 64), (b, 255)]: + def run_cases(self, cases): + for channel, color in cases: px = channel.load() for x in range(channel.size[0]): for y in range(channel.size[1]): @@ -166,6 +166,26 @@ class CoreResampleConsistencyTest(PillowTestCase): px[x, y], color, (x, y)) self.assertEqual(px[x, y], color, message) + def test_8u(self): + im, color = self.make_case('RGB', (0, 64, 255)) + self.run_cases(zip(im.split(), color)) + + def test_32i(self): + self.run_cases([ + self.make_case('I', 12), + self.make_case('I', 0x7fffffff), + self.make_case('I', -12), + self.make_case('I', -1 << 31), + ]) + + def test_32f(self): + self.run_cases([ + self.make_case('F', 1), + self.make_case('F', 3.40282306074e+38), + self.make_case('F', 1.175494e-38), + self.make_case('F', 1.192093e-07), + ]) + if __name__ == '__main__': unittest.main()