self.assertTripleEqual(hsv, colorsys.rgb_to_hsv(*rgb))
self.assertTripleEqual(rgb, colorsys.hsv_to_rgb(*hsv))
+ # test 360 phase shift in hue
+ h, s, v = hsv
+ self.assertTripleEqual(rgb, colorsys.hsv_to_rgb(h + 1.0, s, v))
+
def test_hls_roundtrip(self):
for r in frange(0.0, 1.0, 0.2):
for g in frange(0.0, 1.0, 0.2):
colorsys.yiq_to_rgb(*colorsys.rgb_to_yiq(*rgb))
)
+ def test_yiq_to_rgb_clamping(self):
+ values = [
+ # rgb, yiq (invalid YIQ values clamped to RGB range)
+ ((1.0, 0.0, 1.0), (0.0, 0.5, 1.0)),
+ ((0.0, 1.0, 0.0), (0.25, -1.0, -1.0)),
+ ((0.0, 0.0, 1.0), (0.0, -1.0, 0.5))
+ ]
+
+ for (rgb, yiq) in values:
+ with self.subTest(rgb=rgb, yiq=yiq):
+ self.assertTripleEqual(rgb, colorsys.yiq_to_rgb(*yiq))
+
def test_yiq_values(self):
values = [
# rgb, yiq