Commit c6af13ea authored by narugo1992's avatar narugo1992
Browse files

dev(narugo): add test for align_maxsize

parent 9de9c17f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ from imgutils.data import ImageTyping, load_image
def align_maxsize(image: ImageTyping, max_size: int) -> Image.Image:
    """
    Resizes the image while maintaining its aspect ratio, ensuring that the length of its longer side
    does not exceed the specified maximum size.
    aligns with the given ``max_size``.

    :param image: The input image to be resized.
    :param max_size: The maximum length of the longer side after resizing.
+0 −0

Empty file added.

+35 −0
Original line number Diff line number Diff line
import pytest
from PIL import Image

from imgutils.operate import align_maxsize
from test.testings import get_testfile


@pytest.fixture()
def genshin_post() -> Image.Image:
    return Image.open(get_testfile('genshin_post.jpg'))


@pytest.mark.unittest
class TestOperateAlign:
    def test_align_maxsize(self, genshin_post, image_diff):
        assert genshin_post.size == (1280, 720)
        _origin_mode = genshin_post.mode

        new_img1 = align_maxsize(genshin_post, 800)
        assert new_img1.size == (800, 450)
        assert new_img1.mode == _origin_mode
        assert image_diff(
            genshin_post.resize((800, 450)).convert('RGB'),
            new_img1.convert('RGB'),
            throw_exception=False
        ) < 1e-2

        new_img2 = align_maxsize(genshin_post, 2000)
        assert new_img2.size == (2000, 1125)
        assert new_img2.mode == _origin_mode
        assert image_diff(
            genshin_post.resize((2000, 1125)).convert('RGB'),
            new_img2.convert('RGB'),
            throw_exception=False
        ) < 1e-2