mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-30 23:47:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import annotations
 | |
| 
 | |
| import pytest
 | |
| 
 | |
| from PIL import Image, ImageMode
 | |
| 
 | |
| from .helper import hopper
 | |
| 
 | |
| 
 | |
| def test_sanity() -> None:
 | |
|     with hopper() as im:
 | |
|         im.mode
 | |
| 
 | |
|     ImageMode.getmode("1")
 | |
|     ImageMode.getmode("L")
 | |
|     ImageMode.getmode("P")
 | |
|     ImageMode.getmode("RGB")
 | |
|     ImageMode.getmode("I")
 | |
|     ImageMode.getmode("F")
 | |
| 
 | |
|     m = ImageMode.getmode("1")
 | |
|     assert m.mode == "1"
 | |
|     assert str(m) == "1"
 | |
|     assert m.bands == ("1",)
 | |
|     assert m.basemode == "L"
 | |
|     assert m.basetype == "L"
 | |
|     assert m.typestr == "|b1"
 | |
| 
 | |
|     for mode in (
 | |
|         "I;16",
 | |
|         "I;16S",
 | |
|         "I;16L",
 | |
|         "I;16LS",
 | |
|         "I;16B",
 | |
|         "I;16BS",
 | |
|         "I;16N",
 | |
|         "I;16NS",
 | |
|     ):
 | |
|         m = ImageMode.getmode(mode)
 | |
|         assert m.mode == mode
 | |
|         assert str(m) == mode
 | |
|         assert m.bands == ("I",)
 | |
|         assert m.basemode == "L"
 | |
|         assert m.basetype == "L"
 | |
| 
 | |
|     m = ImageMode.getmode("RGB")
 | |
|     assert m.mode == "RGB"
 | |
|     assert str(m) == "RGB"
 | |
|     assert m.bands == ("R", "G", "B")
 | |
|     assert m.basemode == "RGB"
 | |
|     assert m.basetype == "L"
 | |
|     assert m.typestr == "|u1"
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "mode, expected_base, expected_type, expected_bands, expected_band_names",
 | |
|     (
 | |
|         ("1", "L", "L", 1, ("1",)),
 | |
|         ("L", "L", "L", 1, ("L",)),
 | |
|         ("P", "P", "L", 1, ("P",)),
 | |
|         ("I", "L", "I", 1, ("I",)),
 | |
|         ("F", "L", "F", 1, ("F",)),
 | |
|         ("RGB", "RGB", "L", 3, ("R", "G", "B")),
 | |
|         ("RGBA", "RGB", "L", 4, ("R", "G", "B", "A")),
 | |
|         ("RGBX", "RGB", "L", 4, ("R", "G", "B", "X")),
 | |
|         ("CMYK", "RGB", "L", 4, ("C", "M", "Y", "K")),
 | |
|         ("YCbCr", "RGB", "L", 3, ("Y", "Cb", "Cr")),
 | |
|     ),
 | |
| )
 | |
| def test_properties(
 | |
|     mode: str,
 | |
|     expected_base: str,
 | |
|     expected_type: str,
 | |
|     expected_bands: int,
 | |
|     expected_band_names: tuple[str, ...],
 | |
| ) -> None:
 | |
|     assert Image.getmodebase(mode) == expected_base
 | |
|     assert Image.getmodetype(mode) == expected_type
 | |
|     assert Image.getmodebands(mode) == expected_bands
 | |
|     assert Image.getmodebandnames(mode) == expected_band_names
 |