1 import unittest
, test
.test_support
4 def frange(start
, stop
, step
):
9 class ColorsysTest(unittest
.TestCase
):
11 def assertTripleEqual(self
, tr1
, tr2
):
12 self
.assertEqual(len(tr1
), 3)
13 self
.assertEqual(len(tr2
), 3)
14 self
.assertAlmostEqual(tr1
[0], tr2
[0])
15 self
.assertAlmostEqual(tr1
[1], tr2
[1])
16 self
.assertAlmostEqual(tr1
[2], tr2
[2])
18 def test_hsv_roundtrip(self
):
19 for r
in frange(0.0, 1.0, 0.2):
20 for g
in frange(0.0, 1.0, 0.2):
21 for b
in frange(0.0, 1.0, 0.2):
23 self
.assertTripleEqual(
25 colorsys
.hsv_to_rgb(*colorsys
.rgb_to_hsv(*rgb
))
28 def test_hsv_values(self
):
31 ((0.0, 0.0, 0.0), ( 0 , 0.0, 0.0)), # black
32 ((0.0, 0.0, 1.0), (4./6., 1.0, 1.0)), # blue
33 ((0.0, 1.0, 0.0), (2./6., 1.0, 1.0)), # green
34 ((0.0, 1.0, 1.0), (3./6., 1.0, 1.0)), # cyan
35 ((1.0, 0.0, 0.0), ( 0 , 1.0, 1.0)), # red
36 ((1.0, 0.0, 1.0), (5./6., 1.0, 1.0)), # purple
37 ((1.0, 1.0, 0.0), (1./6., 1.0, 1.0)), # yellow
38 ((1.0, 1.0, 1.0), ( 0 , 0.0, 1.0)), # white
39 ((0.5, 0.5, 0.5), ( 0 , 0.0, 0.5)), # grey
41 for (rgb
, hsv
) in values
:
42 self
.assertTripleEqual(hsv
, colorsys
.rgb_to_hsv(*rgb
))
43 self
.assertTripleEqual(rgb
, colorsys
.hsv_to_rgb(*hsv
))
45 def test_hls_roundtrip(self
):
46 for r
in frange(0.0, 1.0, 0.2):
47 for g
in frange(0.0, 1.0, 0.2):
48 for b
in frange(0.0, 1.0, 0.2):
50 self
.assertTripleEqual(
52 colorsys
.hls_to_rgb(*colorsys
.rgb_to_hls(*rgb
))
55 def test_hls_values(self
):
58 ((0.0, 0.0, 0.0), ( 0 , 0.0, 0.0)), # black
59 ((0.0, 0.0, 1.0), (4./6., 0.5, 1.0)), # blue
60 ((0.0, 1.0, 0.0), (2./6., 0.5, 1.0)), # green
61 ((0.0, 1.0, 1.0), (3./6., 0.5, 1.0)), # cyan
62 ((1.0, 0.0, 0.0), ( 0 , 0.5, 1.0)), # red
63 ((1.0, 0.0, 1.0), (5./6., 0.5, 1.0)), # purple
64 ((1.0, 1.0, 0.0), (1./6., 0.5, 1.0)), # yellow
65 ((1.0, 1.0, 1.0), ( 0 , 1.0, 0.0)), # white
66 ((0.5, 0.5, 0.5), ( 0 , 0.5, 0.0)), # grey
68 for (rgb
, hls
) in values
:
69 self
.assertTripleEqual(hls
, colorsys
.rgb_to_hls(*rgb
))
70 self
.assertTripleEqual(rgb
, colorsys
.hls_to_rgb(*hls
))
73 test
.test_support
.run_unittest(ColorsysTest
)
75 if __name__
== "__main__":