mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Continuation line under-indented for visual indent
This commit is contained in:
		
							parent
							
								
									0832f9c58b
								
							
						
					
					
						commit
						ce5d0e72b2
					
				| 
						 | 
					@ -83,7 +83,8 @@ class TestFileWebpAnimation(PillowTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        temp_file1 = self.tempfile("temp.webp")
 | 
					        temp_file1 = self.tempfile("temp.webp")
 | 
				
			||||||
        frame1.copy().save(temp_file1,
 | 
					        frame1.copy().save(temp_file1,
 | 
				
			||||||
            save_all=True, append_images=[frame2], lossless=True)
 | 
					                           save_all=True, append_images=[frame2],
 | 
				
			||||||
 | 
					                           lossless=True)
 | 
				
			||||||
        check(temp_file1)
 | 
					        check(temp_file1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Tests appending using a generator
 | 
					        # Tests appending using a generator
 | 
				
			||||||
| 
						 | 
					@ -92,7 +93,8 @@ class TestFileWebpAnimation(PillowTestCase):
 | 
				
			||||||
                yield im
 | 
					                yield im
 | 
				
			||||||
        temp_file2 = self.tempfile("temp_generator.webp")
 | 
					        temp_file2 = self.tempfile("temp_generator.webp")
 | 
				
			||||||
        frame1.copy().save(temp_file2,
 | 
					        frame1.copy().save(temp_file2,
 | 
				
			||||||
            save_all=True, append_images=imGenerator([frame2]), lossless=True)
 | 
					                           save_all=True, append_images=imGenerator([frame2]),
 | 
				
			||||||
 | 
					                           lossless=True)
 | 
				
			||||||
        check(temp_file2)
 | 
					        check(temp_file2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_timestamp_and_duration(self):
 | 
					    def test_timestamp_and_duration(self):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,15 +39,15 @@ class TestImagingCoreResize(PillowTestCase):
 | 
				
			||||||
            self.assertEqual(r.im.bands, im.im.bands)
 | 
					            self.assertEqual(r.im.bands, im.im.bands)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_reduce_filters(self):
 | 
					    def test_reduce_filters(self):
 | 
				
			||||||
        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING,
 | 
					        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR,
 | 
				
			||||||
                Image.BICUBIC, Image.LANCZOS]:
 | 
					                  Image.HAMMING, Image.BICUBIC, Image.LANCZOS]:
 | 
				
			||||||
            r = self.resize(hopper("RGB"), (15, 12), f)
 | 
					            r = self.resize(hopper("RGB"), (15, 12), f)
 | 
				
			||||||
            self.assertEqual(r.mode, "RGB")
 | 
					            self.assertEqual(r.mode, "RGB")
 | 
				
			||||||
            self.assertEqual(r.size, (15, 12))
 | 
					            self.assertEqual(r.size, (15, 12))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_enlarge_filters(self):
 | 
					    def test_enlarge_filters(self):
 | 
				
			||||||
        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING,
 | 
					        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR,
 | 
				
			||||||
                Image.BICUBIC, Image.LANCZOS]:
 | 
					                  Image.HAMMING, Image.BICUBIC, Image.LANCZOS]:
 | 
				
			||||||
            r = self.resize(hopper("RGB"), (212, 195), f)
 | 
					            r = self.resize(hopper("RGB"), (212, 195), f)
 | 
				
			||||||
            self.assertEqual(r.mode, "RGB")
 | 
					            self.assertEqual(r.mode, "RGB")
 | 
				
			||||||
            self.assertEqual(r.size, (212, 195))
 | 
					            self.assertEqual(r.size, (212, 195))
 | 
				
			||||||
