2 // Tests for System.Drawing.Color.cs
5 // Ravindra (rkumar@novell.com)
7 // Copyright (C) 2004,2006 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using System.Runtime.Serialization;
33 using System.Runtime.Serialization.Formatters.Binary;
34 using System.Security.Permissions;
35 using NUnit.Framework;
37 namespace MonoTests.System.Drawing {
40 [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
41 public class ColorTest : Assertion {
44 public void TestArgbValues ()
48 color = Color.Transparent;
49 AssertEquals ("#Transparent.A", 0, color.A);
50 AssertEquals ("#Transparent.R", 255, color.R);
51 AssertEquals ("#Transparent.G", 255, color.G);
52 AssertEquals ("#Transparent.B", 255, color.B);
54 color = Color.AliceBlue;
55 AssertEquals ("#AliceBlue.A", 255, color.A);
56 AssertEquals ("#AliceBlue.R", 240, color.R);
57 AssertEquals ("#AliceBlue.G", 248, color.G);
58 AssertEquals ("#AliceBlue.B", 255, color.B);
60 color = Color.AntiqueWhite;
61 AssertEquals ("#AntiqueWhite.A", 255, color.A);
62 AssertEquals ("#AntiqueWhite.R", 250, color.R);
63 AssertEquals ("#AntiqueWhite.G", 235, color.G);
64 AssertEquals ("#AntiqueWhite.B", 215, color.B);
67 AssertEquals ("#Aqua.A", 255, color.A);
68 AssertEquals ("#Aqua.R", 0, color.R);
69 AssertEquals ("#Aqua.G", 255, color.G);
70 AssertEquals ("#Aqua.B", 255, color.B);
72 color = Color.Aquamarine;
73 AssertEquals ("#Aquamarine.A", 255, color.A);
74 AssertEquals ("#Aquamarine.R", 127, color.R);
75 AssertEquals ("#Aquamarine.G", 255, color.G);
76 AssertEquals ("#Aquamarine.B", 212, color.B);
79 AssertEquals ("#Azure.A", 255, color.A);
80 AssertEquals ("#Azure.R", 240, color.R);
81 AssertEquals ("#Azure.G", 255, color.G);
82 AssertEquals ("#Azure.B", 255, color.B);
85 AssertEquals ("#Beige.A", 255, color.A);
86 AssertEquals ("#Beige.R", 245, color.R);
87 AssertEquals ("#Beige.G", 245, color.G);
88 AssertEquals ("#Beige.B", 220, color.B);
91 AssertEquals ("#Bisque.A", 255, color.A);
92 AssertEquals ("#Bisque.R", 255, color.R);
93 AssertEquals ("#Bisque.G", 228, color.G);
94 AssertEquals ("#Bisque.B", 196, color.B);
97 AssertEquals ("#Black.A", 255, color.A);
98 AssertEquals ("#Black.R", 0, color.R);
99 AssertEquals ("#Black.G", 0, color.G);
100 AssertEquals ("#Black.B", 0, color.B);
102 color = Color.BlanchedAlmond;
103 AssertEquals ("#BlanchedAlmond.A", 255, color.A);
104 AssertEquals ("#BlanchedAlmond.R", 255, color.R);
105 AssertEquals ("#BlanchedAlmond.G", 235, color.G);
106 AssertEquals ("#BlanchedAlmond.B", 205, color.B);
109 AssertEquals ("#Blue.A", 255, color.A);
110 AssertEquals ("#Blue.R", 0, color.R);
111 AssertEquals ("#Blue.G", 0, color.G);
112 AssertEquals ("#Blue.B", 255, color.B);
114 color = Color.BlueViolet;
115 AssertEquals ("#BlueViolet.A", 255, color.A);
116 AssertEquals ("#BlueViolet.R", 138, color.R);
117 AssertEquals ("#BlueViolet.G", 43, color.G);
118 AssertEquals ("#BlueViolet.B", 226, color.B);
121 AssertEquals ("#Brown.A", 255, color.A);
122 AssertEquals ("#Brown.R", 165, color.R);
123 AssertEquals ("#Brown.G", 42, color.G);
124 AssertEquals ("#Brown.B", 42, color.B);
126 color = Color.BurlyWood;
127 AssertEquals ("#BurlyWood.A", 255, color.A);
128 AssertEquals ("#BurlyWood.R", 222, color.R);
129 AssertEquals ("#BurlyWood.G", 184, color.G);
130 AssertEquals ("#BurlyWood.B", 135, color.B);
132 color = Color.CadetBlue;
133 AssertEquals ("#CadetBlue.A", 255, color.A);
134 AssertEquals ("#CadetBlue.R", 95, color.R);
135 AssertEquals ("#CadetBlue.G", 158, color.G);
136 AssertEquals ("#CadetBlue.B", 160, color.B);
138 color = Color.Chartreuse;
139 AssertEquals ("#Chartreuse.A", 255, color.A);
140 AssertEquals ("#Chartreuse.R", 127, color.R);
141 AssertEquals ("#Chartreuse.G", 255, color.G);
142 AssertEquals ("#Chartreuse.B", 0, color.B);
144 color = Color.Chocolate;
145 AssertEquals ("#Chocolate.A", 255, color.A);
146 AssertEquals ("#Chocolate.R", 210, color.R);
147 AssertEquals ("#Chocolate.G", 105, color.G);
148 AssertEquals ("#Chocolate.B", 30, color.B);
151 AssertEquals ("#Coral.A", 255, color.A);
152 AssertEquals ("#Coral.R", 255, color.R);
153 AssertEquals ("#Coral.G", 127, color.G);
154 AssertEquals ("#Coral.B", 80, color.B);
156 color = Color.CornflowerBlue;
157 AssertEquals ("#CornflowerBlue.A", 255, color.A);
158 AssertEquals ("#CornflowerBlue.R", 100, color.R);
159 AssertEquals ("#CornflowerBlue.G", 149, color.G);
160 AssertEquals ("#CornflowerBlue.B", 237, color.B);
162 color = Color.Cornsilk;
163 AssertEquals ("#Cornsilk.A", 255, color.A);
164 AssertEquals ("#Cornsilk.R", 255, color.R);
165 AssertEquals ("#Cornsilk.G", 248, color.G);
166 AssertEquals ("#Cornsilk.B", 220, color.B);
168 color = Color.Crimson;
169 AssertEquals ("#Crimson.A", 255, color.A);
170 AssertEquals ("#Crimson.R", 220, color.R);
171 AssertEquals ("#Crimson.G", 20, color.G);
172 AssertEquals ("#Crimson.B", 60, color.B);
175 AssertEquals ("#Cyan.A", 255, color.A);
176 AssertEquals ("#Cyan.R", 0, color.R);
177 AssertEquals ("#Cyan.G", 255, color.G);
178 AssertEquals ("#Cyan.B", 255, color.B);
180 color = Color.DarkBlue;
181 AssertEquals ("#DarkBlue.A", 255, color.A);
182 AssertEquals ("#DarkBlue.R", 0, color.R);
183 AssertEquals ("#DarkBlue.G", 0, color.G);
184 AssertEquals ("#DarkBlue.B", 139, color.B);
186 color = Color.DarkCyan;
187 AssertEquals ("#DarkCyan.A", 255, color.A);
188 AssertEquals ("#DarkCyan.R", 0, color.R);
189 AssertEquals ("#DarkCyan.G", 139, color.G);
190 AssertEquals ("#DarkCyan.B", 139, color.B);
192 color = Color.DarkGoldenrod;
193 AssertEquals ("#DarkGoldenrod.A", 255, color.A);
194 AssertEquals ("#DarkGoldenrod.R", 184, color.R);
195 AssertEquals ("#DarkGoldenrod.G", 134, color.G);
196 AssertEquals ("#DarkGoldenrod.B", 11, color.B);
198 color = Color.DarkGray;
199 AssertEquals ("#DarkGray.A", 255, color.A);
200 AssertEquals ("#DarkGray.R", 169, color.R);
201 AssertEquals ("#DarkGray.G", 169, color.G);
202 AssertEquals ("#DarkGray.B", 169, color.B);
204 color = Color.DarkGreen;
205 AssertEquals ("#DarkGreen.A", 255, color.A);
206 AssertEquals ("#DarkGreen.R", 0, color.R);
207 AssertEquals ("#DarkGreen.G", 100, color.G);
208 AssertEquals ("#DarkGreen.B", 0, color.B);
210 color = Color.DarkKhaki;
211 AssertEquals ("#DarkKhaki.A", 255, color.A);
212 AssertEquals ("#DarkKhaki.R", 189, color.R);
213 AssertEquals ("#DarkKhaki.G", 183, color.G);
214 AssertEquals ("#DarkKhaki.B", 107, color.B);
216 color = Color.DarkMagenta;
217 AssertEquals ("#DarkMagenta.A", 255, color.A);
218 AssertEquals ("#DarkMagenta.R", 139, color.R);
219 AssertEquals ("#DarkMagenta.G", 0, color.G);
220 AssertEquals ("#DarkMagenta.B", 139, color.B);
222 color = Color.DarkOliveGreen;
223 AssertEquals ("#DarkOliveGreen.A", 255, color.A);
224 AssertEquals ("#DarkOliveGreen.R", 85, color.R);
225 AssertEquals ("#DarkOliveGreen.G", 107, color.G);
226 AssertEquals ("#DarkOliveGreen.B", 47, color.B);
228 color = Color.DarkOrange;
229 AssertEquals ("#DarkOrange.A", 255, color.A);
230 AssertEquals ("#DarkOrange.R", 255, color.R);
231 AssertEquals ("#DarkOrange.G", 140, color.G);
232 AssertEquals ("#DarkOrange.B", 0, color.B);
234 color = Color.DarkOrchid;
235 AssertEquals ("#DarkOrchid.A", 255, color.A);
236 AssertEquals ("#DarkOrchid.R", 153, color.R);
237 AssertEquals ("#DarkOrchid.G", 50, color.G);
238 AssertEquals ("#DarkOrchid.B", 204, color.B);
240 color = Color.DarkRed;
241 AssertEquals ("#DarkRed.A", 255, color.A);
242 AssertEquals ("#DarkRed.R", 139, color.R);
243 AssertEquals ("#DarkRed.G", 0, color.G);
244 AssertEquals ("#DarkRed.B", 0, color.B);
246 color = Color.DarkSalmon;
247 AssertEquals ("#DarkSalmon.A", 255, color.A);
248 AssertEquals ("#DarkSalmon.R", 233, color.R);
249 AssertEquals ("#DarkSalmon.G", 150, color.G);
250 AssertEquals ("#DarkSalmon.B", 122, color.B);
252 color = Color.DarkSeaGreen;
253 AssertEquals ("#DarkSeaGreen.A", 255, color.A);
254 AssertEquals ("#DarkSeaGreen.R", 143, color.R);
255 AssertEquals ("#DarkSeaGreen.G", 188, color.G);
256 AssertEquals ("#DarkSeaGreen.B", 139, color.B);
258 color = Color.DarkSlateBlue;
259 AssertEquals ("#DarkSlateBlue.A", 255, color.A);
260 AssertEquals ("#DarkSlateBlue.R", 72, color.R);
261 AssertEquals ("#DarkSlateBlue.G", 61, color.G);
262 AssertEquals ("#DarkSlateBlue.B", 139, color.B);
264 color = Color.DarkSlateGray;
265 AssertEquals ("#DarkSlateGray.A", 255, color.A);
266 AssertEquals ("#DarkSlateGray.R", 47, color.R);
267 AssertEquals ("#DarkSlateGray.G", 79, color.G);
268 AssertEquals ("#DarkSlateGray.B", 79, color.B);
270 color = Color.DarkTurquoise;
271 AssertEquals ("#DarkTurquoise.A", 255, color.A);
272 AssertEquals ("#DarkTurquoise.R", 0, color.R);
273 AssertEquals ("#DarkTurquoise.G", 206, color.G);
274 AssertEquals ("#DarkTurquoise.B", 209, color.B);
276 color = Color.DarkViolet;
277 AssertEquals ("#DarkViolet.A", 255, color.A);
278 AssertEquals ("#DarkViolet.R", 148, color.R);
279 AssertEquals ("#DarkViolet.G", 0, color.G);
280 AssertEquals ("#DarkViolet.B", 211, color.B);
282 color = Color.DeepPink;
283 AssertEquals ("#DeepPink.A", 255, color.A);
284 AssertEquals ("#DeepPink.R", 255, color.R);
285 AssertEquals ("#DeepPink.G", 20, color.G);
286 AssertEquals ("#DeepPink.B", 147, color.B);
288 color = Color.DeepSkyBlue;
289 AssertEquals ("#DeepSkyBlue.A", 255, color.A);
290 AssertEquals ("#DeepSkyBlue.R", 0, color.R);
291 AssertEquals ("#DeepSkyBlue.G", 191, color.G);
292 AssertEquals ("#DeepSkyBlue.B", 255, color.B);
294 color = Color.DimGray;
295 AssertEquals ("#DimGray.A", 255, color.A);
296 AssertEquals ("#DimGray.R", 105, color.R);
297 AssertEquals ("#DimGray.G", 105, color.G);
298 AssertEquals ("#DimGray.B", 105, color.B);
300 color = Color.DodgerBlue;
301 AssertEquals ("#DodgerBlue.A", 255, color.A);
302 AssertEquals ("#DodgerBlue.R", 30, color.R);
303 AssertEquals ("#DodgerBlue.G", 144, color.G);
304 AssertEquals ("#DodgerBlue.B", 255, color.B);
306 color = Color.Firebrick;
307 AssertEquals ("#Firebrick.A", 255, color.A);
308 AssertEquals ("#Firebrick.R", 178, color.R);
309 AssertEquals ("#Firebrick.G", 34, color.G);
310 AssertEquals ("#Firebrick.B", 34, color.B);
312 color = Color.FloralWhite;
313 AssertEquals ("#FloralWhite.A", 255, color.A);
314 AssertEquals ("#FloralWhite.R", 255, color.R);
315 AssertEquals ("#FloralWhite.G", 250, color.G);
316 AssertEquals ("#FloralWhite.B", 240, color.B);
318 color = Color.ForestGreen;
319 AssertEquals ("#ForestGreen.A", 255, color.A);
320 AssertEquals ("#ForestGreen.R", 34, color.R);
321 AssertEquals ("#ForestGreen.G", 139, color.G);
322 AssertEquals ("#ForestGreen.B", 34, color.B);
324 color = Color.Fuchsia;
325 AssertEquals ("#Fuchsia.A", 255, color.A);
326 AssertEquals ("#Fuchsia.R", 255, color.R);
327 AssertEquals ("#Fuchsia.G", 0, color.G);
328 AssertEquals ("#Fuchsia.B", 255, color.B);
330 color = Color.Gainsboro;
331 AssertEquals ("#Gainsboro.A", 255, color.A);
332 AssertEquals ("#Gainsboro.R", 220, color.R);
333 AssertEquals ("#Gainsboro.G", 220, color.G);
334 AssertEquals ("#Gainsboro.B", 220, color.B);
336 color = Color.GhostWhite;
337 AssertEquals ("#GhostWhite.A", 255, color.A);
338 AssertEquals ("#GhostWhite.R", 248, color.R);
339 AssertEquals ("#GhostWhite.G", 248, color.G);
340 AssertEquals ("#GhostWhite.B", 255, color.B);
343 AssertEquals ("#Gold.A", 255, color.A);
344 AssertEquals ("#Gold.R", 255, color.R);
345 AssertEquals ("#Gold.G", 215, color.G);
346 AssertEquals ("#Gold.B", 0, color.B);
348 color = Color.Goldenrod;
349 AssertEquals ("#Goldenrod.A", 255, color.A);
350 AssertEquals ("#Goldenrod.R", 218, color.R);
351 AssertEquals ("#Goldenrod.G", 165, color.G);
352 AssertEquals ("#Goldenrod.B", 32, color.B);
355 AssertEquals ("#Gray.A", 255, color.A);
356 AssertEquals ("#Gray.R", 128, color.R);
357 AssertEquals ("#Gray.G", 128, color.G);
358 AssertEquals ("#Gray.B", 128, color.B);
361 AssertEquals ("#Green.A", 255, color.A);
362 AssertEquals ("#Green.R", 0, color.R);
363 // This test should compare Green.G with 255, but
364 // MS is using a value of 128 for Green.G
365 AssertEquals ("#Green.G", 128, color.G);
366 AssertEquals ("#Green.B", 0, color.B);
368 color = Color.GreenYellow;
369 AssertEquals ("#GreenYellow.A", 255, color.A);
370 AssertEquals ("#GreenYellow.R", 173, color.R);
371 AssertEquals ("#GreenYellow.G", 255, color.G);
372 AssertEquals ("#GreenYellow.B", 47, color.B);
374 color = Color.Honeydew;
375 AssertEquals ("#Honeydew.A", 255, color.A);
376 AssertEquals ("#Honeydew.R", 240, color.R);
377 AssertEquals ("#Honeydew.G", 255, color.G);
378 AssertEquals ("#Honeydew.B", 240, color.B);
380 color = Color.HotPink;
381 AssertEquals ("#HotPink.A", 255, color.A);
382 AssertEquals ("#HotPink.R", 255, color.R);
383 AssertEquals ("#HotPink.G", 105, color.G);
384 AssertEquals ("#HotPink.B", 180, color.B);
386 color = Color.IndianRed;
387 AssertEquals ("#IndianRed.A", 255, color.A);
388 AssertEquals ("#IndianRed.R", 205, color.R);
389 AssertEquals ("#IndianRed.G", 92, color.G);
390 AssertEquals ("#IndianRed.B", 92, color.B);
392 color = Color.Indigo;
393 AssertEquals ("#Indigo.A", 255, color.A);
394 AssertEquals ("#Indigo.R", 75, color.R);
395 AssertEquals ("#Indigo.G", 0, color.G);
396 AssertEquals ("#Indigo.B", 130, color.B);
399 AssertEquals ("#Ivory.A", 255, color.A);
400 AssertEquals ("#Ivory.R", 255, color.R);
401 AssertEquals ("#Ivory.G", 255, color.G);
402 AssertEquals ("#Ivory.B", 240, color.B);
405 AssertEquals ("#Khaki.A", 255, color.A);
406 AssertEquals ("#Khaki.R", 240, color.R);
407 AssertEquals ("#Khaki.G", 230, color.G);
408 AssertEquals ("#Khaki.B", 140, color.B);
410 color = Color.Lavender;
411 AssertEquals ("#Lavender.A", 255, color.A);
412 AssertEquals ("#Lavender.R", 230, color.R);
413 AssertEquals ("#Lavender.G", 230, color.G);
414 AssertEquals ("#Lavender.B", 250, color.B);
416 color = Color.LavenderBlush;
417 AssertEquals ("#LavenderBlush.A", 255, color.A);
418 AssertEquals ("#LavenderBlush.R", 255, color.R);
419 AssertEquals ("#LavenderBlush.G", 240, color.G);
420 AssertEquals ("#LavenderBlush.B", 245, color.B);
422 color = Color.LawnGreen;
423 AssertEquals ("#LawnGreen.A", 255, color.A);
424 AssertEquals ("#LawnGreen.R", 124, color.R);
425 AssertEquals ("#LawnGreen.G", 252, color.G);
426 AssertEquals ("#LawnGreen.B", 0, color.B);
428 color = Color.LemonChiffon;
429 AssertEquals ("#LemonChiffon.A", 255, color.A);
430 AssertEquals ("#LemonChiffon.R", 255, color.R);
431 AssertEquals ("#LemonChiffon.G", 250, color.G);
432 AssertEquals ("#LemonChiffon.B", 205, color.B);
434 color = Color.LightBlue;
435 AssertEquals ("#LightBlue.A", 255, color.A);
436 AssertEquals ("#LightBlue.R", 173, color.R);
437 AssertEquals ("#LightBlue.G", 216, color.G);
438 AssertEquals ("#LightBlue.B", 230, color.B);
440 color = Color.LightCoral;
441 AssertEquals ("#LightCoral.A", 255, color.A);
442 AssertEquals ("#LightCoral.R", 240, color.R);
443 AssertEquals ("#LightCoral.G", 128, color.G);
444 AssertEquals ("#LightCoral.B", 128, color.B);
446 color = Color.LightCyan;
447 AssertEquals ("#LightCyan.A", 255, color.A);
448 AssertEquals ("#LightCyan.R", 224, color.R);
449 AssertEquals ("#LightCyan.G", 255, color.G);
450 AssertEquals ("#LightCyan.B", 255, color.B);
452 color = Color.LightGoldenrodYellow;
453 AssertEquals ("#LightGoldenrodYellow.A", 255, color.A);
454 AssertEquals ("#LightGoldenrodYellow.R", 250, color.R);
455 AssertEquals ("#LightGoldenrodYellow.G", 250, color.G);
456 AssertEquals ("#LightGoldenrodYellow.B", 210, color.B);
458 color = Color.LightGreen;
459 AssertEquals ("#LightGreen.A", 255, color.A);
460 AssertEquals ("#LightGreen.R", 144, color.R);
461 AssertEquals ("#LightGreen.G", 238, color.G);
462 AssertEquals ("#LightGreen.B", 144, color.B);
464 color = Color.LightGray;
465 AssertEquals ("#LightGray.A", 255, color.A);
466 AssertEquals ("#LightGray.R", 211, color.R);
467 AssertEquals ("#LightGray.G", 211, color.G);
468 AssertEquals ("#LightGray.B", 211, color.B);
470 color = Color.LightPink;
471 AssertEquals ("#LightPink.A", 255, color.A);
472 AssertEquals ("#LightPink.R", 255, color.R);
473 AssertEquals ("#LightPink.G", 182, color.G);
474 AssertEquals ("#LightPink.B", 193, color.B);
476 color = Color.LightSalmon;
477 AssertEquals ("#LightSalmon.A", 255, color.A);
478 AssertEquals ("#LightSalmon.R", 255, color.R);
479 AssertEquals ("#LightSalmon.G", 160, color.G);
480 AssertEquals ("#LightSalmon.B", 122, color.B);
482 color = Color.LightSeaGreen;
483 AssertEquals ("#LightSeaGreen.A", 255, color.A);
484 AssertEquals ("#LightSeaGreen.R", 32, color.R);
485 AssertEquals ("#LightSeaGreen.G", 178, color.G);
486 AssertEquals ("#LightSeaGreen.B", 170, color.B);
488 color = Color.LightSkyBlue;
489 AssertEquals ("#LightSkyBlue.A", 255, color.A);
490 AssertEquals ("#LightSkyBlue.R", 135, color.R);
491 AssertEquals ("#LightSkyBlue.G", 206, color.G);
492 AssertEquals ("#LightSkyBlue.B", 250, color.B);
494 color = Color.LightSlateGray;
495 AssertEquals ("#LightSlateGray.A", 255, color.A);
496 AssertEquals ("#LightSlateGray.R", 119, color.R);
497 AssertEquals ("#LightSlateGray.G", 136, color.G);
498 AssertEquals ("#LightSlateGray.B", 153, color.B);
500 color = Color.LightSteelBlue;
501 AssertEquals ("#LightSteelBlue.A", 255, color.A);
502 AssertEquals ("#LightSteelBlue.R", 176, color.R);
503 AssertEquals ("#LightSteelBlue.G", 196, color.G);
504 AssertEquals ("#LightSteelBlue.B", 222, color.B);
506 color = Color.LightYellow;
507 AssertEquals ("#LightYellow.A", 255, color.A);
508 AssertEquals ("#LightYellow.R", 255, color.R);
509 AssertEquals ("#LightYellow.G", 255, color.G);
510 AssertEquals ("#LightYellow.B", 224, color.B);
513 AssertEquals ("#Lime.A", 255, color.A);
514 AssertEquals ("#Lime.R", 0, color.R);
515 AssertEquals ("#Lime.G", 255, color.G);
516 AssertEquals ("#Lime.B", 0, color.B);
518 color = Color.LimeGreen;
519 AssertEquals ("#LimeGreen.A", 255, color.A);
520 AssertEquals ("#LimeGreen.R", 50, color.R);
521 AssertEquals ("#LimeGreen.G", 205, color.G);
522 AssertEquals ("#LimeGreen.B", 50, color.B);
525 AssertEquals ("#Linen.A", 255, color.A);
526 AssertEquals ("#Linen.R", 250, color.R);
527 AssertEquals ("#Linen.G", 240, color.G);
528 AssertEquals ("#Linen.B", 230, color.B);
530 color = Color.Magenta;
531 AssertEquals ("#Magenta.A", 255, color.A);
532 AssertEquals ("#Magenta.R", 255, color.R);
533 AssertEquals ("#Magenta.G", 0, color.G);
534 AssertEquals ("#Magenta.B", 255, color.B);
536 color = Color.Maroon;
537 AssertEquals ("#Maroon.A", 255, color.A);
538 AssertEquals ("#Maroon.R", 128, color.R);
539 AssertEquals ("#Maroon.G", 0, color.G);
540 AssertEquals ("#Maroon.B", 0, color.B);
542 color = Color.MediumAquamarine;
543 AssertEquals ("#MediumAquamarine.A", 255, color.A);
544 AssertEquals ("#MediumAquamarine.R", 102, color.R);
545 AssertEquals ("#MediumAquamarine.G", 205, color.G);
546 AssertEquals ("#MediumAquamarine.B", 170, color.B);
548 color = Color.MediumBlue;
549 AssertEquals ("#MediumBlue.A", 255, color.A);
550 AssertEquals ("#MediumBlue.R", 0, color.R);
551 AssertEquals ("#MediumBlue.G", 0, color.G);
552 AssertEquals ("#MediumBlue.B", 205, color.B);
554 color = Color.MediumOrchid;
555 AssertEquals ("#MediumOrchid.A", 255, color.A);
556 AssertEquals ("#MediumOrchid.R", 186, color.R);
557 AssertEquals ("#MediumOrchid.G", 85, color.G);
558 AssertEquals ("#MediumOrchid.B", 211, color.B);
560 color = Color.MediumPurple;
561 AssertEquals ("#MediumPurple.A", 255, color.A);
562 AssertEquals ("#MediumPurple.R", 147, color.R);
563 AssertEquals ("#MediumPurple.G", 112, color.G);
564 AssertEquals ("#MediumPurple.B", 219, color.B);
566 color = Color.MediumSeaGreen;
567 AssertEquals ("#MediumSeaGreen.A", 255, color.A);
568 AssertEquals ("#MediumSeaGreen.R", 60, color.R);
569 AssertEquals ("#MediumSeaGreen.G", 179, color.G);
570 AssertEquals ("#MediumSeaGreen.B", 113, color.B);
572 color = Color.MediumSlateBlue;
573 AssertEquals ("#MediumSlateBlue.A", 255, color.A);
574 AssertEquals ("#MediumSlateBlue.R", 123, color.R);
575 AssertEquals ("#MediumSlateBlue.G", 104, color.G);
576 AssertEquals ("#MediumSlateBlue.B", 238, color.B);
578 color = Color.MediumSpringGreen;
579 AssertEquals ("#MediumSpringGreen.A", 255, color.A);
580 AssertEquals ("#MediumSpringGreen.R", 0, color.R);
581 AssertEquals ("#MediumSpringGreen.G", 250, color.G);
582 AssertEquals ("#MediumSpringGreen.B", 154, color.B);
584 color = Color.MediumTurquoise;
585 AssertEquals ("#MediumTurquoise.A", 255, color.A);
586 AssertEquals ("#MediumTurquoise.R", 72, color.R);
587 AssertEquals ("#MediumTurquoise.G", 209, color.G);
588 AssertEquals ("#MediumTurquoise.B", 204, color.B);
590 color = Color.MediumVioletRed;
591 AssertEquals ("#MediumVioletRed.A", 255, color.A);
592 AssertEquals ("#MediumVioletRed.R", 199, color.R);
593 AssertEquals ("#MediumVioletRed.G", 21, color.G);
594 AssertEquals ("#MediumVioletRed.B", 133, color.B);
596 color = Color.MidnightBlue;
597 AssertEquals ("#MidnightBlue.A", 255, color.A);
598 AssertEquals ("#MidnightBlue.R", 25, color.R);
599 AssertEquals ("#MidnightBlue.G", 25, color.G);
600 AssertEquals ("#MidnightBlue.B", 112, color.B);
602 color = Color.MintCream;
603 AssertEquals ("#MintCream.A", 255, color.A);
604 AssertEquals ("#MintCream.R", 245, color.R);
605 AssertEquals ("#MintCream.G", 255, color.G);
606 AssertEquals ("#MintCream.B", 250, color.B);
608 color = Color.MistyRose;
609 AssertEquals ("#MistyRose.A", 255, color.A);
610 AssertEquals ("#MistyRose.R", 255, color.R);
611 AssertEquals ("#MistyRose.G", 228, color.G);
612 AssertEquals ("#MistyRose.B", 225, color.B);
614 color = Color.Moccasin;
615 AssertEquals ("#Moccasin.A", 255, color.A);
616 AssertEquals ("#Moccasin.R", 255, color.R);
617 AssertEquals ("#Moccasin.G", 228, color.G);
618 AssertEquals ("#Moccasin.B", 181, color.B);
620 color = Color.NavajoWhite;
621 AssertEquals ("#NavajoWhite.A", 255, color.A);
622 AssertEquals ("#NavajoWhite.R", 255, color.R);
623 AssertEquals ("#NavajoWhite.G", 222, color.G);
624 AssertEquals ("#NavajoWhite.B", 173, color.B);
627 AssertEquals ("#Navy.A", 255, color.A);
628 AssertEquals ("#Navy.R", 0, color.R);
629 AssertEquals ("#Navy.G", 0, color.G);
630 AssertEquals ("#Navy.B", 128, color.B);
632 color = Color.OldLace;
633 AssertEquals ("#OldLace.A", 255, color.A);
634 AssertEquals ("#OldLace.R", 253, color.R);
635 AssertEquals ("#OldLace.G", 245, color.G);
636 AssertEquals ("#OldLace.B", 230, color.B);
639 AssertEquals ("#Olive.A", 255, color.A);
640 AssertEquals ("#Olive.R", 128, color.R);
641 AssertEquals ("#Olive.G", 128, color.G);
642 AssertEquals ("#Olive.B", 0, color.B);
644 color = Color.OliveDrab;
645 AssertEquals ("#OliveDrab.A", 255, color.A);
646 AssertEquals ("#OliveDrab.R", 107, color.R);
647 AssertEquals ("#OliveDrab.G", 142, color.G);
648 AssertEquals ("#OliveDrab.B", 35, color.B);
650 color = Color.Orange;
651 AssertEquals ("#Orange.A", 255, color.A);
652 AssertEquals ("#Orange.R", 255, color.R);
653 AssertEquals ("#Orange.G", 165, color.G);
654 AssertEquals ("#Orange.B", 0, color.B);
656 color = Color.OrangeRed;
657 AssertEquals ("#OrangeRed.A", 255, color.A);
658 AssertEquals ("#OrangeRed.R", 255, color.R);
659 AssertEquals ("#OrangeRed.G", 69, color.G);
660 AssertEquals ("#OrangeRed.B", 0, color.B);
662 color = Color.Orchid;
663 AssertEquals ("#Orchid.A", 255, color.A);
664 AssertEquals ("#Orchid.R", 218, color.R);
665 AssertEquals ("#Orchid.G", 112, color.G);
666 AssertEquals ("#Orchid.B", 214, color.B);
668 color = Color.PaleGoldenrod;
669 AssertEquals ("#PaleGoldenrod.A", 255, color.A);
670 AssertEquals ("#PaleGoldenrod.R", 238, color.R);
671 AssertEquals ("#PaleGoldenrod.G", 232, color.G);
672 AssertEquals ("#PaleGoldenrod.B", 170, color.B);
674 color = Color.PaleGreen;
675 AssertEquals ("#PaleGreen.A", 255, color.A);
676 AssertEquals ("#PaleGreen.R", 152, color.R);
677 AssertEquals ("#PaleGreen.G", 251, color.G);
678 AssertEquals ("#PaleGreen.B", 152, color.B);
680 color = Color.PaleTurquoise;
681 AssertEquals ("#PaleTurquoise.A", 255, color.A);
682 AssertEquals ("#PaleTurquoise.R", 175, color.R);
683 AssertEquals ("#PaleTurquoise.G", 238, color.G);
684 AssertEquals ("#PaleTurquoise.B", 238, color.B);
686 color = Color.PaleVioletRed;
687 AssertEquals ("#PaleVioletRed.A", 255, color.A);
688 AssertEquals ("#PaleVioletRed.R", 219, color.R);
689 AssertEquals ("#PaleVioletRed.G", 112, color.G);
690 AssertEquals ("#PaleVioletRed.B", 147, color.B);
692 color = Color.PapayaWhip;
693 AssertEquals ("#PapayaWhip.A", 255, color.A);
694 AssertEquals ("#PapayaWhip.R", 255, color.R);
695 AssertEquals ("#PapayaWhip.G", 239, color.G);
696 AssertEquals ("#PapayaWhip.B", 213, color.B);
698 color = Color.PeachPuff;
699 AssertEquals ("#PeachPuff.A", 255, color.A);
700 AssertEquals ("#PeachPuff.R", 255, color.R);
701 AssertEquals ("#PeachPuff.G", 218, color.G);
702 AssertEquals ("#PeachPuff.B", 185, color.B);
705 AssertEquals ("#Peru.A", 255, color.A);
706 AssertEquals ("#Peru.R", 205, color.R);
707 AssertEquals ("#Peru.G", 133, color.G);
708 AssertEquals ("#Peru.B", 63, color.B);
711 AssertEquals ("#Pink.A", 255, color.A);
712 AssertEquals ("#Pink.R", 255, color.R);
713 AssertEquals ("#Pink.G", 192, color.G);
714 AssertEquals ("#Pink.B", 203, color.B);
717 AssertEquals ("#Plum.A", 255, color.A);
718 AssertEquals ("#Plum.R", 221, color.R);
719 AssertEquals ("#Plum.G", 160, color.G);
720 AssertEquals ("#Plum.B", 221, color.B);
722 color = Color.PowderBlue;
723 AssertEquals ("#PowderBlue.A", 255, color.A);
724 AssertEquals ("#PowderBlue.R", 176, color.R);
725 AssertEquals ("#PowderBlue.G", 224, color.G);
726 AssertEquals ("#PowderBlue.B", 230, color.B);
728 color = Color.Purple;
729 AssertEquals ("#Purple.A", 255, color.A);
730 AssertEquals ("#Purple.R", 128, color.R);
731 AssertEquals ("#Purple.G", 0, color.G);
732 AssertEquals ("#Purple.B", 128, color.B);
735 AssertEquals ("#Red.A", 255, color.A);
736 AssertEquals ("#Red.R", 255, color.R);
737 AssertEquals ("#Red.G", 0, color.G);
738 AssertEquals ("#Red.B", 0, color.B);
740 color = Color.RosyBrown;
741 AssertEquals ("#RosyBrown.A", 255, color.A);
742 AssertEquals ("#RosyBrown.R", 188, color.R);
743 AssertEquals ("#RosyBrown.G", 143, color.G);
744 AssertEquals ("#RosyBrown.B", 143, color.B);
746 color = Color.RoyalBlue;
747 AssertEquals ("#RoyalBlue.A", 255, color.A);
748 AssertEquals ("#RoyalBlue.R", 65, color.R);
749 AssertEquals ("#RoyalBlue.G", 105, color.G);
750 AssertEquals ("#RoyalBlue.B", 225, color.B);
752 color = Color.SaddleBrown;
753 AssertEquals ("#SaddleBrown.A", 255, color.A);
754 AssertEquals ("#SaddleBrown.R", 139, color.R);
755 AssertEquals ("#SaddleBrown.G", 69, color.G);
756 AssertEquals ("#SaddleBrown.B", 19, color.B);
758 color = Color.Salmon;
759 AssertEquals ("#Salmon.A", 255, color.A);
760 AssertEquals ("#Salmon.R", 250, color.R);
761 AssertEquals ("#Salmon.G", 128, color.G);
762 AssertEquals ("#Salmon.B", 114, color.B);
764 color = Color.SandyBrown;
765 AssertEquals ("#SandyBrown.A", 255, color.A);
766 AssertEquals ("#SandyBrown.R", 244, color.R);
767 AssertEquals ("#SandyBrown.G", 164, color.G);
768 AssertEquals ("#SandyBrown.B", 96, color.B);
770 color = Color.SeaGreen;
771 AssertEquals ("#SeaGreen.A", 255, color.A);
772 AssertEquals ("#SeaGreen.R", 46, color.R);
773 AssertEquals ("#SeaGreen.G", 139, color.G);
774 AssertEquals ("#SeaGreen.B", 87, color.B);
776 color = Color.SeaShell;
777 AssertEquals ("#SeaShell.A", 255, color.A);
778 AssertEquals ("#SeaShell.R", 255, color.R);
779 AssertEquals ("#SeaShell.G", 245, color.G);
780 AssertEquals ("#SeaShell.B", 238, color.B);
782 color = Color.Sienna;
783 AssertEquals ("#Sienna.A", 255, color.A);
784 AssertEquals ("#Sienna.R", 160, color.R);
785 AssertEquals ("#Sienna.G", 82, color.G);
786 AssertEquals ("#Sienna.B", 45, color.B);
788 color = Color.Silver;
789 AssertEquals ("#Silver.A", 255, color.A);
790 AssertEquals ("#Silver.R", 192, color.R);
791 AssertEquals ("#Silver.G", 192, color.G);
792 AssertEquals ("#Silver.B", 192, color.B);
794 color = Color.SkyBlue;
795 AssertEquals ("#SkyBlue.A", 255, color.A);
796 AssertEquals ("#SkyBlue.R", 135, color.R);
797 AssertEquals ("#SkyBlue.G", 206, color.G);
798 AssertEquals ("#SkyBlue.B", 235, color.B);
800 color = Color.SlateBlue;
801 AssertEquals ("#SlateBlue.A", 255, color.A);
802 AssertEquals ("#SlateBlue.R", 106, color.R);
803 AssertEquals ("#SlateBlue.G", 90, color.G);
804 AssertEquals ("#SlateBlue.B", 205, color.B);
806 color = Color.SlateGray;
807 AssertEquals ("#SlateGray.A", 255, color.A);
808 AssertEquals ("#SlateGray.R", 112, color.R);
809 AssertEquals ("#SlateGray.G", 128, color.G);
810 AssertEquals ("#SlateGray.B", 144, color.B);
813 AssertEquals ("#Snow.A", 255, color.A);
814 AssertEquals ("#Snow.R", 255, color.R);
815 AssertEquals ("#Snow.G", 250, color.G);
816 AssertEquals ("#Snow.B", 250, color.B);
818 color = Color.SpringGreen;
819 AssertEquals ("#SpringGreen.A", 255, color.A);
820 AssertEquals ("#SpringGreen.R", 0, color.R);
821 AssertEquals ("#SpringGreen.G", 255, color.G);
822 AssertEquals ("#SpringGreen.B", 127, color.B);
824 color = Color.SteelBlue;
825 AssertEquals ("#SteelBlue.A", 255, color.A);
826 AssertEquals ("#SteelBlue.R", 70, color.R);
827 AssertEquals ("#SteelBlue.G", 130, color.G);
828 AssertEquals ("#SteelBlue.B", 180, color.B);
831 AssertEquals ("#Tan.A", 255, color.A);
832 AssertEquals ("#Tan.R", 210, color.R);
833 AssertEquals ("#Tan.G", 180, color.G);
834 AssertEquals ("#Tan.B", 140, color.B);
837 AssertEquals ("#Teal.A", 255, color.A);
838 AssertEquals ("#Teal.R", 0, color.R);
839 AssertEquals ("#Teal.G", 128, color.G);
840 AssertEquals ("#Teal.B", 128, color.B);
842 color = Color.Thistle;
843 AssertEquals ("#Thistle.A", 255, color.A);
844 AssertEquals ("#Thistle.R", 216, color.R);
845 AssertEquals ("#Thistle.G", 191, color.G);
846 AssertEquals ("#Thistle.B", 216, color.B);
848 color = Color.Tomato;
849 AssertEquals ("#Tomato.A", 255, color.A);
850 AssertEquals ("#Tomato.R", 255, color.R);
851 AssertEquals ("#Tomato.G", 99, color.G);
852 AssertEquals ("#Tomato.B", 71, color.B);
854 color = Color.Turquoise;
855 AssertEquals ("#Turquoise.A", 255, color.A);
856 AssertEquals ("#Turquoise.R", 64, color.R);
857 AssertEquals ("#Turquoise.G", 224, color.G);
858 AssertEquals ("#Turquoise.B", 208, color.B);
860 color = Color.Violet;
861 AssertEquals ("#Violet.A", 255, color.A);
862 AssertEquals ("#Violet.R", 238, color.R);
863 AssertEquals ("#Violet.G", 130, color.G);
864 AssertEquals ("#Violet.B", 238, color.B);
867 AssertEquals ("#Wheat.A", 255, color.A);
868 AssertEquals ("#Wheat.R", 245, color.R);
869 AssertEquals ("#Wheat.G", 222, color.G);
870 AssertEquals ("#Wheat.B", 179, color.B);
873 AssertEquals ("#White.A", 255, color.A);
874 AssertEquals ("#White.R", 255, color.R);
875 AssertEquals ("#White.G", 255, color.G);
876 AssertEquals ("#White.B", 255, color.B);
878 color = Color.WhiteSmoke;
879 AssertEquals ("#WhiteSmoke.A", 255, color.A);
880 AssertEquals ("#WhiteSmoke.R", 245, color.R);
881 AssertEquals ("#WhiteSmoke.G", 245, color.G);
882 AssertEquals ("#WhiteSmoke.B", 245, color.B);
884 color = Color.Yellow;
885 AssertEquals ("#Yellow.A", 255, color.A);
886 AssertEquals ("#Yellow.R", 255, color.R);
887 AssertEquals ("#Yellow.G", 255, color.G);
888 AssertEquals ("#Yellow.B", 0, color.B);
890 color = Color.YellowGreen;
891 AssertEquals ("#YellowGreen.A", 255, color.A);
892 AssertEquals ("#YellowGreen.R", 154, color.R);
893 AssertEquals ("#YellowGreen.G", 205, color.G);
894 AssertEquals ("#YellowGreen.B", 50, color.B);
897 static bool FloatsAlmostEqual (float v1, float v2)
899 float error = Math.Abs(v1-v2)/(v1+v2+float.Epsilon);
900 return error < 0.0001;
904 public void TestHBSValues ()
906 AssertEquals ("BrightnessBlack", 0.0f, Color.Black.GetBrightness ());
907 AssertEquals ("BrightnessWhite", 1.0f, Color.White.GetBrightness ());
909 Color c1 = Color.FromArgb (0, 13, 45, 7); //just some random color
910 Assert ("Hue1", FloatsAlmostEqual (110.5263f, c1.GetHue ()));
911 Assert ("Brightness1", FloatsAlmostEqual (0.1019608f, c1.GetBrightness ()));
912 Assert ("Saturation1", FloatsAlmostEqual (0.7307692f, c1.GetSaturation ()));
914 Color c2 = Color.FromArgb (0, 112, 75, 29); //another random color
915 Assert ("Hue2", FloatsAlmostEqual (33.25302f, c2.GetHue ()));
916 Assert ("Brightness2", FloatsAlmostEqual (0.2764706f, c2.GetBrightness ()));
917 Assert ("Saturation2", FloatsAlmostEqual (0.5886525f, c2.GetSaturation ()));
920 public void TestEquals ()
922 Color color = Color.Red;
923 Color color1 = Color.FromArgb (color.R, color.G, color.B);
924 Assert ("Named color not == unnamed color", !(color==color1));
925 Assert ("Named color not equals unnamed color", !color.Equals (color1));
926 Assert ("Named color != unnamed color", color!=color1);
927 color = Color.FromArgb (0, color1);
928 Assert ("Alpha takes part in comparison", !color.Equals (color1));
931 public void TestIsEmpty ()
933 Color color = Color.Empty;
934 Assert ("Empty color", color.IsEmpty);
935 Assert ("Not empty color", !Color.FromArgb (0, Color.Black).IsEmpty);
938 public void IsKnownColor ()
940 Assert ("KnownColor", Color.FromKnownColor(KnownColor.AliceBlue).IsKnownColor);
941 Assert ("KnownColor", Color.FromName("AliceBlue").IsKnownColor);
942 AssertEquals ("Not KnownColor", false,
943 Color.FromArgb (50, 100, 150, 200).IsKnownColor);
946 public void IsNamedColor ()
948 Assert ("NamedColor", Color.AliceBlue.IsNamedColor);
949 Assert ("NamedColor", Color.FromKnownColor(KnownColor.AliceBlue).IsNamedColor);
950 Assert ("NamedColor", Color.FromName("AliceBlue").IsNamedColor);
951 AssertEquals ("Not NamedColor", false,
952 Color.FromArgb (50, 100, 150, 200).IsNamedColor);
955 public void IsSystemColor () {
956 Assert ("SystemColor#1", Color.FromKnownColor(KnownColor.ActiveBorder).IsSystemColor);
957 Assert ("SystemColor#2", Color.FromName("ActiveBorder").IsSystemColor);
958 AssertEquals ("Not SystemColor#1", false,
959 Color.FromArgb (50, 100, 150, 200).IsSystemColor);
960 AssertEquals ("Not SystemColor#2", false,
961 Color.FromKnownColor(KnownColor.AliceBlue).IsSystemColor);
962 AssertEquals ("Not SystemColor#3", false,
963 Color.FromName("AliceBlue").IsSystemColor);
968 AssertEquals ("Color.Name#1", "AliceBlue", Color.AliceBlue.Name);
969 AssertEquals ("Color.Name#2", "ActiveBorder",
970 Color.FromKnownColor (KnownColor.ActiveBorder).Name);
971 AssertEquals ("Color.Name#3", "1122ccff",
972 Color.FromArgb(0x11, 0x22, 0xcc, 0xff).Name);
975 public void GetHashCodeTest ()
977 Color c = Color.AliceBlue;
978 AssertEquals ("GHC#1", false, Color.FromArgb (c.A, c.R, c.G, c.B).GetHashCode () ==
980 AssertEquals ("GHC#2", c.GetHashCode (), Color.FromName ("AliceBlue").GetHashCode ());
983 public void ToArgb ()
985 AssertEquals (0x11cc8833, Color.FromArgb (0x11, 0xcc, 0x88, 0x33).ToArgb());
986 AssertEquals (unchecked((int)0xf1cc8833), Color.FromArgb (0xf1, 0xcc, 0x88, 0x33).ToArgb());
990 public void ToKnownColor ()
992 AssertEquals ("TKC#1", KnownColor.ActiveBorder, Color.FromName ("ActiveBorder").ToKnownColor ());
993 AssertEquals ("TKC#2", KnownColor.AliceBlue, Color.AliceBlue.ToKnownColor ());
994 KnownColor zero = Color.FromArgb (1, 2, 3, 4).ToKnownColor ();
995 AssertEquals ("TKC#3", (KnownColor)0, zero);
999 public void ToStringTest ()
1001 AssertEquals ("TS#1", "Color [AliceBlue]", Color.AliceBlue.ToString ());
1002 AssertEquals ("TS#2", "Color [ActiveBorder]",
1003 Color.FromKnownColor (KnownColor.ActiveBorder).ToString ());
1004 AssertEquals ("TS#3", "Color [A=1, R=2, G=3, B=4]",
1005 Color.FromArgb(1, 2, 3, 4).ToString ());
1006 AssertEquals ("TS#4", "Color [Empty]", Color.Empty.ToString ());
1010 public void Equality ()
1012 Color c = Color.AliceBlue;
1013 Assert ("EQ#1", c == Color.FromName ("AliceBlue"));
1014 AssertEquals ("EQ#2", false, c == Color.FromArgb (c.A, c.R, c.G, c.B));
1015 Assert ("EQ#3", c.Equals (Color.FromName ("AliceBlue")));
1016 AssertEquals ("EQ#4", false, c.Equals(Color.FromArgb (c.A, c.R, c.G, c.B)));
1017 AssertEquals ("EQ#5", false, c != Color.FromName ("AliceBlue"));
1018 Assert("EQ#6", c != Color.FromArgb (c.A, c.R, c.G, c.B));
1022 [ExpectedException (typeof (ArgumentException))]
1023 public void FromArgb_InvalidAlpha1 ()
1025 Color.FromArgb (-1, Color.Red);
1029 [ExpectedException (typeof (ArgumentException))]
1030 public void FromArgb_InvalidAlpha2 ()
1032 Color.FromArgb (256, Color.Red);
1036 [ExpectedException (typeof (ArgumentException))]
1037 public void FromArgb_InvalidAlpha3 ()
1039 Color.FromArgb (-1, 0, 0, 0);
1043 [ExpectedException (typeof (ArgumentException))]
1044 public void FromArgb_InvalidAlpha4 ()
1046 Color.FromArgb (256, 0, 0, 0);
1050 [ExpectedException (typeof (ArgumentException))]
1051 public void FromArgb_InvalidRed1 ()
1053 Color.FromArgb (-1, 0, 0);
1057 [ExpectedException (typeof (ArgumentException))]
1058 public void FromArgb_InvalidRed2 ()
1060 Color.FromArgb (256, 0, 0);
1064 [ExpectedException (typeof (ArgumentException))]
1065 public void FromArgb_InvalidRed3 ()
1067 Color.FromArgb (0, -1, 0, 0);
1071 [ExpectedException (typeof (ArgumentException))]
1072 public void FromArgb_InvalidRed4 ()
1074 Color.FromArgb (0, 256, 0, 0);
1078 [ExpectedException (typeof (ArgumentException))]
1079 public void FromArgb_InvalidGreen1 ()
1081 Color.FromArgb (0, -1, 0);
1085 [ExpectedException (typeof (ArgumentException))]
1086 public void FromArgb_InvalidGreen2 ()
1088 Color.FromArgb (0, 256, 0);
1092 [ExpectedException (typeof (ArgumentException))]
1093 public void FromArgb_InvalidGreen3 ()
1095 Color.FromArgb (0, 0, -1, 0);
1099 [ExpectedException (typeof (ArgumentException))]
1100 public void FromArgb_InvalidGreen4 ()
1102 Color.FromArgb (0, 0, 256, 0);
1106 [ExpectedException (typeof (ArgumentException))]
1107 public void FromArgb_InvalidBlue1 ()
1109 Color.FromArgb (0, 0, -1);
1113 [ExpectedException (typeof (ArgumentException))]
1114 public void FromArgb_InvalidBlue2 ()
1116 Color.FromArgb (0, 0, 256);
1120 [ExpectedException (typeof (ArgumentException))]
1121 public void FromArgb_InvalidBlue3 ()
1123 Color.FromArgb (0, 0, 0, -1);
1127 [ExpectedException (typeof (ArgumentException))]
1128 public void FromArgb_InvalidBlue4 ()
1130 Color.FromArgb (0, 0, 0, 256);
1133 private void CheckRed (string message, Color color)
1135 AssertEquals ("A", 255, color.A);
1136 AssertEquals ("R", 255, color.R);
1137 AssertEquals ("G", 0, color.G);
1138 AssertEquals ("B", 0, color.B);
1139 AssertEquals ("Name", "Red", color.Name);
1140 Assert ("IsEmpty", !color.IsEmpty);
1141 Assert ("IsKnownColor", color.IsKnownColor);
1142 Assert ("IsNamedColor", color.IsNamedColor);
1143 Assert ("IsSystemColor", !color.IsSystemColor);
1147 public void SerializationRoundtrip ()
1149 Color c = Color.Red;
1150 CheckRed ("original", c);
1152 BinaryFormatter bf = new BinaryFormatter ();
1153 MemoryStream ms = new MemoryStream ();
1154 bf.Serialize (ms, c);
1157 Color color = (Color) bf.Deserialize (ms);
1158 CheckRed ("deserialized", color);
1161 // serialized under MS 2.0, can be deserialized on both MS 1.1 SP1 and 2.0
1162 static byte[] color_red = { 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
1163 0x00, 0x00, 0x00, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x51, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x44,
1164 0x72, 0x61, 0x77, 0x69, 0x6E, 0x67, 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x32,
1165 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2C, 0x20, 0x43, 0x75, 0x6C, 0x74, 0x75, 0x72, 0x65, 0x3D, 0x6E,
1166 0x65, 0x75, 0x74, 0x72, 0x61, 0x6C, 0x2C, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x4B, 0x65, 0x79,
1167 0x54, 0x6F, 0x6B, 0x65, 0x6E, 0x3D, 0x62, 0x30, 0x33, 0x66, 0x35, 0x66, 0x37, 0x66, 0x31, 0x31, 0x64,
1168 0x35, 0x30, 0x61, 0x33, 0x61, 0x05, 0x01, 0x00, 0x00, 0x00, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D,
1169 0x2E, 0x44, 0x72, 0x61, 0x77, 0x69, 0x6E, 0x67, 0x2E, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x04, 0x00, 0x00,
1170 0x00, 0x04, 0x6E, 0x61, 0x6D, 0x65, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x0A, 0x6B, 0x6E, 0x6F, 0x77,
1171 0x6E, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x01, 0x00, 0x00, 0x00, 0x09,
1172 0x07, 0x07, 0x02, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x00,
1177 [Category ("NotWorking")]
1179 public void Deserialize ()
1181 BinaryFormatter bf = new BinaryFormatter ();
1182 MemoryStream ms = new MemoryStream (color_red);
1183 Color color = (Color) bf.Deserialize (ms);
1184 CheckRed ("deserialized", color);
1187 static byte [] color_blue = {
1188 0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,12,2,0,0,0,81,83,121,115,116,101,109,46,68,114,97,119,105,
1189 110,103,44,32,86,101,114,115,105,111,110,61,50,46,48,46,48,46,48,44,32,67,117,108,116,117,114,101,
1190 61,110,101,117,116,114,97,108,44,32,80,117,98,108,105,99,75,101,121,84,111,107,101,110,61,98,48,51,
1191 102,53,102,55,102,49,49,100,53,48,97,51,97,5,1,0,0,0,20,83,121,115,116,101,109,46,68,114,97,119,105,
1192 110,103,46,67,111,108,111,114,4,0,0,0,4,110,97,109,101,5,118,97,108,117,101,10,107,110,111,119,110,
1193 67,111,108,111,114,5,115,116,97,116,101,1,0,0,0,9,7,7,2,0,0,0,10,0,0,0,0,0,0,0,0,37,0,1,0,11 };
1197 [Category ("NotWorking")]
1199 public void Deserialize2 ()
1201 BinaryFormatter bf = new BinaryFormatter ();
1202 MemoryStream ms = new MemoryStream (color_blue);
1203 Color color = (Color) bf.Deserialize (ms);
1204 AssertEquals ("A", 255, color.A);
1205 AssertEquals ("R", 0, color.R);
1206 AssertEquals ("G", 0, color.G);
1207 AssertEquals ("B", 255, color.B);
1208 AssertEquals ("Name", "Blue", color.Name);
1209 Assert ("IsEmpty", !color.IsEmpty);
1210 Assert ("IsKnownColor", color.IsKnownColor);
1211 Assert ("IsNamedColor", color.IsNamedColor);
1212 Assert ("IsSystemColor", !color.IsSystemColor);
1215 static byte [] color_blue_fromargb = {
1216 0,1,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,12,2,0,0,0,81,83,121,115,116,101,109,46,68,114,97,119,105,
1217 110,103,44,32,86,101,114,115,105,111,110,61,50,46,48,46,48,46,48,44,32,67,117,108,116,117,114,101,
1218 61,110,101,117,116,114,97,108,44,32,80,117,98,108,105,99,75,101,121,84,111,107,101,110,61,98,48,51,
1219 102,53,102,55,102,49,49,100,53,48,97,51,97,5,1,0,0,0,20,83,121,115,116,101,109,46,68,114,97,119,105,
1220 110,103,46,67,111,108,111,114,4,0,0,0,4,110,97,109,101,5,118,97,108,117,101,10,107,110,111,119,110,
1221 67,111,108,111,114,5,115,116,97,116,101,1,0,0,0,9,7,7,2,0,0,0,10,255,0,0,255,0,0,0,0,0,0,2,0,11};
1225 [Category ("NotWorking")]
1227 public void Deserialize3 ()
1229 BinaryFormatter bf = new BinaryFormatter ();
1230 MemoryStream ms = new MemoryStream (color_blue_fromargb);
1231 Color color = (Color) bf.Deserialize (ms);
1232 AssertEquals ("A", 255, color.A);
1233 AssertEquals ("R", 0, color.R);
1234 AssertEquals ("G", 0, color.G);
1235 AssertEquals ("B", 255, color.B);
1236 AssertEquals ("Name", "ff0000ff", color.Name);
1237 Assert ("IsEmpty", !color.IsEmpty);
1238 Assert ("IsKnownColor", !color.IsKnownColor);
1239 Assert ("IsNamedColor", !color.IsNamedColor);
1240 Assert ("IsSystemColor", !color.IsSystemColor);
1246 // Following code was used to generate the TestArgbValues method on MS.
1248 // Type cType = typeof (Color);
1249 // PropertyInfo [] properties = cType.GetProperties (BindingFlags.Public | BindingFlags.Static);
1250 //// Console.WriteLine ("number: " + properties.Length);
1252 // Console.WriteLine("\t\t[Test]");
1253 // Console.WriteLine("\t\tpublic void TestArgbValues ()");
1254 // Console.WriteLine("\t\t{");
1255 // Console.WriteLine("\t\t\tColor color;");
1256 // foreach (PropertyInfo property in properties) {
1258 // Console.WriteLine();
1259 // Console.WriteLine("\t\t\tcolor = Color.{0};", property.Name);
1260 // Color color = Color.FromName (property.Name);
1261 // Console.WriteLine("\t\t\tAssertEquals (\"#{0}.A\", {1}, color.A);", property.Name, color.A);
1262 // Console.WriteLine("\t\t\tAssertEquals (\"#{0}.R\", {1}, color.R);", property.Name, color.R);
1263 // Console.WriteLine("\t\t\tAssertEquals (\"#{0}.G\", {1}, color.G);", property.Name, color.G);
1264 // Console.WriteLine("\t\t\tAssertEquals (\"#{0}.B\", {1}, color.B);", property.Name, color.B);
1266 // Console.WriteLine("\t\t}");