]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] Improve colorsys coverage (GH-153982) (#154077)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 19 Jul 2026 11:06:14 +0000 (13:06 +0200)
committerGitHub <noreply@github.com>
Sun, 19 Jul 2026 11:06:14 +0000 (11:06 +0000)
Improve colorsys coverage (GH-153982)

* improve colorsys coverage

* add subtest
(cherry picked from commit 54b00c055210d738f5c3fb590ab85bde80b46ac6)

Co-authored-by: MonadChains <monadchains@gmail.com>
Lib/test/test_colorsys.py

index 74d76294b0b4d467e9a4cdd44cb6d208d2d78235..9dfaef44a6a45083a273b443f4bce119f7b47f04 100644 (file)
@@ -42,6 +42,10 @@ class ColorsysTest(unittest.TestCase):
             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):
@@ -89,6 +93,18 @@ class ColorsysTest(unittest.TestCase):
                         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