from __future__ import annotations from PIL import Image import kneiff.utils.image.resize as resize_utils def test_size_for_pixel_area_bounds_downscales_aspect_ratio() -> None: size = resize_utils.size_for_pixel_area_bounds( (2000, 1000), max_pixel_area=1000, ) assert size == (1414, 707) def test_size_for_pixel_area_bounds_upscales_aspect_ratio() -> None: size = resize_utils.size_for_pixel_area_bounds( (100, 50), min_pixel_area=200, ) assert size == (283, 141) def test_size_for_pixel_area_bounds_keeps_in_range_size() -> None: size = resize_utils.size_for_pixel_area_bounds( (1200, 800), min_pixel_area=768, max_pixel_area=1536, ) assert size == (1200, 800) def test_resize_to_pixel_area_bounds_uses_lanczos_resize() -> None: image = Image.new("RGB", (2000, 1000), color="white") resized = resize_utils.resize_to_pixel_area_bounds( image, max_pixel_area=1000, ) assert resized.size == (1414, 707)