mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-04-20 17:22:00 +03:00
2 functions coverage tool and improvements done
This commit is contained in:
parent
4d9e87c31a
commit
db5b92778d
64
Tests/test_frombytes_image.py
Normal file
64
Tests/test_frombytes_image.py
Normal file
|
@ -0,0 +1,64 @@
|
|||
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()
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
import pytest
|
||||
|
||||
from PIL import Image
|
||||
|
||||
def calculate_branch_coverage():
|
||||
b = Image.Branches
|
||||
print("Branches covered:", sum(b.values()))
|
||||
|
||||
|
||||
def test_merge_wrong_number_of_bands():
|
||||
R = Image.new('L', (100, 100), color=255)
|
||||
G = Image.new('L', (100, 100), color=128)
|
||||
with pytest.raises(ValueError, match="wrong number of bands"):
|
||||
Image.merge('RGB', [R, G])
|
||||
|
||||
def test_merge_mode_mismatch():
|
||||
R = Image.new('L', (100, 100), color=255)
|
||||
G = Image.new('L', (100, 100), color=128)
|
||||
B = Image.new('1', (100, 100)) # Incorrect mode
|
||||
with pytest.raises(ValueError, match="mode mismatch"):
|
||||
Image.merge('RGB', [R, G, B])
|
||||
|
||||
def test_merge_size_mismatch():
|
||||
R = Image.new('L', (100, 100), color=255)
|
||||
G = Image.new('L', (200, 100), color=128) # Different size
|
||||
B = Image.new('L', (100, 100), color=0)
|
||||
with pytest.raises(ValueError, match="size mismatch"):
|
||||
Image.merge('RGB', [R, G, B])
|
||||
|
||||
|
26
Tests/test_new_pdfparser.py
Normal file
26
Tests/test_new_pdfparser.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
import pytest
|
||||
from PIL import PdfParser
|
||||
|
||||
def test_delitem_new_entries():
|
||||
parser = PdfParser.XrefTable()
|
||||
parser.new_entries["test_key"] = ("value", 0)
|
||||
|
||||
del parser["test_key"]
|
||||
|
||||
assert "test_key" not in parser.new_entries
|
||||
assert parser.deleted_entries["test_key"] == 1
|
||||
|
||||
|
||||
def test_delitem_deleted_entries():
|
||||
parser = PdfParser.XrefTable()
|
||||
parser.deleted_entries["test_key"] = 0
|
||||
|
||||
del parser["test_key"]
|
||||
|
||||
assert parser.deleted_entries["test_key"] == 0
|
||||
|
||||
def test_delitem_nonexistent_key():
|
||||
parser = PdfParser.XrefTable()
|
||||
|
||||
with pytest.raises(IndexError):
|
||||
del parser["nonexistent_key"]
|
Loading…
Reference in New Issue
Block a user