@pytest.mark.parametrize(('hsl', 'expected_rgb'), [
    # http://en.wikipedia.org/wiki/HSL_and_HSV#Examples
    ((0,     0,    100 ), (1,     1,     1    )),
    ((127,   0,    100 ), (1,     1,     1    )),
    ((0,     0,    50  ), (0.5,   0.5,   0.5  )),
    ((127,   0,    50  ), (0.5,   0.5,   0.5  )),
    ((0,     0,    0   ), (0,     0,     0    )),
    ((127,   0,    0   ), (0,     0,     0    )),
    ((0,     100,  50  ), (1,     0,     0    )),
    ((60,    100,  37.5), (0.75,  0.75,  0    )),
    ((780,   100,  37.5), (0.75,  0.75,  0    )),
    ((-300,  100,  37.5), (0.75,  0.75,  0    )),
    ((120,   100,  25  ), (0,     0.5,   0    )),
    ((180,   100,  75  ), (0.5,   1,     1    )),
    ((240,   100,  75  ), (0.5,   0.5,   1    )),
    ((300,   50,   50  ), (0.75,  0.25,  0.75 )),
    ((61.8,  63.8, 39.3), (0.628, 0.643, 0.142)),
    ((251.1, 83.2, 51.1), (0.255, 0.104, 0.918)),
    ((134.9, 70.7, 39.6), (0.116, 0.675, 0.255)),
    ((49.5,  89.3, 49.7), (0.941, 0.785, 0.053)),
    ((283.7, 77.5, 54.2), (0.704, 0.187, 0.897)),
    ((14.3,  81.7, 62.4), (0.931, 0.463, 0.316)),
    ((56.9,  99.1, 76.5), (0.998, 0.974, 0.532)),
    ((162.4, 77.9, 44.7), (0.099, 0.795, 0.591)),
    ((248.3, 60.1, 37.3), (0.211, 0.149, 0.597)),
    ((240.5, 29,   60.7), (0.495, 0.493, 0.721)),
])
def test_hsl(hsl, expected_rgb):
    for got, expected in zip(hsl_to_rgb(*hsl), expected_rgb):
        # Compensate for floating point errors and Wikipedia’s rounding:
        assert abs(got - expected) < 0.001
dataset/ETHPy150Open FichteFoll/CSScheme/tinycsscheme/tinycss/tests/test_color3.py/test_hsl/original