New test.
[mono.git] / mcs / class / System.Drawing / Test / DrawingTest / Test / Pen.cs
1 using System;\r
2 using System.Drawing;\r
3 using System.Drawing.Drawing2D;\r
4 using NUnit.Framework;\r
5 using DrawingTestHelper;\r
6 \r
7 namespace Test.Sys.Drawing\r
8 {\r
9         /// <summary>\r
10         /// Summary description for Pen.\r
11         /// </summary>\r
12         [TestFixture]\r
13         public class PenFixture {\r
14                 //TODO: Brush, CompoundArray, CustomEndCap, CustomStartCap,\r
15                 //StartCap, EndCap, PenType, Transform \r
16                 DrawingTest t;\r
17                 Pen p;\r
18                 protected int TOLERANCE = 3;\r
19 \r
20 \r
21                 [SetUp]\r
22                 public void SetUp () {\r
23                         t = DrawingTest.Create (256, 256);\r
24                         p = new Pen (Color.Blue);\r
25                         p.Width = 10;\r
26                         DrawingTest.ShowForms = false;\r
27                 }\r
28 \r
29                 [TearDown]\r
30                 public void TearDown ()\r
31                 {\r
32                         if (t != null)\r
33                                 t.Dispose ();\r
34                 }\r
35 \r
36                 #region InitAlignment\r
37                 [Test]\r
38                 public void InitAlignment () {\r
39                         Pen p = new Pen (Color.Blue);\r
40                         Assert.AreEqual (PenAlignment.Center, p.Alignment);\r
41                 }\r
42                 #endregion\r
43                 \r
44                 #region PenWidth\r
45                 [Test]\r
46                 public void PenWidth_1()\r
47                 {\r
48                         Assert.AreEqual(10, p.Width);\r
49                         t.Graphics.DrawLine (p, 20, 200, 200, 20);\r
50                         t.Show();\r
51                         Assert.IsTrue (t.Compare (TOLERANCE * 1.5f)); //FIXME: Pen width in GH is not the same as in .NET\r
52                 }\r
53                 [Test]\r
54                 public void PenWidth_2()\r
55                 {\r
56                         p.Width = 25;\r
57                         t.Graphics.DrawLine (p, 20, 200, 200, 20);\r
58                         t.Show();\r
59                         Assert.IsTrue (t.Compare (TOLERANCE));\r
60                 }\r
61                 [Test]\r
62                 public void PenWidth_3 () \r
63                 {\r
64                         t.Graphics.DrawLine (p, 10, 100, 200, 100);\r
65                         t.Show ();\r
66                         Assert.IsTrue (t.Compare (TOLERANCE));\r
67                 }\r
68                 #endregion\r
69 \r
70                 #region DashStyle Tests\r
71                 [Test]\r
72                 public void DashStyleTest_1 () \r
73                 {\r
74                         Assert.AreEqual (DashStyle.Solid, p.DashStyle);\r
75                         p.Width = 14;\r
76                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
77                         t.Show ();\r
78                         Assert.IsTrue (t.Compare (TOLERANCE));\r
79                 }\r
80                 [Test]\r
81                 public void DashStyleTest_2 () {\r
82                         p.DashStyle = DashStyle.Dash;\r
83                         p.Width = 14;\r
84                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
85                         t.Show ();\r
86                         Assert.IsTrue (t.Compare (TOLERANCE));\r
87                 }\r
88                 [Test]\r
89                 public void DashStyleTest_3 () {\r
90                         p.DashStyle = DashStyle.DashDot;\r
91                         p.Width = 14;\r
92                         t.Graphics.FillRectangle (Brushes.Black, 0, 0, 256, 256);\r
93                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
94                         t.Show ();\r
95                         Assert.IsTrue (t.Compare (TOLERANCE));\r
96                 }\r
97                 [Test]\r
98                 public void DashStyleTest_4 () {        \r
99                         p.DashStyle = DashStyle.DashDotDot;\r
100                         p.Width = 14;\r
101                         t.Graphics.FillRectangle (Brushes.Black, 0, 0, 256, 256);\r
102                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
103                         t.Show ();\r
104                         Assert.IsTrue (t.Compare (TOLERANCE));\r
105                 }\r
106                 [Test]\r
107                 public void DashStyleTest_5 () {\r
108                         p.DashStyle = DashStyle.Dot;\r
109                         p.Width = 14;\r
110                         t.Graphics.FillRectangle (Brushes.Black, 0, 0, 256, 256);\r
111                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
112                         t.Show ();\r
113                         Assert.IsTrue (t.Compare (TOLERANCE));\r
114                 }\r
115                 [Test]\r
116                 public void DashStyleTest_6 () {\r
117                         p.DashStyle = DashStyle.Custom;\r
118                         p.Width = 14;\r
119                         t.Graphics.FillRectangle (Brushes.Black, 0, 0, 256, 256);\r
120                         t.Graphics.DrawLine (p, 20, 100, 230, 100);\r
121                         t.Show ();\r
122                         Assert.IsTrue (t.Compare (TOLERANCE));\r
123                 }\r
124                 #endregion\r
125 \r
126                 #region DashCustomStyle\r
127                 //The following tests DashOffset and DashPattern\r
128                 [Test]\r
129                 [Category ("NotWorking")]\r
130                 public void DashCustomStyle_1 () {\r
131                         p.DashStyle = DashStyle.Custom;\r
132                         p.Width = 10;\r
133                         Assert.AreEqual (new float [] {1F}, p.DashPattern);\r
134                         Assert.AreEqual (0F, p.DashOffset);\r
135                 }\r
136                 [Test]\r
137                 public void DashCustomStyle_2 () {\r
138                         p.DashPattern = new float [] {2, 3, 1.15F, 0.05F};\r
139                         t.Graphics.FillRectangle (Brushes.Black, 0, 0, 256, 256);\r
140                         t.Graphics.DrawLine (p, 20, 100, 200, 100);\r
141                         t.Show ();\r
142                         Assert.IsTrue (t.Compare (TOLERANCE));\r
143                 }\r
144                 [Test]\r
145                 public void DashCustomStyle_3 () {\r
146                         p.DashOffset = 10F;\r
147                         t.Graphics.DrawLine (p, 20, 100, 200, 100);\r
148                         t.Show ();\r
149                         Assert.IsTrue (t.Compare (TOLERANCE));\r
150                 }\r
151                 [Test]\r
152                 [Category ("NotWorking")]\r
153                 public void DashCustomStyle_4 () {\r
154                         p.DashPattern = new float [] {2, 3, 1.15F, 0.05F, 1.74321F};\r
155                         p.DashOffset = 10.2F;\r
156                         t.Graphics.DrawLine (p, 20, 100, 200, 100);\r
157                         t.Show ();\r
158                         Assert.IsTrue (t.Compare (TOLERANCE));\r
159                 }\r
160                 [Test]\r
161                 [Category ("NotWorking")]\r
162                 public void DashCustomStyle_5 () {\r
163                         p.DashPattern = new float [] {2, 3, 1.15F, 0.05F, 1.74321F};\r
164                         p.DashOffset = 10.2F;\r
165                         t.Graphics.DrawLine (p, 20, 100, 200, 100);\r
166                         t.Show ();\r
167                         Assert.IsTrue (t.Compare (TOLERANCE));\r
168                 }\r
169                 #endregion\r
170 \r
171                 #region DashCapTest\r
172                 [Test]\r
173                 public void DashCapTest_Flat () {\r
174                         p.Width = 15;\r
175                         Assert.AreEqual (DashCap.Flat, p.DashCap);\r
176                         p.DashStyle = DashStyle.DashDot;\r
177                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
178                         t.Show ();\r
179                         Assert.IsTrue (t.Compare (TOLERANCE));\r
180                 }\r
181                 [Test]\r
182                 [Category ("NotWorking")]\r
183                 public void DashCapTest_Round () {\r
184                         p.Width = 15;\r
185                         p.DashStyle = DashStyle.DashDot;\r
186                         p.DashCap = DashCap.Round;\r
187                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
188                         t.Show ();\r
189                         Assert.IsTrue (t.Compare (TOLERANCE));\r
190                 }\r
191                 [Test]\r
192                 [Category ("NotWorking")]\r
193                 public void DashCapTest_Triangle () {\r
194                         p.Width = 15;\r
195                         p.DashStyle = DashStyle.DashDot;\r
196                         p.DashCap = DashCap.Triangle;\r
197                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
198                         t.Show ();\r
199                         Assert.IsTrue (t.Compare (TOLERANCE));\r
200                 }\r
201                 #endregion\r
202 \r
203                 #region LineJoin Round\r
204                 [Test]\r
205                 public void LineJoinTest_Round_1 () {\r
206                         Point [] points = new Point [] {\r
207                                                                                            new Point(100, 210), new Point (120, 50),\r
208                                                                                            new Point (140, 210)};\r
209                         p.Width = 25;\r
210                         p.LineJoin = LineJoin.Round;\r
211                         t.Graphics.DrawPolygon (p, points);\r
212                         t.Graphics.DrawPolygon (Pens.White, points);\r
213                         t.Show ();\r
214                         Assert.IsTrue (t.Compare (TOLERANCE));\r
215                 }\r
216 \r
217                 [Test]\r
218                 public void LineJoinTest_Round_2 () {\r
219                         Point [] points = new Point [] {\r
220                                                                          new Point(50, 210), new Point (120, 50),\r
221                                                                          new Point (190, 210)};\r
222                         p.Width = 25;\r
223                         p.LineJoin = LineJoin.Round;\r
224                         t.Graphics.DrawPolygon (p, points);\r
225                         t.Graphics.DrawPolygon (Pens.White, points);\r
226                         t.Show ();\r
227                         Assert.IsTrue (t.Compare (TOLERANCE));\r
228                 }\r
229                 #endregion\r
230 \r
231                 #region LineJoin Miter\r
232                 [Test]\r
233                 public void LineJoinTest_Miter_1 () {\r
234                         p.LineJoin = LineJoin.Miter;\r
235                         Point [] points = new Point [] {\r
236                                                                                            new Point(100, 217), new Point (130, 100),\r
237                                                                                            new Point (160, 217)};\r
238                         p.Width = 25;\r
239                         t.Graphics.DrawLines (p, points);\r
240                         t.Graphics.DrawLines (Pens.White, points);\r
241                         t.Show ();\r
242                         Assert.IsTrue (t.Compare (TOLERANCE));\r
243                 }\r
244                 [Test]\r
245                 [Category ("NotWorking")]\r
246                 public void LineJoinTest_Miter_2 () {\r
247                         p.LineJoin = LineJoin.Miter;\r
248                         Point [] points = new Point [] {\r
249                                                                                            new Point(120, 237), new Point (130, 100),\r
250                                                                                            new Point (140, 237)};\r
251                         p.Width = 10;\r
252                         t.Graphics.DrawLines (p, points);\r
253                         t.Graphics.DrawLines (Pens.White, points);\r
254                         t.Show ();\r
255                         Assert.IsTrue (t.Compare (TOLERANCE));\r
256                 }\r
257                 [Test]\r
258                 public void LineJoinTest_Miter_3 () {\r
259                         p.LineJoin = LineJoin.Miter;\r
260                         Point [] points = new Point [] {\r
261                                                                                            new Point(50, 217), new Point (100, 100),\r
262                                                                                            new Point (150, 217)};\r
263                         p.Width = 25;\r
264                         t.Graphics.DrawLines (p, points);\r
265                         t.Graphics.DrawLines (Pens.White, points);\r
266                         t.Show ();\r
267                         Assert.IsTrue (t.Compare (TOLERANCE));\r
268                 }\r
269                 #endregion\r
270 \r
271                 #region LineJoin MiterClipped\r
272                 [Test]\r
273                 public void LineJoinTest_MiterClipped_1 () {\r
274                         p.LineJoin = LineJoin.MiterClipped;\r
275                         Point [] points = new Point [] {\r
276                                                                                            new Point(100, 217), new Point (130, 100),\r
277                                                                                            new Point (160, 217)};\r
278                         p.Width = 25;\r
279                         t.Graphics.DrawLines (p, points);\r
280                         t.Graphics.DrawLines (Pens.White, points);\r
281                         t.Show ();\r
282                         Assert.IsTrue (t.Compare (TOLERANCE));\r
283                 }\r
284                 [Test]\r
285                 public void LineJoinTest_MiterClipped_2 () {\r
286                         p.LineJoin = LineJoin.MiterClipped;\r
287                         Point [] points = new Point [] {\r
288                                                                                            new Point(120, 217), new Point (130, 80),\r
289                                                                                            new Point (140, 217)};\r
290                         p.Width = 25;\r
291                         t.Graphics.DrawLines (p, points);\r
292                         t.Graphics.DrawLines (Pens.White, points);\r
293                         t.Show ();\r
294                         Assert.IsTrue (t.Compare (TOLERANCE));\r
295                 }\r
296                 [Test]\r
297                 public void LineJoinTest_MiterClipped_3 () {\r
298                         p.LineJoin = LineJoin.MiterClipped;\r
299                         Point [] points = new Point [] {\r
300                                                                           new Point(50, 217), new Point (100, 100),\r
301                                                                           new Point (150, 217)};\r
302                         p.Width = 25;\r
303                         t.Graphics.DrawLines (p, points);\r
304                         t.Graphics.DrawLines (Pens.White, points);\r
305                         t.Show ();\r
306                         Assert.IsTrue (t.Compare (TOLERANCE));\r
307                 }\r
308                 #endregion\r
309 \r
310                 #region "LineJoin Bevel"\r
311                 [Test]\r
312                 public void LineJoinTest_Bevel_1 () {\r
313                         p.LineJoin = LineJoin.Bevel;\r
314                         Point [] points = new Point [] {\r
315                                                                                            new Point(90, 217), new Point (115, 55),\r
316                                                                                            new Point (140, 217)};\r
317                         p.Width = 25;\r
318                         t.Graphics.DrawLines (p, points);\r
319                         t.Graphics.DrawLines (Pens.White, points);\r
320                         t.Show ();\r
321                         Assert.IsTrue (t.Compare (TOLERANCE));\r
322                 }\r
323                 [Test]\r
324                 public void LineJoinTest_Bevel_2 () {\r
325                         p.LineJoin = LineJoin.Bevel;\r
326                         Point [] points = new Point [] {\r
327                                                                           new Point(110, 217), new Point (120, 75),\r
328                                                                           new Point (130, 217)};\r
329                         p.Width = 25;\r
330                         t.Graphics.DrawLines (p, points);\r
331                         t.Graphics.DrawLines (Pens.White, points);\r
332                         t.Show ();\r
333                         Assert.IsTrue (t.Compare (TOLERANCE));\r
334                 }\r
335                 [Test]\r
336                 public void LineJoinTest_Bevel_3 () {\r
337                         p.LineJoin = LineJoin.Bevel;\r
338                         Point [] points = new Point [] {\r
339                                                                           new Point(50, 217), new Point (100, 100),\r
340                                                                           new Point (150, 217)};\r
341                         p.Width = 25;\r
342                         t.Graphics.DrawLines (p, points);\r
343                         t.Graphics.DrawLines (Pens.White, points);\r
344                         t.Show ();\r
345                         Assert.IsTrue (t.Compare (TOLERANCE));\r
346                 }\r
347                 [Test]\r
348                 public void LineJoinTest_Bevel_4 () {\r
349                         p.LineJoin = LineJoin.Bevel;\r
350                         Point [] points = new Point [] {\r
351                                                                           new Point(143, 210), new Point (170, 100),\r
352                                                                           new Point (180, 20)};\r
353                         p.Width = 25;\r
354                         t.Graphics.DrawLines (p, points);\r
355                         t.Graphics.DrawLines (Pens.White, points);\r
356                         t.Show ();\r
357                         Assert.IsTrue (t.Compare (TOLERANCE));\r
358                 }\r
359                 [Test]\r
360                 public void LineJoinTest_Bevel_5 () {\r
361                         p.LineJoin = LineJoin.Bevel;\r
362                         Point [] points = new Point [] {\r
363                                                                           new Point(50, 100), new Point (150, 100),\r
364                                                                           new Point (150, 20), new Point (200, 20)};\r
365                         p.Width = 25;\r
366                         t.Graphics.DrawLines (p, points);\r
367                         t.Graphics.DrawLines (Pens.White, points);\r
368                         t.Show ();\r
369                         Assert.IsTrue (t.Compare (TOLERANCE));\r
370                 }\r
371                 #endregion\r
372 \r
373                 #region PenAlignment\r
374                 [Test]\r
375                 public void PenAlignmentTest_1 () {\r
376                         Assert.AreEqual (PenAlignment.Center, p.Alignment);\r
377                         Point [] points = new Point [] {\r
378                                                                                            new Point (30, 30), new Point (100, 100), new Point (170, 30),\r
379                                                                                            new Point (170, 200), new Point (30, 200)};\r
380                         GraphicsPath path = new GraphicsPath ();\r
381                         path.AddPolygon (points);\r
382 \r
383                         p.Width = 25;\r
384                         t.Graphics.DrawPath (p, path);\r
385                         t.Graphics.DrawPath (Pens.White, path);\r
386                         t.Show ();\r
387                         Assert.IsTrue (t.Compare (TOLERANCE));\r
388                 }\r
389                 [Test]\r
390                 public void PenAlignmentTest_2 () {\r
391                         Point [] points = new Point [] {\r
392                                                                                            new Point (30, 30), new Point (100, 100), new Point (170, 30),\r
393                                                                                            new Point (170, 200), new Point (30, 200)};\r
394                         GraphicsPath path = new GraphicsPath ();\r
395                         path.AddPolygon (points);\r
396 \r
397                         p.Width = 25;\r
398                         p.Alignment = PenAlignment.Left;\r
399                         t.Graphics.DrawPath (p, path);\r
400                         t.Graphics.DrawPath (Pens.White, path);\r
401                         t.Show ();\r
402                         Assert.IsTrue (t.Compare (TOLERANCE));\r
403                 }\r
404 \r
405                 [Test]\r
406                 [Category ("NotWorking")]\r
407                 public void PenAlignmentTest_3 () {\r
408                         Point [] points = new Point [] {\r
409                                                                                            new Point (30, 30), new Point (100, 100), new Point (170, 30),\r
410                                                                                            new Point (170, 200), new Point (30, 200)};\r
411                         GraphicsPath path = new GraphicsPath ();\r
412                         path.AddPolygon (points);\r
413 \r
414                         p.Width = 25;\r
415                         p.Alignment = PenAlignment.Inset;\r
416                         t.Graphics.DrawPath (p, path);\r
417                         t.Graphics.DrawPath (Pens.White, path);\r
418                         t.Show ();\r
419                         Assert.IsTrue (t.Compare (TOLERANCE));\r
420                 }\r
421 \r
422                 [Test]\r
423                 public void PenAlignmentTest_4 () {\r
424                         Point [] points = new Point [] {\r
425                                                                                            new Point (30, 30), new Point (100, 100), new Point (170, 30),\r
426                                                                                            new Point (170, 200), new Point (30, 200)};\r
427                         GraphicsPath path = new GraphicsPath ();\r
428                         path.AddPolygon (points);\r
429 \r
430                         p.Width = 25;\r
431                         p.Alignment = PenAlignment.Outset;\r
432                         t.Graphics.DrawPath (p, path);\r
433                         t.Graphics.DrawPath (Pens.White, path);\r
434                         t.Show ();\r
435                         Assert.IsTrue (t.Compare (TOLERANCE));\r
436                 }\r
437 \r
438                 [Test]\r
439                 public void PenAlignmentTest_5 () {\r
440                         Point [] points = new Point [] {\r
441                                                                                            new Point (30, 30), new Point (100, 100), new Point (170, 30),\r
442                                                                                            new Point (170, 200), new Point (30, 200)};\r
443                         GraphicsPath path = new GraphicsPath ();\r
444                         path.AddPolygon (points);\r
445 \r
446                         p.Width = 25;\r
447                         p.Alignment = PenAlignment.Right;\r
448                         t.Graphics.DrawPath (p, path);\r
449                         t.Graphics.DrawPath (Pens.White, path);\r
450                         t.Show ();\r
451                         Assert.IsTrue (t.Compare (TOLERANCE));\r
452                 }\r
453                 #endregion\r
454                 \r
455                 #region Color test\r
456                 [Test]\r
457                 public void ColorTest_1 () {\r
458                         Assert.AreEqual (Color.Blue, p.Color);\r
459                         p.Width = 25;\r
460                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
461                         t.Show ();\r
462                         Assert.IsTrue (t.Compare (TOLERANCE));\r
463                 }\r
464                 [Test]\r
465                 public void ColorTest_2 () {\r
466                         p.Color = Color.Red;\r
467                         p.Width = 25;\r
468                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
469                         t.Show ();\r
470                         Assert.IsTrue (t.Compare (TOLERANCE));\r
471                 }\r
472                 [Test]\r
473                 public void ColorTest_3 () {\r
474                         p.Color = Color.BurlyWood;\r
475                         p.Width = 25;\r
476                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
477                         t.Show ();\r
478                         Assert.IsTrue (t.Compare (TOLERANCE));\r
479                 }\r
480                 [Test]\r
481                 public void ColorTest_4 () {\r
482                         p.Color = Color.FromArgb (100, 120, 255);\r
483                         p.Width = 25;\r
484                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
485                         t.Show ();\r
486                         Assert.IsTrue (t.Compare (TOLERANCE));\r
487                 }\r
488                 [Test]\r
489                 public void ColorTest_5 () {\r
490                         p.Color = Color.FromArgb (128, Color.White);\r
491                         p.Width = 25;\r
492                         t.Graphics.DrawLine (p, 10, 100, 230, 100);\r
493                         t.Show ();\r
494                         Assert.IsTrue (t.Compare (TOLERANCE));\r
495                 }\r
496                 #endregion\r
497 \r
498                 #region MiterLimit\r
499                 [Test]\r
500                 public void MitterLimit_1 () {\r
501                         p.LineJoin = LineJoin.MiterClipped;\r
502                         Point [] points = new Point [] {new Point (0,30), new Point (180, 30),\r
503                                                                                            new Point (0, 90)};\r
504 \r
505                         p.Width = 25;\r
506                         Assert.AreEqual (10F, p.MiterLimit);\r
507                         t.Graphics.DrawLines (p, points);\r
508                         t.Graphics.DrawLines (Pens.White, points);\r
509                         t.Show ();\r
510                         Assert.IsTrue (t.Compare (TOLERANCE));\r
511                 }\r
512                 [Test]\r
513                 public void MitterLimit_2 () {\r
514                         p.MiterLimit=1F;\r
515                         p.LineJoin = LineJoin.MiterClipped;\r
516                         Point [] points = new Point [] {new Point (0,30), new Point (180, 30),\r
517                                                                                            new Point (0, 120)};\r
518 \r
519                         p.Width = 25;\r
520                         t.Graphics.DrawLines (p, points);\r
521                         t.Graphics.DrawLines (Pens.White, points);\r
522                         t.Show ();\r
523                         Assert.IsTrue (t.Compare (TOLERANCE));\r
524                 }\r
525                 #endregion\r
526 \r
527                 #region TRansform\r
528                 [Test]\r
529                 public void Transform () {\r
530                         p.ScaleTransform (0.5F, 2);\r
531                         t.Graphics.DrawArc (p, 70, 70, 100, 100, 0, 360);\r
532                         t.Graphics.DrawArc (Pens.White, 70, 70, 100, 100, 0, 360);\r
533                         t.Show ();\r
534                         Assert.IsTrue (t.Compare (TOLERANCE));\r
535                 }\r
536                 #endregion\r
537                 \r
538                 #region Line StartCap\r
539                 [Test]\r
540                 public void StartCap_Flat() {\r
541                         Assert.AreEqual(LineCap.Flat, p.StartCap);\r
542                         p.StartCap = LineCap.Flat;\r
543                         p.Width = 25;\r
544                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
545                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
546                         t.Show ();\r
547                         Assert.IsTrue (t.Compare (TOLERANCE));\r
548                 }\r
549                 [Test]\r
550                 [Category ("NotWorking")]\r
551                 public void StartCap_Round() {\r
552                         p.StartCap = LineCap.Round;\r
553                         p.Width = 25;\r
554                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
555                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
556                         t.Show ();\r
557                         Assert.IsTrue (t.Compare (TOLERANCE));\r
558                 }\r
559                 [Test]\r
560                 [Category ("NotWorking")]\r
561                 public void StartCap_Square() {\r
562                         p.StartCap = LineCap.Square;\r
563                         p.Width = 25;\r
564                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
565                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
566                         t.Show ();\r
567                         Assert.IsTrue (t.Compare (TOLERANCE));\r
568                 }\r
569                 [Test]\r
570                 public void StartCap_AnchorMask() {\r
571                         p.StartCap = LineCap.AnchorMask;\r
572                         p.Width = 25;\r
573                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
574                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
575                         t.Show ();\r
576                         Assert.IsTrue (t.Compare (TOLERANCE));\r
577                 }\r
578                 [Test]\r
579                 public void StartCap_ArrowAnchor() {\r
580                         p.StartCap = LineCap.ArrowAnchor;\r
581                         p.Width = 25;\r
582                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
583                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
584                         t.Show ();\r
585                         Assert.IsTrue (t.Compare (TOLERANCE));\r
586                 }\r
587                 [Test]\r
588                 [Category ("NotWorking")]\r
589                 public void StartCap_DiamondAnchor() {\r
590                         p.StartCap = LineCap.DiamondAnchor;\r
591                         p.Width = 25;\r
592                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
593                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
594                         t.Show ();\r
595                         Assert.IsTrue (t.Compare (TOLERANCE));\r
596                 }\r
597                 [Test]\r
598                 public void StartCap_NoAnchor() {\r
599                         p.StartCap = LineCap.NoAnchor;\r
600                         p.Width = 25;\r
601                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
602                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
603                         t.Show ();\r
604                         Assert.IsTrue (t.Compare (TOLERANCE));\r
605                 }\r
606                 [Test]\r
607                 [Category ("NotWorking")]\r
608                 public void StartCap_RoundAnchor() {\r
609                         p.StartCap = LineCap.RoundAnchor;\r
610                         p.Width = 25;\r
611                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
612                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
613                         t.Show ();\r
614                         Assert.IsTrue (t.Compare (TOLERANCE));\r
615                 }\r
616                 [Test]\r
617                 [Category ("NotWorking")]\r
618                 public void StartCap_SquareAnchor() {\r
619                         p.StartCap = LineCap.SquareAnchor;\r
620                         p.Width = 25;\r
621                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
622                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
623                         t.Show ();\r
624                         Assert.IsTrue (t.Compare (TOLERANCE));\r
625                 }\r
626                 [Test]\r
627                 public void StartCap_Triangle() {\r
628                         p.StartCap = LineCap.Triangle;\r
629                         p.Width = 25;\r
630                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
631                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
632                         t.Show ();\r
633                         Assert.IsTrue (t.Compare (TOLERANCE));\r
634                 }\r
635                 [Test]\r
636                 public void StartCap_Custom() {\r
637                         p.StartCap = LineCap.Custom;\r
638                         p.Width = 25;\r
639                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
640                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
641                         t.Show ();\r
642                         Assert.IsTrue (t.Compare (TOLERANCE));\r
643                 }\r
644                 #endregion\r
645 \r
646                 #region Line EndCap\r
647                 [Test]\r
648                 public void EndCap_Flat() \r
649                 {\r
650                         Assert.AreEqual(LineCap.Flat, p.EndCap);\r
651                         p.EndCap = LineCap.Flat;\r
652                         p.Width = 25;\r
653                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
654                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
655                         t.Show ();\r
656                         Assert.IsTrue (t.Compare (TOLERANCE));\r
657                 }\r
658                 [Test]\r
659                 [Category ("NotWorking")]\r
660                 public void EndCap_Round() \r
661                 {\r
662                         p.EndCap = LineCap.Round;\r
663                         p.Width = 25;\r
664                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
665                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
666                         t.Show ();\r
667                         Assert.IsTrue (t.Compare (TOLERANCE));\r
668                 }\r
669                 [Test]\r
670                 [Category ("NotWorking")]\r
671                 public void EndCap_Square() {\r
672                         p.EndCap = LineCap.Square;\r
673                         p.Width = 25;\r
674                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
675                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
676                         t.Show ();\r
677                         Assert.IsTrue (t.Compare (TOLERANCE));\r
678                 }\r
679                 [Test]\r
680                 [Category ("NotWorking")]\r
681                 public void EndCap_AnchorMask() {\r
682                         p.EndCap = LineCap.AnchorMask;\r
683                         p.Width = 25;\r
684                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
685                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
686                         t.Show ();\r
687                         Assert.IsTrue (t.Compare (TOLERANCE));\r
688                 }\r
689                 [Test]\r
690                 [Category ("NotWorking")]\r
691                 public void EndCap_ArrowAnchor() {\r
692                         p.EndCap = LineCap.ArrowAnchor;\r
693                         p.Width = 25;\r
694                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
695                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
696                         t.Show ();\r
697                         Assert.IsTrue (t.Compare (TOLERANCE));\r
698                 }\r
699                 [Test]\r
700                 public void EndCap_DiamondAnchor() {\r
701                         p.EndCap = LineCap.DiamondAnchor;\r
702                         p.Width = 25;\r
703                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
704                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
705                         t.Show ();\r
706                         Assert.IsTrue (t.Compare (TOLERANCE));\r
707                 }\r
708                 [Test]\r
709                 [Category ("NotWorking")]\r
710                 public void EndCap_NoAnchor() {\r
711                         p.EndCap = LineCap.NoAnchor;\r
712                         p.Width = 25;\r
713                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
714                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
715                         t.Show ();\r
716                         Assert.IsTrue (t.Compare (TOLERANCE));\r
717                 }\r
718                 [Test]\r
719                 [Category ("NotWorking")]\r
720                 public void EndCap_RoundAnchor() {\r
721                         p.EndCap = LineCap.RoundAnchor;\r
722                         p.Width = 25;\r
723                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
724                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
725                         t.Show ();\r
726                         Assert.IsTrue (t.Compare (TOLERANCE));\r
727                 }\r
728                 [Test]\r
729                 public void EndCap_SquareAnchor() {\r
730                         p.EndCap = LineCap.SquareAnchor;\r
731                         p.Width = 25;\r
732                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
733                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
734                         t.Show ();\r
735                         Assert.IsTrue (t.Compare (TOLERANCE));\r
736                 }\r
737                 [Test]\r
738                 [Category ("NotWorking")]\r
739                 public void EndCap_Triangle() {\r
740                         p.EndCap = LineCap.Triangle;\r
741                         p.Width = 25;\r
742                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
743                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
744                         t.Show ();\r
745                         Assert.IsTrue (t.Compare (TOLERANCE));\r
746                 }\r
747                 [Test]\r
748                 [Category ("NotWorking")]\r
749                 public void EndCap_Custom() {\r
750                         p.EndCap = LineCap.Custom;\r
751                         p.Width = 25;\r
752                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
753                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
754                         t.Show ();\r
755                         Assert.IsTrue (t.Compare (TOLERANCE));\r
756                 }\r
757                 #endregion\r
758 \r
759                 #region Basic LineCaps StartEnd\r
760                 [Test]\r
761                 public void StartEndCapBasic_Flat() {\r
762                         Assert.AreEqual(LineCap.Flat, p.StartCap);\r
763 \r
764                         p.Width = 21;\r
765                         p.EndCap = LineCap.Flat;\r
766                         p.StartCap = LineCap.Flat;\r
767                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
768                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
769                         t.Show ();\r
770                         Assert.IsTrue (t.Compare (TOLERANCE));\r
771                 }\r
772                 [Test]\r
773                 public void StartEndCapBasic_Round() {\r
774                         p.Width = 21;\r
775                         p.EndCap = LineCap.Round;\r
776                         p.StartCap = LineCap.Round;\r
777                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
778                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
779                         t.Show ();\r
780                         Assert.IsTrue (t.Compare (TOLERANCE));\r
781                 }\r
782                 [Test]\r
783                 public void StartEndCapBasic_Square() {\r
784                         p.Width = 21;\r
785                         p.EndCap = LineCap.Square;\r
786                         p.StartCap = LineCap.Square;\r
787                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
788                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
789                         t.Show ();\r
790                         Assert.IsTrue (t.Compare (TOLERANCE));\r
791                 }\r
792                 [Test]\r
793                 public void SetLineCap_Flat() {\r
794                         Assert.AreEqual(LineCap.Flat, p.StartCap);\r
795 \r
796                         p.Width = 21;\r
797                         p.SetLineCap(LineCap.Flat, LineCap.Flat, DashCap.Flat);\r
798                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
799                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
800                         t.Show ();\r
801                         Assert.IsTrue (t.Compare (TOLERANCE));\r
802                 }\r
803                 [Test]\r
804                 public void SetLineCap_Round() {\r
805                         p.Width = 21;\r
806                         p.SetLineCap(LineCap.Round, LineCap.Round, DashCap.Round);\r
807                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
808                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
809                         t.Show ();\r
810                         Assert.IsTrue (t.Compare (TOLERANCE));\r
811                 }\r
812                 [Test]\r
813                 public void SetLineCap_Square() {\r
814                         p.Width = 21;\r
815                         p.SetLineCap(LineCap.Square, LineCap.Square, DashCap.Flat);\r
816                         t.Graphics.DrawLine (p, 50, 100, 150, 100);\r
817                         t.Graphics.DrawLine (Pens.White, 50, 100, 150, 100);\r
818                         t.Show ();\r
819                         Assert.IsTrue (t.Compare (TOLERANCE));\r
820                 }\r
821                 #endregion\r
822         }\r
823 }\r