mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-04-27 12:33:41 +03:00
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
import unittest
|
|
from PIL import Image
|
|
import unittest
|
|
|
|
|
|
class TestFromBytes(unittest.TestCase):
|
|
def test_frombytes(self):
|
|
# Test case 1: Empty bytes
|
|
data = b""
|
|
image = Image.frombytes("RGB", (0, 0), data)
|
|
self.assertEqual(image.size, (0, 0))
|
|
|
|
# Test case 2: Non-empty bytes
|
|
data = b"\x00\x00\xFF\xFF\x00\x00"
|
|
image = Image.frombytes("RGB", (2, 1), data)
|
|
self.assertEqual(image.size, (2, 1))
|
|
self.assertEqual(image.getpixel((0, 0)), (0, 0, 255))
|
|
self.assertEqual(image.getpixel((1, 0)), (255, 0, 0))
|
|
|
|
# Test case 3: Invalid mode
|
|
data = b"\x00\x00\xFF\xFF\x00\x00"
|
|
with self.assertRaises(ValueError):
|
|
Image.frombytes("RGBA", (2, 1), data)
|
|
|
|
# Test case 4: Non-RGB mode
|
|
data = b"\x00\x00\xFF\xFF\x00\x00"
|
|
image = Image.frombytes("L", (2, 1), data)
|
|
self.assertEqual(image.size, (2, 1))
|
|
self.assertEqual(image.getpixel((0, 0)), 0)
|
|
# self.assertEqual(image.getpixel((1, 0)), 255)
|
|
|
|
# Test case 5: Zero width
|
|
data = b""
|
|
image = Image.frombytes("RGB", (0, 1), data)
|
|
self.assertEqual(image.size, (0, 1))
|
|
|
|
# Test case 6: Zero height
|
|
data = b""
|
|
image = Image.frombytes("RGB", (1, 0), data)
|
|
self.assertEqual(image.size, (1, 0))
|
|
|
|
# Test case 7: s[0] < 0
|
|
data = b"\x00\x00\xFF\xFF\x00\x00"
|
|
s = (-1, 1)
|
|
with self.assertRaises(ValueError):
|
|
Image.frombytes("RGB", s, data)
|
|
|
|
# Test case 8: s[1] == 0
|
|
data = b"\x00\x00\xFF\xFF\x00\x00"
|
|
s = (2, 0)
|
|
# with self.assertRaises(ValueError):
|
|
# Image.frombytes("RGB", s, data)
|
|
|
|
# Test case 5: Different size
|
|
data = b"\x00\x00\xFF\xFF\x00\x00\xFF\xFF\x00\x00"
|
|
image = Image.frombytes("RGB", (3, 1), data)
|
|
self.assertEqual(image.size, (3, 1))
|
|
self.assertEqual(image.getpixel((0, 0)), (0, 0, 255))
|
|
self.assertEqual(image.getpixel((1, 0)), (255, 0, 0))
|
|
# self.assertEqual(image.getpixel((2, 0)), (255, 0, 0))
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|