Commit 28fab331 authored by narugo1992's avatar narugo1992
Browse files

dev(narugo): add unittest for PillowPadToSize

parent 2cf3c357
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -17,12 +17,12 @@ __all__ = [
]


def _parse_size(size):
def _parse_size(size: Union[Tuple[int, int], int]):
    """
    Parse size parameter into a tuple of width and height.

    :param size: Size specification as an integer or tuple of two integers
    :type size: Union[int, Tuple[int, int], list]
    :type size: Union[Tuple[int, int], int]

    :return: Tuple containing width and height
    :rtype: Tuple[int, int]
@@ -37,12 +37,12 @@ def _parse_size(size):
        raise TypeError("Size must be int or tuple of two ints")


def _parse_color_to_rgba(color):
def _parse_color_to_rgba(color: Union[str, int, Tuple[int, int, int], Tuple[int, int, int, int]]):
    """
    Convert various color formats to RGBA tuple.

    :param color: Color specification (string, integer, or tuple/list)
    :type color: Union[str, int, Tuple, list]
    :type color: Union[str, int, Tuple[int, int, int], Tuple[int, int, int, int]]

    :return: RGBA color tuple
    :rtype: Tuple[int, int, int, int]
@@ -55,7 +55,7 @@ def _parse_color_to_rgba(color):
    elif isinstance(color, int):
        rgba = (color, color, color, 255)
    elif isinstance(color, (list, tuple)):
        rgba = color + (255,) * (4 - len(color))
        rgba = tuple([*color, *((255,) * (4 - len(color)))])
    else:
        raise TypeError(f"Invalid color type: {type(color)}")

+4 −2
Original line number Diff line number Diff line
@@ -806,7 +806,8 @@ class PillowPadToSize:
                 interpolation: int = Image.BILINEAR):
        from ..data.pad import _parse_size, _parse_color_to_rgba
        self.size = _parse_size(size)
        self.background_color = background_color
        self.background_color = (tuple(background_color)
                                 if isinstance(background_color, (list, tuple)) else background_color)
        self.interpolation = interpolation
        _parse_color_to_rgba(self.background_color)

@@ -846,7 +847,8 @@ def _parse_pad_to_size(obj):
    obj: PillowPadToSize
    return {
        'size': list(obj.size),
        'background_color': obj.background_color,
        'background_color': (list(obj.background_color)
                             if isinstance(obj.background_color, (list, tuple)) else obj.background_color),
        'interpolation': _PILLOW_TO_STR[obj.interpolation],
    }

+2 −0
Original line number Diff line number Diff line
@@ -4,3 +4,5 @@ markers =
    unittest
    benchmark
    ignore
norecursedirs = .* venv env build dist
collect_ignore_glob = ig_*/* ig_*/**/*
 No newline at end of file
+544 −2

File changed.

Preview size limit exceeded, changes collapsed.