Fix exception in color_rgb_to_rgbww (#61466)

This commit is contained in:
J. Nick Koston 2021-12-10 20:19:54 -10:00 committed by GitHub
parent 74d5cbd3a9
commit 3eabd69666
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 1 deletions

View File

@ -450,7 +450,7 @@ def color_rgb_to_rgbww(
w_r, w_g, w_b = color_temperature_to_rgb(color_temp_kelvin)
# Find the ratio of the midpoint white in the input rgb channels
white_level = min(r / w_r, g / w_g, b / w_b)
white_level = min(r / w_r, g / w_g, b / w_b if w_b else 0)
# Subtract the white portion from the rgb channels.
rgb = (r - w_r * white_level, g - w_g * white_level, b - w_b * white_level)

View File

@ -366,3 +366,38 @@ def test_get_color_in_voluptuous():
schema("not a color")
assert schema("red") == (255, 0, 0)
def test_color_rgb_to_rgbww():
"""Test color_rgb_to_rgbww conversions."""
assert color_util.color_rgb_to_rgbww(255, 255, 255, 154, 370) == (
0,
54,
98,
255,
255,
)
assert color_util.color_rgb_to_rgbww(255, 255, 255, 100, 1000) == (
255,
255,
255,
0,
0,
)
assert color_util.color_rgb_to_rgbww(255, 255, 255, 1, 1000) == (
0,
118,
241,
255,
255,
)
assert color_util.color_rgb_to_rgbww(128, 128, 128, 154, 370) == (
0,
27,
49,
128,
128,
)
assert color_util.color_rgb_to_rgbww(64, 64, 64, 154, 370) == (0, 14, 25, 64, 64)
assert color_util.color_rgb_to_rgbww(32, 64, 16, 154, 370) == (9, 64, 0, 38, 38)
assert color_util.color_rgb_to_rgbww(0, 0, 0, 154, 370) == (0, 0, 0, 0, 0)