def test_valid(self): assert int(Color.from_hsl(0.625, 0.15, 0.74)) == 0xb3b8c7
def test_invalid(self): with pytest.raises(ValueError): Color.from_hsl(25, 1.0, 0.74)
def test_from_hsl(): assert int(Color.from_hsl(0.2583, 0.1515, 0.7412)) == 0xbcc7b3
def test_copy(): orig = Color.from_hsl(0.2583, 0.1515, 0.7412) copy = orig.copy() assert id(orig) != id(copy) assert orig.rgb.vals == copy.rgb.vals
def test_setter_invalid(self, wrong_vals): color = Color.from_hsl(0.75, 0.45, 0.29) with pytest.raises(ValueError): color.hsl.vals = wrong_vals
def test_vals_getter(): color = Color.from_hsl(0.75, 0.45, 0.29) assert [round(val, 4) for val in color.hsl.vals] == [0.75, 0.45, 0.29]
def test_setter_valid(self, vals): color = Color.from_hsl(0.75, 0.45, 0.29) color.hsl.vals = vals assert [round(val, 4) for val in color.hsl] == list(vals)
def test_replace(hsl_dict, expected): color = Color.from_hsl(0.75, 0.45, 0.29) assert int(color.hsl.replace(**hsl_dict)) == expected
def test_invalid(self, attr): color = Color.from_hsl(0.75, 0.47, 0.29) with pytest.raises(AttributeError): setattr(color.hsl, attr, 0.1)
def test_valid(self, attr, val): color = Color.from_hsl(0.45, 0.15, 0.89) setattr(color.hsl, attr, val) assert round(getattr(color.hsl, attr), 4) == val
def test_valid(self, attr, expected): color = Color.from_hsl(0.75, 0.47, 0.29) assert round(getattr(color.hsl, attr), 4) == expected