1import pytest 2 3from UM.Math.Color import Color 4 5half_color = 127/255 6 7test_validate_data = [ 8 {"data_to_set": [255, 255, 255, 0], "expected": [1.0, 1.0, 1.0, 0.0]}, 9 {"data_to_set": [0, 0, 0, 255], "expected": [0, 0, 0, 1.0]}, 10 {"data_to_set": [127, 127, 127, 127], "expected": [half_color, half_color, half_color, half_color]}, 11 {"data_to_set": [127, 1.0, 127, 127], "expected": [half_color, 1.0, half_color, half_color]} 12] 13 14@pytest.mark.parametrize("data", test_validate_data) 15def test_getAndSet(data): 16 color = Color(*data["data_to_set"]) 17 18 assert color == Color(*data["expected"]) 19 20 assert color.r == data["expected"][0] 21 assert color.g == data["expected"][1] 22 assert color.b == data["expected"][2] 23 assert color.a == data["expected"][3] 24 25 # And flip the data around to set the values one by one 26 reversed_data = data["data_to_set"][::-1] 27 color.setR(reversed_data[0]) 28 color.setG(reversed_data[1]) 29 color.setB(reversed_data[2]) 30 color.setA(reversed_data[3]) 31 32 assert color.r == data["expected"][3] 33 assert color.g == data["expected"][2] 34 assert color.b == data["expected"][1] 35 assert color.a == data["expected"][0] 36 37 38hex_data =[ 39 {"data_to_set": "#FFFFFF", "expected": [1.0, 1.0, 1.0, 1.0]}, 40 {"data_to_set": "#00000000", "expected": [0.0, 0.0, 0.0, 0.0]}, 41 {"data_to_set": "#00cc99", "expected": [0 / 255, 204 / 255, 153 / 255, 1.0]}, 42 43] 44 45@pytest.mark.parametrize("data", hex_data) 46def test_fromHexString(data): 47 color = Color.fromHexString(data["data_to_set"]) 48 expected_color = Color(*data["expected"]) 49 assert color == expected_color 50