disnake

Форк
0
/
test_colour.py 
60 строк · 1.6 Кб
1
# SPDX-License-Identifier: MIT
2

3
import math
4
from typing import Tuple
5

6
import pytest
7

8
from disnake import Color, Colour
9

10

11
def test_init() -> None:
12
    with pytest.raises(TypeError, match=r"Expected int parameter, received str instead."):
13
        Colour("0")  # type: ignore
14

15

16
@pytest.mark.parametrize(
17
    ("value", "string"), [(0, "#000000"), (0x123, "#000123"), (0x12AB34, "#12ab34")]
18
)
19
def test_str(value: int, string: str) -> None:
20
    assert str(Colour(value)) == string
21

22

23
def test_compare() -> None:
24
    assert Colour(123) == Colour(123)
25

26

27
@pytest.mark.parametrize(
28
    ("value", "parts"),
29
    [(0, (0, 0, 0)), (0xA00233, (0xA0, 0x02, 0x33)), (0x123456, (0x12, 0x34, 0x56))],
30
)
31
def test_to_rgb(value: int, parts: Tuple[int, int, int]) -> None:
32
    c = Colour(value)
33
    assert c.to_rgb() == parts
34
    assert (c.r, c.g, c.b) == parts
35

36

37
@pytest.mark.parametrize(
38
    ("value", "parts"),
39
    [(0, (0, 0, 0)), (0xA00233, (0xA0, 0x02, 0x33)), (0x123456, (0x12, 0x34, 0x56))],
40
)
41
def test_from_rgb(value: int, parts: Tuple[int, int, int]) -> None:
42
    assert Colour.from_rgb(*parts).value == value
43

44

45
@pytest.mark.parametrize(
46
    ("value", "parts"),
47
    [
48
        (0xFFFFFF, (123 / 360, 0, 1)),
49
        (0xF4A8B8, (348 / 360, 31 / 100, 96 / 100)),
50
        (0x5CCFF9, (196 / 360, 63 / 100, 98 / 100)),
51
    ],
52
)
53
def test_from_hsv(value: int, parts: Tuple[float, float, float]) -> None:
54
    expected = Colour(value)
55
    col = Colour.from_hsv(*parts)
56
    assert all(math.isclose(a, b, abs_tol=1) for a, b in zip(expected.to_rgb(), col.to_rgb()))
57

58

59
def test_alias() -> None:
60
    assert Color is Colour
61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.