| 
						 | 
					@ -66,8 +66,8 @@ class TestImagingCoreResize(PillowTestCase):
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        samples['dirty'].putpixel((1, 1), 128)
 | 
					        samples['dirty'].putpixel((1, 1), 128)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING,
 | 
					        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR,
 | 
				
			||||||
                Image.BICUBIC, Image.LANCZOS]:
 | 
					                  Image.HAMMING, Image.BICUBIC, Image.LANCZOS]:
 | 
				
			||||||
            # samples resized with current filter
 | 
					            # samples resized with current filter
 | 
				
			||||||
            references = {
 | 
					            references = {
 | 
				
			||||||
                name: self.resize(ch, (4, 4), f)
 | 
					                name: self.resize(ch, (4, 4), f)
 | 
				
			||||||
| 
						 | 
					@ -90,8 +90,8 @@ class TestImagingCoreResize(PillowTestCase):
 | 
				
			||||||
                        self.assert_image_equal(ch, references[channels[i]])
 | 
					                        self.assert_image_equal(ch, references[channels[i]])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_enlarge_zero(self):
 | 
					    def test_enlarge_zero(self):
 | 
				
			||||||
        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING,
 | 
					        for f in [Image.NEAREST, Image.BOX, Image.BILINEAR,
 | 
				
			||||||
                Image.BICUBIC, Image.LANCZOS]:
 | 
					                  Image.HAMMING, Image.BICUBIC, Image.LANCZOS]:
 | 
				
			||||||
            r = self.resize(Image.new('RGB', (0, 0), "white"), (212, 195), f)
 | 
					            r = self.resize(Image.new('RGB', (0, 0), "white"), (212, 195), f)
 | 
				
			||||||
            self.assertEqual(r.mode, "RGB")
 | 
					            self.assertEqual(r.mode, "RGB")
 | 
				
			||||||
            self.assertEqual(r.size, (212, 195))
 | 
					            self.assertEqual(r.size, (212, 195))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,13 +17,11 @@ class TestImageOpsUsm(PillowTestCase):
 | 
				
			||||||
        self.assertEqual(i.mode, "RGB")
 | 
					        self.assertEqual(i.mode, "RGB")
 | 
				
			||||||
        self.assertEqual(i.size, (128, 128))
 | 
					        self.assertEqual(i.size, (128, 128))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        i = self.assert_warning(DeprecationWarning,
 | 
					        i = self.assert_warning(DeprecationWarning, ImageOps.box_blur, im, 1)
 | 
				
			||||||
            ImageOps.box_blur, im, 1)
 | 
					 | 
				
			||||||
        self.assertEqual(i.mode, "RGB")
 | 
					        self.assertEqual(i.mode, "RGB")
 | 
				
			||||||
        self.assertEqual(i.size, (128, 128))
 | 
					        self.assertEqual(i.size, (128, 128))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        i = self.assert_warning(DeprecationWarning,
 | 
					        i = self.assert_warning(DeprecationWarning, ImageOps.gblur, im, 2.0)
 | 
				
			||||||
            ImageOps.gblur, im, 2.0)
 | 
					 | 
				
			||||||
        self.assertEqual(i.mode, "RGB")
 | 
					        self.assertEqual(i.mode, "RGB")
 | 
				
			||||||
        self.assertEqual(i.size, (128, 128))
 | 
					        self.assertEqual(i.size, (128, 128))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,14 +57,18 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGB(self):
 | 
					    def test_RGB(self):
 | 
				
			||||||
        self.assert_pack("RGB", "RGB", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
					        self.assert_pack("RGB", "RGB", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
				
			||||||
        self.assert_pack("RGB", "RGBX",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGB", "RGBX",
 | 
				
			||||||
            b'\x01\x02\x03\xff\x05\x06\x07\xff', (1, 2, 3), (5, 6, 7))
 | 
					            b'\x01\x02\x03\xff\x05\x06\x07\xff', (1, 2, 3), (5, 6, 7))
 | 
				
			||||||
        self.assert_pack("RGB", "XRGB",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGB", "XRGB",
 | 
				
			||||||
            b'\x00\x02\x03\x04\x00\x06\x07\x08', (2, 3, 4), (6, 7, 8))
 | 
					            b'\x00\x02\x03\x04\x00\x06\x07\x08', (2, 3, 4), (6, 7, 8))
 | 
				
			||||||
        self.assert_pack("RGB", "BGR", 3, (3, 2, 1), (6, 5, 4), (9, 8, 7))
 | 
					        self.assert_pack("RGB", "BGR", 3, (3, 2, 1), (6, 5, 4), (9, 8, 7))
 | 
				
			||||||
        self.assert_pack("RGB", "BGRX",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGB", "BGRX",
 | 
				
			||||||
            b'\x01\x02\x03\x00\x05\x06\x07\x00', (3, 2, 1), (7, 6, 5))
 | 
					            b'\x01\x02\x03\x00\x05\x06\x07\x00', (3, 2, 1), (7, 6, 5))
 | 
				
			||||||
        self.assert_pack("RGB", "XBGR",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGB", "XBGR",
 | 
				
			||||||
            b'\x00\x02\x03\x04\x00\x06\x07\x08', (4, 3, 2), (8, 7, 6))
 | 
					            b'\x00\x02\x03\x04\x00\x06\x07\x08', (4, 3, 2), (8, 7, 6))
 | 
				
			||||||
        self.assert_pack("RGB", "RGB;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
					        self.assert_pack("RGB", "RGB;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
				
			||||||
        self.assert_pack("RGB", "R", 1, (1, 9, 9), (2, 9, 9), (3, 9, 9))
 | 
					        self.assert_pack("RGB", "R", 1, (1, 9, 9), (2, 9, 9), (3, 9, 9))
 | 
				
			||||||
| 
						 | 
					@ -72,17 +76,19 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
        self.assert_pack("RGB", "B", 1, (9, 9, 1), (9, 9, 2), (9, 9, 3))
 | 
					        self.assert_pack("RGB", "B", 1, (9, 9, 1), (9, 9, 2), (9, 9, 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBA(self):
 | 
					    def test_RGBA(self):
 | 
				
			||||||
        self.assert_pack("RGBA", "RGBA", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "RGBA", "RGBA", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_pack("RGBA", "RGBA;L", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					            "RGBA", "RGBA;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_pack("RGBA", "RGB", 3, (1, 2, 3, 14), (4, 5, 6, 15), (7, 8, 9, 16))
 | 
					        self.assert_pack("RGBA", "RGB", 3, (1, 2, 3, 14), (4, 5, 6, 15), (7, 8, 9, 16))
 | 
				
			||||||
        self.assert_pack("RGBA", "BGR", 3, (3, 2, 1, 14), (6, 5, 4, 15), (9, 8, 7, 16))
 | 
					        self.assert_pack("RGBA", "BGR", 3, (3, 2, 1, 14), (6, 5, 4, 15), (9, 8, 7, 16))
 | 
				
			||||||
        self.assert_pack("RGBA", "BGRA", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGBA", "BGRA", 4,
 | 
				
			||||||
            (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
					            (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
				
			||||||
        self.assert_pack("RGBA", "ABGR", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
					            "RGBA", "ABGR", 4, (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
				
			||||||
        self.assert_pack("RGBA", "BGRa", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGBA", "BGRa", 4,
 | 
				
			||||||
            (191, 127, 63, 4), (223, 191, 159, 8), (233, 212, 191, 12))
 | 
					            (191, 127, 63, 4), (223, 191, 159, 8), (233, 212, 191, 12))
 | 
				
			||||||
        self.assert_pack("RGBA", "R", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
					        self.assert_pack("RGBA", "R", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
				
			||||||
        self.assert_pack("RGBA", "G", 1, (6, 1, 8, 9), (6, 2, 8, 9), (6, 3, 8, 9))
 | 
					        self.assert_pack("RGBA", "G", 1, (6, 1, 8, 9), (6, 2, 8, 9), (6, 3, 8, 9))
 | 
				
			||||||
| 
						 | 
					@ -90,22 +96,24 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
        self.assert_pack("RGBA", "A", 1, (6, 7, 0, 1), (6, 7, 0, 2), (0, 7, 0, 3))
 | 
					        self.assert_pack("RGBA", "A", 1, (6, 7, 0, 1), (6, 7, 0, 2), (0, 7, 0, 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBa(self):
 | 
					    def test_RGBa(self):
 | 
				
			||||||
        self.assert_pack("RGBa", "RGBa", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "RGBa", "RGBa", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_pack("RGBa", "BGRa", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
					            "RGBa", "BGRa", 4, (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
				
			||||||
        self.assert_pack("RGBa", "aBGR", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
					            "RGBa", "aBGR", 4, (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBX(self):
 | 
					    def test_RGBX(self):
 | 
				
			||||||
        self.assert_pack("RGBX", "RGBX", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					        self.assert_pack("RGBX", "RGBX", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_pack("RGBX", "RGBX;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					        self.assert_pack("RGBX", "RGBX;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_pack("RGBX", "RGB", 3, (1, 2, 3, X), (4, 5, 6, X), (7, 8, 9, X))
 | 
					        self.assert_pack("RGBX", "RGB", 3, (1, 2, 3, X), (4, 5, 6, X), (7, 8, 9, X))
 | 
				
			||||||
        self.assert_pack("RGBX", "BGR", 3, (3, 2, 1, X), (6, 5, 4, X), (9, 8, 7, X))
 | 
					        self.assert_pack("RGBX", "BGR", 3, (3, 2, 1, X), (6, 5, 4, X), (9, 8, 7, X))
 | 
				
			||||||
        self.assert_pack("RGBX", "BGRX",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGBX", "BGRX",
 | 
				
			||||||
            b'\x01\x02\x03\x00\x05\x06\x07\x00\t\n\x0b\x00',
 | 
					            b'\x01\x02\x03\x00\x05\x06\x07\x00\t\n\x0b\x00',
 | 
				
			||||||
            (3, 2, 1, X), (7, 6, 5, X), (11, 10, 9, X))
 | 
					            (3, 2, 1, X), (7, 6, 5, X), (11, 10, 9, X))
 | 
				
			||||||
        self.assert_pack("RGBX", "XBGR",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "RGBX", "XBGR",
 | 
				
			||||||
            b'\x00\x02\x03\x04\x00\x06\x07\x08\x00\n\x0b\x0c',
 | 
					            b'\x00\x02\x03\x04\x00\x06\x07\x08\x00\n\x0b\x0c',
 | 
				
			||||||
            (4, 3, 2, X), (8, 7, 6, X), (12, 11, 10, X))
 | 
					            (4, 3, 2, X), (8, 7, 6, X), (12, 11, 10, X))
 | 
				
			||||||
        self.assert_pack("RGBX", "R", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
					        self.assert_pack("RGBX", "R", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
				
			||||||
| 
						 | 
					@ -115,19 +123,22 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_CMYK(self):
 | 
					    def test_CMYK(self):
 | 
				
			||||||
        self.assert_pack("CMYK", "CMYK", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					        self.assert_pack("CMYK", "CMYK", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_pack("CMYK", "CMYK;I", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "CMYK", "CMYK;I", 4,
 | 
				
			||||||
            (254, 253, 252, 251), (250, 249, 248, 247), (246, 245, 244, 243))
 | 
					            (254, 253, 252, 251), (250, 249, 248, 247), (246, 245, 244, 243))
 | 
				
			||||||
        self.assert_pack("CMYK", "CMYK;L", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					            "CMYK", "CMYK;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_pack("CMYK", "K", 1, (6, 7, 0, 1), (6, 7, 0, 2), (0, 7, 0, 3))
 | 
					        self.assert_pack("CMYK", "K", 1, (6, 7, 0, 1), (6, 7, 0, 2), (0, 7, 0, 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_YCbCr(self):
 | 
					    def test_YCbCr(self):
 | 
				
			||||||
        self.assert_pack("YCbCr", "YCbCr", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
					        self.assert_pack("YCbCr", "YCbCr", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
				
			||||||
        self.assert_pack("YCbCr", "YCbCr;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
					        self.assert_pack("YCbCr", "YCbCr;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
				
			||||||
        self.assert_pack("YCbCr", "YCbCrX",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "YCbCr", "YCbCrX",
 | 
				
			||||||
            b'\x01\x02\x03\xff\x05\x06\x07\xff\t\n\x0b\xff',
 | 
					            b'\x01\x02\x03\xff\x05\x06\x07\xff\t\n\x0b\xff',
 | 
				
			||||||
            (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
					            (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
				
			||||||
        self.assert_pack("YCbCr", "YCbCrK",
 | 
					        self.assert_pack(
 | 
				
			||||||
 | 
					            "YCbCr", "YCbCrK",
 | 
				
			||||||
            b'\x01\x02\x03\xff\x05\x06\x07\xff\t\n\x0b\xff',
 | 
					            b'\x01\x02\x03\xff\x05\x06\x07\xff\t\n\x0b\xff',
 | 
				
			||||||
            (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
					            (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
				
			||||||
        self.assert_pack("YCbCr", "Y", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
					        self.assert_pack("YCbCr", "Y", 1, (1, 0, 8, 9), (2, 0, 8, 9), (3, 0, 8, 0))
 | 
				
			||||||
| 
						 | 
					@ -135,8 +146,8 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
        self.assert_pack("YCbCr", "Cr", 1, (6, 7, 1, 9), (6, 7, 2, 0), (6, 7, 3, 9))
 | 
					        self.assert_pack("YCbCr", "Cr", 1, (6, 7, 1, 9), (6, 7, 2, 0), (6, 7, 3, 9))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_LAB(self):
 | 
					    def test_LAB(self):
 | 
				
			||||||
        self.assert_pack("LAB", "LAB", 3,
 | 
					        self.assert_pack(
 | 
				
			||||||
            (1, 130, 131), (4, 133, 134), (7, 136, 137))
 | 
					            "LAB", "LAB", 3, (1, 130, 131), (4, 133, 134), (7, 136, 137))
 | 
				
			||||||
        self.assert_pack("LAB", "L", 1, (1, 9, 9), (2, 9, 9), (3, 9, 9))
 | 
					        self.assert_pack("LAB", "L", 1, (1, 9, 9), (2, 9, 9), (3, 9, 9))
 | 
				
			||||||
        self.assert_pack("LAB", "A", 1, (9, 1, 9), (9, 2, 9), (9, 3, 9))
 | 
					        self.assert_pack("LAB", "A", 1, (9, 1, 9), (9, 2, 9), (9, 3, 9))
 | 
				
			||||||
        self.assert_pack("LAB", "B", 1, (9, 9, 1), (9, 9, 2), (9, 9, 3))
 | 
					        self.assert_pack("LAB", "B", 1, (9, 9, 1), (9, 9, 2), (9, 9, 3))
 | 
				
			||||||
| 
						 | 
					@ -149,35 +160,35 @@ class TestLibPack(PillowTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_I(self):
 | 
					    def test_I(self):
 | 
				
			||||||
        self.assert_pack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
					        self.assert_pack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
				
			||||||
        self.assert_pack("I", "I;32S",
 | 
					        self.assert_pack(
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            "I", "I;32S",
 | 
				
			||||||
            0x01000083, -2097151999)
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83', 0x01000083, -2097151999)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
            self.assert_pack("I", "I", 4, 0x04030201, 0x08070605)
 | 
					            self.assert_pack("I", "I", 4, 0x04030201, 0x08070605)
 | 
				
			||||||
            self.assert_pack("I", "I;32NS",
 | 
					            self.assert_pack(
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                "I", "I;32NS",
 | 
				
			||||||
                0x01000083, -2097151999)
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83', 0x01000083, -2097151999)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assert_pack("I", "I", 4, 0x01020304, 0x05060708)
 | 
					            self.assert_pack("I", "I", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
            self.assert_pack("I", "I;32NS",
 | 
					            self.assert_pack(
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                "I", "I;32NS",
 | 
				
			||||||
                -2097151999, 0x01000083)
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83', -2097151999, 0x01000083)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_F_float(self):
 | 
					    def test_F_float(self):
 | 
				
			||||||
        self.assert_pack("F", "F;32F", 4,
 | 
					        self.assert_pack(
 | 
				
			||||||
            1.539989614439558e-36, 4.063216068939723e-34)
 | 
					            "F", "F;32F", 4, 1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
            self.assert_pack("F", "F", 4,
 | 
					            self.assert_pack(
 | 
				
			||||||
                1.539989614439558e-36, 4.063216068939723e-34)
 | 
					                "F", "F", 4, 1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
            self.assert_pack("F", "F;32NF", 4,
 | 
					            self.assert_pack(
 | 
				
			||||||
                1.539989614439558e-36, 4.063216068939723e-34)
 | 
					                "F", "F;32NF", 4, 1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assert_pack("F", "F", 4,
 | 
					            self.assert_pack(
 | 
				
			||||||
                2.387939260590663e-38, 6.301941157072183e-36)
 | 
					                "F", "F", 4, 2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
            self.assert_pack("F", "F;32NF", 4,
 | 
					            self.assert_pack(
 | 
				
			||||||
                2.387939260590663e-38, 6.301941157072183e-36)
 | 
					                "F", "F;32NF", 4, 2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestLibUnpack(PillowTestCase):
 | 
					class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
| 
						 | 
					@ -260,7 +271,8 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("RGB", "BGRX", 4, (3, 2, 1), (7, 6, 5), (11, 10, 9))
 | 
					        self.assert_unpack("RGB", "BGRX", 4, (3, 2, 1), (7, 6, 5), (11, 10, 9))
 | 
				
			||||||
        self.assert_unpack("RGB", "XRGB", 4, (2, 3, 4), (6, 7, 8), (10, 11, 12))
 | 
					        self.assert_unpack("RGB", "XRGB", 4, (2, 3, 4), (6, 7, 8), (10, 11, 12))
 | 
				
			||||||
        self.assert_unpack("RGB", "XBGR", 4, (4, 3, 2), (8, 7, 6), (12, 11, 10))
 | 
					        self.assert_unpack("RGB", "XBGR", 4, (4, 3, 2), (8, 7, 6), (12, 11, 10))
 | 
				
			||||||
        self.assert_unpack("RGB", "YCC;P",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGB", "YCC;P",
 | 
				
			||||||
            b'D]\x9c\x82\x1a\x91\xfaOC\xe7J\x12',  # random data
 | 
					            b'D]\x9c\x82\x1a\x91\xfaOC\xe7J\x12',  # random data
 | 
				
			||||||
            (127, 102, 0), (192, 227, 0), (213, 255, 170), (98, 255, 133))
 | 
					            (127, 102, 0), (192, 227, 0), (213, 255, 170), (98, 255, 133))
 | 
				
			||||||
        self.assert_unpack("RGB", "R", 1, (1, 0, 0), (2, 0, 0), (3, 0, 0))
 | 
					        self.assert_unpack("RGB", "R", 1, (1, 0, 0), (2, 0, 0), (3, 0, 0))
 | 
				
			||||||
| 
						 | 
					@ -269,48 +281,58 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBA(self):
 | 
					    def test_RGBA(self):
 | 
				
			||||||
        self.assert_unpack("RGBA", "LA", 2, (1, 1, 1, 2), (3, 3, 3, 4), (5, 5, 5, 6))
 | 
					        self.assert_unpack("RGBA", "LA", 2, (1, 1, 1, 2), (3, 3, 3, 4), (5, 5, 5, 6))
 | 
				
			||||||
        self.assert_unpack("RGBA", "LA;16B", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 1, 1, 3), (5, 5, 5, 7), (9, 9, 9, 11))
 | 
					            "RGBA", "LA;16B", 4, (1, 1, 1, 3), (5, 5, 5, 7), (9, 9, 9, 11))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "RGBA", "RGBA", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa", 4,
 | 
				
			||||||
            (63, 127, 191, 4), (159, 191, 223, 8), (191, 212, 233, 12))
 | 
					            (63, 127, 191, 4), (159, 191, 223, 8), (191, 212, 233, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa",
 | 
				
			||||||
            b'\x01\x02\x03\x00\x10\x20\x30\xff',
 | 
					            b'\x01\x02\x03\x00\x10\x20\x30\xff',
 | 
				
			||||||
            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
					            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa;16L", 8,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa;16L", 8,
 | 
				
			||||||
            (63, 127, 191, 8), (159, 191, 223, 16), (191, 212, 233, 24))
 | 
					            (63, 127, 191, 8), (159, 191, 223, 16), (191, 212, 233, 24))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa;16L",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa;16L",
 | 
				
			||||||
            b'\x88\x01\x88\x02\x88\x03\x88\x00'
 | 
					            b'\x88\x01\x88\x02\x88\x03\x88\x00'
 | 
				
			||||||
            b'\x88\x10\x88\x20\x88\x30\x88\xff',
 | 
					            b'\x88\x10\x88\x20\x88\x30\x88\xff',
 | 
				
			||||||
            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
					            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa;16B", 8,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa;16B", 8,
 | 
				
			||||||
            (36, 109, 182, 7), (153, 187, 221, 15), (188, 210, 232, 23))
 | 
					            (36, 109, 182, 7), (153, 187, 221, 15), (188, 210, 232, 23))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBa;16B",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBa;16B",
 | 
				
			||||||
            b'\x01\x88\x02\x88\x03\x88\x00\x88'
 | 
					            b'\x01\x88\x02\x88\x03\x88\x00\x88'
 | 
				
			||||||
            b'\x10\x88\x20\x88\x30\x88\xff\x88',
 | 
					            b'\x10\x88\x20\x88\x30\x88\xff\x88',
 | 
				
			||||||
            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
					            (0, 0, 0, 0), (16, 32, 48, 255))
 | 
				
			||||||
        self.assert_unpack("RGBA", "BGRa", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "BGRa", 4,
 | 
				
			||||||
            (191, 127, 63, 4), (223, 191, 159, 8), (233, 212, 191, 12))
 | 
					            (191, 127, 63, 4), (223, 191, 159, 8), (233, 212, 191, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "BGRa",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "BGRa",
 | 
				
			||||||
            b'\x01\x02\x03\x00\x10\x20\x30\xff',
 | 
					            b'\x01\x02\x03\x00\x10\x20\x30\xff',
 | 
				
			||||||
            (0, 0, 0, 0), (48, 32, 16, 255))
 | 
					            (0, 0, 0, 0), (48, 32, 16, 255))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;I", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "RGBA;I", 4,
 | 
				
			||||||
            (254, 253, 252, 4), (250, 249, 248, 8), (246, 245, 244, 12))
 | 
					            (254, 253, 252, 4), (250, 249, 248, 8), (246, 245, 244, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;L", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					            "RGBA", "RGBA;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;15", 2, (8, 131, 0, 0), (24, 0, 8, 0))
 | 
					        self.assert_unpack("RGBA", "RGBA;15", 2, (8, 131, 0, 0), (24, 0, 8, 0))
 | 
				
			||||||
        self.assert_unpack("RGBA", "BGRA;15", 2, (0, 131, 8, 0), (8, 0, 24, 0))
 | 
					        self.assert_unpack("RGBA", "BGRA;15", 2, (0, 131, 8, 0), (8, 0, 24, 0))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;4B", 2, (17, 0, 34, 0), (51, 0, 68, 0))
 | 
					        self.assert_unpack("RGBA", "RGBA;4B", 2, (17, 0, 34, 0), (51, 0, 68, 0))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;16L", 8, (2, 4, 6, 8), (10, 12, 14, 16))
 | 
					        self.assert_unpack("RGBA", "RGBA;16L", 8, (2, 4, 6, 8), (10, 12, 14, 16))
 | 
				
			||||||
        self.assert_unpack("RGBA", "RGBA;16B", 8, (1, 3, 5, 7), (9, 11, 13, 15))
 | 
					        self.assert_unpack("RGBA", "RGBA;16B", 8, (1, 3, 5, 7), (9, 11, 13, 15))
 | 
				
			||||||
        self.assert_unpack("RGBA", "BGRA", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
					            "RGBA", "BGRA", 4, (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
				
			||||||
        self.assert_unpack("RGBA", "ARGB", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (2, 3, 4, 1), (6, 7, 8, 5), (10, 11, 12, 9))
 | 
					            "RGBA", "ARGB", 4, (2, 3, 4, 1), (6, 7, 8, 5), (10, 11, 12, 9))
 | 
				
			||||||
        self.assert_unpack("RGBA", "ABGR", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
					            "RGBA", "ABGR", 4, (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
				
			||||||
        self.assert_unpack("RGBA", "YCCA;P",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBA", "YCCA;P",
 | 
				
			||||||
            b']bE\x04\xdd\xbej\xed57T\xce\xac\xce:\x11',  # random data
 | 
					            b']bE\x04\xdd\xbej\xed57T\xce\xac\xce:\x11',  # random data
 | 
				
			||||||
            (0, 161, 0, 4), (255, 255, 255, 237), (27, 158, 0, 206), (0, 118, 0, 17))
 | 
					            (0, 161, 0, 4), (255, 255, 255, 237), (27, 158, 0, 206), (0, 118, 0, 17))
 | 
				
			||||||
        self.assert_unpack("RGBA", "R", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
					        self.assert_unpack("RGBA", "R", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
				
			||||||
| 
						 | 
					@ -319,14 +341,14 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("RGBA", "A", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
					        self.assert_unpack("RGBA", "A", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBa(self):
 | 
					    def test_RGBa(self):
 | 
				
			||||||
        self.assert_unpack("RGBa", "RGBa", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "RGBa", "RGBa", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_unpack("RGBa", "BGRa", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
					            "RGBa", "BGRa", 4, (3, 2, 1, 4), (7, 6, 5, 8), (11, 10, 9, 12))
 | 
				
			||||||
        self.assert_unpack("RGBa", "aRGB", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (2, 3, 4, 1), (6, 7, 8, 5), (10, 11, 12, 9))
 | 
					            "RGBa", "aRGB", 4, (2, 3, 4, 1), (6, 7, 8, 5), (10, 11, 12, 9))
 | 
				
			||||||
        self.assert_unpack("RGBa", "aBGR", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
					            "RGBa", "aBGR", 4, (4, 3, 2, 1), (8, 7, 6, 5), (12, 11, 10, 9))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_RGBX(self):
 | 
					    def test_RGBX(self):
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGB", 3, (1, 2, 3, X), (4, 5, 6, X), (7, 8, 9, X))
 | 
					        self.assert_unpack("RGBX", "RGB", 3, (1, 2, 3, X), (4, 5, 6, X), (7, 8, 9, X))
 | 
				
			||||||
| 
						 | 
					@ -336,20 +358,21 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGB;15", 2, (8, 131, 0, X), (24, 0, 8, X))
 | 
					        self.assert_unpack("RGBX", "RGB;15", 2, (8, 131, 0, X), (24, 0, 8, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "BGR;15", 2, (0, 131, 8, X), (8, 0, 24, X))
 | 
					        self.assert_unpack("RGBX", "BGR;15", 2, (0, 131, 8, X), (8, 0, 24, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGB;4B", 2, (17, 0, 34, X), (51, 0, 68, X))
 | 
					        self.assert_unpack("RGBX", "RGB;4B", 2, (17, 0, 34, X), (51, 0, 68, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBX", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "RGBX", "RGBX", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBXX", 5,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (6, 7, 8, 9), (11, 12, 13, 14))
 | 
					            "RGBX", "RGBXX", 5, (1, 2, 3, 4), (6, 7, 8, 9), (11, 12, 13, 14))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBXXX", 6,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (7, 8, 9, 10), (13, 14, 15, 16))
 | 
					            "RGBX", "RGBXXX", 6, (1, 2, 3, 4), (7, 8, 9, 10), (13, 14, 15, 16))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBX;L", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					            "RGBX", "RGBX;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBX;16L", 8, (2, 4, 6, 8), (10, 12, 14, 16))
 | 
					        self.assert_unpack("RGBX", "RGBX;16L", 8, (2, 4, 6, 8), (10, 12, 14, 16))
 | 
				
			||||||
        self.assert_unpack("RGBX", "RGBX;16B", 8, (1, 3, 5, 7), (9, 11, 13, 15))
 | 
					        self.assert_unpack("RGBX", "RGBX;16B", 8, (1, 3, 5, 7), (9, 11, 13, 15))
 | 
				
			||||||
        self.assert_unpack("RGBX", "BGRX", 4, (3, 2, 1, X), (7, 6, 5, X), (11, 10, 9, X))
 | 
					        self.assert_unpack("RGBX", "BGRX", 4, (3, 2, 1, X), (7, 6, 5, X), (11, 10, 9, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "XRGB", 4, (2, 3, 4, X), (6, 7, 8, X), (10, 11, 12, X))
 | 
					        self.assert_unpack("RGBX", "XRGB", 4, (2, 3, 4, X), (6, 7, 8, X), (10, 11, 12, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "XBGR", 4, (4, 3, 2, X), (8, 7, 6, X), (12, 11, 10, X))
 | 
					        self.assert_unpack("RGBX", "XBGR", 4, (4, 3, 2, X), (8, 7, 6, X), (12, 11, 10, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "YCC;P",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "RGBX", "YCC;P",
 | 
				
			||||||
            b'D]\x9c\x82\x1a\x91\xfaOC\xe7J\x12',  # random data
 | 
					            b'D]\x9c\x82\x1a\x91\xfaOC\xe7J\x12',  # random data
 | 
				
			||||||
            (127, 102, 0, X), (192, 227, 0, X), (213, 255, 170, X), (98, 255, 133, X))
 | 
					            (127, 102, 0, X), (192, 227, 0, X), (213, 255, 170, X), (98, 255, 133, X))
 | 
				
			||||||
        self.assert_unpack("RGBX", "R", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
					        self.assert_unpack("RGBX", "R", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
				
			||||||
| 
						 | 
					@ -358,40 +381,47 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("RGBX", "X", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
					        self.assert_unpack("RGBX", "X", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_CMYK(self):
 | 
					    def test_CMYK(self):
 | 
				
			||||||
        self.assert_unpack("CMYK", "CMYK", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
					            "CMYK", "CMYK", 4, (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12))
 | 
				
			||||||
        self.assert_unpack("CMYK", "CMYKX", 5,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (6, 7, 8, 9), (11, 12, 13, 14))
 | 
					            "CMYK", "CMYKX", 5, (1, 2, 3, 4), (6, 7, 8, 9), (11, 12, 13, 14))
 | 
				
			||||||
        self.assert_unpack("CMYK", "CMYKXX", 6,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 2, 3, 4), (7, 8, 9, 10), (13, 14, 15, 16))
 | 
					            "CMYK", "CMYKXX", 6, (1, 2, 3, 4), (7, 8, 9, 10), (13, 14, 15, 16))
 | 
				
			||||||
        self.assert_unpack("CMYK", "CMYK;I", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "CMYK", "CMYK;I", 4,
 | 
				
			||||||
            (254, 253, 252, 251), (250, 249, 248, 247), (246, 245, 244, 243))
 | 
					            (254, 253, 252, 251), (250, 249, 248, 247), (246, 245, 244, 243))
 | 
				
			||||||
        self.assert_unpack("CMYK", "CMYK;L", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
					            "CMYK", "CMYK;L", 4, (1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12))
 | 
				
			||||||
        self.assert_unpack("CMYK", "C", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
					        self.assert_unpack("CMYK", "C", 1, (1, 0, 0, 0), (2, 0, 0, 0), (3, 0, 0, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "M", 1, (0, 1, 0, 0), (0, 2, 0, 0), (0, 3, 0, 0))
 | 
					        self.assert_unpack("CMYK", "M", 1, (0, 1, 0, 0), (0, 2, 0, 0), (0, 3, 0, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "Y", 1, (0, 0, 1, 0), (0, 0, 2, 0), (0, 0, 3, 0))
 | 
					        self.assert_unpack("CMYK", "Y", 1, (0, 0, 1, 0), (0, 0, 2, 0), (0, 0, 3, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "K", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
					        self.assert_unpack("CMYK", "K", 1, (0, 0, 0, 1), (0, 0, 0, 2), (0, 0, 0, 3))
 | 
				
			||||||
        self.assert_unpack("CMYK", "C;I", 1,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (254, 0, 0, 0), (253, 0, 0, 0), (252, 0, 0, 0))
 | 
					            "CMYK", "C;I", 1, (254, 0, 0, 0), (253, 0, 0, 0), (252, 0, 0, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "M;I", 1,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (0, 254, 0, 0), (0, 253, 0, 0), (0, 252, 0, 0))
 | 
					            "CMYK", "M;I", 1, (0, 254, 0, 0), (0, 253, 0, 0), (0, 252, 0, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "Y;I", 1,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (0, 0, 254, 0), (0, 0, 253, 0), (0, 0, 252, 0))
 | 
					            "CMYK", "Y;I", 1, (0, 0, 254, 0), (0, 0, 253, 0), (0, 0, 252, 0))
 | 
				
			||||||
        self.assert_unpack("CMYK", "K;I", 1,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (0, 0, 0, 254), (0, 0, 0, 253), (0, 0, 0, 252))
 | 
					            "CMYK", "K;I", 1, (0, 0, 0, 254), (0, 0, 0, 253), (0, 0, 0, 252))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_YCbCr(self):
 | 
					    def test_YCbCr(self):
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCr", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
					        self.assert_unpack(
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCr;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
					            "YCbCr", "YCbCr", 3, (1, 2, 3), (4, 5, 6), (7, 8, 9))
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCrK", 4, (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
					        self.assert_unpack(
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCrX", 4, (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
					            "YCbCr", "YCbCr;L", 3, (1, 4, 7), (2, 5, 8), (3, 6, 9))
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCrXX", 5, (1, 2, 3), (6, 7, 8), (11, 12, 13))
 | 
					        self.assert_unpack(
 | 
				
			||||||
        self.assert_unpack("YCbCr", "YCbCrXXX", 6, (1, 2, 3), (7, 8, 9), (13, 14, 15))
 | 
					            "YCbCr", "YCbCrK", 4, (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
				
			||||||
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "YCbCr", "YCbCrX", 4, (1, 2, 3), (5, 6, 7), (9, 10, 11))
 | 
				
			||||||
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "YCbCr", "YCbCrXX", 5, (1, 2, 3), (6, 7, 8), (11, 12, 13))
 | 
				
			||||||
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "YCbCr", "YCbCrXXX", 6, (1, 2, 3), (7, 8, 9), (13, 14, 15))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_LAB(self):
 | 
					    def test_LAB(self):
 | 
				
			||||||
        self.assert_unpack("LAB", "LAB", 3,
 | 
					        self.assert_unpack(
 | 
				
			||||||
            (1, 130, 131), (4, 133, 134), (7, 136, 137))
 | 
					            "LAB", "LAB", 3, (1, 130, 131), (4, 133, 134), (7, 136, 137))
 | 
				
			||||||
        self.assert_unpack("LAB", "L", 1, (1, 0, 0), (2, 0, 0), (3, 0, 0))
 | 
					        self.assert_unpack("LAB", "L", 1, (1, 0, 0), (2, 0, 0), (3, 0, 0))
 | 
				
			||||||
        self.assert_unpack("LAB", "A", 1, (0, 1, 0), (0, 2, 0), (0, 3, 0))
 | 
					        self.assert_unpack("LAB", "A", 1, (0, 1, 0), (0, 2, 0), (0, 3, 0))
 | 
				
			||||||
        self.assert_unpack("LAB", "B", 1, (0, 0, 1), (0, 0, 2), (0, 0, 3))
 | 
					        self.assert_unpack("LAB", "B", 1, (0, 0, 1), (0, 0, 2), (0, 0, 3))
 | 
				
			||||||
| 
						 | 
					@ -410,30 +440,30 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
					        self.assert_unpack("I", "I;16B", 2, 0x0102, 0x0304)
 | 
				
			||||||
        self.assert_unpack("I", "I;16BS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
					        self.assert_unpack("I", "I;16BS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
				
			||||||
        self.assert_unpack("I", "I;32", 4, 0x04030201, 0x08070605)
 | 
					        self.assert_unpack("I", "I;32", 4, 0x04030201, 0x08070605)
 | 
				
			||||||
        self.assert_unpack("I", "I;32S",
 | 
					        self.assert_unpack(
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            "I", "I;32S",
 | 
				
			||||||
            0x01000083, -2097151999)
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83', 0x01000083, -2097151999)
 | 
				
			||||||
        self.assert_unpack("I", "I;32B", 4, 0x01020304, 0x05060708)
 | 
					        self.assert_unpack("I", "I;32B", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
        self.assert_unpack("I", "I;32BS",
 | 
					        self.assert_unpack(
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            "I", "I;32BS",
 | 
				
			||||||
            -2097151999, 0x01000083)
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83', -2097151999, 0x01000083)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
            self.assert_unpack("I", "I", 4, 0x04030201, 0x08070605)
 | 
					            self.assert_unpack("I", "I", 4, 0x04030201, 0x08070605)
 | 
				
			||||||
            self.assert_unpack("I", "I;16N", 2, 0x0201, 0x0403)
 | 
					            self.assert_unpack("I", "I;16N", 2, 0x0201, 0x0403)
 | 
				
			||||||
            self.assert_unpack("I", "I;16NS", b'\x83\x01\x01\x83', 0x0183, -31999)
 | 
					            self.assert_unpack("I", "I;16NS", b'\x83\x01\x01\x83', 0x0183, -31999)
 | 
				
			||||||
            self.assert_unpack("I", "I;32N", 4, 0x04030201, 0x08070605)
 | 
					            self.assert_unpack("I", "I;32N", 4, 0x04030201, 0x08070605)
 | 
				
			||||||
            self.assert_unpack("I", "I;32NS",
 | 
					            self.assert_unpack(
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                "I", "I;32NS",
 | 
				
			||||||
                0x01000083, -2097151999)
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83', 0x01000083, -2097151999)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assert_unpack("I", "I", 4, 0x01020304, 0x05060708)
 | 
					            self.assert_unpack("I", "I", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
            self.assert_unpack("I", "I;16N", 2, 0x0102, 0x0304)
 | 
					            self.assert_unpack("I", "I;16N", 2, 0x0102, 0x0304)
 | 
				
			||||||
            self.assert_unpack("I", "I;16NS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
					            self.assert_unpack("I", "I;16NS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
				
			||||||
            self.assert_unpack("I", "I;32N", 4, 0x01020304, 0x05060708)
 | 
					            self.assert_unpack("I", "I;32N", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
            self.assert_unpack("I", "I;32NS",
 | 
					            self.assert_unpack(
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                "I", "I;32NS",
 | 
				
			||||||
                -2097151999, 0x01000083)
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83', -2097151999, 0x01000083)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_F_int(self):
 | 
					    def test_F_int(self):
 | 
				
			||||||
        self.assert_unpack("F", "F;8", 1, 0x01, 0x02, 0x03, 0x04)
 | 
					        self.assert_unpack("F", "F;8", 1, 0x01, 0x02, 0x03, 0x04)
 | 
				
			||||||
| 
						 | 
					@ -443,55 +473,66 @@ class TestLibUnpack(PillowTestCase):
 | 
				
			||||||
        self.assert_unpack("F", "F;16B", 2, 0x0102, 0x0304)
 | 
					        self.assert_unpack("F", "F;16B", 2, 0x0102, 0x0304)
 | 
				
			||||||
        self.assert_unpack("F", "F;16BS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
					        self.assert_unpack("F", "F;16BS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
				
			||||||
        self.assert_unpack("F", "F;32", 4, 67305984, 134678016)
 | 
					        self.assert_unpack("F", "F;32", 4, 67305984, 134678016)
 | 
				
			||||||
        self.assert_unpack("F", "F;32S",
 | 
					        self.assert_unpack(
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            "F", "F;32S",
 | 
				
			||||||
            16777348, -2097152000)
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83', 16777348, -2097152000)
 | 
				
			||||||
        self.assert_unpack("F", "F;32B", 4, 0x01020304, 0x05060708)
 | 
					        self.assert_unpack("F", "F;32B", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
        self.assert_unpack("F", "F;32BS",
 | 
					        self.assert_unpack(
 | 
				
			||||||
            b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					            "F", "F;32BS",
 | 
				
			||||||
            -2097152000, 16777348)
 | 
					            b'\x83\x00\x00\x01\x01\x00\x00\x83', -2097152000, 16777348)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
            self.assert_unpack("F", "F;16N", 2, 0x0201, 0x0403)
 | 
					            self.assert_unpack("F", "F;16N", 2, 0x0201, 0x0403)
 | 
				
			||||||
            self.assert_unpack("F", "F;16NS", b'\x83\x01\x01\x83', 0x0183, -31999)
 | 
					            self.assert_unpack("F", "F;16NS", b'\x83\x01\x01\x83', 0x0183, -31999)
 | 
				
			||||||
            self.assert_unpack("F", "F;32N", 4, 67305984, 134678016)
 | 
					            self.assert_unpack("F", "F;32N", 4, 67305984, 134678016)
 | 
				
			||||||
            self.assert_unpack("F", "F;32NS",
 | 
					            self.assert_unpack(
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                "F", "F;32NS",
 | 
				
			||||||
                16777348, -2097152000)
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83', 16777348, -2097152000)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assert_unpack("F", "F;16N", 2, 0x0102, 0x0304)
 | 
					            self.assert_unpack("F", "F;16N", 2, 0x0102, 0x0304)
 | 
				
			||||||
            self.assert_unpack("F", "F;16NS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
					            self.assert_unpack("F", "F;16NS", b'\x83\x01\x01\x83', -31999, 0x0183)
 | 
				
			||||||
            self.assert_unpack("F", "F;32N", 4, 0x01020304, 0x05060708)
 | 
					            self.assert_unpack("F", "F;32N", 4, 0x01020304, 0x05060708)
 | 
				
			||||||
            self.assert_unpack("F", "F;32NS",
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F;32NS",
 | 
				
			||||||
                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
					                b'\x83\x00\x00\x01\x01\x00\x00\x83',
 | 
				
			||||||
                -2097152000, 16777348)
 | 
					                -2097152000, 16777348)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_F_float(self):
 | 
					    def test_F_float(self):
 | 
				
			||||||
        self.assert_unpack("F", "F;32F", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "F", "F;32F", 4,
 | 
				
			||||||
            1.539989614439558e-36, 4.063216068939723e-34)
 | 
					            1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
        self.assert_unpack("F", "F;32BF", 4,
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "F", "F;32BF", 4,
 | 
				
			||||||
            2.387939260590663e-38, 6.301941157072183e-36)
 | 
					            2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
        self.assert_unpack("F", "F;64F",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "F", "F;64F",
 | 
				
			||||||
            b'333333\xc3?\x00\x00\x00\x00\x00J\x93\xc0',  # by struct.pack
 | 
					            b'333333\xc3?\x00\x00\x00\x00\x00J\x93\xc0',  # by struct.pack
 | 
				
			||||||
            0.15000000596046448, -1234.5)
 | 
					            0.15000000596046448, -1234.5)
 | 
				
			||||||
        self.assert_unpack("F", "F;64BF",
 | 
					        self.assert_unpack(
 | 
				
			||||||
 | 
					            "F", "F;64BF",
 | 
				
			||||||
            b'?\xc3333333\xc0\x93J\x00\x00\x00\x00\x00',  # by struct.pack
 | 
					            b'?\xc3333333\xc0\x93J\x00\x00\x00\x00\x00',  # by struct.pack
 | 
				
			||||||
            0.15000000596046448, -1234.5)
 | 
					            0.15000000596046448, -1234.5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if sys.byteorder == 'little':
 | 
					        if sys.byteorder == 'little':
 | 
				
			||||||
            self.assert_unpack("F", "F", 4,
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F", 4,
 | 
				
			||||||
                1.539989614439558e-36, 4.063216068939723e-34)
 | 
					                1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
            self.assert_unpack("F", "F;32NF", 4,
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F;32NF", 4,
 | 
				
			||||||
                1.539989614439558e-36, 4.063216068939723e-34)
 | 
					                1.539989614439558e-36, 4.063216068939723e-34)
 | 
				
			||||||
            self.assert_unpack("F", "F;64NF",
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F;64NF",
 | 
				
			||||||
                b'333333\xc3?\x00\x00\x00\x00\x00J\x93\xc0',
 | 
					                b'333333\xc3?\x00\x00\x00\x00\x00J\x93\xc0',
 | 
				
			||||||
                0.15000000596046448, -1234.5)
 | 
					                0.15000000596046448, -1234.5)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.assert_unpack("F", "F", 4,
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F", 4,
 | 
				
			||||||
                2.387939260590663e-38, 6.301941157072183e-36)
 | 
					                2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
            self.assert_unpack("F", "F;32NF", 4,
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F;32NF", 4,
 | 
				
			||||||
                2.387939260590663e-38, 6.301941157072183e-36)
 | 
					                2.387939260590663e-38, 6.301941157072183e-36)
 | 
				
			||||||
            self.assert_unpack("F", "F;64NF",
 | 
					            self.assert_unpack(
 | 
				
			||||||
 | 
					                "F", "F;64NF",
 | 
				
			||||||
                b'?\xc3333333\xc0\x93J\x00\x00\x00\x00\x00',
 | 
					                b'?\xc3333333\xc0\x93J\x00\x00\x00\x00\x00',
 | 
				
			||||||
                0.15000000596046448, -1234.5)
 | 
					                0.15000000596046448, -1234.5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user