25ae527e75f34df997e643715fb5c104079f709b
[mono.git] / mcs / class / System.Drawing / Test / System.Drawing / TestColor.cs
1 //
2 // Tests for System.Drawing.Color.cs
3 //
4 // Authors:
5 //      Ravindra (rkumar@novell.com)
6 //      Sebastien Pouliot  <sebastien@ximian.com>
7 //
8 // Copyright (C) 2004,2006-2007 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29
30 using System;
31 using System.IO;
32 using System.Drawing;
33 using System.Runtime.Serialization;
34 using System.Runtime.Serialization.Formatters.Binary;
35 using System.Security.Permissions;
36 using NUnit.Framework;
37
38 namespace MonoTests.System.Drawing {
39
40         [TestFixture]
41         [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
42         public class ColorTest {
43
44                 [Test]
45                 public void TestArgbValues ()
46                 {
47                         Color color;
48
49                         color = Color.Transparent;
50                         Assert.AreEqual (0, color.A, "#Transparent.A");
51                         Assert.AreEqual (255, color.R, "#Transparent.R");
52                         Assert.AreEqual (255, color.G, "#Transparent.G");
53                         Assert.AreEqual (255, color.B, "#Transparent.B");
54
55                         color = Color.AliceBlue;
56                         Assert.AreEqual (255, color.A, "#AliceBlue.A");
57                         Assert.AreEqual (240, color.R, "#AliceBlue.R");
58                         Assert.AreEqual (248, color.G, "#AliceBlue.G");
59                         Assert.AreEqual (255, color.B, "#AliceBlue.B");
60
61                         color = Color.AntiqueWhite;
62                         Assert.AreEqual (255, color.A, "#AntiqueWhite.A");
63                         Assert.AreEqual (250, color.R, "#AntiqueWhite.R");
64                         Assert.AreEqual (235, color.G, "#AntiqueWhite.G");
65                         Assert.AreEqual (215, color.B, "#AntiqueWhite.B");
66
67                         color = Color.Aqua;
68                         Assert.AreEqual (255, color.A, "#Aqua.A");
69                         Assert.AreEqual (0, color.R, "#Aqua.R");
70                         Assert.AreEqual (255, color.G, "#Aqua.G");
71                         Assert.AreEqual (255, color.B, "#Aqua.B");
72
73                         color = Color.Aquamarine;
74                         Assert.AreEqual (255, color.A, "#Aquamarine.A");
75                         Assert.AreEqual (127, color.R, "#Aquamarine.R");
76                         Assert.AreEqual (255, color.G, "#Aquamarine.G");
77                         Assert.AreEqual (212, color.B, "#Aquamarine.B");
78
79                         color = Color.Azure;
80                         Assert.AreEqual (255, color.A, "#Azure.A");
81                         Assert.AreEqual (240, color.R, "#Azure.R");
82                         Assert.AreEqual (255, color.G, "#Azure.G");
83                         Assert.AreEqual (255, color.B, "#Azure.B");
84
85                         color = Color.Beige;
86                         Assert.AreEqual (255, color.A, "#Beige.A");
87                         Assert.AreEqual (245, color.R, "#Beige.R");
88                         Assert.AreEqual (245, color.G, "#Beige.G");
89                         Assert.AreEqual (220, color.B, "#Beige.B");
90
91                         color = Color.Bisque;
92                         Assert.AreEqual (255, color.A, "#Bisque.A");
93                         Assert.AreEqual (255, color.R, "#Bisque.R");
94                         Assert.AreEqual (228, color.G, "#Bisque.G");
95                         Assert.AreEqual (196, color.B, "#Bisque.B");
96
97                         color = Color.Black;
98                         Assert.AreEqual (255, color.A, "#Black.A");
99                         Assert.AreEqual (0, color.R, "#Black.R");
100                         Assert.AreEqual (0, color.G, "#Black.G");
101                         Assert.AreEqual (0, color.B, "#Black.B");
102
103                         color = Color.BlanchedAlmond;
104                         Assert.AreEqual (255, color.A, "#BlanchedAlmond.A");
105                         Assert.AreEqual (255, color.R, "#BlanchedAlmond.R");
106                         Assert.AreEqual (235, color.G, "#BlanchedAlmond.G");
107                         Assert.AreEqual (205, color.B, "#BlanchedAlmond.B");
108
109                         color = Color.Blue;
110                         Assert.AreEqual (255, color.A, "#Blue.A");
111                         Assert.AreEqual (0, color.R, "#Blue.R");
112                         Assert.AreEqual (0, color.G, "#Blue.G");
113                         Assert.AreEqual (255, color.B, "#Blue.B");
114
115                         color = Color.BlueViolet;
116                         Assert.AreEqual (255, color.A, "#BlueViolet.A");
117                         Assert.AreEqual (138, color.R, "#BlueViolet.R");
118                         Assert.AreEqual (43, color.G, "#BlueViolet.G");
119                         Assert.AreEqual (226, color.B, "#BlueViolet.B");
120
121                         color = Color.Brown;
122                         Assert.AreEqual (255, color.A, "#Brown.A");
123                         Assert.AreEqual (165, color.R, "#Brown.R");
124                         Assert.AreEqual (42, color.G, "#Brown.G");
125                         Assert.AreEqual (42, color.B, "#Brown.B");
126
127                         color = Color.BurlyWood;
128                         Assert.AreEqual (255, color.A, "#BurlyWood.A");
129                         Assert.AreEqual (222, color.R, "#BurlyWood.R");
130                         Assert.AreEqual (184, color.G, "#BurlyWood.G");
131                         Assert.AreEqual (135, color.B, "#BurlyWood.B");
132
133                         color = Color.CadetBlue;
134                         Assert.AreEqual (255, color.A, "#CadetBlue.A");
135                         Assert.AreEqual (95, color.R, "#CadetBlue.R");
136                         Assert.AreEqual (158, color.G, "#CadetBlue.G");
137                         Assert.AreEqual (160, color.B, "#CadetBlue.B");
138
139                         color = Color.Chartreuse;
140                         Assert.AreEqual (255, color.A, "#Chartreuse.A");
141                         Assert.AreEqual (127, color.R, "#Chartreuse.R");
142                         Assert.AreEqual (255, color.G, "#Chartreuse.G");
143                         Assert.AreEqual (0, color.B, "#Chartreuse.B");
144
145                         color = Color.Chocolate;
146                         Assert.AreEqual (255, color.A, "#Chocolate.A");
147                         Assert.AreEqual (210, color.R, "#Chocolate.R");
148                         Assert.AreEqual (105, color.G, "#Chocolate.G");
149                         Assert.AreEqual (30, color.B, "#Chocolate.B");
150
151                         color = Color.Coral;
152                         Assert.AreEqual (255, color.A, "#Coral.A");
153                         Assert.AreEqual (255, color.R, "#Coral.R");
154                         Assert.AreEqual (127, color.G, "#Coral.G");
155                         Assert.AreEqual (80, color.B, "#Coral.B");
156
157                         color = Color.CornflowerBlue;
158                         Assert.AreEqual (255, color.A, "#CornflowerBlue.A");
159                         Assert.AreEqual (100, color.R, "#CornflowerBlue.R");
160                         Assert.AreEqual (149, color.G, "#CornflowerBlue.G");
161                         Assert.AreEqual (237, color.B, "#CornflowerBlue.B");
162
163                         color = Color.Cornsilk;
164                         Assert.AreEqual (255, color.A, "#Cornsilk.A");
165                         Assert.AreEqual (255, color.R, "#Cornsilk.R");
166                         Assert.AreEqual (248, color.G, "#Cornsilk.G");
167                         Assert.AreEqual (220, color.B, "#Cornsilk.B");
168
169                         color = Color.Crimson;
170                         Assert.AreEqual (255, color.A, "#Crimson.A");
171                         Assert.AreEqual (220, color.R, "#Crimson.R");
172                         Assert.AreEqual (20, color.G, "#Crimson.G");
173                         Assert.AreEqual (60, color.B, "#Crimson.B");
174
175                         color = Color.Cyan;
176                         Assert.AreEqual (255, color.A, "#Cyan.A");
177                         Assert.AreEqual (0, color.R, "#Cyan.R");
178                         Assert.AreEqual (255, color.G, "#Cyan.G");
179                         Assert.AreEqual (255, color.B, "#Cyan.B");
180
181                         color = Color.DarkBlue;
182                         Assert.AreEqual (255, color.A, "#DarkBlue.A");
183                         Assert.AreEqual (0, color.R, "#DarkBlue.R");
184                         Assert.AreEqual (0, color.G, "#DarkBlue.G");
185                         Assert.AreEqual (139, color.B, "#DarkBlue.B");
186
187                         color = Color.DarkCyan;
188                         Assert.AreEqual (255, color.A, "#DarkCyan.A");
189                         Assert.AreEqual (0, color.R, "#DarkCyan.R");
190                         Assert.AreEqual (139, color.G, "#DarkCyan.G");
191                         Assert.AreEqual (139, color.B, "#DarkCyan.B");
192
193                         color = Color.DarkGoldenrod;
194                         Assert.AreEqual (255, color.A, "#DarkGoldenrod.A");
195                         Assert.AreEqual (184, color.R, "#DarkGoldenrod.R");
196                         Assert.AreEqual (134, color.G, "#DarkGoldenrod.G");
197                         Assert.AreEqual (11, color.B, "#DarkGoldenrod.B");
198
199                         color = Color.DarkGray;
200                         Assert.AreEqual (255, color.A, "#DarkGray.A");
201                         Assert.AreEqual (169, color.R, "#DarkGray.R");
202                         Assert.AreEqual (169, color.G, "#DarkGray.G");
203                         Assert.AreEqual (169, color.B, "#DarkGray.B");
204
205                         color = Color.DarkGreen;
206                         Assert.AreEqual (255, color.A, "#DarkGreen.A");
207                         Assert.AreEqual (0, color.R, "#DarkGreen.R");
208                         Assert.AreEqual (100, color.G, "#DarkGreen.G");
209                         Assert.AreEqual (0, color.B, "#DarkGreen.B");
210
211                         color = Color.DarkKhaki;
212                         Assert.AreEqual (255, color.A, "#DarkKhaki.A");
213                         Assert.AreEqual (189, color.R, "#DarkKhaki.R");
214                         Assert.AreEqual (183, color.G, "#DarkKhaki.G");
215                         Assert.AreEqual (107, color.B, "#DarkKhaki.B");
216
217                         color = Color.DarkMagenta;
218                         Assert.AreEqual (255, color.A, "#DarkMagenta.A");
219                         Assert.AreEqual (139, color.R, "#DarkMagenta.R");
220                         Assert.AreEqual (0, color.G, "#DarkMagenta.G");
221                         Assert.AreEqual (139, color.B, "#DarkMagenta.B");
222
223                         color = Color.DarkOliveGreen;
224                         Assert.AreEqual (255, color.A, "#DarkOliveGreen.A");
225                         Assert.AreEqual (85, color.R, "#DarkOliveGreen.R");
226                         Assert.AreEqual (107, color.G, "#DarkOliveGreen.G");
227                         Assert.AreEqual (47, color.B, "#DarkOliveGreen.B");
228
229                         color = Color.DarkOrange;
230                         Assert.AreEqual (255, color.A, "#DarkOrange.A");
231                         Assert.AreEqual (255, color.R, "#DarkOrange.R");
232                         Assert.AreEqual (140, color.G, "#DarkOrange.G");
233                         Assert.AreEqual (0, color.B, "#DarkOrange.B");
234
235                         color = Color.DarkOrchid;
236                         Assert.AreEqual (255, color.A, "#DarkOrchid.A");
237                         Assert.AreEqual (153, color.R, "#DarkOrchid.R");
238                         Assert.AreEqual (50, color.G, "#DarkOrchid.G");
239                         Assert.AreEqual (204, color.B, "#DarkOrchid.B");
240
241                         color = Color.DarkRed;
242                         Assert.AreEqual (255, color.A, "#DarkRed.A");
243                         Assert.AreEqual (139, color.R, "#DarkRed.R");
244                         Assert.AreEqual (0, color.G, "#DarkRed.G");
245                         Assert.AreEqual (0, color.B, "#DarkRed.B");
246
247                         color = Color.DarkSalmon;
248                         Assert.AreEqual (255, color.A, "#DarkSalmon.A");
249                         Assert.AreEqual (233, color.R, "#DarkSalmon.R");
250                         Assert.AreEqual (150, color.G, "#DarkSalmon.G");
251                         Assert.AreEqual (122, color.B, "#DarkSalmon.B");
252
253                         color = Color.DarkSeaGreen;
254                         Assert.AreEqual (255, color.A, "#DarkSeaGreen.A");
255                         Assert.AreEqual (143, color.R, "#DarkSeaGreen.R");
256                         Assert.AreEqual (188, color.G, "#DarkSeaGreen.G");
257                         Assert.AreEqual (139, color.B, "#DarkSeaGreen.B");
258
259                         color = Color.DarkSlateBlue;
260                         Assert.AreEqual (255, color.A, "#DarkSlateBlue.A");
261                         Assert.AreEqual (72, color.R, "#DarkSlateBlue.R");
262                         Assert.AreEqual (61, color.G, "#DarkSlateBlue.G");
263                         Assert.AreEqual (139, color.B, "#DarkSlateBlue.B");
264
265                         color = Color.DarkSlateGray;
266                         Assert.AreEqual (255, color.A, "#DarkSlateGray.A");
267                         Assert.AreEqual (47, color.R, "#DarkSlateGray.R");
268                         Assert.AreEqual (79, color.G, "#DarkSlateGray.G");
269                         Assert.AreEqual (79, color.B, "#DarkSlateGray.B");
270
271                         color = Color.DarkTurquoise;
272                         Assert.AreEqual (255, color.A, "#DarkTurquoise.A");
273                         Assert.AreEqual (0, color.R, "#DarkTurquoise.R");
274                         Assert.AreEqual (206, color.G, "#DarkTurquoise.G");
275                         Assert.AreEqual (209, color.B, "#DarkTurquoise.B");
276
277                         color = Color.DarkViolet;
278                         Assert.AreEqual (255, color.A, "#DarkViolet.A");
279                         Assert.AreEqual (148, color.R, "#DarkViolet.R");
280                         Assert.AreEqual (0, color.G, "#DarkViolet.G");
281                         Assert.AreEqual (211, color.B, "#DarkViolet.B");
282
283                         color = Color.DeepPink;
284                         Assert.AreEqual (255, color.A, "#DeepPink.A");
285                         Assert.AreEqual (255, color.R, "#DeepPink.R");
286                         Assert.AreEqual (20, color.G, "#DeepPink.G");
287                         Assert.AreEqual (147, color.B, "#DeepPink.B");
288
289                         color = Color.DeepSkyBlue;
290                         Assert.AreEqual (255, color.A, "#DeepSkyBlue.A");
291                         Assert.AreEqual (0, color.R, "#DeepSkyBlue.R");
292                         Assert.AreEqual (191, color.G, "#DeepSkyBlue.G");
293                         Assert.AreEqual (255, color.B, "#DeepSkyBlue.B");
294
295                         color = Color.DimGray;
296                         Assert.AreEqual (255, color.A, "#DimGray.A");
297                         Assert.AreEqual (105, color.R, "#DimGray.R");
298                         Assert.AreEqual (105, color.G, "#DimGray.G");
299                         Assert.AreEqual (105, color.B, "#DimGray.B");
300
301                         color = Color.DodgerBlue;
302                         Assert.AreEqual (255, color.A, "#DodgerBlue.A");
303                         Assert.AreEqual (30, color.R, "#DodgerBlue.R");
304                         Assert.AreEqual (144, color.G, "#DodgerBlue.G");
305                         Assert.AreEqual (255, color.B, "#DodgerBlue.B");
306
307                         color = Color.Firebrick;
308                         Assert.AreEqual (255, color.A, "#Firebrick.A");
309                         Assert.AreEqual (178, color.R, "#Firebrick.R");
310                         Assert.AreEqual (34, color.G, "#Firebrick.G");
311                         Assert.AreEqual (34, color.B, "#Firebrick.B");
312
313                         color = Color.FloralWhite;
314                         Assert.AreEqual (255, color.A, "#FloralWhite.A");
315                         Assert.AreEqual (255, color.R, "#FloralWhite.R");
316                         Assert.AreEqual (250, color.G, "#FloralWhite.G");
317                         Assert.AreEqual (240, color.B, "#FloralWhite.B");
318
319                         color = Color.ForestGreen;
320                         Assert.AreEqual (255, color.A, "#ForestGreen.A");
321                         Assert.AreEqual (34, color.R, "#ForestGreen.R");
322                         Assert.AreEqual (139, color.G, "#ForestGreen.G");
323                         Assert.AreEqual (34, color.B, "#ForestGreen.B");
324
325                         color = Color.Fuchsia;
326                         Assert.AreEqual (255, color.A, "#Fuchsia.A");
327                         Assert.AreEqual (255, color.R, "#Fuchsia.R");
328                         Assert.AreEqual (0, color.G, "#Fuchsia.G");
329                         Assert.AreEqual (255, color.B, "#Fuchsia.B");
330
331                         color = Color.Gainsboro;
332                         Assert.AreEqual (255, color.A, "#Gainsboro.A");
333                         Assert.AreEqual (220, color.R, "#Gainsboro.R");
334                         Assert.AreEqual (220, color.G, "#Gainsboro.G");
335                         Assert.AreEqual (220, color.B, "#Gainsboro.B");
336
337                         color = Color.GhostWhite;
338                         Assert.AreEqual (255, color.A, "#GhostWhite.A");
339                         Assert.AreEqual (248, color.R, "#GhostWhite.R");
340                         Assert.AreEqual (248, color.G, "#GhostWhite.G");
341                         Assert.AreEqual (255, color.B, "#GhostWhite.B");
342
343                         color = Color.Gold;
344                         Assert.AreEqual (255, color.A, "#Gold.A");
345                         Assert.AreEqual (255, color.R, "#Gold.R");
346                         Assert.AreEqual (215, color.G, "#Gold.G");
347                         Assert.AreEqual (0, color.B, "#Gold.B");
348
349                         color = Color.Goldenrod;
350                         Assert.AreEqual (255, color.A, "#Goldenrod.A");
351                         Assert.AreEqual (218, color.R, "#Goldenrod.R");
352                         Assert.AreEqual (165, color.G, "#Goldenrod.G");
353                         Assert.AreEqual (32, color.B, "#Goldenrod.B");
354
355                         color = Color.Gray;
356                         Assert.AreEqual (255, color.A, "#Gray.A");
357                         Assert.AreEqual (128, color.R, "#Gray.R");
358                         Assert.AreEqual (128, color.G, "#Gray.G");
359                         Assert.AreEqual (128, color.B, "#Gray.B");
360
361                         color = Color.Green;
362                         Assert.AreEqual (255, color.A, "#Green.A");
363                         Assert.AreEqual (0, color.R, "#Green.R");
364                         // This test should compare Green.G with 255, but
365                         // MS is using a value of 128 for Green.G
366                         Assert.AreEqual (128, color.G, "#Green.G");
367                         Assert.AreEqual (0, color.B, "#Green.B");
368
369                         color = Color.GreenYellow;
370                         Assert.AreEqual (255, color.A, "#GreenYellow.A");
371                         Assert.AreEqual (173, color.R, "#GreenYellow.R");
372                         Assert.AreEqual (255, color.G, "#GreenYellow.G");
373                         Assert.AreEqual (47, color.B, "#GreenYellow.B");
374
375                         color = Color.Honeydew;
376                         Assert.AreEqual (255, color.A, "#Honeydew.A");
377                         Assert.AreEqual (240, color.R, "#Honeydew.R");
378                         Assert.AreEqual (255, color.G, "#Honeydew.G");
379                         Assert.AreEqual (240, color.B, "#Honeydew.B");
380
381                         color = Color.HotPink;
382                         Assert.AreEqual (255, color.A, "#HotPink.A");
383                         Assert.AreEqual (255, color.R, "#HotPink.R");
384                         Assert.AreEqual (105, color.G, "#HotPink.G");
385                         Assert.AreEqual (180, color.B, "#HotPink.B");
386
387                         color = Color.IndianRed;
388                         Assert.AreEqual (255, color.A, "#IndianRed.A");
389                         Assert.AreEqual (205, color.R, "#IndianRed.R");
390                         Assert.AreEqual (92, color.G, "#IndianRed.G");
391                         Assert.AreEqual (92, color.B, "#IndianRed.B");
392
393                         color = Color.Indigo;
394                         Assert.AreEqual (255, color.A, "#Indigo.A");
395                         Assert.AreEqual (75, color.R, "#Indigo.R");
396                         Assert.AreEqual (0, color.G, "#Indigo.G");
397                         Assert.AreEqual (130, color.B, "#Indigo.B");
398
399                         color = Color.Ivory;
400                         Assert.AreEqual (255, color.A, "#Ivory.A");
401                         Assert.AreEqual (255, color.R, "#Ivory.R");
402                         Assert.AreEqual (255, color.G, "#Ivory.G");
403                         Assert.AreEqual (240, color.B, "#Ivory.B");
404
405                         color = Color.Khaki;
406                         Assert.AreEqual (255, color.A, "#Khaki.A");
407                         Assert.AreEqual (240, color.R, "#Khaki.R");
408                         Assert.AreEqual (230, color.G, "#Khaki.G");
409                         Assert.AreEqual (140, color.B, "#Khaki.B");
410
411                         color = Color.Lavender;
412                         Assert.AreEqual (255, color.A, "#Lavender.A");
413                         Assert.AreEqual (230, color.R, "#Lavender.R");
414                         Assert.AreEqual (230, color.G, "#Lavender.G");
415                         Assert.AreEqual (250, color.B, "#Lavender.B");
416
417                         color = Color.LavenderBlush;
418                         Assert.AreEqual (255, color.A, "#LavenderBlush.A");
419                         Assert.AreEqual (255, color.R, "#LavenderBlush.R");
420                         Assert.AreEqual (240, color.G, "#LavenderBlush.G");
421                         Assert.AreEqual (245, color.B, "#LavenderBlush.B");
422
423                         color = Color.LawnGreen;
424                         Assert.AreEqual (255, color.A, "#LawnGreen.A");
425                         Assert.AreEqual (124, color.R, "#LawnGreen.R");
426                         Assert.AreEqual (252, color.G, "#LawnGreen.G");
427                         Assert.AreEqual (0, color.B, "#LawnGreen.B");
428
429                         color = Color.LemonChiffon;
430                         Assert.AreEqual (255, color.A, "#LemonChiffon.A");
431                         Assert.AreEqual (255, color.R, "#LemonChiffon.R");
432                         Assert.AreEqual (250, color.G, "#LemonChiffon.G");
433                         Assert.AreEqual (205, color.B, "#LemonChiffon.B");
434
435                         color = Color.LightBlue;
436                         Assert.AreEqual (255, color.A, "#LightBlue.A");
437                         Assert.AreEqual (173, color.R, "#LightBlue.R");
438                         Assert.AreEqual (216, color.G, "#LightBlue.G");
439                         Assert.AreEqual (230, color.B, "#LightBlue.B");
440
441                         color = Color.LightCoral;
442                         Assert.AreEqual (255, color.A, "#LightCoral.A");
443                         Assert.AreEqual (240, color.R, "#LightCoral.R");
444                         Assert.AreEqual (128, color.G, "#LightCoral.G");
445                         Assert.AreEqual (128, color.B, "#LightCoral.B");
446
447                         color = Color.LightCyan;
448                         Assert.AreEqual (255, color.A, "#LightCyan.A");
449                         Assert.AreEqual (224, color.R, "#LightCyan.R");
450                         Assert.AreEqual (255, color.G, "#LightCyan.G");
451                         Assert.AreEqual (255, color.B, "#LightCyan.B");
452
453                         color = Color.LightGoldenrodYellow;
454                         Assert.AreEqual (255, color.A, "#LightGoldenrodYellow.A");
455                         Assert.AreEqual (250, color.R, "#LightGoldenrodYellow.R");
456                         Assert.AreEqual (250, color.G, "#LightGoldenrodYellow.G");
457                         Assert.AreEqual (210, color.B, "#LightGoldenrodYellow.B");
458
459                         color = Color.LightGreen;
460                         Assert.AreEqual (255, color.A, "#LightGreen.A");
461                         Assert.AreEqual (144, color.R, "#LightGreen.R");
462                         Assert.AreEqual (238, color.G, "#LightGreen.G");
463                         Assert.AreEqual (144, color.B, "#LightGreen.B");
464
465                         color = Color.LightGray;
466                         Assert.AreEqual (255, color.A, "#LightGray.A");
467                         Assert.AreEqual (211, color.R, "#LightGray.R");
468                         Assert.AreEqual (211, color.G, "#LightGray.G");
469                         Assert.AreEqual (211, color.B, "#LightGray.B");
470
471                         color = Color.LightPink;
472                         Assert.AreEqual (255, color.A, "#LightPink.A");
473                         Assert.AreEqual (255, color.R, "#LightPink.R");
474                         Assert.AreEqual (182, color.G, "#LightPink.G");
475                         Assert.AreEqual (193, color.B, "#LightPink.B");
476
477                         color = Color.LightSalmon;
478                         Assert.AreEqual (255, color.A, "#LightSalmon.A");
479                         Assert.AreEqual (255, color.R, "#LightSalmon.R");
480                         Assert.AreEqual (160, color.G, "#LightSalmon.G");
481                         Assert.AreEqual (122, color.B, "#LightSalmon.B");
482
483                         color = Color.LightSeaGreen;
484                         Assert.AreEqual (255, color.A, "#LightSeaGreen.A");
485                         Assert.AreEqual (32, color.R, "#LightSeaGreen.R");
486                         Assert.AreEqual (178, color.G, "#LightSeaGreen.G");
487                         Assert.AreEqual (170, color.B, "#LightSeaGreen.B");
488
489                         color = Color.LightSkyBlue;
490                         Assert.AreEqual (255, color.A, "#LightSkyBlue.A");
491                         Assert.AreEqual (135, color.R, "#LightSkyBlue.R");
492                         Assert.AreEqual (206, color.G, "#LightSkyBlue.G");
493                         Assert.AreEqual (250, color.B, "#LightSkyBlue.B");
494
495                         color = Color.LightSlateGray;
496                         Assert.AreEqual (255, color.A, "#LightSlateGray.A");
497                         Assert.AreEqual (119, color.R, "#LightSlateGray.R");
498                         Assert.AreEqual (136, color.G, "#LightSlateGray.G");
499                         Assert.AreEqual (153, color.B, "#LightSlateGray.B");
500
501                         color = Color.LightSteelBlue;
502                         Assert.AreEqual (255, color.A, "#LightSteelBlue.A");
503                         Assert.AreEqual (176, color.R, "#LightSteelBlue.R");
504                         Assert.AreEqual (196, color.G, "#LightSteelBlue.G");
505                         Assert.AreEqual (222, color.B, "#LightSteelBlue.B");
506
507                         color = Color.LightYellow;
508                         Assert.AreEqual (255, color.A, "#LightYellow.A");
509                         Assert.AreEqual (255, color.R, "#LightYellow.R");
510                         Assert.AreEqual (255, color.G, "#LightYellow.G");
511                         Assert.AreEqual (224, color.B, "#LightYellow.B");
512
513                         color = Color.Lime;
514                         Assert.AreEqual (255, color.A, "#Lime.A");
515                         Assert.AreEqual (0, color.R, "#Lime.R");
516                         Assert.AreEqual (255, color.G, "#Lime.G");
517                         Assert.AreEqual (0, color.B, "#Lime.B");
518
519                         color = Color.LimeGreen;
520                         Assert.AreEqual (255, color.A, "#LimeGreen.A");
521                         Assert.AreEqual (50, color.R, "#LimeGreen.R");
522                         Assert.AreEqual (205, color.G, "#LimeGreen.G");
523                         Assert.AreEqual (50, color.B, "#LimeGreen.B");
524
525                         color = Color.Linen;
526                         Assert.AreEqual (255, color.A, "#Linen.A");
527                         Assert.AreEqual (250, color.R, "#Linen.R");
528                         Assert.AreEqual (240, color.G, "#Linen.G");
529                         Assert.AreEqual (230, color.B, "#Linen.B");
530
531                         color = Color.Magenta;
532                         Assert.AreEqual (255, color.A, "#Magenta.A");
533                         Assert.AreEqual (255, color.R, "#Magenta.R");
534                         Assert.AreEqual (0, color.G, "#Magenta.G");
535                         Assert.AreEqual (255, color.B, "#Magenta.B");
536
537                         color = Color.Maroon;
538                         Assert.AreEqual (255, color.A, "#Maroon.A");
539                         Assert.AreEqual (128, color.R, "#Maroon.R");
540                         Assert.AreEqual (0, color.G, "#Maroon.G");
541                         Assert.AreEqual (0, color.B, "#Maroon.B");
542
543                         color = Color.MediumAquamarine;
544                         Assert.AreEqual (255, color.A, "#MediumAquamarine.A");
545                         Assert.AreEqual (102, color.R, "#MediumAquamarine.R");
546                         Assert.AreEqual (205, color.G, "#MediumAquamarine.G");
547                         Assert.AreEqual (170, color.B, "#MediumAquamarine.B");
548
549                         color = Color.MediumBlue;
550                         Assert.AreEqual (255, color.A, "#MediumBlue.A");
551                         Assert.AreEqual (0, color.R, "#MediumBlue.R");
552                         Assert.AreEqual (0, color.G, "#MediumBlue.G");
553                         Assert.AreEqual (205, color.B, "#MediumBlue.B");
554
555                         color = Color.MediumOrchid;
556                         Assert.AreEqual (255, color.A, "#MediumOrchid.A");
557                         Assert.AreEqual (186, color.R, "#MediumOrchid.R");
558                         Assert.AreEqual (85, color.G, "#MediumOrchid.G");
559                         Assert.AreEqual (211, color.B, "#MediumOrchid.B");
560
561                         color = Color.MediumPurple;
562                         Assert.AreEqual (255, color.A, "#MediumPurple.A");
563                         Assert.AreEqual (147, color.R, "#MediumPurple.R");
564                         Assert.AreEqual (112, color.G, "#MediumPurple.G");
565                         Assert.AreEqual (219, color.B, "#MediumPurple.B");
566
567                         color = Color.MediumSeaGreen;
568                         Assert.AreEqual (255, color.A, "#MediumSeaGreen.A");
569                         Assert.AreEqual (60, color.R, "#MediumSeaGreen.R");
570                         Assert.AreEqual (179, color.G, "#MediumSeaGreen.G");
571                         Assert.AreEqual (113, color.B, "#MediumSeaGreen.B");
572
573                         color = Color.MediumSlateBlue;
574                         Assert.AreEqual (255, color.A, "#MediumSlateBlue.A");
575                         Assert.AreEqual (123, color.R, "#MediumSlateBlue.R");
576                         Assert.AreEqual (104, color.G, "#MediumSlateBlue.G");
577                         Assert.AreEqual (238, color.B, "#MediumSlateBlue.B");
578
579                         color = Color.MediumSpringGreen;
580                         Assert.AreEqual (255, color.A, "#MediumSpringGreen.A");
581                         Assert.AreEqual (0, color.R, "#MediumSpringGreen.R");
582                         Assert.AreEqual (250, color.G, "#MediumSpringGreen.G");
583                         Assert.AreEqual (154, color.B, "#MediumSpringGreen.B");
584
585                         color = Color.MediumTurquoise;
586                         Assert.AreEqual (255, color.A, "#MediumTurquoise.A");
587                         Assert.AreEqual (72, color.R, "#MediumTurquoise.R");
588                         Assert.AreEqual (209, color.G, "#MediumTurquoise.G");
589                         Assert.AreEqual (204, color.B, "#MediumTurquoise.B");
590
591                         color = Color.MediumVioletRed;
592                         Assert.AreEqual (255, color.A, "#MediumVioletRed.A");
593                         Assert.AreEqual (199, color.R, "#MediumVioletRed.R");
594                         Assert.AreEqual (21, color.G, "#MediumVioletRed.G");
595                         Assert.AreEqual (133, color.B, "#MediumVioletRed.B");
596
597                         color = Color.MidnightBlue;
598                         Assert.AreEqual (255, color.A, "#MidnightBlue.A");
599                         Assert.AreEqual (25, color.R, "#MidnightBlue.R");
600                         Assert.AreEqual (25, color.G, "#MidnightBlue.G");
601                         Assert.AreEqual (112, color.B, "#MidnightBlue.B");
602
603                         color = Color.MintCream;
604                         Assert.AreEqual (255, color.A, "#MintCream.A");
605                         Assert.AreEqual (245, color.R, "#MintCream.R");
606                         Assert.AreEqual (255, color.G, "#MintCream.G");
607                         Assert.AreEqual (250, color.B, "#MintCream.B");
608
609                         color = Color.MistyRose;
610                         Assert.AreEqual (255, color.A, "#MistyRose.A");
611                         Assert.AreEqual (255, color.R, "#MistyRose.R");
612                         Assert.AreEqual (228, color.G, "#MistyRose.G");
613                         Assert.AreEqual (225, color.B, "#MistyRose.B");
614
615                         color = Color.Moccasin;
616                         Assert.AreEqual (255, color.A, "#Moccasin.A");
617                         Assert.AreEqual (255, color.R, "#Moccasin.R");
618                         Assert.AreEqual (228, color.G, "#Moccasin.G");
619                         Assert.AreEqual (181, color.B, "#Moccasin.B");
620
621                         color = Color.NavajoWhite;
622                         Assert.AreEqual (255, color.A, "#NavajoWhite.A");
623                         Assert.AreEqual (255, color.R, "#NavajoWhite.R");
624                         Assert.AreEqual (222, color.G, "#NavajoWhite.G");
625                         Assert.AreEqual (173, color.B, "#NavajoWhite.B");
626
627                         color = Color.Navy;
628                         Assert.AreEqual (255, color.A, "#Navy.A");
629                         Assert.AreEqual (0, color.R, "#Navy.R");
630                         Assert.AreEqual (0, color.G, "#Navy.G");
631                         Assert.AreEqual (128, color.B, "#Navy.B");
632
633                         color = Color.OldLace;
634                         Assert.AreEqual (255, color.A, "#OldLace.A");
635                         Assert.AreEqual (253, color.R, "#OldLace.R");
636                         Assert.AreEqual (245, color.G, "#OldLace.G");
637                         Assert.AreEqual (230, color.B, "#OldLace.B");
638
639                         color = Color.Olive;
640                         Assert.AreEqual (255, color.A, "#Olive.A");
641                         Assert.AreEqual (128, color.R, "#Olive.R");
642                         Assert.AreEqual (128, color.G, "#Olive.G");
643                         Assert.AreEqual (0, color.B, "#Olive.B");
644
645                         color = Color.OliveDrab;
646                         Assert.AreEqual (255, color.A, "#OliveDrab.A");
647                         Assert.AreEqual (107, color.R, "#OliveDrab.R");
648                         Assert.AreEqual (142, color.G, "#OliveDrab.G");
649                         Assert.AreEqual (35, color.B, "#OliveDrab.B");
650
651                         color = Color.Orange;
652                         Assert.AreEqual (255, color.A, "#Orange.A");
653                         Assert.AreEqual (255, color.R, "#Orange.R");
654                         Assert.AreEqual (165, color.G, "#Orange.G");
655                         Assert.AreEqual (0, color.B, "#Orange.B");
656
657                         color = Color.OrangeRed;
658                         Assert.AreEqual (255, color.A, "#OrangeRed.A");
659                         Assert.AreEqual (255, color.R, "#OrangeRed.R");
660                         Assert.AreEqual (69, color.G, "#OrangeRed.G");
661                         Assert.AreEqual (0, color.B, "#OrangeRed.B");
662
663                         color = Color.Orchid;
664                         Assert.AreEqual (255, color.A, "#Orchid.A");
665                         Assert.AreEqual (218, color.R, "#Orchid.R");
666                         Assert.AreEqual (112, color.G, "#Orchid.G");
667                         Assert.AreEqual (214, color.B, "#Orchid.B");
668
669                         color = Color.PaleGoldenrod;
670                         Assert.AreEqual (255, color.A, "#PaleGoldenrod.A");
671                         Assert.AreEqual (238, color.R, "#PaleGoldenrod.R");
672                         Assert.AreEqual (232, color.G, "#PaleGoldenrod.G");
673                         Assert.AreEqual (170, color.B, "#PaleGoldenrod.B");
674
675                         color = Color.PaleGreen;
676                         Assert.AreEqual (255, color.A, "#PaleGreen.A");
677                         Assert.AreEqual (152, color.R, "#PaleGreen.R");
678                         Assert.AreEqual (251, color.G, "#PaleGreen.G");
679                         Assert.AreEqual (152, color.B, "#PaleGreen.B");
680
681                         color = Color.PaleTurquoise;
682                         Assert.AreEqual (255, color.A, "#PaleTurquoise.A");
683                         Assert.AreEqual (175, color.R, "#PaleTurquoise.R");
684                         Assert.AreEqual (238, color.G, "#PaleTurquoise.G");
685                         Assert.AreEqual (238, color.B, "#PaleTurquoise.B");
686
687                         color = Color.PaleVioletRed;
688                         Assert.AreEqual (255, color.A, "#PaleVioletRed.A");
689                         Assert.AreEqual (219, color.R, "#PaleVioletRed.R");
690                         Assert.AreEqual (112, color.G, "#PaleVioletRed.G");
691                         Assert.AreEqual (147, color.B, "#PaleVioletRed.B");
692
693                         color = Color.PapayaWhip;
694                         Assert.AreEqual (255, color.A, "#PapayaWhip.A");
695                         Assert.AreEqual (255, color.R, "#PapayaWhip.R");
696                         Assert.AreEqual (239, color.G, "#PapayaWhip.G");
697                         Assert.AreEqual (213, color.B, "#PapayaWhip.B");
698
699                         color = Color.PeachPuff;
700                         Assert.AreEqual (255, color.A, "#PeachPuff.A");
701                         Assert.AreEqual (255, color.R, "#PeachPuff.R");
702                         Assert.AreEqual (218, color.G, "#PeachPuff.G");
703                         Assert.AreEqual (185, color.B, "#PeachPuff.B");
704
705                         color = Color.Peru;
706                         Assert.AreEqual (255, color.A, "#Peru.A");
707                         Assert.AreEqual (205, color.R, "#Peru.R");
708                         Assert.AreEqual (133, color.G, "#Peru.G");
709                         Assert.AreEqual (63, color.B, "#Peru.B");
710
711                         color = Color.Pink;
712                         Assert.AreEqual (255, color.A, "#Pink.A");
713                         Assert.AreEqual (255, color.R, "#Pink.R");
714                         Assert.AreEqual (192, color.G, "#Pink.G");
715                         Assert.AreEqual (203, color.B, "#Pink.B");
716
717                         color = Color.Plum;
718                         Assert.AreEqual (255, color.A, "#Plum.A");
719                         Assert.AreEqual (221, color.R, "#Plum.R");
720                         Assert.AreEqual (160, color.G, "#Plum.G");
721                         Assert.AreEqual (221, color.B, "#Plum.B");
722
723                         color = Color.PowderBlue;
724                         Assert.AreEqual (255, color.A, "#PowderBlue.A");
725                         Assert.AreEqual (176, color.R, "#PowderBlue.R");
726                         Assert.AreEqual (224, color.G, "#PowderBlue.G");
727                         Assert.AreEqual (230, color.B, "#PowderBlue.B");
728
729                         color = Color.Purple;
730                         Assert.AreEqual (255, color.A, "#Purple.A");
731                         Assert.AreEqual (128, color.R, "#Purple.R");
732                         Assert.AreEqual (0, color.G, "#Purple.G");
733                         Assert.AreEqual (128, color.B, "#Purple.B");
734
735                         color = Color.Red;
736                         Assert.AreEqual (255, color.A, "#Red.A");
737                         Assert.AreEqual (255, color.R, "#Red.R");
738                         Assert.AreEqual (0, color.G, "#Red.G");
739                         Assert.AreEqual (0, color.B, "#Red.B");
740
741                         color = Color.RosyBrown;
742                         Assert.AreEqual (255, color.A, "#RosyBrown.A");
743                         Assert.AreEqual (188, color.R, "#RosyBrown.R");
744                         Assert.AreEqual (143, color.G, "#RosyBrown.G");
745                         Assert.AreEqual (143, color.B, "#RosyBrown.B");
746
747                         color = Color.RoyalBlue;
748                         Assert.AreEqual (255, color.A, "#RoyalBlue.A");
749                         Assert.AreEqual (65, color.R, "#RoyalBlue.R");
750                         Assert.AreEqual (105, color.G, "#RoyalBlue.G");
751                         Assert.AreEqual (225, color.B, "#RoyalBlue.B");
752
753                         color = Color.SaddleBrown;
754                         Assert.AreEqual (255, color.A, "#SaddleBrown.A");
755                         Assert.AreEqual (139, color.R, "#SaddleBrown.R");
756                         Assert.AreEqual (69, color.G, "#SaddleBrown.G");
757                         Assert.AreEqual (19, color.B, "#SaddleBrown.B");
758
759                         color = Color.Salmon;
760                         Assert.AreEqual (255, color.A, "#Salmon.A");
761                         Assert.AreEqual (250, color.R, "#Salmon.R");
762                         Assert.AreEqual (128, color.G, "#Salmon.G");
763                         Assert.AreEqual (114, color.B, "#Salmon.B");
764
765                         color = Color.SandyBrown;
766                         Assert.AreEqual (255, color.A, "#SandyBrown.A");
767                         Assert.AreEqual (244, color.R, "#SandyBrown.R");
768                         Assert.AreEqual (164, color.G, "#SandyBrown.G");
769                         Assert.AreEqual (96, color.B, "#SandyBrown.B");
770
771                         color = Color.SeaGreen;
772                         Assert.AreEqual (255, color.A, "#SeaGreen.A");
773                         Assert.AreEqual (46, color.R, "#SeaGreen.R");
774                         Assert.AreEqual (139, color.G, "#SeaGreen.G");
775                         Assert.AreEqual (87, color.B, "#SeaGreen.B");
776
777                         color = Color.SeaShell;
778                         Assert.AreEqual (255, color.A, "#SeaShell.A");
779                         Assert.AreEqual (255, color.R, "#SeaShell.R");
780                         Assert.AreEqual (245, color.G, "#SeaShell.G");
781                         Assert.AreEqual (238, color.B, "#SeaShell.B");
782
783                         color = Color.Sienna;
784                         Assert.AreEqual (255, color.A, "#Sienna.A");
785                         Assert.AreEqual (160, color.R, "#Sienna.R");
786                         Assert.AreEqual (82, color.G, "#Sienna.G");
787                         Assert.AreEqual (45, color.B, "#Sienna.B");
788
789                         color = Color.Silver;
790                         Assert.AreEqual (255, color.A, "#Silver.A");
791                         Assert.AreEqual (192, color.R, "#Silver.R");
792                         Assert.AreEqual (192, color.G, "#Silver.G");
793                         Assert.AreEqual (192, color.B, "#Silver.B");
794
795                         color = Color.SkyBlue;
796                         Assert.AreEqual (255, color.A, "#SkyBlue.A");
797                         Assert.AreEqual (135, color.R, "#SkyBlue.R");
798                         Assert.AreEqual (206, color.G, "#SkyBlue.G");
799                         Assert.AreEqual (235, color.B, "#SkyBlue.B");
800
801                         color = Color.SlateBlue;
802                         Assert.AreEqual (255, color.A, "#SlateBlue.A");
803                         Assert.AreEqual (106, color.R, "#SlateBlue.R");
804                         Assert.AreEqual (90, color.G, "#SlateBlue.G");
805                         Assert.AreEqual (205, color.B, "#SlateBlue.B");
806
807                         color = Color.SlateGray;
808                         Assert.AreEqual (255, color.A, "#SlateGray.A");
809                         Assert.AreEqual (112, color.R, "#SlateGray.R");
810                         Assert.AreEqual (128, color.G, "#SlateGray.G");
811                         Assert.AreEqual (144, color.B, "#SlateGray.B");
812
813                         color = Color.Snow;
814                         Assert.AreEqual (255, color.A, "#Snow.A");
815                         Assert.AreEqual (255, color.R, "#Snow.R");
816                         Assert.AreEqual (250, color.G, "#Snow.G");
817                         Assert.AreEqual (250, color.B, "#Snow.B");
818
819                         color = Color.SpringGreen;
820                         Assert.AreEqual (255, color.A, "#SpringGreen.A");
821                         Assert.AreEqual (0, color.R, "#SpringGreen.R");
822                         Assert.AreEqual (255, color.G, "#SpringGreen.G");
823                         Assert.AreEqual (127, color.B, "#SpringGreen.B");
824
825                         color = Color.SteelBlue;
826                         Assert.AreEqual (255, color.A, "#SteelBlue.A");
827                         Assert.AreEqual (70, color.R, "#SteelBlue.R");
828                         Assert.AreEqual (130, color.G, "#SteelBlue.G");
829                         Assert.AreEqual (180, color.B, "#SteelBlue.B");
830
831                         color = Color.Tan;
832                         Assert.AreEqual (255, color.A, "#Tan.A");
833                         Assert.AreEqual (210, color.R, "#Tan.R");
834                         Assert.AreEqual (180, color.G, "#Tan.G");
835                         Assert.AreEqual (140, color.B, "#Tan.B");
836
837                         color = Color.Teal;
838                         Assert.AreEqual (255, color.A, "#Teal.A");
839                         Assert.AreEqual (0, color.R, "#Teal.R");
840                         Assert.AreEqual (128, color.G, "#Teal.G");
841                         Assert.AreEqual (128, color.B, "#Teal.B");
842
843                         color = Color.Thistle;
844                         Assert.AreEqual (255, color.A, "#Thistle.A");
845                         Assert.AreEqual (216, color.R, "#Thistle.R");
846                         Assert.AreEqual (191, color.G, "#Thistle.G");
847                         Assert.AreEqual (216, color.B, "#Thistle.B");
848
849                         color = Color.Tomato;
850                         Assert.AreEqual (255, color.A, "#Tomato.A");
851                         Assert.AreEqual (255, color.R, "#Tomato.R");
852                         Assert.AreEqual (99, color.G, "#Tomato.G");
853                         Assert.AreEqual (71, color.B, "#Tomato.B");
854
855                         color = Color.Turquoise;
856                         Assert.AreEqual (255, color.A, "#Turquoise.A");
857                         Assert.AreEqual (64, color.R, "#Turquoise.R");
858                         Assert.AreEqual (224, color.G, "#Turquoise.G");
859                         Assert.AreEqual (208, color.B, "#Turquoise.B");
860
861                         color = Color.Violet;
862                         Assert.AreEqual (255, color.A, "#Violet.A");
863                         Assert.AreEqual (238, color.R, "#Violet.R");
864                         Assert.AreEqual (130, color.G, "#Violet.G");
865                         Assert.AreEqual (238, color.B, "#Violet.B");
866
867                         color = Color.Wheat;
868                         Assert.AreEqual (255, color.A, "#Wheat.A");
869                         Assert.AreEqual (245, color.R, "#Wheat.R");
870                         Assert.AreEqual (222, color.G, "#Wheat.G");
871                         Assert.AreEqual (179, color.B, "#Wheat.B");
872
873                         color = Color.White;
874                         Assert.AreEqual (255, color.A, "#White.A");
875                         Assert.AreEqual (255, color.R, "#White.R");
876                         Assert.AreEqual (255, color.G, "#White.G");
877                         Assert.AreEqual (255, color.B, "#White.B");
878
879                         color = Color.WhiteSmoke;
880                         Assert.AreEqual (255, color.A, "#WhiteSmoke.A");
881                         Assert.AreEqual (245, color.R, "#WhiteSmoke.R");
882                         Assert.AreEqual (245, color.G, "#WhiteSmoke.G");
883                         Assert.AreEqual (245, color.B, "#WhiteSmoke.B");
884
885                         color = Color.Yellow;
886                         Assert.AreEqual (255, color.A, "#Yellow.A");
887                         Assert.AreEqual (255, color.R, "#Yellow.R");
888                         Assert.AreEqual (255, color.G, "#Yellow.G");
889                         Assert.AreEqual (0, color.B, "#Yellow.B");
890
891                         color = Color.YellowGreen;
892                         Assert.AreEqual (255, color.A, "#YellowGreen.A");
893                         Assert.AreEqual (154, color.R, "#YellowGreen.R");
894                         Assert.AreEqual (205, color.G, "#YellowGreen.G");
895                         Assert.AreEqual (50, color.B, "#YellowGreen.B");
896                 }
897                 
898                 static bool FloatsAlmostEqual (float v1, float v2)
899                 {
900                         float error = Math.Abs(v1-v2)/(v1+v2+float.Epsilon);
901                         return error < 0.0001;
902                 }
903
904                 [Test]
905                 public void TestHBSValues ()
906                 {
907                         Assert.AreEqual (0.0f, Color.Black.GetBrightness (), "BrightnessBlack");
908                         Assert.AreEqual (1.0f, Color.White.GetBrightness (), "BrightnessWhite");
909                 
910                         Color c1 = Color.FromArgb (0, 13, 45, 7); //just some random color
911                         Assert.IsTrue (       FloatsAlmostEqual (110.5263f, c1.GetHue ()), "Hue1");
912                         Assert.IsTrue (FloatsAlmostEqual (0.1019608f, c1.GetBrightness ()), "Brightness1");
913                         Assert.IsTrue (FloatsAlmostEqual (0.7307692f, c1.GetSaturation ()), "Saturation1");
914         
915                         Color c2 = Color.FromArgb (0, 112, 75, 29); //another random color
916                         Assert.IsTrue (       FloatsAlmostEqual (33.25302f, c2.GetHue ()), "Hue2");
917                         Assert.IsTrue (FloatsAlmostEqual (0.2764706f, c2.GetBrightness ()), "Brightness2");
918                         Assert.IsTrue (FloatsAlmostEqual (0.5886525f, c2.GetSaturation ()), "Saturation2");
919                 }
920                 [Test]
921                 public void TestEquals ()
922                 {
923                         Color color = Color.Red;
924                         Color color1 = Color.FromArgb (color.R, color.G, color.B);
925                         Assert.IsTrue (!(color == color1), "Named color not == unnamed color");
926                         Assert.IsTrue (!(color1 == color), "Named unnamed color == color not");
927                         Assert.IsTrue ((color != color1), "Named color != unnamed color");
928                         Assert.IsTrue ((color1 != color), "Named unnamed color != color not");
929                         Assert.IsTrue (!color.Equals (color1), "Named color not equals unnamed color");
930                         Assert.IsTrue (!color1.Equals (color), "Named unnamed color equals color not");
931                         color = Color.FromArgb (0, color1);
932                         Assert.IsTrue (!color.Equals (color1), "Alpha takes part in comparison");
933                 }
934                 [Test]
935                 public void TestIsEmpty ()
936                 {
937                         Color color = Color.Empty;
938                         Assert.IsTrue (color.IsEmpty, "Empty color");
939                         Assert.IsTrue (!Color.FromArgb (0, Color.Black).IsEmpty, "Not empty color");
940                 }
941
942                 [Test]
943                 public void IsKnownColor ()
944                 {
945                         Assert.IsTrue (Color.FromKnownColor(KnownColor.AliceBlue).IsKnownColor, "KnownColor");
946                         Assert.IsTrue (Color.FromName("AliceBlue").IsKnownColor, "KnownColor");
947                         Assert.AreEqual (false, Color.FromArgb (Color.AliceBlue.A, Color.AliceBlue.R, Color.AliceBlue.G, Color.AliceBlue.B).IsKnownColor, "Not KnownColor");
948                 }
949
950                 [Test]
951                 public void IsNamedColor ()
952                 {
953                         Assert.IsTrue (Color.AliceBlue.IsNamedColor, "NamedColor");
954                         Assert.IsTrue (Color.FromKnownColor(KnownColor.AliceBlue).IsNamedColor, "NamedColor");
955                         Assert.IsTrue (Color.FromName("AliceBlue").IsNamedColor, "NamedColor");
956                         Assert.AreEqual (false, Color.FromArgb (Color.AliceBlue.A, Color.AliceBlue.R, Color.AliceBlue.G, Color.AliceBlue.B).IsNamedColor, "Not NamedColor");
957                 }
958
959                 [Test]
960                 public void IsSystemColor ()
961                 {
962                         Color c = Color.FromKnownColor (KnownColor.ActiveBorder);
963                         Assert.IsTrue (c.IsSystemColor, "SystemColor#1");
964                         Assert.IsTrue (Color.FromName("ActiveBorder").IsSystemColor, "SystemColor#2");
965                         Assert.AreEqual (false, Color.FromArgb (c.A, c.R, c.G, c.B).IsSystemColor, "Not SystemColor#1");
966                         Assert.AreEqual (false, Color.FromKnownColor(KnownColor.AliceBlue).IsSystemColor, "Not SystemColor#2");
967                         Assert.AreEqual (false, Color.FromName("AliceBlue").IsSystemColor, "Not SystemColor#3");
968                 }
969
970                 [Test]
971                 public void Name ()
972                 {
973                         Assert.AreEqual ("AliceBlue", Color.AliceBlue.Name, "Color.Name#1");
974                         Assert.AreEqual ("ActiveBorder", Color.FromKnownColor (KnownColor.ActiveBorder).Name, "Color.Name#2");
975                         Assert.AreEqual ("1122ccff", Color.FromArgb(0x11, 0x22, 0xcc, 0xff).Name, "Color.Name#3");
976                 }
977                 [Test]
978                 public void GetHashCodeTest ()
979                 {
980                         Color c = Color.AliceBlue;
981                         Assert.AreEqual (false, Color.FromArgb (c.A, c.R, c.G, c.B).GetHashCode () == c.GetHashCode (), "GHC#1");
982                         Assert.AreEqual (c.GetHashCode (), Color.FromName ("AliceBlue").GetHashCode (), "GHC#2");
983                 }
984                 [Test]
985                 public void ToArgb ()
986                 {
987                         Assert.AreEqual (0x11cc8833, Color.FromArgb (0x11, 0xcc, 0x88, 0x33).ToArgb (), "#1");
988                         Assert.AreEqual (unchecked((int)0xf1cc8833), Color.FromArgb (0xf1, 0xcc, 0x88, 0x33).ToArgb (), "#2");
989                 }
990
991                 [Test]
992                 public void ToKnownColor ()
993                 {
994                         Assert.AreEqual (KnownColor.ActiveBorder, Color.FromName ("ActiveBorder").ToKnownColor (), "TKC#1");
995                         Assert.AreEqual (KnownColor.AliceBlue, Color.AliceBlue.ToKnownColor (), "TKC#2");
996                         KnownColor zero = Color.FromArgb (1, 2, 3, 4).ToKnownColor ();
997                         Assert.AreEqual ((KnownColor)0, zero, "TKC#3");
998                 }
999
1000                 [Test]
1001                 public void ToStringTest ()
1002                 {
1003                         Assert.AreEqual ("Color [AliceBlue]", Color.AliceBlue.ToString (), "TS#1");
1004                         Assert.AreEqual ("Color [ActiveBorder]", Color.FromKnownColor (KnownColor.ActiveBorder).ToString (), "TS#2");
1005                         Assert.AreEqual ("Color [A=1, R=2, G=3, B=4]", Color.FromArgb(1, 2, 3, 4).ToString (), "TS#3");
1006                         Assert.AreEqual ("Color [Empty]", Color.Empty.ToString (), "TS#4");
1007                 }
1008
1009                 [Test]
1010                 public void Equality ()
1011                 {
1012                         Color c = Color.AliceBlue;
1013                         Assert.IsTrue (c == Color.FromName ("AliceBlue"), "EQ#1");
1014                         Assert.AreEqual (false, c == Color.FromArgb (c.A, c.R, c.G, c.B), "EQ#2");
1015                         Assert.IsTrue (c.Equals (Color.FromName ("AliceBlue")), "EQ#3");
1016                         Assert.AreEqual (false, c.Equals(Color.FromArgb (c.A, c.R, c.G, c.B)), "EQ#4");
1017                         Assert.AreEqual (false, c != Color.FromName ("AliceBlue"), "EQ#5");
1018                         Assert.IsTrue(c != Color.FromArgb (c.A, c.R, c.G, c.B), "EQ#6");
1019                 }
1020
1021                 [Test]
1022                 [ExpectedException (typeof (ArgumentException))]
1023                 public void FromArgb_InvalidAlpha1 ()
1024                 {
1025                         Color.FromArgb (-1, Color.Red);
1026                 }
1027
1028                 [Test]
1029                 [ExpectedException (typeof (ArgumentException))]
1030                 public void FromArgb_InvalidAlpha2 ()
1031                 {
1032                         Color.FromArgb (256, Color.Red);
1033                 }
1034
1035                 [Test]
1036                 [ExpectedException (typeof (ArgumentException))]
1037                 public void FromArgb_InvalidAlpha3 ()
1038                 {
1039                         Color.FromArgb (-1, 0, 0, 0);
1040                 }
1041
1042                 [Test]
1043                 [ExpectedException (typeof (ArgumentException))]
1044                 public void FromArgb_InvalidAlpha4 ()
1045                 {
1046                         Color.FromArgb (256, 0, 0, 0);
1047                 }
1048
1049                 [Test]
1050                 [ExpectedException (typeof (ArgumentException))]
1051                 public void FromArgb_InvalidRed1 ()
1052                 {
1053                         Color.FromArgb (-1, 0, 0);
1054                 }
1055
1056                 [Test]
1057                 [ExpectedException (typeof (ArgumentException))]
1058                 public void FromArgb_InvalidRed2 ()
1059                 {
1060                         Color.FromArgb (256, 0, 0);
1061                 }
1062
1063                 [Test]
1064                 [ExpectedException (typeof (ArgumentException))]
1065                 public void FromArgb_InvalidRed3 ()
1066                 {
1067                         Color.FromArgb (0, -1, 0, 0);
1068                 }
1069
1070                 [Test]
1071                 [ExpectedException (typeof (ArgumentException))]
1072                 public void FromArgb_InvalidRed4 ()
1073                 {
1074                         Color.FromArgb (0, 256, 0, 0);
1075                 }
1076
1077                 [Test]
1078                 [ExpectedException (typeof (ArgumentException))]
1079                 public void FromArgb_InvalidGreen1 ()
1080                 {
1081                         Color.FromArgb (0, -1, 0);
1082                 }
1083
1084                 [Test]
1085                 [ExpectedException (typeof (ArgumentException))]
1086                 public void FromArgb_InvalidGreen2 ()
1087                 {
1088                         Color.FromArgb (0, 256, 0);
1089                 }
1090
1091                 [Test]
1092                 [ExpectedException (typeof (ArgumentException))]
1093                 public void FromArgb_InvalidGreen3 ()
1094                 {
1095                         Color.FromArgb (0, 0, -1, 0);
1096                 }
1097
1098                 [Test]
1099                 [ExpectedException (typeof (ArgumentException))]
1100                 public void FromArgb_InvalidGreen4 ()
1101                 {
1102                         Color.FromArgb (0, 0, 256, 0);
1103                 }
1104
1105                 [Test]
1106                 [ExpectedException (typeof (ArgumentException))]
1107                 public void FromArgb_InvalidBlue1 ()
1108                 {
1109                         Color.FromArgb (0, 0, -1);
1110                 }
1111
1112                 [Test]
1113                 [ExpectedException (typeof (ArgumentException))]
1114                 public void FromArgb_InvalidBlue2 ()
1115                 {
1116                         Color.FromArgb (0, 0, 256);
1117                 }
1118
1119                 [Test]
1120                 [ExpectedException (typeof (ArgumentException))]
1121                 public void FromArgb_InvalidBlue3 ()
1122                 {
1123                         Color.FromArgb (0, 0, 0, -1);
1124                 }
1125
1126                 [Test]
1127                 [ExpectedException (typeof (ArgumentException))]
1128                 public void FromArgb_InvalidBlue4 ()
1129                 {
1130                         Color.FromArgb (0, 0, 0, 256);
1131                 }
1132
1133                 [Test]
1134                 public void FromName_Invalid () {
1135                         Color c = Color.FromName ("OingoBoingo");
1136                         Assert.IsTrue (c.IsNamedColor, "#1");
1137                         Assert.AreEqual (c.ToArgb (), 0, "#2");
1138                         Assert.AreEqual (c.Name, "OingoBoingo", "#3");
1139                 }
1140
1141                 private void CheckRed (string message, Color color)
1142                 {
1143                         Assert.AreEqual (255, color.A, "A");
1144                         Assert.AreEqual (255, color.R, "R");
1145                         Assert.AreEqual (0, color.G, "G");
1146                         Assert.AreEqual (0, color.B, "B");
1147                         Assert.AreEqual ("Red", color.Name, "Name");
1148                         Assert.IsTrue (!color.IsEmpty, "IsEmpty");
1149                         Assert.IsTrue (color.IsKnownColor, "IsKnownColor");
1150                         Assert.IsTrue (color.IsNamedColor, "IsNamedColor");
1151                         Assert.IsTrue (!color.IsSystemColor, "IsSystemColor");
1152                 }
1153
1154                 [Test]
1155                 public void SerializationRoundtrip ()
1156                 {
1157                         Color c = Color.Red;
1158                         CheckRed ("original", c);
1159
1160                         BinaryFormatter bf = new BinaryFormatter ();
1161                         MemoryStream ms = new MemoryStream ();
1162                         bf.Serialize (ms, c);
1163
1164                         ms.Position = 0;
1165                         Color color = (Color) bf.Deserialize (ms);
1166                         CheckRed ("deserialized", color);
1167                 }
1168
1169                 // serialized under MS 2.0, can be deserialized on both MS 1.1 SP1 and 2.0
1170                 static byte[] color_red = { 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 
1171                         0x00, 0x00, 0x00, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x51, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2E, 0x44, 
1172                         0x72, 0x61, 0x77, 0x69, 0x6E, 0x67, 0x2C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x32, 
1173                         0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2C, 0x20, 0x43, 0x75, 0x6C, 0x74, 0x75, 0x72, 0x65, 0x3D, 0x6E, 
1174                         0x65, 0x75, 0x74, 0x72, 0x61, 0x6C, 0x2C, 0x20, 0x50, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x4B, 0x65, 0x79, 
1175                         0x54, 0x6F, 0x6B, 0x65, 0x6E, 0x3D, 0x62, 0x30, 0x33, 0x66, 0x35, 0x66, 0x37, 0x66, 0x31, 0x31, 0x64, 
1176                         0x35, 0x30, 0x61, 0x33, 0x61, 0x05, 0x01, 0x00, 0x00, 0x00, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 
1177                         0x2E, 0x44, 0x72, 0x61, 0x77, 0x69, 0x6E, 0x67, 0x2E, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x04, 0x00, 0x00, 
1178                         0x00, 0x04, 0x6E, 0x61, 0x6D, 0x65, 0x05, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x0A, 0x6B, 0x6E, 0x6F, 0x77, 
1179                         0x6E, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x01, 0x00, 0x00, 0x00, 0x09, 
1180                         0x07, 0x07, 0x02, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x00, 
1181                         0x01, 0x00, 0x0B };
1182
1183                 [Test]
1184 #if TARGET_JVM
1185                 [Category ("NotWorking")]
1186 #endif
1187                 public void Deserialize ()
1188                 {
1189                         BinaryFormatter bf = new BinaryFormatter ();
1190                         MemoryStream ms = new MemoryStream (color_red);
1191                         Color color = (Color) bf.Deserialize (ms);
1192                         CheckRed ("deserialized", color);
1193                 }
1194
1195                 static byte [] color_blue = {
1196                         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,
1197                         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,
1198                         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,
1199                         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,
1200                         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,
1201                         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 };
1202
1203                 [Test]
1204 #if TARGET_JVM
1205                 [Category ("NotWorking")]
1206 #endif
1207                 public void Deserialize2 ()
1208                 {
1209                         BinaryFormatter bf = new BinaryFormatter ();
1210                         MemoryStream ms = new MemoryStream (color_blue);
1211                         Color color = (Color) bf.Deserialize (ms);
1212                         Assert.AreEqual (255, color.A, "A");
1213                         Assert.AreEqual (0, color.R, "R");
1214                         Assert.AreEqual (0, color.G, "G");
1215                         Assert.AreEqual (255, color.B, "B");
1216                         Assert.AreEqual ("Blue", color.Name, "Name");
1217                         Assert.IsTrue (!color.IsEmpty, "IsEmpty");
1218                         Assert.IsTrue (color.IsKnownColor, "IsKnownColor");
1219                         Assert.IsTrue (color.IsNamedColor, "IsNamedColor");
1220                         Assert.IsTrue (!color.IsSystemColor, "IsSystemColor");
1221                 }
1222
1223                 static byte [] color_blue_fromargb = {
1224                         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,
1225                         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,
1226                         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,
1227                         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,
1228                         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,
1229                         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};
1230
1231                 [Test]
1232 #if TARGET_JVM
1233                 [Category ("NotWorking")]
1234 #endif
1235                 public void Deserialize3 ()
1236                 {
1237                         BinaryFormatter bf = new BinaryFormatter ();
1238                         MemoryStream ms = new MemoryStream (color_blue_fromargb);
1239                         Color color = (Color) bf.Deserialize (ms);
1240                         Assert.AreEqual (255, color.A, "A");
1241                         Assert.AreEqual (0, color.R, "R");
1242                         Assert.AreEqual (0, color.G, "G");
1243                         Assert.AreEqual (255, color.B, "B");
1244                         Assert.AreEqual ("ff0000ff", color.Name, "Name");
1245                         Assert.IsTrue (!color.IsEmpty, "IsEmpty");
1246                         Assert.IsTrue (!color.IsKnownColor, "IsKnownColor");
1247                         Assert.IsTrue (!color.IsNamedColor, "IsNamedColor");
1248                         Assert.IsTrue (!color.IsSystemColor, "IsSystemColor");
1249                 }
1250
1251                 static byte [] _serializedV11 = {
1252                         0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01,
1253                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x00,
1254                         0x00, 0x00, 0x54, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
1255                         0x44, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x56,
1256                         0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x31, 0x2e, 0x30,
1257                         0x2e, 0x35, 0x30, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x43,
1258                         0x75, 0x6c, 0x74, 0x75, 0x72, 0x65, 0x3d, 0x6e, 0x65, 0x75,
1259                         0x74, 0x72, 0x61, 0x6c, 0x2c, 0x20, 0x50, 0x75, 0x62, 0x6c,
1260                         0x69, 0x63, 0x4b, 0x65, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
1261                         0x3d, 0x62, 0x30, 0x33, 0x66, 0x35, 0x66, 0x37, 0x66, 0x31,
1262                         0x31, 0x64, 0x35, 0x30, 0x61, 0x33, 0x61, 0x05, 0x01, 0x00,
1263                         0x00, 0x00, 0x14, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
1264                         0x44, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6f,
1265                         0x6c, 0x6f, 0x72, 0x04, 0x00, 0x00, 0x00, 0x05, 0x76, 0x61,
1266                         0x6c, 0x75, 0x65, 0x0a, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x43,
1267                         0x6f, 0x6c, 0x6f, 0x72, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
1268                         0x04, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x00, 0x00, 0x01, 0x09,
1269                         0x07, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1270                         0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x0a, 0x0b
1271                 };
1272
1273                 [Test]
1274                 public void Deserialize4 ()
1275                 {
1276                         Color c;
1277                         using (MemoryStream ms = new MemoryStream ()) {
1278                                 BinaryFormatter formatter = new BinaryFormatter ();
1279
1280                                 ms.Write (_serializedV11, 0, _serializedV11.Length);
1281                                 ms.Position = 0;
1282
1283                                 c = (Color) formatter.Deserialize (ms);
1284                                 Assert.AreEqual (Color.Green, c, "#1");
1285                         }
1286                 }
1287
1288 #if !TARGET_JVM
1289                 private void Compare (KnownColor kc, GetSysColorIndex index)
1290                 {
1291                         // we get BGR than needs to be converted into ARGB
1292                         Color sc = ColorTranslator.FromWin32 ((int)GDIPlus.Win32GetSysColor (index));
1293                         Assert.AreEqual (Color.FromKnownColor (kc).ToArgb (), sc.ToArgb (), kc.ToString ());
1294                 }
1295
1296                 [Test]
1297                 public void WindowsSystemColors ()
1298                 {
1299                         if (!GDIPlus.RunningOnWindows ())
1300                                 return;
1301                         // ensure we can read *correctly* the Windows desktop colors
1302                         Compare (KnownColor.ActiveBorder, GetSysColorIndex.COLOR_ACTIVEBORDER);
1303                         Compare (KnownColor.ActiveCaption, GetSysColorIndex.COLOR_ACTIVECAPTION);
1304                         Compare (KnownColor.ActiveCaptionText, GetSysColorIndex.COLOR_CAPTIONTEXT);
1305                         Compare (KnownColor.AppWorkspace, GetSysColorIndex.COLOR_APPWORKSPACE);
1306                         Compare (KnownColor.Control, GetSysColorIndex.COLOR_BTNFACE);
1307                         Compare (KnownColor.ControlDark, GetSysColorIndex.COLOR_BTNSHADOW);
1308                         Compare (KnownColor.ControlDarkDark, GetSysColorIndex.COLOR_3DDKSHADOW);
1309                         Compare (KnownColor.ControlLight, GetSysColorIndex.COLOR_3DLIGHT);
1310                         Compare (KnownColor.ControlLightLight, GetSysColorIndex.COLOR_BTNHIGHLIGHT);
1311                         Compare (KnownColor.ControlText, GetSysColorIndex.COLOR_BTNTEXT);
1312                         Compare (KnownColor.Desktop, GetSysColorIndex.COLOR_DESKTOP);
1313                         Compare (KnownColor.GrayText, GetSysColorIndex.COLOR_GRAYTEXT);
1314                         Compare (KnownColor.Highlight, GetSysColorIndex.COLOR_HIGHLIGHT);
1315                         Compare (KnownColor.HighlightText, GetSysColorIndex.COLOR_HIGHLIGHTTEXT);
1316                         Compare (KnownColor.HotTrack, GetSysColorIndex.COLOR_HOTLIGHT);
1317                         Compare (KnownColor.InactiveBorder, GetSysColorIndex.COLOR_INACTIVEBORDER);
1318                         Compare (KnownColor.InactiveCaption, GetSysColorIndex.COLOR_INACTIVECAPTION);
1319                         Compare (KnownColor.InactiveCaptionText, GetSysColorIndex.COLOR_INACTIVECAPTIONTEXT);
1320                         Compare (KnownColor.Info, GetSysColorIndex.COLOR_INFOBK);
1321                         Compare (KnownColor.InfoText, GetSysColorIndex.COLOR_INFOTEXT);
1322                         Compare (KnownColor.Menu, GetSysColorIndex.COLOR_MENU);
1323                         Compare (KnownColor.MenuText, GetSysColorIndex.COLOR_MENUTEXT);
1324                         Compare (KnownColor.ScrollBar, GetSysColorIndex.COLOR_SCROLLBAR);
1325                         Compare (KnownColor.Window, GetSysColorIndex.COLOR_WINDOW);
1326                         Compare (KnownColor.WindowFrame, GetSysColorIndex.COLOR_WINDOWFRAME);
1327                         Compare (KnownColor.WindowText, GetSysColorIndex.COLOR_WINDOWTEXT);
1328 #if NET_2_0
1329                         Compare (KnownColor.ButtonFace, GetSysColorIndex.COLOR_BTNFACE);
1330                         Compare (KnownColor.ButtonHighlight, GetSysColorIndex.COLOR_BTNHIGHLIGHT);
1331                         Compare (KnownColor.ButtonShadow, GetSysColorIndex.COLOR_BTNSHADOW);
1332                         Compare (KnownColor.GradientActiveCaption, GetSysColorIndex.COLOR_GRADIENTACTIVECAPTION);
1333                         Compare (KnownColor.GradientInactiveCaption, GetSysColorIndex.COLOR_GRADIENTINACTIVECAPTION);
1334                         Compare (KnownColor.MenuBar, GetSysColorIndex.COLOR_MENUBAR);
1335                         Compare (KnownColor.MenuHighlight, GetSysColorIndex.COLOR_MENUHIGHLIGHT);
1336 #endif
1337                 }
1338 #endif // TARGET_JVM
1339         }
1340 }
1341
1342 // Following code was used to generate the TestArgbValues method on MS. 
1343 //
1344 //              Type cType = typeof (Color);
1345 //              PropertyInfo [] properties = cType.GetProperties (BindingFlags.Public | BindingFlags.Static);
1346 ////            Console.WriteLine ("number: " + properties.Length);
1347 //
1348 //              Console.WriteLine("\t\t[Test]");
1349 //              Console.WriteLine("\t\tpublic void TestArgbValues ()");
1350 //              Console.WriteLine("\t\t{");
1351 //              Console.WriteLine("\t\t\tColor color;");
1352 //              foreach (PropertyInfo property in properties) {
1353 //
1354 //                      Console.WriteLine();
1355 //                      Console.WriteLine("\t\t\tcolor = Color.{0};", property.Name);
1356 //                      Color color = Color.FromName (property.Name);
1357 //                      Console.WriteLine("\t\t\tAssertEquals (\"#{0}.A\", {1}, color.A);", property.Name, color.A);
1358 //                      Console.WriteLine("\t\t\tAssertEquals (\"#{0}.R\", {1}, color.R);", property.Name, color.R);
1359 //                      Console.WriteLine("\t\t\tAssertEquals (\"#{0}.G\", {1}, color.G);", property.Name, color.G);
1360 //                      Console.WriteLine("\t\t\tAssertEquals (\"#{0}.B\", {1}, color.B);", property.Name, color.B);
1361 //              }
1362 //              Console.WriteLine("\t\t}");