1 package csscolorparser
2
3 import "testing"
4
5 func TestBrowserFirefox(t *testing.T) {
6 type testData struct {
7 colorStr string
8 r, g, b, a uint8
9 }
10
11 data := []testData{
12 {"#817801", 129, 120, 1, 255},
13 {"#62D5", 102, 34, 221, 85},
14 {"#857D", 136, 85, 119, 221},
15 {"#8D0C5BBE", 141, 12, 91, 190},
16 {"#BD5", 187, 221, 85, 255},
17 {"#A64", 170, 102, 68, 255},
18 {"#8092", 136, 0, 153, 34},
19 {"#1C0FF87B", 28, 15, 248, 123},
20 {"#818FFE", 129, 143, 254, 255},
21 {"#1ed0ebea", 30, 208, 235, 234},
22 {"#0D5FCA67", 13, 95, 202, 103},
23 {"#C285F3", 194, 133, 243, 255},
24 {"#7D0D", 119, 221, 0, 221},
25 {"#E30", 238, 51, 0, 255},
26 {"#6e5dc4", 110, 93, 196, 255},
27 {"#389A", 51, 136, 153, 170},
28 {"#F1D", 255, 17, 221, 255},
29 {"#8BB5", 136, 187, 187, 85},
30 {"#3DAA", 51, 221, 170, 170},
31 {"#B1D88F42", 177, 216, 143, 66},
32 {"#793", 119, 153, 51, 255},
33 {"#55da", 85, 85, 221, 170},
34 {"#BE70C687", 190, 112, 198, 135},
35 {"#4FD", 68, 255, 221, 255},
36 {"#30D38748", 48, 211, 135, 72},
37 {"#878", 136, 119, 136, 255},
38 {"#AC0D", 170, 204, 0, 221},
39 {"#12E", 17, 34, 238, 255},
40 {"#0DD3", 0, 221, 221, 51},
41 {"#7F54C08F", 127, 84, 192, 143},
42 {"#6cc7cba0", 108, 199, 203, 160},
43 {"#E97933", 233, 121, 51, 255},
44 {"#9237", 153, 34, 51, 119},
45 {"#F1FB94BD", 241, 251, 148, 189},
46 {"#9a8", 153, 170, 136, 255},
47 {"#0fcb7f03", 15, 203, 127, 3},
48 {"#534603AF", 83, 70, 3, 175},
49 {"#ef4cfc11", 239, 76, 252, 17},
50 {"#5D16052C", 93, 22, 5, 44},
51 {"#090", 0, 153, 0, 255},
52 {"#bc1f653a", 188, 31, 101, 58},
53 {"#ED02A8", 237, 2, 168, 255},
54 {"#6dc", 102, 221, 204, 255},
55 {"#E2E9", 238, 34, 238, 153},
56 {"#77B69060", 119, 182, 144, 96},
57 {"#0953FC", 9, 83, 252, 255},
58 {"#09C", 0, 153, 204, 255},
59 {"#172aca", 23, 42, 202, 255},
60 {"#74c18f04", 116, 193, 143, 4},
61 {"#153B", 17, 85, 51, 187},
62 {"rgb(264.654,8.955,5.446)", 255, 9, 5, 255},
63 {"rgb(63.688,192.702,251.174,0.322)", 64, 193, 251, 82},
64 {"rgb(131.708,39.654,79.812,1.128)", 132, 40, 80, 255},
65 {"rgb(116.842,105.189,171.013)", 117, 105, 171, 255},
66 {"rgb(120.525,88.804,130.411,0.946)", 121, 89, 130, 241},
67 {"rgb(240.988,49.789,222.272,0.325)", 241, 50, 222, 83},
68 {"rgb(187.245,215.507,159.236)", 187, 216, 159, 255},
69 {"rgb(98.714,205.689,261.942)", 99, 206, 255, 255},
70 {"rgb(209.553,174.927,193.981)", 210, 175, 194, 255},
71 {"rgb(7.372,4.253,86.174,0.041)", 7, 4, 86, 10},
72 {"rgb(150.202,78.032,213.103,0.337)", 150, 78, 213, 86},
73 {"rgb(246.369,62.382,31.651)", 246, 62, 32, 255},
74 {"rgb(236.566,160.563,89.892)", 237, 161, 90, 255},
75 {"rgb(112.356,163.535,102.720,-0.042)", 112, 164, 103, 0},
76 {"rgb(35.219,244.481,202.782,0.493)", 35, 244, 203, 126},
77 {"rgb(232.189,255.053,111.323)", 232, 255, 111, 255},
78 {"rgb(109.771,118.748,181.671)", 110, 119, 182, 255},
79 {"rgb(92.105,105.280,144.175)", 92, 105, 144, 255},
80 {"rgb(18.643,213.863,186.733)", 19, 214, 187, 255},
81 {"rgb(3.754,214.128,20.735,1.158)", 4, 214, 21, 255},
82 {"rgb(234.259,224.675,206.049)", 234, 225, 206, 255},
83 {"rgb(-7.668,131.621,160.351,0.411)", 0, 132, 160, 105},
84 {"rgb(45.824,242.113,209.576)", 46, 242, 210, 255},
85 {"rgb(30.113,222.102,93.192)", 30, 222, 93, 255},
86 {"rgb(245.402,199.722,-8.903)", 245, 200, 0, 255},
87 {"rgb(106.884,234.873,44.912,0.572)", 107, 235, 45, 146},
88 {"rgb(76.730,168.471,90.981)", 77, 168, 91, 255},
89 {"rgb(197.334,-0.665,134.907,0.421)", 197, 0, 135, 107},
90 {"rgb(120.677,48.776,120.922)", 121, 49, 121, 255},
91 {"rgb(165.450,89.865,211.876)", 165, 90, 212, 255},
92 {"rgb(88.649,20.622,250.829)", 89, 21, 251, 255},
93 {"rgb(-3.239,112.321,33.676)", 0, 112, 34, 255},
94 {"rgb(211.846,130.462,175.005)", 212, 130, 175, 255},
95 {"rgb(154.051,122.824,-9.377)", 154, 123, 0, 255},
96 {"rgb(144.666,79.334,20.699,0.412)", 145, 79, 21, 105},
97 {"rgb(234.323,96.841,102.930,0.187)", 234, 97, 103, 48},
98 {"rgb(196.469,255.522,21.318,0.300)", 196, 255, 21, 77},
99 {"rgb(23.779,145.864,206.664)", 24, 146, 207, 255},
100 {"rgb(133.613,9.608,39.029)", 134, 10, 39, 255},
101 {"rgb(218.954,163.743,79.818)", 219, 164, 80, 255},
102 {"rgb(33.108,151.645,11.619,1.132)", 33, 152, 12, 255},
103 {"rgb(204.629,39.956,-4.544)", 205, 40, 0, 255},
104 {"rgb(123.245,255.852,24.856)", 123, 255, 25, 255},
105 {"rgb(90.894,-2.651,116.502,0.596)", 91, 0, 117, 152},
106 {"rgb(79.128,115.857,155.230)", 79, 116, 155, 255},
107 {"rgb(87.319,70.167,172.069,-0.033)", 87, 70, 172, 0},
108 {"rgb(48.049,235.369,171.190,0.534)", 48, 235, 171, 136},
109 {"rgb(15.808,223.023,81.102,-0.116)", 16, 223, 81, 0},
110 {"rgb(255.282,239.066,222.922)", 255, 239, 223, 255},
111 {"rgb(173.178,-7.708,29.095,1.177)", 173, 0, 29, 255},
112 {"rgb(-5.791%,-7.797%,44.772%)", 0, 0, 114, 255},
113 {"rgb(103.362%,86.514%,79.870%,0.467)", 255, 221, 204, 119},
114 {"rgb(79.920%,30.359%,66.318%)", 204, 77, 169, 255},
115 {"rgb(54.309%,48.762%,42.059%)", 138, 124, 107, 255},
116 {"rgb(89.114%,50.975%,80.230%,0.843)", 227, 130, 205, 215},
117 {"rgb(-2.707%,3.715%,26.256%,0.185)", 0, 9, 67, 47},
118 {"rgb(51.827%,102.172%,-0.876%,0.302)", 132, 255, 0, 77},
119 {"rgb(14.092%,63.162%,97.286%)", 36, 161, 248, 255},
120 {"rgb(20.757%,33.676%,26.518%)", 53, 86, 68, 255},
121 {"rgb(85.387%,32.861%,29.168%)", 218, 84, 74, 255},
122 {"rgb(20.322%,107.488%,-9.083%)", 52, 255, 0, 255},
123 {"rgb(9.805%,12.717%,78.073%)", 25, 32, 199, 255},
124 {"rgb(80.225%,-7.567%,91.104%)", 205, 0, 232, 255},
125 {"rgb(57.826%,66.957%,35.887%)", 147, 171, 92, 255},
126 {"rgb(-5.675%,36.883%,86.567%)", 0, 94, 221, 255},
127 {"rgb(96.884%,-7.570%,86.334%,0.539)", 247, 0, 220, 137},
128 {"rgb(109.872%,32.523%,-3.411%,1.081)", 255, 83, 0, 255},
129 {"rgb(31.101%,2.122%,41.198%)", 79, 5, 105, 255},
130 {"rgb(15.290%,88.533%,91.984%)", 39, 226, 235, 255},
131 {"rgb(43.254%,59.929%,88.796%)", 110, 153, 226, 255},
132 {"rgb(20.849%,65.810%,108.952%)", 53, 168, 255, 255},
133 {"rgb(107.764%,106.729%,5.219%,0.722)", 255, 255, 13, 184},
134 {"rgb(87.428%,12.272%,55.687%)", 223, 31, 142, 255},
135 {"rgb(66.030%,91.694%,36.578%)", 168, 234, 93, 255},
136 {"rgb(50.947%,70.496%,90.525%)", 130, 180, 231, 255},
137 {"rgb(20.316%,98.256%,21.624%)", 52, 251, 55, 255},
138 {"rgb(101.253%,97.684%,18.923%,0.982)", 255, 249, 48, 250},
139 {"rgb(73.848%,64.384%,24.685%)", 188, 164, 63, 255},
140 {"rgb(106.833%,104.707%,97.097%)", 255, 255, 248, 255},
141 {"rgb(0.219%,58.327%,64.714%)", 1, 149, 165, 255},
142 {"rgb(105.545%,54.528%,72.587%)", 255, 139, 185, 255},
143 {"rgb(15.832%,89.520%,67.361%)", 40, 228, 172, 255},
144 {"rgb(99.044%,-8.225%,107.718%,0.707)", 253, 0, 255, 180},
145 {"rgb(53.693%,23.908%,60.057%,-0.168)", 137, 61, 153, 0},
146 {"rgb(79.097%,41.894%,91.880%)", 202, 107, 234, 255},
147 {"rgb(75.495%,78.770%,40.656%,0.394)", 193, 201, 104, 100},
148 {"rgb(98.775%,87.084%,9.632%)", 252, 222, 25, 255},
149 {"rgb(7.499%,58.822%,37.091%,0.211)", 19, 150, 95, 54},
150 {"rgb(53.511%,45.547%,31.029%)", 136, 116, 79, 255},
151 {"rgb(103.106%,79.057%,60.671%)", 255, 202, 155, 255},
152 {"rgb(44.343%,52.743%,100.265%,-0.047)", 113, 134, 255, 0},
153 {"rgb(109.647%,58.782%,0.907%,0.718)", 255, 150, 2, 183},
154 {"rgb(24.882%,96.959%,43.001%,0.400)", 63, 247, 110, 102},
155 {"rgb(74.362%,41.983%,9.375%)", 190, 107, 24, 255},
156 {"rgb(46.816%,66.074%,108.821%)", 119, 168, 255, 255},
157 {"rgb(77.497%,89.829%,62.736%,-0.026)", 198, 229, 160, 0},
158 {"rgb(26.042%,65.488%,69.547%,0.348)", 66, 167, 177, 89},
159 {"rgb(23.342%,-0.633%,77.730%)", 60, 0, 198, 255},
160 {"rgb(33.015%,81.191%,78.615%)", 84, 207, 200, 255},
161 {"rgb(108.596%,93.998%,0.798%)", 255, 240, 2, 255},
162 {"hsl(237.711grad,88.536%,36.402%)", 11, 82, 175, 255},
163 {"hsl(281.434,105.519%,-5.626%)", 0, 0, 0, 255},
164 {"hsl(257.634deg,91.970%,34.848%)", 55, 7, 171, 255},
165 {"hsl(0.944turn,70.481%,50.217%)", 218, 39, 99, 255},
166 {"hsl(327.085deg,22.465%,-2.142%,-0.156)", 0, 0, 0, 0},
167 {"hsl(366.588deg,62.880%,50.057%,0.213)", 208, 65, 48, 54},
168 {"hsl(34.042,89.193%,33.385%)", 161, 95, 9, 255},
169 {"hsl(359.760,66.421%,97.192%)", 253, 243, 243, 255},
170 {"hsl(3.111grad,106.058%,21.159%)", 108, 5, 0, 255},
171 {"hsl(0.918rad,-9.357%,33.825%)", 86, 86, 86, 255},
172 {"hsl(37.202deg,96.433%,9.973%)", 50, 31, 1, 255},
173 {"hsl(2.694rad,56.805%,80.396%)", 177, 233, 209, 255},
174 {"hsl(369.063,52.881%,26.098%)", 102, 42, 31, 255},
175 {"hsl(142.665,70.616%,96.183%)", 238, 252, 244, 255},
176 {"hsl(266.585grad,98.461%,8.780%)", 0, 0, 44, 255},
177 {"hsl(0.292turn,89.098%,25.780%)", 36, 124, 7, 255},
178 {"hsl(-0.043turn,-9.603%,106.006%)", 255, 255, 255, 255},
179 {"hsl(135.985deg,29.099%,103.419%)", 255, 255, 255, 255},
180 {"hsl(293.828,52.597%,7.326%)", 26, 9, 29, 255},
181 {"hsl(309.911grad,74.581%,0.263%)", 1, 0, 1, 255},
182 {"hsl(1.676rad,91.390%,15.755%)", 33, 77, 3, 255},
183 {"hsl(350.968deg,33.726%,88.331%,0.471)", 235, 215, 218, 120},
184 {"hsl(353.287grad,-9.139%,89.568%)", 228, 228, 228, 255},
185 {"hsl(2.953rad,52.179%,10.657%,0.989)", 13, 41, 36, 252},
186 {"hsl(298.491,41.628%,64.058%)", 200, 125, 202, 255},
187 {"hsl(0.840turn,89.447%,73.390%,0.161)", 248, 126, 243, 41},
188 {"hsl(0.415turn,3.520%,74.963%)", 189, 193, 191, 255},
189 {"hsl(309.723deg,-2.498%,81.780%)", 209, 209, 209, 255},
190 {"hsl(346.595,27.379%,5.620%)", 18, 10, 12, 255},
191 {"hsl(0.345turn,28.417%,71.498%)", 162, 203, 165, 255},
192 {"hsl(-0.074turn,91.885%,16.669%)", 82, 3, 38, 255},
193 {"hsl(154.320deg,-5.633%,-4.799%,-0.005)", 0, 0, 0, 0},
194 {"hsl(5.983,-5.051%,50.117%)", 128, 128, 128, 255},
195 {"hsl(78.942deg,93.449%,108.614%)", 255, 255, 255, 255},
196 {"hsl(20.316deg,90.583%,20.504%)", 100, 37, 5, 255},
197 {"hsl(231.054grad,63.039%,82.668%)", 183, 213, 239, 255},
198 {"hsl(0.880turn,6.700%,10.668%)", 29, 25, 28, 255},
199 {"hsl(37.954grad,79.594%,68.066%,-0.063)", 238, 183, 109, 0},
200 {"hsl(193.327deg,59.120%,93.790%)", 230, 244, 249, 255},
201 {"hsl(143.684deg,30.652%,82.141%)", 196, 223, 207, 255},
202 {"hsl(134.726,4.308%,49.756%)", 121, 132, 124, 255},
203 {"hsl(0.277turn,-7.056%,25.211%)", 64, 64, 64, 255},
204 {"hsl(1.849deg,33.541%,58.253%,0.425)", 184, 115, 113, 108},
205 {"hsl(151.147,86.285%,-6.549%)", 0, 0, 0, 255},
206 {"hsl(0.226turn,107.942%,19.766%,0.533)", 65, 101, 0, 136},
207 {"hsl(351.807deg,51.829%,70.431%,-0.069)", 219, 141, 151, 0},
208 {"hsl(1.075turn,71.099%,71.695%)", 234, 178, 132, 255},
209 {"hsl(235.353,50.281%,96.254%)", 241, 241, 250, 255},
210 {"hsl(250.375deg,95.684%,91.300%)", 219, 212, 254, 255},
211 {"hsl(0.579turn,76.129%,22.968%)", 14, 61, 103, 255},
212 }
213 for i, d := range data {
214 c, err := Parse(d.colorStr)
215 if err != nil {
216 t.Errorf("Parse error: %s", d.colorStr)
217 continue
218 }
219 r, g, b, a := c.RGBA255()
220 rgba := [4]uint8{r, g, b, a}
221 out := [4]uint8{d.r, d.g, d.b, d.a}
222 if rgba != out {
223 t.Errorf("(%d) %s -> %v != %v", i, d.colorStr, out, rgba)
224 }
225 }
226 }
227
View as plain text