4
from typing import Tuple
8
from disnake import Color, Colour
11
def test_init() -> None:
12
with pytest.raises(TypeError, match=r"Expected int parameter, received str instead."):
16
@pytest.mark.parametrize(
17
("value", "string"), [(0, "#000000"), (0x123, "#000123"), (0x12AB34, "#12ab34")]
19
def test_str(value: int, string: str) -> None:
20
assert str(Colour(value)) == string
23
def test_compare() -> None:
24
assert Colour(123) == Colour(123)
27
@pytest.mark.parametrize(
29
[(0, (0, 0, 0)), (0xA00233, (0xA0, 0x02, 0x33)), (0x123456, (0x12, 0x34, 0x56))],
31
def test_to_rgb(value: int, parts: Tuple[int, int, int]) -> None:
33
assert c.to_rgb() == parts
34
assert (c.r, c.g, c.b) == parts
37
@pytest.mark.parametrize(
39
[(0, (0, 0, 0)), (0xA00233, (0xA0, 0x02, 0x33)), (0x123456, (0x12, 0x34, 0x56))],
41
def test_from_rgb(value: int, parts: Tuple[int, int, int]) -> None:
42
assert Colour.from_rgb(*parts).value == value
45
@pytest.mark.parametrize(
48
(0xFFFFFF, (123 / 360, 0, 1)),
49
(0xF4A8B8, (348 / 360, 31 / 100, 96 / 100)),
50
(0x5CCFF9, (196 / 360, 63 / 100, 98 / 100)),
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()))
59
def test_alias() -> None:
60
assert Color is Colour