Merge branch 'master' of http://github.com/mono/mono
[mono.git] / mcs / class / System.Drawing / Test / DrawingTest / Test / Graphics.cs
1 //\r
2 // Test.System.Drawing.Graphics.cs\r
3 //\r
4 // Author:\r
5 //   Konstantin Triger <kostat@mainsoft.com>\r
6 //\r
7 \r
8 //\r
9 // Copyright (C) 2005 Mainsoft, Corp (http://www.mainsoft.com)\r
10 //\r
11 // Permission is hereby granted, free of charge, to any person obtaining\r
12 // a copy of this software and associated documentation files (the\r
13 // "Software"), to deal in the Software without restriction, including\r
14 // without limitation the rights to use, copy, modify, merge, publish,\r
15 // distribute, sublicense, and/or sell copies of the Software, and to\r
16 // permit persons to whom the Software is furnished to do so, subject to\r
17 // the following conditions:\r
18 // \r
19 // The above copyright notice and this permission notice shall be\r
20 // included in all copies or substantial portions of the Software.\r
21 // \r
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
29 //\r
30 \r
31 using System;\r
32 using System.Collections;\r
33 using System.Diagnostics;\r
34 using NUnit.Framework;\r
35 using System.Drawing;\r
36 using System.Drawing.Drawing2D;\r
37 using System.Drawing.Text;\r
38 using System.Drawing.Imaging;\r
39 using DrawingTestHelper;\r
40 using System.IO;\r
41 \r
42 namespace Test.Sys.Drawing.GraphicsFixtures {\r
43         #region GraphicsFixtureProps\r
44 \r
45         [TestFixture]\r
46         public class GraphicsFixtureProps {\r
47 \r
48                 protected DrawingTest t;\r
49                 const int TOLERANCE = 3; //in %\r
50 \r
51                 [SetUp]\r
52                 public void SetUp() {\r
53                         t = DrawingTest.Create(512, 512);\r
54                 }\r
55 \r
56                 [TearDown]\r
57                 public void TearDown ()\r
58                 {\r
59                         if (t != null)\r
60                                 t.Dispose ();\r
61                 }\r
62 \r
63                 [Test]\r
64                 public void ClipTest_1() {\r
65                         Region r = new Region();\r
66                         Assert.IsTrue(r.Equals(t.Graphics.Clip, t.Graphics));\r
67                 }\r
68 \r
69                 [Test]\r
70                 public void ClipTest_2() {\r
71                         Region r = new Region(new Rectangle(10, 10, 60, 60));\r
72                         t.Graphics.Clip = r;\r
73                         Assert.IsTrue(r.Equals(t.Graphics.Clip, t.Graphics));\r
74 \r
75                         Pen redPen   = new Pen(Color.Red, 3);\r
76                         Pen greenPen = new Pen(Color.Green, 3);\r
77                         // Create points that define curve.\r
78                         Point point1 = new Point( 50,  50);\r
79                         Point point2 = new Point(100,  25);\r
80                         Point point3 = new Point(200,   5);\r
81                         Point point4 = new Point(250,  50);\r
82                         Point point5 = new Point(300, 100);\r
83                         Point point6 = new Point(350, 200);\r
84                         Point point7 = new Point(250, 250);\r
85                         Point[] curvePoints = {\r
86                                                                           point1,\r
87                                                                           point2,\r
88                                                                           point3,\r
89                                                                           point4,\r
90                                                                           point5,\r
91                                                                           point6,\r
92                                                                           point7\r
93                                                                   };\r
94                         // Draw lines between original points to screen.\r
95                         t.Graphics.DrawLines(redPen, curvePoints);\r
96                         t.Show ();\r
97                         Assert.IsTrue(t.PDCompare(TOLERANCE));\r
98                 }\r
99 \r
100                 [Test]\r
101                 public void ClipTest_3() {\r
102                         t.Graphics.TranslateTransform(3, 3);\r
103                         t.Graphics.SetClip(new Rectangle(23, 24, 30, 40));\r
104 \r
105                         RectangleF cb = t.Graphics.VisibleClipBounds;\r
106                         DrawingTest.AssertAlmostEqual(23, cb.X);\r
107                         DrawingTest.AssertAlmostEqual(24, cb.Y);\r
108                         DrawingTest.AssertAlmostEqual(30, cb.Width);\r
109                         DrawingTest.AssertAlmostEqual(40, cb.Height);\r
110 \r
111                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
112 \r
113                         t.Graphics.RotateTransform(128);\r
114 \r
115                         t.Graphics.TranslateTransform(14, 14);\r
116                         t.Graphics.ExcludeClip(new Rectangle(0, 0, 4, 60));\r
117 \r
118                         \r
119                         t.Graphics.RotateTransform(128);\r
120                         \r
121                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
122                         \r
123                         t.Graphics.TranslateClip(5.2f, 3.1f);\r
124 \r
125                         t.Graphics.ResetTransform();\r
126                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
127 \r
128                         cb = t.Graphics.VisibleClipBounds;\r
129                         DrawingTest.AssertAlmostEqual(28, cb.X);\r
130                         DrawingTest.AssertAlmostEqual(22, cb.Y);\r
131                         DrawingTest.AssertAlmostEqual(30, cb.Width);\r
132                         DrawingTest.AssertAlmostEqual(40, cb.Height);\r
133                         \r
134                         t.Graphics.ScaleTransform(5, 7);\r
135                         t.Graphics.IntersectClip(new Rectangle(7, 4, 20, 20));\r
136 \r
137                         cb = t.Graphics.VisibleClipBounds;\r
138                         DrawingTest.AssertAlmostEqual(7, cb.X);\r
139                         DrawingTest.AssertAlmostEqual(4f, cb.Y);\r
140                         DrawingTest.AssertAlmostEqual(4.6f, cb.Width);\r
141                         DrawingTest.AssertAlmostEqual(4.85714245f, cb.Height);\r
142                 }\r
143 \r
144                 [Test]\r
145                 public void ClipBoundsTest() {\r
146                         Region r = new Region();\r
147                         Assert.IsTrue(t.Graphics.ClipBounds.Equals(r.GetBounds(t.Graphics)));\r
148 \r
149                         RectangleF rf = new RectangleF(10, 10, 60, 60);\r
150                         r = new Region(rf);\r
151                         t.Graphics.Clip = r;\r
152                         Assert.IsTrue(rf.Equals(t.Graphics.ClipBounds));\r
153                 }\r
154 \r
155                 [Test]\r
156                 public void CompositingModeTest() {\r
157                         //TODO: seems to draw equal images\r
158                         Assert.AreEqual(CompositingMode.SourceOver, t.Graphics.CompositingMode);\r
159 \r
160                         Bitmap b = new Bitmap(100, 100);\r
161                         Graphics g = Graphics.FromImage(b);\r
162 \r
163                         Color c = Color.FromArgb(100, Color.Red);\r
164 \r
165                         Brush redBrush = new SolidBrush(c);\r
166                         g.FillEllipse(redBrush, 5, 6, 100, 200);\r
167                         //t.Graphics.FillEllipse(redBrush, 5, 6, 100, 200);\r
168                         t.Graphics.DrawImage(b, 10, 10);\r
169 \r
170                         t.Show ();\r
171 \r
172                         t.Graphics.CompositingMode = CompositingMode.SourceCopy;\r
173                         \r
174                         t.Graphics.DrawImage(b, 300, 300);\r
175 \r
176                         t.Show ();\r
177                         Assert.IsTrue(t.PDCompare(TOLERANCE));\r
178                 }\r
179 \r
180                 [Test] //TBD\r
181                 public void CompositingQualityTest() {\r
182                 }\r
183 \r
184                 [Test]\r
185                 public void DpiXTest() {\r
186                         Assert.IsTrue(t.Graphics.DpiX == 96f);\r
187                 }\r
188 \r
189                 [Test]\r
190                 public void DpiYTest() {\r
191                         Assert.IsTrue(t.Graphics.DpiY == 96f);\r
192                 }\r
193 \r
194                 [Test] //TBD\r
195                 public void InterpolationModeTest() {\r
196                         Assert.AreEqual(InterpolationMode.Bilinear, t.Graphics.InterpolationMode);\r
197                 }\r
198 \r
199                 [Test]\r
200                 public void IsClipEmtpyTest() {\r
201                         Assert.IsFalse(t.Graphics.IsClipEmpty);\r
202 \r
203                         try {\r
204                                 t.Graphics.Clip = null;\r
205                                 Assert.Fail("The ArgumentNullException was not thrown");\r
206                         }\r
207                         catch(Exception e) {\r
208                                 Assert.AreEqual(e.GetType(), typeof(ArgumentNullException));\r
209                         }\r
210 \r
211                         Region r = new Region(new Rectangle(10, 10, 0, 0));\r
212                         t.Graphics.Clip = r;\r
213 \r
214                         Assert.IsTrue( t.Graphics.IsClipEmpty);\r
215                 }\r
216 \r
217                 [Test]\r
218                 public void IsVisibleClipEmtpyTest() {\r
219                         Assert.IsFalse(t.Graphics.IsVisibleClipEmpty, "default t.Graphics.IsVisibleClipEmpty");\r
220 \r
221                         Region r = new Region(new Rectangle(512, 512, 100, 100));\r
222                         t.Graphics.Clip = r;\r
223                         Assert.IsFalse(t.Graphics.IsClipEmpty);\r
224                         Assert.IsTrue(t.Graphics.IsVisibleClipEmpty);\r
225                 }\r
226 \r
227                 [Test]\r
228                 public void PageScaleTest() {\r
229                         Assert.AreEqual(1f, t.Graphics.PageScale);\r
230                 }\r
231 \r
232                 [Test]\r
233                 public void PageUnitTest() {\r
234                         Assert.AreEqual(GraphicsUnit.Display, t.Graphics.PageUnit);\r
235                 }\r
236 \r
237                 [Test]\r
238                 public void PixelOffsetModeTest() {\r
239                         Assert.AreEqual(PixelOffsetMode.Default, t.Graphics.PixelOffsetMode);\r
240                 }\r
241 \r
242                 [Test]\r
243                 [Category("NotWorking")]\r
244                 public void RenderingOriginTest() {\r
245                         Assert.AreEqual(new Point(0,0), t.Graphics.RenderingOrigin);\r
246                 }\r
247 \r
248                 [Test]\r
249                 public void SmoothingModeTest() {\r
250                         Assert.AreEqual(SmoothingMode.None, t.Graphics.SmoothingMode);\r
251                 }\r
252 \r
253                 [Test]\r
254                 public void TextContrastTest() {\r
255                         Assert.AreEqual(4, t.Graphics.TextContrast);\r
256                 }\r
257 \r
258                 [Test]\r
259                 public void TextRenderingHintTest() {\r
260                         Assert.AreEqual(TextRenderingHint.SystemDefault, t.Graphics.TextRenderingHint);\r
261                 }\r
262 \r
263                 [Test]\r
264                 public void TransformTest() {\r
265                         Assert.AreEqual(new Matrix(), t.Graphics.Transform);\r
266                 }\r
267 \r
268                 [Test]\r
269                 public void VisibleClipBoundsTest() {\r
270                         Assert.AreEqual(new RectangleF(0, 0, 512, 512), t.Graphics.VisibleClipBounds);\r
271                 }\r
272         }\r
273 \r
274         #endregion\r
275 \r
276         #region DrawImage\r
277         [TestFixture]\r
278         public class DrawImage {\r
279                 protected DrawingTest t;\r
280                 protected int TOLERANCE = 10; //in %;\r
281                 protected Hashtable st = new Hashtable();\r
282 \r
283                 Rectangle src = new Rectangle(0, 0, 50, 50);\r
284                 RectangleF srcF = new Rectangle(0, 0, 50, 50);\r
285                 Rectangle dst = new Rectangle(170, 170, 100, 100);\r
286                 RectangleF dstF = new Rectangle(270, 270, 100, 100);\r
287 \r
288                 Image bmp;\r
289                 Image bmp2;\r
290 \r
291                 [SetUp]\r
292                 public virtual void SetUp() {\r
293                         SetUp("DrawImage");\r
294                         DrawingTest.ShowForms = false;\r
295                         try {\r
296                                 bmp = Bitmap.FromFile("bitmap50.png");\r
297                                 bmp2 = Bitmap.FromFile("bitmap25.png");\r
298                         }\r
299                         catch(Exception e) {\r
300                                 Console.WriteLine(e.Message);\r
301                         }\r
302                 }\r
303                 public virtual void SetUp(string ownerClass) {\r
304                         t = DrawingTest.Create(512, 512, ownerClass);\r
305                         t.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;\r
306 \r
307                         // hashtable of differents tolerance values for specified tests.\r
308                 }\r
309                 [TearDown]\r
310                 public void TearDown() {\r
311                         if (t != null)\r
312                                 t.Dispose ();\r
313                 }\r
314 \r
315                 [Test]\r
316                 public void DrawImage1() {\r
317                         t.Graphics.DrawImage(bmp, new Point[]{new Point(170,10), new Point(250,0), new Point(100,100)}, src, GraphicsUnit.Pixel );\r
318                         t.Graphics.DrawImage(bmp, new PointF[]{new PointF(70,10), new PointF(150,0), new PointF(10,100)}, srcF, GraphicsUnit.Pixel );\r
319                         t.Show();\r
320                         Assert.IsTrue(t.Compare());\r
321                 }\r
322                 [Test]\r
323                 public void DrawImage2() {\r
324                         t.Graphics.DrawImage(bmp, dst, src, GraphicsUnit.Pixel);\r
325                         t.Graphics.DrawImage(bmp, dstF, srcF, GraphicsUnit.Pixel);\r
326                         t.Show();\r
327                         Assert.IsTrue(t.Compare());\r
328                 }\r
329                 [Test]\r
330                 public void DrawImage3() {\r
331                         t.Graphics.DrawImage(bmp, 10.0F, 10.0F, srcF, GraphicsUnit.Pixel);\r
332                         t.Graphics.DrawImage(bmp, 70.0F, 150.0F, 250.0F, 150.0F);\r
333                         t.Show();\r
334                         Assert.IsTrue(t.Compare());\r
335                 }\r
336                 [Test]\r
337                 public void DrawImage4() {\r
338                         t.Graphics.DrawImage(bmp, dst);\r
339                         t.Graphics.DrawImage(bmp, dstF);\r
340                         t.Show();\r
341                         Assert.IsTrue(t.Compare());\r
342                 }\r
343                 [Test]\r
344                 public void DrawImage5() {\r
345                         t.Graphics.SetClip( new Rectangle(70, 0, 20, 200));\r
346                         t.Graphics.DrawImage(bmp, new Point[]{new Point(50,50), new Point(250,30), new Point(100,150)}, src, GraphicsUnit.Pixel );\r
347                         t.Show();\r
348                         Assert.IsTrue(t.Compare());\r
349                 }\r
350                 [Test]\r
351                 public void DrawImage6() {\r
352                         t.Graphics.ScaleTransform(2, 2);\r
353                         t.Graphics.SetClip( new Rectangle(70, 0, 20, 200));\r
354                         t.Graphics.DrawImage(bmp, new Point[]{new Point(50,50), new Point(250,30), new Point(100,150)}, src, GraphicsUnit.Pixel );\r
355                         t.Show();\r
356                         Assert.IsTrue(t.Compare());\r
357                 }\r
358                 [Test]\r
359                 public void DrawImage7() {\r
360                         t.Graphics.DrawImage(bmp, 170, 70, src, GraphicsUnit.Pixel);\r
361                         t.Graphics.DrawImage(bmp, 70, 350, 350, 150);\r
362                         t.Show();\r
363                         Assert.IsTrue(t.Compare());\r
364                 }\r
365                 [Test]\r
366                 public void DrawImage8() {\r
367                         t.Graphics.DrawImage(bmp, new Point[]{new Point(170,10), new Point(250,10), new Point(100,100)} );\r
368                         t.Graphics.DrawImage(bmp, new PointF[]{new PointF(170,100), new PointF(250,100), new PointF(100,190)} );\r
369                         t.Show();\r
370                         Assert.IsTrue(t.Compare());\r
371                 }\r
372                 [Test]\r
373                 public void DrawImage9() {\r
374                         t.Graphics.DrawImage(bmp, 0, 0);\r
375                         t.Graphics.DrawImage(bmp, 200, 200);\r
376                         t.Show();\r
377                         Assert.IsTrue(t.Compare());\r
378                 }\r
379                 [Test]\r
380                 public void DrawImagePageUnit() {\r
381                         t.Graphics.PageUnit = GraphicsUnit.Document;\r
382                         Point [] p = new Point[]{\r
383                                                                                 new Point(100, 100),\r
384                                                                                 new Point(200, 100),\r
385                                                                                 new Point(50, 200)\r
386                                                                         };\r
387 \r
388                         t.Graphics.DrawImage(bmp2, p, new Rectangle(100, 100, 100, 100), GraphicsUnit.Pixel);\r
389                         t.Show();\r
390                         Assert.IsTrue(t.Compare());\r
391                 }\r
392                 [Test]\r
393                 public void DrawImagePageUnit_2() {\r
394                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
395                         t.Graphics.ScaleTransform(0.3f, 0.3f);\r
396                         Point [] p = new Point[]{\r
397                                                                                 new Point(100, 100),\r
398                                                                                 new Point(200, 100),\r
399                                                                                 new Point(50, 200)\r
400                                                                         };\r
401 \r
402                         t.Graphics.DrawImage(bmp2, p, new Rectangle(100, 100, 100, 100), GraphicsUnit.Pixel);\r
403                         t.Show();\r
404                         Assert.IsTrue(t.Compare());\r
405                 }\r
406                 [Test]\r
407                 public void DrawImagePageUnit_3() {\r
408                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
409                         t.Graphics.ScaleTransform(0.3f, 0.3f);\r
410                         t.Graphics.DrawImage(bmp2, new Rectangle(100, 100, 100, 100));\r
411                         t.Show();\r
412                         Assert.IsTrue(t.Compare());\r
413                 }\r
414                 [Test]\r
415                 public void DrawImagePageUnit_4() {\r
416                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
417                         t.Graphics.ScaleTransform(0.5f, 0.5f);\r
418                         t.Graphics.DrawImage(bmp, 50, 50);\r
419                         t.Show();\r
420                         Assert.IsTrue(t.Compare());\r
421                 }\r
422                 [Test]\r
423                 public void DrawImagePageUnitClip() {\r
424                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
425                         t.Graphics.ScaleTransform(0.3f, 0.3f);\r
426                         Point [] p = new Point[]{\r
427                                                                                 new Point(100, 100),\r
428                                                                                 new Point(200, 100),\r
429                                                                                 new Point(50, 200)\r
430                                                                         };\r
431 \r
432                         t.Graphics.SetClip( new Rectangle(120, 120, 50, 100) );\r
433                         t.Graphics.DrawImage(bmp2, p, new Rectangle(100, 100, 100, 100), GraphicsUnit.Pixel);\r
434                         t.Show();\r
435                         Assert.IsTrue(t.Compare());\r
436                 }\r
437                 [Test]\r
438 #if TARGET_JVM\r
439                 [Category("NotWorking")] // defect 6145\r
440 #endif\r
441                 public void DrawImageWithResolution() {\r
442                         t.Graphics.DrawImage(bmp2, 0, 0);\r
443                         t.Show();\r
444                         Assert.IsTrue(t.Compare());\r
445                 }\r
446                 [Test]\r
447                 public void DrawImageInContainer1() {\r
448                         t.Graphics.BeginContainer(new Rectangle(10, 10, 50, 50), new Rectangle(70, 70, 100, 100), GraphicsUnit.Pixel);\r
449                         t.Graphics.DrawImage(bmp, 0, 0);\r
450                         t.Show();\r
451                         Assert.IsTrue(t.Compare());\r
452                 }\r
453                 [Test]\r
454 #if TARGET_JVM\r
455                 [Category ("NotWorking")] // defect 6145\r
456 #endif\r
457                 public void DrawImageInContainer2() {\r
458                         t.Graphics.BeginContainer(new Rectangle(10, 10, 50, 50), new Rectangle(70, 70, 100, 100), GraphicsUnit.Pixel);\r
459                         t.Graphics.DrawImage(bmp2, 0, 0);\r
460                         t.Show();\r
461                         Assert.IsTrue(t.Compare());\r
462                 }\r
463                 [Test]\r
464                 public void DrawImageInContainer3() {\r
465                         t.Graphics.BeginContainer(new Rectangle(10, 10, 50, 50), new Rectangle(70, 70, 100, 100), GraphicsUnit.Pixel);\r
466                         t.Graphics.SetClip( new Rectangle(0, 0, 15, 15) );\r
467                         t.Graphics.ScaleTransform(0.5f, 0.5f);\r
468                         t.Graphics.DrawImage(bmp2, 0, 0);\r
469                         t.Show();\r
470                         Assert.IsTrue(t.Compare());\r
471                 }\r
472                 [Test]\r
473                 public void DrawImageInContainer4() {\r
474                         Point [] p = new Point[]{\r
475                                                                                 new Point(100, 100),\r
476                                                                                 new Point(200, 100),\r
477                                                                                 new Point(50, 200)\r
478                                                                         };\r
479 \r
480                         t.Graphics.SetClip( new Rectangle(70, 70, 70, 70) );\r
481                         GraphicsContainer c = t.Graphics.BeginContainer( new Rectangle(20, 20, 10, 10), new Rectangle(77, 77, 7, 7), GraphicsUnit.Pixel);\r
482                         t.Graphics.DrawImage(bmp2, p, new Rectangle(100, 100, 100, 100), GraphicsUnit.Pixel);\r
483                         t.Graphics.EndContainer( c );\r
484                         t.Show();\r
485                         Assert.IsTrue(t.Compare());\r
486                 }\r
487         }\r
488         #endregion\r
489 \r
490         #region GraphicsFixtureFillModes\r
491         [TestFixture]\r
492         public class GraphicsFixtureFillModes {\r
493                 protected DrawingTest t;\r
494                 protected int TOLERANCE = 3; //in %;\r
495 \r
496                 [SetUp]\r
497                 public virtual void SetUp() {\r
498                         SetUp("GraphicsFixtureFillModes");\r
499                 }\r
500                 public virtual void SetUp(string ownerClass) {\r
501                         t = DrawingTest.Create(512, 512, ownerClass);\r
502                 }\r
503                 [TearDown]\r
504                 public void TearDown() {\r
505                         if (t != null)\r
506                                 t.Dispose ();\r
507                 }\r
508 \r
509                 [Test]\r
510                 public void FillModeAlternate() {\r
511                         GraphicsPath p = new GraphicsPath();\r
512                         Assert.AreEqual(FillMode.Alternate, p.FillMode);\r
513                 }\r
514                 [Test]\r
515                 public void FillModeAlternate_1() {\r
516                         Point [] p = new Point[] {\r
517                                                                                  new Point(50, 100),\r
518                                                                                  new Point(70, 10),\r
519                                                                                  new Point(90, 100),\r
520                                                                                  new Point(140, 10),\r
521                                                                                  new Point(150, 100),\r
522                                                                                  new Point(170, 10),\r
523                                                                                  new Point(50, 100)\r
524                                                                          };\r
525 \r
526                         GraphicsPath path = new GraphicsPath();\r
527                         path.AddLines( p );\r
528                         path.FillMode = FillMode.Alternate;\r
529                         t.Graphics.FillPath( Brushes.Blue, path );\r
530                         t.Show();\r
531                         Assert.IsTrue(t.PDCompare());\r
532                 }\r
533                 [Test]\r
534                 public void FillModeAlternate_2() {\r
535 \r
536                         Rectangle r1 = new Rectangle(100, 100, 100, 100);\r
537                         Rectangle r2 = new Rectangle(125, 125, 50, 50);\r
538                         GraphicsPath path = new GraphicsPath();\r
539                         path.AddRectangle( r1 );\r
540                         path.AddRectangle( r2 );\r
541                         path.FillMode = FillMode.Alternate;\r
542                         t.Graphics.FillPath( Brushes.Blue, path );\r
543                         t.Show();\r
544                         Assert.IsTrue(t.PDCompare());\r
545                 }\r
546                 [Test]\r
547                 public void FillModeAlternate_3() {\r
548                         Point [] p = new Point[] {\r
549                                                                                  new Point(50, 100),\r
550                                                                                  new Point(150, 50),\r
551                                                                                  new Point(250, 100),\r
552                                                                                  new Point(50, 75),\r
553                                                                                  new Point(250, 50),\r
554                                                                                  new Point(50, 100)\r
555                                                                          };\r
556 \r
557                         GraphicsPath path = new GraphicsPath();\r
558                         path.AddLines( p );\r
559                         path.FillMode = FillMode.Alternate;\r
560                         t.Graphics.FillPath( Brushes.Blue, path );\r
561                         t.Show();\r
562                         Assert.IsTrue(t.PDCompare());\r
563                 }\r
564                 [Test]\r
565                 public void FillModeWinding_1() {\r
566                         Point [] p = new Point[] {\r
567                                                                                  new Point(50, 100),\r
568                                                                                  new Point(70, 10),\r
569                                                                                  new Point(90, 100),\r
570                                                                                  new Point(140, 10),\r
571                                                                                  new Point(150, 100),\r
572                                                                                  new Point(170, 10),\r
573                                                                                  new Point(50, 100)\r
574                                                                          };\r
575 \r
576                         GraphicsPath path = new GraphicsPath();\r
577                         path.AddLines( p );\r
578                         path.FillMode = FillMode.Winding;\r
579                         t.Graphics.FillPath( Brushes.Blue, path );\r
580                         t.Show();\r
581                         Assert.IsTrue(t.PDCompare());\r
582                 }\r
583                 [Test]\r
584                 public void FillModeWinding_2() {\r
585 \r
586                         Rectangle r1 = new Rectangle(100, 100, 100, 100);\r
587                         Rectangle r2 = new Rectangle(125, 125, 50, 50);\r
588                         GraphicsPath path = new GraphicsPath();\r
589                         path.AddRectangle( r1 );\r
590                         path.AddRectangle( r2 );\r
591                         path.FillMode = FillMode.Winding;\r
592                         t.Graphics.FillPath( Brushes.Blue, path );\r
593                         t.Show();\r
594                         Assert.IsTrue(t.PDCompare());\r
595                 }\r
596                 [Test]\r
597                 public void FillModeWinding_3() {\r
598                         Point [] p = new Point[] {\r
599                                                                                  new Point(50, 100),\r
600                                                                                  new Point(150, 50),\r
601                                                                                  new Point(250, 100),\r
602                                                                                  new Point(50, 75),\r
603                                                                                  new Point(250, 50),\r
604                                                                                  new Point(50, 100)\r
605                                                                          };\r
606 \r
607                         GraphicsPath path = new GraphicsPath();\r
608                         path.AddLines( p );\r
609                         path.FillMode = FillMode.Winding;\r
610                         t.Graphics.FillPath( Brushes.Blue, path );\r
611                         t.Show();\r
612                         Assert.IsTrue(t.PDCompare());\r
613                 }\r
614 \r
615         }\r
616         #endregion\r
617 \r
618 \r
619         #region GraphicsFixture\r
620         /// <summary>\r
621         /// Summary description for Graphics.\r
622         /// </summary>\r
623         [TestFixture]\r
624         public class GraphicsFixture {\r
625                 protected DrawingTest t;\r
626                 protected int TOLERANCE = 3; //in %;\r
627                 protected Hashtable st = new Hashtable();\r
628 \r
629                 [SetUp]\r
630                 public virtual void SetUp() {\r
631                         SetUp("GraphicsFixture");\r
632                 }\r
633                 public virtual void SetUp(string ownerClass) {\r
634                         t = DrawingTest.Create(512, 512, ownerClass);\r
635 \r
636                         // hashtable of differents tolerance values for specified tests. (for fft comparer)\r
637                         st["DrawArcTest:6"] = TOLERANCE * 2.5f;\r
638                         st["DrawCurveTestF:4"] = TOLERANCE * 2f;\r
639                         st["DrawPolygonPoint:2"] = TOLERANCE * 2f;\r
640                         st["DrawPolygonPointF:2"] = TOLERANCE * 2f;\r
641                         st["DrawStringFloatFormat:2"] = TOLERANCE * 2f; // in .net the font is shmoothed\r
642                         st["DrawStringFloatFormat:4"] = TOLERANCE * 2.5f; // in .net the font is shmoothed\r
643                         st["DrawStringFloatFormat:6"] = TOLERANCE * 2.5f; // in .net the font is shmoothed\r
644                         st["RotateTransformAngleMatrixOrder1:2"] = TOLERANCE * 2f; // Line width problem\r
645                         st["ScaleTransformFloatMatrixOrder:2"] = TOLERANCE * 2f; // Line width problem\r
646                         st["TranslateTransformAngleMatrixOrder:2"] = TOLERANCE * 2f; // Line width problem\r
647                         t.SpecialTolerance = st;\r
648                 }\r
649 \r
650                 [TearDown]\r
651                 public void TearDown ()\r
652                 {\r
653                         if (t != null)\r
654                                 t.Dispose ();\r
655                 }\r
656 \r
657                 [Test]\r
658                 public virtual void BeginContainerTest() {\r
659                         // Define transformation for container.\r
660                         RectangleF srcRect = new RectangleF(0.0F, 0.0F, 200.0F, 200.0F);\r
661                         RectangleF destRect = new RectangleF(100.0F, 100.0F, 150.0F, 150.0F);\r
662                         // Begin graphics container.\r
663                         GraphicsContainer containerState = t.Graphics.BeginContainer(\r
664                                 destRect, srcRect,\r
665                                 GraphicsUnit.Pixel);\r
666                         // Fill red rectangle in container.\r
667                         t.Graphics.FillRectangle(new SolidBrush(Color.Red), 0.0F, 0.0F, 200.0F, 200.0F);\r
668                         t.Show ();\r
669                         // End graphics container.\r
670                         t.Graphics.EndContainer(containerState);\r
671                         // Fill untransformed rectangle with green.\r
672                         t.Graphics.FillRectangle(new SolidBrush(Color.Green), 0.0F, 0.0F, 200.0F, 200.0F);\r
673                         t.Show ();\r
674                         Assert.IsTrue(t.PDCompare());\r
675                 }\r
676 \r
677                 [Test]\r
678                 public void MeasureString () {\r
679                         Bitmap bmp = new Bitmap (400, 300, PixelFormat.Format32bppArgb);\r
680                         Graphics graphics = Graphics.FromImage (bmp);\r
681                         graphics.PageUnit = GraphicsUnit.Point;\r
682 \r
683                         string drawString = "Sample Text in points";\r
684                         Font drawFont = new Font ("Arial Black", 70, FontStyle.Regular);\r
685                         SolidBrush drawBrush = new SolidBrush (Color.Blue);\r
686 \r
687                         float netWidth1 = 836.1719f;\r
688                         float netWidth2 = 1114.896f;\r
689                         float netHeight1 = 98.71094f;\r
690                         float netHeight2 = 131.6146f;\r
691 \r
692                         SizeF size = graphics.MeasureString (drawString, drawFont, new PointF (0, 0), StringFormat.GenericTypographic);\r
693 \r
694                         Assert.IsTrue (Math.Abs (size.Width - netWidth1) / netWidth1 < 0.01);\r
695                         Assert.IsTrue (Math.Abs (size.Height - netHeight1) / netHeight1 < 0.01);\r
696 \r
697                         graphics.PageUnit = GraphicsUnit.Pixel;\r
698                         size = graphics.MeasureString (drawString, drawFont, new PointF (0, 0), StringFormat.GenericTypographic);\r
699 \r
700                         Assert.IsTrue (Math.Abs (size.Width - netWidth2) / netWidth2 < 0.01);\r
701                         Assert.IsTrue (Math.Abs (size.Height - netHeight2) / netHeight2 < 0.01);\r
702                 }\r
703 \r
704                 [Test]\r
705                 public virtual void BeginContainerTest_2() {\r
706                         t.Graphics.DrawRectangle( Pens.Black, new Rectangle(70, 70, 50, 100) );\r
707                         t.Graphics.DrawRectangle( Pens.Black, new Rectangle(50, 100, 150, 50) );\r
708                         t.Graphics.DrawRectangle( Pens.Black, new Rectangle(80, 120, 10, 10) );\r
709 \r
710                         t.Graphics.SetClip( new Rectangle(70, 70, 50, 100) );\r
711                         t.Graphics.Clear( Color.Blue );\r
712 \r
713                         GraphicsContainer c1 = t.Graphics.BeginContainer();\r
714                         t.Graphics.SetClip( new Rectangle(50, 100, 150, 50) );\r
715                         t.Graphics.Clear( Color.Green );\r
716 \r
717                         GraphicsContainer c2 = t.Graphics.BeginContainer();\r
718                         t.Graphics.SetClip( new Rectangle(80, 120, 10, 10) );\r
719                         t.Graphics.Clear( Color.Red );\r
720 \r
721                         t.Graphics.EndContainer( c2 );\r
722                         t.Graphics.FillRectangle( Brushes.Yellow, new Rectangle(100, 120, 10, 10) );\r
723                         t.Graphics.FillRectangle( Brushes.Yellow, new Rectangle(150, 120, 10, 10) );\r
724 \r
725                         t.Graphics.EndContainer( c1 );\r
726                         t.Graphics.FillRectangle( Brushes.Yellow, new Rectangle(100, 80, 10, 10) );\r
727                         t.Graphics.FillRectangle( Brushes.Yellow, new Rectangle(150, 80, 10, 10) );\r
728 \r
729                         t.Show ();\r
730                         Assert.IsTrue(t.PDCompare());\r
731                 }\r
732                 [Test]\r
733                 public virtual void ClearTest() {\r
734                         // Clear screen with teal background.\r
735                         t.Show();\r
736                         Assert.IsTrue(t.PDCompare());\r
737                         t.Graphics.Clear(Color.Teal);\r
738                         t.Show();\r
739                         Assert.IsTrue(t.PDCompare());\r
740                 }\r
741 \r
742                 [Test]\r
743                 public virtual void DrawArcTest() {\r
744                         // Create pen.\r
745                         Pen blackPen= new Pen(Color.Black, 1);\r
746                         // Create coordinates of rectangle to bound ellipse.\r
747                         float x = 10.0F;\r
748                         float y = 10.0F;\r
749                         float width = 400.0F;\r
750                         float height = 100.0F;\r
751                         // Create start and sweep angles on ellipse.\r
752                         float startAngle =  370.0F;\r
753                         float sweepAngle = 70.0F;\r
754                         // Draw arc to screen.\r
755                         t.Graphics.DrawArc(blackPen, (int)x, (int)y, (int)width, (int)height, (int)startAngle, (int)sweepAngle);\r
756                         t.Show();\r
757                         Assert.IsTrue(t.PDCompare());\r
758                         SetUp();\r
759                         startAngle =  10.0F;\r
760                         sweepAngle = 120.0F;\r
761                         t.Graphics.DrawArc(blackPen, new Rectangle((int)x, (int)y, (int)width, (int)height), startAngle, sweepAngle);\r
762                         t.Show();\r
763                         Assert.IsTrue(t.PDCompare());\r
764                         SetUp();\r
765                         startAngle =  10.0F;\r
766                         sweepAngle = 190.0F;\r
767                         t.Graphics.DrawArc(blackPen, x, y, width, height, startAngle, sweepAngle);\r
768                         t.Show();\r
769                         Assert.IsTrue(t.PDCompare());\r
770                         SetUp();\r
771                         startAngle =  10.0F;\r
772                         sweepAngle = 300.0F;\r
773                         t.Graphics.DrawArc(blackPen, new RectangleF(x, y, width, height), startAngle, sweepAngle);\r
774                         t.Show();\r
775                         Assert.IsTrue(t.PDCompare());\r
776                         SetUp();\r
777                         startAngle =  -179.9F;\r
778                         sweepAngle = -359.9F;\r
779                         t.Graphics.DrawArc(blackPen, new RectangleF(x, y, width, height), startAngle, sweepAngle);\r
780                         t.Show();\r
781                         Assert.IsTrue(t.PDCompare());\r
782                         SetUp();\r
783                         startAngle =  -10.0F;\r
784                         sweepAngle = -300.0F;\r
785                         t.Graphics.DrawArc(blackPen, new RectangleF(x, y, width, height), startAngle, sweepAngle);\r
786                         t.Show();\r
787                         Assert.IsTrue(t.PDCompare());\r
788                 }\r
789 \r
790                 [Test]\r
791                 public virtual void DrawBezierTest() {\r
792                         // Create pen.\r
793                         Pen blackPen = new Pen(Color.Black, 3);\r
794                         // Create coordinates of points for curve.\r
795                         float startX = 100.0F;\r
796                         float startY = 100.0F;\r
797                         float controlX1 = 200.0F;\r
798                         float controlY1 =  10.0F;\r
799                         float controlX2 = 350.0F;\r
800                         float controlY2 =  50.0F;\r
801                         float endX = 500.0F;\r
802                         float endY = 100.0F;\r
803                         // Draw arc to screen.\r
804                         t.Graphics.DrawBezier(blackPen, startX, startY,\r
805                                 controlX1, controlY1,\r
806                                 controlX2, controlY2,\r
807                                 endX, endY);\r
808                         t.Show();\r
809                         Assert.IsTrue(t.PDCompare());\r
810                         SetUp();\r
811                         t.Graphics.DrawBezier(blackPen, new PointF( startX, startY),\r
812                                 new PointF(controlX1, controlY1),\r
813                                 new PointF(controlX2, controlY2),\r
814                                 new PointF(endX, endY));\r
815                         t.Show();\r
816                         Assert.IsTrue(t.PDCompare());\r
817                         SetUp();\r
818                         t.Graphics.DrawBezier(blackPen, new Point((int)startX, (int)startY),\r
819                                 new Point((int)controlX1, (int)controlY1),\r
820                                 new Point((int)controlX2, (int)controlY2),\r
821                                 new Point((int)endX, (int)endY));\r
822                         t.Show();\r
823                         Assert.IsTrue(t.PDCompare());\r
824                 }\r
825 \r
826                 [Test]\r
827                 public virtual void DrawBeziersTest() {\r
828                         // Create pen.\r
829                         Pen blackPen = new Pen(Color.Black, 3);\r
830                         // Create points for curve.\r
831                         Point start = new Point(100, 100);\r
832                         Point control1 = new Point(200, 10);\r
833                         Point control2 = new Point(350, 50);\r
834                         Point end1 = new Point(500, 100);\r
835                         Point control3 = new Point(600, 150);\r
836                         Point control4 = new Point(650, 250);\r
837                         Point end2 = new Point(500, 300);\r
838                         Point[] bezierPoints = {\r
839                                                                            start, control1, control2, end1,\r
840                                                                            control3, control4, end2\r
841                                                                    };\r
842                         // Draw arc to screen.\r
843                         t.Graphics.DrawBeziers(blackPen, bezierPoints);\r
844                         t.Show();\r
845                         Assert.IsTrue(t.PDCompare());\r
846                         SetUp();\r
847 \r
848                         PointF startF = new PointF(100.0F, 100.0F);\r
849                         PointF control1F = new PointF(200.0F, 10.0F);\r
850                         PointF control2F = new PointF(350.0F, 50.0F);\r
851                         PointF end1F = new PointF(500.0F, 100.0F);\r
852                         PointF control3F = new PointF(600.0F, 150.0F);\r
853                         PointF control4F = new PointF(650.0F, 250.0F);\r
854                         PointF end2F = new PointF(500.0F, 300.0F);\r
855                         PointF[] bezierPointsF = {\r
856                                                                                  startF, control1F, control2F, end1F,\r
857                                                                                  control3F, control4F, end2F\r
858                                                                          };\r
859                         // Draw arc to screen.\r
860                         t.Graphics.DrawBeziers(blackPen, bezierPointsF);\r
861                         t.Show();\r
862                         Assert.IsTrue(t.PDCompare());\r
863                 }\r
864 \r
865                 [Test]\r
866                 public virtual void DrawClosedCurveTest() {\r
867                         // Create pens.\r
868                         Pen redPen   = new Pen(Color.Red, 3);\r
869                         Pen greenPen = new Pen(Color.Green, 3);\r
870                         // Create points that define curve.\r
871                         PointF point1 = new PointF( 50.0F,  50.0F);\r
872                         PointF point2 = new PointF(100.0F,  25.0F);\r
873                         PointF point3 = new PointF(200.0F,   5.0F);\r
874                         PointF point4 = new PointF(250.0F,  50.0F);\r
875                         PointF point5 = new PointF(300.0F, 100.0F);\r
876                         PointF point6 = new PointF(350.0F, 200.0F);\r
877                         PointF point7 = new PointF(250.0F, 250.0F);\r
878                         PointF[] curvePoints = {\r
879                                                                            point1,\r
880                                                                            point2,\r
881                                                                            point3,\r
882                                                                            point4,\r
883                                                                            point5,\r
884                                                                            point6,\r
885                                                                            point7\r
886                                                                    };\r
887                         // Draw lines between original points to screen.\r
888                         t.Graphics.DrawLines(redPen, curvePoints);\r
889                         // Create tension and fill mode.\r
890                         float tension = 0.7F;\r
891                         FillMode aFillMode = FillMode.Alternate;\r
892                         // Draw closed curve to screen.\r
893                         t.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, aFillMode);\r
894                         t.Show();\r
895                         Assert.IsTrue(t.PDCompare());\r
896                         SetUp();\r
897 \r
898                         aFillMode = FillMode.Winding;\r
899                         // Draw closed curve to screen.\r
900                         t.Graphics.DrawClosedCurve(greenPen, curvePoints, tension, aFillMode);\r
901                         t.Show();\r
902                         Assert.IsTrue(t.PDCompare());\r
903                 }\r
904 \r
905                 [Test]\r
906                 public virtual void DrawCurveTest() {\r
907                         // Create pens.\r
908                         Pen redPen   = new Pen(Color.Red, 3);\r
909                         Pen greenPen = new Pen(Color.Green, 3);\r
910                         // Create points that define curve.\r
911                         Point point1 = new Point( 50,  50);\r
912                         Point point2 = new Point(100,  25);\r
913                         Point point3 = new Point(200,   5);\r
914                         Point point4 = new Point(250,  50);\r
915                         Point point5 = new Point(300, 100);\r
916                         Point point6 = new Point(350, 200);\r
917                         Point point7 = new Point(250, 250);\r
918                         Point[] curvePoints = {\r
919                                                                           point1,\r
920                                                                           point2,\r
921                                                                           point3,\r
922                                                                           point4,\r
923                                                                           point5,\r
924                                                                           point6,\r
925                                                                           point7\r
926                                                                   };\r
927                         // Draw lines between original points to screen.\r
928                         t.Graphics.DrawLines(redPen, curvePoints);\r
929                         // Create offset, number of segments, and tension.\r
930                         int offset = 2;\r
931                         int numSegments = 4;\r
932                         float tension = 0.7F;\r
933                         // Draw curve to screen.\r
934                         t.Graphics.DrawCurve(greenPen, curvePoints, offset, numSegments, tension);\r
935                         t.Show();\r
936                         Assert.IsTrue(t.PDCompare());\r
937                         SetUp();\r
938 \r
939                         t.Graphics.DrawCurve(greenPen, curvePoints, tension);\r
940                         t.Show();\r
941                         Assert.IsTrue(t.PDCompare());\r
942                         SetUp();\r
943 \r
944                         t.Graphics.DrawCurve(greenPen, curvePoints);\r
945                         t.Show();\r
946                         Assert.IsTrue(t.PDCompare());\r
947                 }\r
948 \r
949                 [Test]\r
950                 public virtual void DrawCurveTestF() {\r
951                         // Create pens.\r
952                         Pen redPen   = new Pen(Color.Red, 3);\r
953                         Pen greenPen = new Pen(Color.Green, 3);\r
954                         // Create points that define curve.\r
955                         PointF point1 = new PointF( 50.0F,  50.0F);\r
956                         PointF point2 = new PointF(100.0F,  25.0F);\r
957                         PointF point3 = new PointF(200.0F,   5.0F);\r
958                         PointF point4 = new PointF(250.0F,  50.0F);\r
959                         PointF point5 = new PointF(300.0F, 100.0F);\r
960                         PointF point6 = new PointF(350.0F, 200.0F);\r
961                         PointF point7 = new PointF(250.0F, 250.0F);\r
962                         PointF[] curvePoints = {\r
963                                                                            point1,\r
964                                                                            point2,\r
965                                                                            point3,\r
966                                                                            point4,\r
967                                                                            point5,\r
968                                                                            point6,\r
969                                                                            point7\r
970                                                                    };\r
971                         // Draw lines between original points to screen.\r
972                         t.Graphics.DrawLines(redPen, curvePoints);\r
973                         // Create offset, number of segments, and tension.\r
974                         int offset = 2;\r
975                         int numSegments = 4;\r
976                         float tension = 0.7F;\r
977                         // Draw curve to screen.\r
978                         t.Graphics.DrawCurve(greenPen, curvePoints, offset, numSegments, tension);\r
979                         t.Show();\r
980                         Assert.IsTrue(t.PDCompare());\r
981                         SetUp();\r
982 \r
983                         t.Graphics.DrawCurve(greenPen, curvePoints, offset, numSegments);\r
984                         t.Show();\r
985                         Assert.IsTrue(t.PDCompare());\r
986                         SetUp();\r
987 \r
988                         t.Graphics.DrawCurve(greenPen, curvePoints, tension);\r
989                         t.Show();\r
990                         Assert.IsTrue(t.PDCompare());\r
991                         SetUp();\r
992 \r
993                         t.Graphics.DrawCurve(greenPen, curvePoints);\r
994                         t.Show();\r
995                         Assert.IsTrue(t.PDCompare());\r
996                 }\r
997 \r
998                 [Test]\r
999                 public virtual void DrawEllipseTest() {\r
1000                         // Create pen.\r
1001                         Pen blackPen = new Pen(Color.Black, 3);\r
1002                         // Create location and size of ellipse.\r
1003                         int x = 0;\r
1004                         int y = 0;\r
1005                         int width = 200;\r
1006                         int height = 100;\r
1007                         // Draw ellipse to screen.\r
1008                         t.Graphics.DrawEllipse(blackPen, x, y, width, height);\r
1009                         t.Show();\r
1010                         Assert.IsTrue(t.PDCompare());\r
1011                         SetUp();\r
1012 \r
1013                         t.Graphics.DrawEllipse(blackPen, new Rectangle(x, y, width, height));\r
1014                         t.Show();\r
1015                         Assert.IsTrue(t.PDCompare());\r
1016                 }\r
1017 \r
1018                 [Test]\r
1019                 public virtual void DrawEllipseTestF() {\r
1020                         // Create pen.\r
1021                         Pen blackPen = new Pen(Color.Black, 3);\r
1022                         // Create location and size of ellipse.\r
1023                         float x = 0.0F;\r
1024                         float y = 0.0F;\r
1025                         float width = 200.0F;\r
1026                         float height = 100.0F;\r
1027                         // Draw ellipse to screen.\r
1028                         t.Graphics.DrawEllipse(blackPen, x, y, width, height);\r
1029                         t.Show();\r
1030                         Assert.IsTrue(t.PDCompare());\r
1031                         SetUp();\r
1032 \r
1033                         t.Graphics.DrawEllipse(blackPen, new RectangleF(x, y, width, height));\r
1034                         t.Show();\r
1035                         Assert.IsTrue(t.PDCompare());\r
1036                 }\r
1037 \r
1038                 static string getInFile (string file) {\r
1039                         string sRslt;                                           \r
1040                         \r
1041                         sRslt = Path.GetFullPath (file);\r
1042                         \r
1043                         if (! File.Exists (file))\r
1044                                 sRslt = Path.Combine (\r
1045                                         Path.Combine ("..", ".."),\r
1046                                         file);\r
1047 \r
1048                         return sRslt;\r
1049                 }\r
1050 \r
1051                 [Test]\r
1052                 [Category("NotWorking")]\r
1053                 public virtual void DrawIconTest() {\r
1054                         // Create icon.\r
1055                         Icon newIcon = new Icon(getInFile ("SampIcon.ico"));\r
1056                         // Create coordinates for upper-left corner of icon.\r
1057                         int x = 100;\r
1058                         int y = 100;\r
1059                         // Draw icon to screen.\r
1060                         t.Graphics.DrawIcon(newIcon, x, y);\r
1061                         t.Show();\r
1062                         Assert.IsTrue(t.PDCompare());\r
1063 \r
1064                         t.Graphics.DrawIcon(newIcon, new Rectangle(200, 300, 125, 345));\r
1065                         t.Show();\r
1066                         Assert.IsTrue(t.PDCompare());\r
1067                 }\r
1068 \r
1069                 [Test]\r
1070                 [Category("NotWorking")]\r
1071                 public virtual void DrawIconUnstretchedTest() {\r
1072                         // Create icon.\r
1073                         Icon newIcon = new Icon(getInFile ("SampIcon.ico"));\r
1074                         // Create rectangle for icon.\r
1075                         Rectangle rect = new Rectangle( 100, 100, 200, 200);\r
1076                         // Draw icon to screen.\r
1077                         t.Graphics.DrawIconUnstretched(newIcon, rect);\r
1078                         t.Show();\r
1079                         Assert.IsTrue(t.PDCompare());\r
1080                 }\r
1081 #if INTPTR_SUPPORTED\r
1082                 // Define DrawImageAbort callback method.\r
1083                 private bool DrawImageCallback(IntPtr callBackData) {\r
1084                         // Test for call that passes callBackData parameter.\r
1085                         if(callBackData==IntPtr.Zero) {\r
1086                                 // If no callBackData passed, abort DrawImage method.\r
1087                                 return true;\r
1088                         }\r
1089                         else {\r
1090                                 // If callBackData passed, continue DrawImage method.\r
1091                                 return false;\r
1092                         }\r
1093                 }\r
1094                 \r
1095                 [Test] //TBD: add more overrides\r
1096                 public void DrawImageTest() {\r
1097                         // Create callback method.\r
1098                         Graphics.DrawImageAbort imageCallback\r
1099                                 = new Graphics.DrawImageAbort(DrawImageCallback);\r
1100                         IntPtr imageCallbackData = new IntPtr(1);\r
1101                         // Create image.\r
1102                         Image newImage = Image.FromFile("SampIcon.ico");\r
1103                         // Create rectangle for displaying original image.\r
1104                         Rectangle destRect1 = new Rectangle( 100, 25, 450, 150);\r
1105                         // Create coordinates of rectangle for source image.\r
1106                         float x = 50.0F;\r
1107                         float y = 50.0F;\r
1108                         float width = 150.0F;\r
1109                         float height = 150.0F;\r
1110                         GraphicsUnit units = GraphicsUnit.Pixel;\r
1111                         // Draw original image to screen.\r
1112                         t.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);\r
1113                         t.Show();\r
1114                         // Create rectangle for adjusted image.\r
1115                         Rectangle destRect2 = new Rectangle(100, 175, 450, 150);\r
1116                         // Create image attributes and set large gamma.\r
1117                         ImageAttributes imageAttr = new ImageAttributes();\r
1118                         imageAttr.SetGamma(4.0F);\r
1119                         // Draw adjusted image to screen.\r
1120 \r
1121                         t.Graphics.DrawImage(\r
1122                                 newImage,\r
1123                                 destRect2,\r
1124                                 x, y,\r
1125                                 width, height,\r
1126                                 units,\r
1127                                 imageAttr,\r
1128                                 imageCallback,\r
1129                                 imageCallbackData);\r
1130 \r
1131                         t.Show();\r
1132                 }\r
1133 #endif\r
1134                 [Test]\r
1135                 [Category("NotWorking")]\r
1136                 public virtual void DrawImageUnscaledTest() {\r
1137                         // Create image.\r
1138                         Image newImage = Bitmap.FromFile(getInFile ("bitmap_gh.png"));\r
1139                         // Create coordinates for upper-left corner of image.\r
1140                         int x = 100;\r
1141                         int y = 100;\r
1142                         // Draw image to screen.\r
1143                         t.Graphics.DrawImageUnscaled(newImage, x, y, 100, 125);\r
1144                         t.Show();\r
1145                         Assert.IsTrue(t.PDCompare());\r
1146                         SetUp();\r
1147 \r
1148                         t.Graphics.DrawImageUnscaled(newImage, new Rectangle(x, y, 34, 235));\r
1149                         t.Show();\r
1150                         Assert.IsTrue(t.PDCompare());\r
1151                         SetUp();\r
1152 \r
1153                         t.Graphics.DrawImageUnscaled(newImage, x, y);\r
1154                         t.Show();\r
1155                         Assert.IsTrue(t.PDCompare());\r
1156                         SetUp();\r
1157 \r
1158                         t.Graphics.DrawImageUnscaled(newImage, new Point(x, y));\r
1159                         t.Show();\r
1160                         Assert.IsTrue(t.PDCompare());\r
1161                 }\r
1162 \r
1163                 [Test]\r
1164                 public virtual void DrawLineTest() {\r
1165                         // Create pen.\r
1166                         Pen blackPen = new Pen(Color.Black, 3);\r
1167                         // Create coordinates of points that define line.\r
1168                         int x1 = 100;\r
1169                         int y1 = 100;\r
1170                         int x2 = 500;\r
1171                         int y2 = 100;\r
1172                         // Draw line to screen.\r
1173                         t.Graphics.DrawLine(blackPen, x1, y1, x2, y2);\r
1174                         t.Show();\r
1175                         Assert.IsTrue(t.PDCompare());\r
1176                         SetUp();\r
1177 \r
1178                         t.Graphics.DrawLine(blackPen, new Point( x1, y1), new Point( x2, y2));\r
1179                         t.Show();\r
1180                         Assert.IsTrue(t.PDCompare());\r
1181                 }\r
1182 \r
1183                 [Test]\r
1184                 public virtual void DrawLineTestF() {\r
1185                         // Create pen.\r
1186                         Pen blackPen = new Pen(Color.Black, 3);\r
1187                         // Create coordinates of points that define line.\r
1188                         float x1 = 100.0F;\r
1189                         float y1 = 100.0F;\r
1190                         float x2 = 500.0F;\r
1191                         float y2 = 100.0F;\r
1192                         // Draw line to screen.\r
1193                         t.Graphics.DrawLine(blackPen, x1, y1, x2, y2);\r
1194                         t.Show();\r
1195                         Assert.IsTrue(t.PDCompare());\r
1196                         SetUp();\r
1197 \r
1198                         t.Graphics.DrawLine(blackPen, new PointF( x1, y1), new PointF( x2, y2));\r
1199                         t.Show();\r
1200                         Assert.IsTrue(t.PDCompare());\r
1201                 }\r
1202 \r
1203                 [Test]\r
1204                 public virtual void DrawLinesTest() {\r
1205                         // Create pen.\r
1206                         Pen pen = new Pen(Color.Black, 3);\r
1207                         // Create array of points that define lines to draw.\r
1208                         Point[] points = {\r
1209                                                                  new Point( 10,  10),\r
1210                                                                  new Point( 10, 100),\r
1211                                                                  new Point(200,  50),\r
1212                                                                  new Point(250, 300)\r
1213                                                          };\r
1214                         //Draw lines to screen.\r
1215                         t.Graphics.DrawLines(pen, points);\r
1216                         t.Show();\r
1217                         Assert.IsTrue(t.PDCompare());\r
1218                 }\r
1219 \r
1220                 [Test]\r
1221                 public virtual void DrawLinesTestF() {\r
1222                         // Create pen.\r
1223                         Pen pen = new Pen(Color.Black, 3);\r
1224                         // Create array of points that define lines to draw.\r
1225                         PointF[] points = {\r
1226                                                                   new PointF( 10.0F,  10.0F),\r
1227                                                                   new PointF( 10.0F, 100.0F),\r
1228                                                                   new PointF(200.0F,  50.0F),\r
1229                                                                   new PointF(250.0F, 300.0F)\r
1230                                                           };\r
1231                         //Draw lines to screen.\r
1232                         t.Graphics.DrawLines(pen, points);\r
1233                         t.Show();\r
1234                         Assert.IsTrue(t.PDCompare());\r
1235                 }\r
1236 \r
1237                 [Test]\r
1238                 public virtual void DrawPathTest() {\r
1239                         // Create graphics path object and add ellipse.\r
1240                         GraphicsPath graphPath = new GraphicsPath();\r
1241                         graphPath.AddEllipse(0, 0, 200, 100);\r
1242                         // Create pen.\r
1243                         Pen blackPen = new Pen(Color.Black, 3);\r
1244                         // Draw graphics path to screen.\r
1245                         t.Graphics.DrawPath(blackPen, graphPath);\r
1246                         t.Show();\r
1247                         Assert.IsTrue(t.PDCompare());\r
1248                 }\r
1249 \r
1250                 [Test]\r
1251                 public virtual void DrawPieTestF() {\r
1252                         // Create pen.\r
1253                         Pen blackPen = new Pen(Color.Black, 3);\r
1254                         // Create location and size of ellipse.\r
1255                         float x = 0.0F;\r
1256                         float y = 0.0F;\r
1257                         float width = 200.0F;\r
1258                         float height = 100.0F;\r
1259                         // Create start and sweep angles.\r
1260                         float startAngle =  0.0F;\r
1261                         float sweepAngle = 45.0F;\r
1262                         // Draw pie to screen.\r
1263                         t.Graphics.DrawPie(blackPen, x, y, width, height, startAngle, sweepAngle);\r
1264                         t.Show();\r
1265                         Assert.IsTrue(t.PDCompare());\r
1266                         SetUp();\r
1267 \r
1268                         t.Graphics.DrawPie(blackPen, new RectangleF( x, y, width, height), startAngle, sweepAngle);\r
1269                         t.Show();\r
1270                         Assert.IsTrue(t.PDCompare());\r
1271                 }\r
1272 \r
1273                 [Test]\r
1274                 public virtual void DrawPieTest() {\r
1275                         // Create pen.\r
1276                         Pen blackPen = new Pen(Color.Black, 3);\r
1277                         // Create location and size of ellipse.\r
1278                         int x = 0;\r
1279                         int y = 0;\r
1280                         int width = 200;\r
1281                         int height = 100;\r
1282                         // Create start and sweep angles.\r
1283                         int startAngle =  0;\r
1284                         int sweepAngle = 45;\r
1285                         // Draw pie to screen.\r
1286                         t.Graphics.DrawPie(blackPen, x, y, width, height, startAngle, sweepAngle);\r
1287                         t.Show();\r
1288                         Assert.IsTrue(t.PDCompare());\r
1289                         SetUp();\r
1290 \r
1291                         t.Graphics.DrawPie(blackPen, new Rectangle( x, y, width, height), startAngle, sweepAngle);\r
1292                         t.Show();\r
1293                         Assert.IsTrue(t.PDCompare());\r
1294                 }\r
1295 \r
1296                 [Test]\r
1297                 public virtual void DrawPolygonPoint() {\r
1298                         // Create pen.\r
1299                         Pen blackPen = new Pen(Color.Black, 3);\r
1300                         // Create points that define polygon.\r
1301                         Point point1 = new Point( 50,  50);\r
1302                         Point point2 = new Point(100,  25);\r
1303                         Point point3 = new Point(200,   5);\r
1304                         Point point4 = new Point(250,  50);\r
1305                         Point point5 = new Point(300, 100);\r
1306                         Point point6 = new Point(350, 200);\r
1307                         Point point7 = new Point(250, 250);\r
1308                         Point[] curvePoints = {\r
1309                                                                           point1,\r
1310                                                                           point2,\r
1311                                                                           point3,\r
1312                                                                           point4,\r
1313                                                                           point5,\r
1314                                                                           point6,\r
1315                                                                           point7\r
1316                                                                   };\r
1317                         // Draw polygon to screen.\r
1318                         t.Graphics.DrawPolygon(blackPen, curvePoints);\r
1319                         t.Show();\r
1320                         Assert.IsTrue(t.PDCompare()); // .NET's lines of polygon is more wide\r
1321                 }\r
1322 \r
1323                 [Test]\r
1324                 public virtual void DrawPolygonPointF() {\r
1325                         // Create pen.\r
1326                         Pen blackPen = new Pen(Color.Black, 3);\r
1327                         // Create points that define polygon.\r
1328                         PointF point1 = new PointF( 50,  50);\r
1329                         PointF point2 = new PointF(100,  25);\r
1330                         PointF point3 = new PointF(200,   5);\r
1331                         PointF point4 = new PointF(250,  50);\r
1332                         PointF point5 = new PointF(300, 100);\r
1333                         PointF point6 = new PointF(350, 200);\r
1334                         PointF point7 = new PointF(250, 250);\r
1335                         PointF[] curvePoints = {\r
1336                                                                            point1,\r
1337                                                                            point2,\r
1338                                                                            point3,\r
1339                                                                            point4,\r
1340                                                                            point5,\r
1341                                                                            point6,\r
1342                                                                            point7\r
1343                                                                    };\r
1344                         // Draw polygon to screen.\r
1345                         t.Graphics.DrawPolygon(blackPen, curvePoints);\r
1346                         t.Show();\r
1347                         Assert.IsTrue(t.PDCompare());\r
1348                 }\r
1349 \r
1350                 [Test]\r
1351                 public virtual void DrawRectangleFloat() {\r
1352                         // Create pen.\r
1353                         Pen blackPen = new Pen(Color.Black, 3);\r
1354                         // Create location and size of rectangle.\r
1355                         float x = 7.0F;\r
1356                         float y = 7.0F;\r
1357                         float width = 200.0F;\r
1358                         float height = 200.0F;\r
1359                         // Draw rectangle to screen.\r
1360                         t.Graphics.DrawRectangle(blackPen, x, y, width, height);\r
1361                         t.Show();\r
1362                         Assert.IsTrue(t.PDCompare());\r
1363                         SetUp();\r
1364 \r
1365                         t.Graphics.DrawRectangle(blackPen, (int)x, (int)y, (int)width, (int)height);\r
1366                         t.Show();\r
1367                         Assert.IsTrue(t.PDCompare());\r
1368                         SetUp();\r
1369 \r
1370                         t.Graphics.DrawRectangle(blackPen, new Rectangle( (int)x, (int)y, (int)width, (int)height));\r
1371                         t.Show();\r
1372                         Assert.IsTrue(t.PDCompare());\r
1373                 }\r
1374 \r
1375                 [Test]\r
1376                 public virtual void DrawRectanglesRectangleF() {\r
1377                         // Create pen.\r
1378                         Pen blackPen = new Pen(Color.Black, 3);\r
1379                         // Create array of rectangles.\r
1380                         RectangleF[] rects = {\r
1381                                                                          new RectangleF(  20.0F,   20.0F, 100.0F, 200.0F),\r
1382                                                                          new RectangleF(100.0F, 200.0F, 250.0F,  50.0F),\r
1383                                                                          new RectangleF(300.0F,   20.0F,  50.0F, 100.0F)\r
1384                                                                  };\r
1385                         // Draw rectangles to screen.\r
1386                         t.Graphics.DrawRectangles(blackPen, rects);\r
1387                         t.Show();\r
1388                         Assert.IsTrue(t.PDCompare());\r
1389                 }\r
1390 \r
1391                 [Test]\r
1392                 public virtual void DrawRectanglesRectangle() {\r
1393                         // Create pen.\r
1394                         Pen blackPen = new Pen(Color.Black, 3);\r
1395                         // Create array of rectangles.\r
1396                         Rectangle[] rects = {\r
1397                                                                         new Rectangle(  20,   20, 100, 200),\r
1398                                                                         new Rectangle(100, 200, 250,  50),\r
1399                                                                         new Rectangle(300,   20,  50, 100)\r
1400                                                                 };\r
1401                         // Draw rectangles to screen.\r
1402                         t.Graphics.DrawRectangles(blackPen, rects);\r
1403                         t.Show();\r
1404                         Assert.IsTrue(t.PDCompare());\r
1405                 }\r
1406 \r
1407                 [Test] //TBD: add more combinations\r
1408                 [Category("NotWorking")]\r
1409                 public virtual void DrawStringFloatFormat() {\r
1410                         // Create string to draw.\r
1411                         String drawString = "Sample Text";\r
1412                         // Create font and brush.\r
1413                         Font drawFont = new Font("Arial", 34, FontStyle.Italic);\r
1414                         SolidBrush drawBrush = new SolidBrush(Color.Black);\r
1415                         // Create point for upper-left corner of drawing.\r
1416                         float x = 150.0F;\r
1417                         float y =  50.0F;\r
1418                         // Set format of string.\r
1419                         StringFormat drawFormat = new StringFormat();\r
1420                         drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;\r
1421                         // Draw string to screen.\r
1422                         t.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);\r
1423                         t.Show();\r
1424                         Assert.IsTrue(t.PDCompare()); // in .net the font is shmoothed\r
1425                         SetUp();\r
1426 \r
1427                         drawFormat.FormatFlags = StringFormatFlags.NoClip;\r
1428                         // Draw string to screen.\r
1429                         t.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);\r
1430                         t.Show();\r
1431                         Assert.IsTrue(t.PDCompare());\r
1432                         SetUp();\r
1433 \r
1434                         drawFormat.FormatFlags = StringFormatFlags.FitBlackBox;\r
1435                         // Draw string to screen.\r
1436                         t.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);\r
1437                         t.Show();\r
1438                         Assert.IsTrue(t.PDCompare());\r
1439                 }\r
1440 \r
1441                 [Test]\r
1442                 public virtual void EndContainerState() {\r
1443                         // Begin graphics container.\r
1444                         GraphicsContainer containerState = t.Graphics.BeginContainer();\r
1445                         // Translate world transformation.\r
1446                         t.Graphics.TranslateTransform(100.0F, 100.0F);\r
1447                         // Fill translated rectangle in container with red.\r
1448                         t.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 200, 200);\r
1449                         t.Show();\r
1450                         // End graphics container.\r
1451                         t.Graphics.EndContainer(containerState);\r
1452                         // Fill untransformed rectangle with green.\r
1453                         t.Graphics.FillRectangle(new SolidBrush(Color.Green), 0, 0, 200, 200);\r
1454                         t.Show();\r
1455                         Assert.IsTrue(t.PDCompare());\r
1456                 }\r
1457 \r
1458                 [Test] //TBD\r
1459                 public virtual void EnumerateMetafile() {\r
1460                 }\r
1461 \r
1462                 [Test]\r
1463                 public virtual void ExcludeClipRegion() {\r
1464                         // Create rectangle for exclusion.\r
1465                         Rectangle excludeRect = new Rectangle(100, 100, 200, 200);\r
1466                         // Set clipping region to exclude rectangle.\r
1467                         t.Graphics.ExcludeClip(excludeRect);\r
1468                         // Fill large rectangle to show clipping region.\r
1469                         t.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 300, 300);\r
1470                         t.Show();\r
1471                         Assert.IsTrue(t.PDCompare());\r
1472                 }\r
1473 \r
1474                 [Test]\r
1475                 public virtual void FillClosedCurvePointFillModeTension() {\r
1476                         // Create solid brush.\r
1477                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1478                         // Create array of points for curve.\r
1479                         Point point1 = new Point(100, 100);\r
1480                         Point point2 = new Point(200,  50);\r
1481                         Point point3 = new Point(250, 200);\r
1482                         Point point4 = new Point( 50, 150);\r
1483                         Point[] points = {point1, point2, point3, point4};\r
1484                         // Set fill mode.\r
1485                         FillMode newFillMode = FillMode.Winding;\r
1486                         // Set tension.\r
1487                         float tension = 0.68F;\r
1488                         // Fill curve on screen.\r
1489                         t.Graphics.FillClosedCurve(redBrush, points);\r
1490                         t.Show();\r
1491                         Assert.IsTrue(t.PDCompare());\r
1492 \r
1493                         SetUp();\r
1494                         t.Graphics.FillClosedCurve(redBrush, points, newFillMode);\r
1495                         t.Show();\r
1496                         Assert.IsTrue(t.PDCompare());\r
1497 \r
1498                         SetUp();\r
1499                         newFillMode = FillMode.Alternate;\r
1500                         t.Graphics.FillClosedCurve(redBrush, points, newFillMode, tension);\r
1501                         t.Show();\r
1502                         Assert.IsTrue(t.PDCompare());\r
1503                 }\r
1504 \r
1505                 [Test]\r
1506                 public virtual void FillClosedCurvePointFFillModeTension() {\r
1507                         // Create solid brush.\r
1508                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1509                         // Create array of points for curve.\r
1510                         PointF point1 = new PointF(100.0F, 100.0F);\r
1511                         PointF point2 = new PointF(200.0F,  50.0F);\r
1512                         PointF point3 = new PointF(250.0F, 200.0F);\r
1513                         PointF point4 = new PointF( 50.0F, 150.0F);\r
1514                         PointF[] points = {point1, point2, point3, point4};\r
1515                         // Set fill mode.\r
1516                         FillMode newFillMode = FillMode.Winding;\r
1517                         // Set tension.\r
1518                         float tension = 0.68F;\r
1519                         // Fill curve on screen.\r
1520                         t.Graphics.FillClosedCurve(redBrush, points);\r
1521                         t.Show();\r
1522                         Assert.IsTrue(t.PDCompare());\r
1523                         SetUp();\r
1524 \r
1525                         t.Graphics.FillClosedCurve(redBrush, points, newFillMode);\r
1526                         t.Show();\r
1527                         Assert.IsTrue(t.PDCompare());\r
1528                         SetUp();\r
1529 \r
1530                         newFillMode = FillMode.Alternate;\r
1531                         t.Graphics.FillClosedCurve(redBrush, points, newFillMode, tension);\r
1532                         t.Show();\r
1533                         Assert.IsTrue(t.PDCompare());\r
1534                 }\r
1535 \r
1536                 [Test]\r
1537                 public virtual void FillEllipse() {\r
1538                         // Create solid brush.\r
1539                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1540                         // Create location and size of ellipse.\r
1541                         int x = 0;\r
1542                         int y = 0;\r
1543                         int width = 200;\r
1544                         int height = 100;\r
1545                         // Fill ellipse on screen.\r
1546                         t.Graphics.FillEllipse(redBrush, x, y, width, height);\r
1547                         t.Show();\r
1548                         Assert.IsTrue(t.PDCompare());\r
1549                         SetUp();\r
1550 \r
1551                         t.Graphics.FillEllipse(redBrush, new Rectangle( x, y, width, height));\r
1552                         t.Show();\r
1553                         Assert.IsTrue(t.PDCompare());\r
1554                 }\r
1555 \r
1556                 [Test]\r
1557                 public virtual void FillEllipseFloat() {\r
1558                         // Create solid brush.\r
1559                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1560                         // Create location and size of ellipse.\r
1561                         float x = 0.0F;\r
1562                         float y = 0.0F;\r
1563                         float width = 200.0F;\r
1564                         float height = 100.0F;\r
1565                         // Fill ellipse on screen.\r
1566                         t.Graphics.FillEllipse(redBrush, x, y, width, height);\r
1567                         t.Show();\r
1568                         Assert.IsTrue(t.PDCompare());\r
1569                         SetUp();\r
1570 \r
1571                         t.Graphics.FillEllipse(redBrush, new RectangleF( x, y, width, height));\r
1572                         t.Show();\r
1573                         Assert.IsTrue(t.PDCompare());\r
1574                 }\r
1575 \r
1576                 [Test]\r
1577                 public virtual void FillPathEllipse() {\r
1578                         // Create solid brush.\r
1579                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1580                         // Create graphics path object and add ellipse.\r
1581                         GraphicsPath graphPath = new GraphicsPath();\r
1582                         graphPath.AddEllipse(0, 0, 200, 100);\r
1583                         // Fill graphics path to screen.\r
1584                         t.Graphics.FillPath(redBrush, graphPath);\r
1585                         t.Show();\r
1586                         Assert.IsTrue(t.PDCompare());\r
1587                 }\r
1588 \r
1589                 [Test]\r
1590                 public virtual void FillPieFloat() {\r
1591                         // Create solid brush.\r
1592                         SolidBrush redBrush = new SolidBrush(Color.Red);\r
1593                         // Create location and size of ellipse.\r
1594                         int x = 0;\r
1595                         int y = 0;\r
1596                         int width = 200;\r
1597                         int height = 100;\r
1598                         // Create start and sweep angles.\r
1599                         float startAngle =  0.0F;\r
1600                         float sweepAngle = 45.0F;\r
1601                         // Fill pie to screen.\r
1602                         t.Graphics.FillPie(redBrush, new Rectangle(x, y, width, height), startAngle, sweepAngle);\r
1603                         t.Show();\r
1604                         Assert.IsTrue(t.PDCompare());\r
1605                         SetUp();\r
1606 \r
1607                         t.Graphics.FillPie(redBrush, x, y, width, height, (int)startAngle, (int)sweepAngle);\r
1608                         t.Show();\r
1609                         Assert.IsTrue(t.PDCompare());\r
1610                         SetUp();\r
1611 \r
1612                         t.Graphics.FillPie(redBrush, (float)x, (float)y, (float)width, (float)height, startAngle, sweepAngle);\r
1613                         t.Show();\r
1614                         Assert.IsTrue(t.PDCompare());\r
1615                 }\r
1616 \r
1617                 [Test]\r
1618                 public virtual void FillPolygonPointFillMode() {\r
1619                         // Create solid brush.\r
1620                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1621                         // Create points that define polygon.\r
1622                         Point point1 = new Point( 50,  50);\r
1623                         Point point2 = new Point(100,  25);\r
1624                         Point point3 = new Point(200,   5);\r
1625                         Point point4 = new Point(250,  50);\r
1626                         Point point5 = new Point(300, 100);\r
1627                         Point point6 = new Point(350, 200);\r
1628                         Point point7 = new Point(250, 250);\r
1629                         Point[] curvePoints = {\r
1630                                                                           point1,\r
1631                                                                           point2,\r
1632                                                                           point3,\r
1633                                                                           point4,\r
1634                                                                           point5,\r
1635                                                                           point6,\r
1636                                                                           point7\r
1637                                                                   };\r
1638 \r
1639                         // Fill polygon to screen.\r
1640                         t.Graphics.FillPolygon(blueBrush, curvePoints, FillMode.Winding);\r
1641                         t.Show();\r
1642                         Assert.IsTrue(t.PDCompare());\r
1643                         SetUp();\r
1644 \r
1645                         t.Graphics.FillPolygon(blueBrush, curvePoints, FillMode.Alternate);\r
1646                         t.Show();\r
1647                         Assert.IsTrue(t.PDCompare());\r
1648                         SetUp();\r
1649 \r
1650                         t.Graphics.FillPolygon(blueBrush, curvePoints);\r
1651                         t.Show();\r
1652                         Assert.IsTrue(t.PDCompare());\r
1653                 }\r
1654 \r
1655                 [Test]\r
1656                 public virtual void FillPolygonPointFFillMode() {\r
1657                         // Create solid brush.\r
1658                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1659                         // Create points that define polygon.\r
1660                         PointF point1 = new PointF( 50.0F,  50.0F);\r
1661                         PointF point2 = new PointF(100.0F,  25.0F);\r
1662                         PointF point3 = new PointF(200.0F,   5.0F);\r
1663                         PointF point4 = new PointF(250.0F,  50.0F);\r
1664                         PointF point5 = new PointF(300.0F, 100.0F);\r
1665                         PointF point6 = new PointF(350.0F, 200.0F);\r
1666                         PointF point7 = new PointF(250.0F, 250.0F);\r
1667                         PointF[] curvePoints = {\r
1668                                                                            point1,\r
1669                                                                            point2,\r
1670                                                                            point3,\r
1671                                                                            point4,\r
1672                                                                            point5,\r
1673                                                                            point6,\r
1674                                                                            point7\r
1675                                                                    };\r
1676 \r
1677                         // Fill polygon to screen.\r
1678                         t.Graphics.FillPolygon(blueBrush, curvePoints, FillMode.Winding);\r
1679                         t.Show();\r
1680                         Assert.IsTrue(t.PDCompare());\r
1681                         SetUp();\r
1682 \r
1683                         t.Graphics.FillPolygon(blueBrush, curvePoints, FillMode.Alternate);\r
1684                         t.Show();\r
1685                         Assert.IsTrue(t.PDCompare());\r
1686                         SetUp();\r
1687 \r
1688                         t.Graphics.FillPolygon(blueBrush, curvePoints);\r
1689                         t.Show();\r
1690                         Assert.IsTrue(t.PDCompare());\r
1691                 }\r
1692 \r
1693                 [Test]\r
1694                 public virtual void FillRectangle() {\r
1695                         // Create solid brush.\r
1696                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1697                         // Create location and size of rectangle.\r
1698                         int x = 0;\r
1699                         int y = 0;\r
1700                         int width = 300;\r
1701                         int height = 200;\r
1702                         // Fill rectangle to screen.\r
1703                         t.Graphics.FillRectangle(blueBrush, x, y, width, height);\r
1704                         t.Show();\r
1705                         Assert.IsTrue(t.PDCompare());\r
1706                         SetUp();\r
1707 \r
1708                         t.Graphics.FillRectangle(blueBrush, new Rectangle( x, y, width, height));\r
1709                         t.Show();\r
1710                         Assert.IsTrue(t.PDCompare());\r
1711                 }\r
1712 \r
1713                 [Test]\r
1714                 public virtual void FillRectangleFloat() {\r
1715                         // Create solid brush.\r
1716                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1717                         // Create location and size of rectangle.\r
1718                         float x = 0.0F;\r
1719                         float y = 0.0F;\r
1720                         float width = 300.0F;\r
1721                         float height = 200.0F;\r
1722                         // Fill rectangle to screen.\r
1723                         t.Graphics.FillRectangle(blueBrush, x, y, width, height);\r
1724                         t.Show();\r
1725                         Assert.IsTrue(t.PDCompare());\r
1726                         SetUp();\r
1727 \r
1728                         t.Graphics.FillRectangle(blueBrush, new RectangleF( x, y, width, height));\r
1729                         t.Show();\r
1730                         Assert.IsTrue(t.PDCompare());\r
1731                 }\r
1732 \r
1733                 [Test]\r
1734                 public virtual void FillRectanglesRectangle() {\r
1735                         // Create solid brush.\r
1736                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1737                         // Create array of rectangles.\r
1738                         Rectangle[] rects = {\r
1739                                                                         new Rectangle(  0,   0, 100, 200),\r
1740                                                                         new Rectangle(100, 200, 250,  50),\r
1741                                                                         new Rectangle(300,   0,  50, 100)\r
1742                                                                 };\r
1743                         // Fill rectangles to screen.\r
1744                         t.Graphics.FillRectangles(blueBrush, rects);\r
1745                         t.Show();\r
1746                         Assert.IsTrue(t.PDCompare());\r
1747                 }\r
1748 \r
1749                 [Test]\r
1750                 public virtual void FillRectanglesRectangleF() {\r
1751                         // Create solid brush.\r
1752                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1753                         // Create array of rectangles.\r
1754                         RectangleF[] rects = {\r
1755                                                                          new RectangleF(  0.0F,   0.0F, 100.0F, 200.0F),\r
1756                                                                          new RectangleF(100.0F, 200.0F, 250.0F,  50.0F),\r
1757                                                                          new RectangleF(300.0F,   0.0F,  50.0F, 100.0F)\r
1758                                                                  };\r
1759                         // Fill rectangles to screen.\r
1760                         t.Graphics.FillRectangles(blueBrush, rects);\r
1761                         t.Show();\r
1762                         Assert.IsTrue(t.PDCompare());\r
1763                 }\r
1764 \r
1765                 [Test]\r
1766                 public virtual void FillRegionRectangle() {\r
1767                         // Create solid brush.\r
1768                         SolidBrush blueBrush = new SolidBrush(Color.Blue);\r
1769                         // Create rectangle for region.\r
1770                         Rectangle fillRect = new Rectangle(100, 150, 200, 250);\r
1771                         // Create region for fill.\r
1772                         Region fillRegion = new Region(fillRect);\r
1773                         // Fill region to screen.\r
1774                         t.Graphics.FillRegion(blueBrush, fillRegion);\r
1775                         t.Show();\r
1776                         Assert.IsTrue(t.PDCompare());\r
1777                 }\r
1778 \r
1779                 [Test]\r
1780                 public virtual void FlushTest() {\r
1781                         t.Graphics.Flush();\r
1782                         t.Graphics.Flush(FlushIntention.Flush);\r
1783                 }\r
1784 \r
1785                 [Test]\r
1786                 public virtual void IntersectClipRegion() {\r
1787                         // Set clipping region.\r
1788                         Rectangle clipRect = new Rectangle(0, 0, 200, 300);\r
1789                         Region clipRegion = new Region(clipRect);\r
1790                         t.Graphics.SetClip(clipRegion, CombineMode.Replace);\r
1791                         // Update clipping region to intersection of\r
1792                         //  existing region with specified rectangle.\r
1793                         Rectangle intersectRect = new Rectangle(100, 100, 200, 300);\r
1794                         Region intersectRegion = new Region(intersectRect);\r
1795                         t.Graphics.IntersectClip(intersectRegion);\r
1796                         // Fill rectangle to demonstrate effective clipping region.\r
1797                         t.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 500, 600);\r
1798                         t.Show();\r
1799                         // Reset clipping region to infinite.\r
1800                         t.Graphics.ResetClip();\r
1801                         // Draw clipRect and intersectRect to screen.\r
1802                         t.Graphics.DrawRectangle(new Pen(Color.Black), clipRect);\r
1803                         t.Show();\r
1804                         t.Graphics.DrawRectangle(new Pen(Color.Red), intersectRect);\r
1805                         t.Show();\r
1806                         Assert.IsTrue(t.PDCompare());\r
1807                 }\r
1808 \r
1809                 [Test]\r
1810                 public virtual void IsVisible4Float() {\r
1811                         // Set clip region.\r
1812                         Region clipRegion = new Region(new Rectangle(50, 50, 100, 100));\r
1813                         t.Graphics.SetClip(clipRegion, CombineMode.Replace);\r
1814                         // Set up coordinates of rectangles.\r
1815                         float x1 =  100.0F;\r
1816                         float y1 =  100.0F;\r
1817                         float width1 = 20.0F;\r
1818                         float height1 = 20.0F;\r
1819                         float x2 = 200.0F;\r
1820                         float y2 = 200.0F;\r
1821                         float width2 = 20.0F;\r
1822                         float height2 = 20.0F;\r
1823                         // If rectangle is visible, fill it.\r
1824                         if (t.Graphics.IsVisible(x1, y1, width1, height1)) {\r
1825                                 t.Graphics.FillRectangle(new SolidBrush(Color.Red), x1, y1, width1, height1);\r
1826                                 t.Show();\r
1827                         }\r
1828                         if (t.Graphics.IsVisible(x2, y2, width2, height2)) {\r
1829                                 t.Graphics.FillRectangle(new SolidBrush(Color.Blue), x2, y2, width2, height2);\r
1830                                 t.Show();\r
1831                         }\r
1832 \r
1833                         Assert.IsTrue(t.PDCompare());\r
1834                 }\r
1835 \r
1836                 [Test]\r
1837                 [Category("NotWorking")]\r
1838                 public virtual void MeasureCharacterRangesRegions() {\r
1839                         // Set up string.\r
1840                         string measureString = "First and Second ranges";\r
1841                         Font stringFont = new Font("Times New Roman", 16.0F);\r
1842                         // Set character ranges to "First" and "Second".\r
1843                         CharacterRange[] characterRanges = {\r
1844                                                                                                    new CharacterRange(0, 5),\r
1845                                                                                                    new CharacterRange(10, 6)\r
1846                                                                                            };\r
1847                         // Create rectangle for layout.\r
1848                         float x = 50.0F;\r
1849                         float y = 50.0F;\r
1850                         float width = 35.0F;\r
1851                         float height = 200.0F;\r
1852                         RectangleF layoutRect = new RectangleF(x, y, width, height);\r
1853                         // Set string format.\r
1854                         StringFormat stringFormat = new StringFormat();\r
1855                         stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;\r
1856                         stringFormat.SetMeasurableCharacterRanges(characterRanges);\r
1857                         // Draw string to screen.\r
1858                         t.Graphics.DrawString(\r
1859                                 measureString,\r
1860                                 stringFont,\r
1861                                 Brushes.Black,\r
1862                                 x, y,\r
1863                                 stringFormat);\r
1864                         // Measure two ranges in string.\r
1865                         Region[] stringRegions = new Region[2];\r
1866                         stringRegions = t.Graphics.MeasureCharacterRanges(\r
1867                                 measureString,\r
1868                                 stringFont,\r
1869                                 layoutRect,\r
1870                                 stringFormat);\r
1871                         // Draw rectangle for first measured range.\r
1872                         RectangleF measureRect1 = stringRegions[0].GetBounds(t.Graphics);\r
1873                         t.Graphics.DrawRectangle(\r
1874                                 new Pen(Color.Red, 1),\r
1875                                 Rectangle.Round(measureRect1));\r
1876                         t.Show();\r
1877                         // Draw rectangle for second measured range.\r
1878                         RectangleF measureRect2 = stringRegions[1].GetBounds(t.Graphics);\r
1879                         t.Graphics.DrawRectangle(\r
1880                                 new Pen(Color.Blue, 1),\r
1881                                 Rectangle.Round(measureRect2));\r
1882                         t.Show();\r
1883                         Assert.IsTrue(t.PDCompare());\r
1884                 }\r
1885 \r
1886                 [Test] //TBD: add more overloads\r
1887                 [Category("NotWorking")]\r
1888                 public virtual void MeasureStringSizeFFormatInts() {\r
1889                         // Set up string.\r
1890                         string measureString = "Measure String";\r
1891                         Font stringFont = new Font("Arial", 16);\r
1892                         // Set maximum layout size.\r
1893                         SizeF layoutSize = new SizeF(100.0F, 200.0F);\r
1894                         // Set string format.\r
1895                         StringFormat newStringFormat = new StringFormat();\r
1896                         newStringFormat.FormatFlags = StringFormatFlags.DirectionVertical;\r
1897                         // Measure string.\r
1898                         int charactersFitted;\r
1899                         int linesFilled;\r
1900                         SizeF stringSize = new SizeF();\r
1901                         stringSize = t.Graphics.MeasureString(\r
1902                                 measureString,\r
1903                                 stringFont,\r
1904                                 layoutSize,\r
1905                                 newStringFormat,\r
1906                                 out charactersFitted,\r
1907                                 out linesFilled);\r
1908                         // Draw rectangle representing size of string.\r
1909                         t.Graphics.DrawRectangle(\r
1910                                 new Pen(Color.Red, 1),\r
1911                                 0.0F, 0.0F, stringSize.Width, stringSize.Height);\r
1912                         t.Show();\r
1913                         // Draw string to screen.\r
1914                         t.Graphics.DrawString(\r
1915                                 measureString,\r
1916                                 stringFont,\r
1917                                 Brushes.Black,\r
1918                                 new PointF(0, 0),\r
1919                                 newStringFormat);\r
1920                         t.Show();\r
1921                         // Draw output parameters to screen.\r
1922                         string outString = "chars " + charactersFitted + ", lines " + linesFilled;\r
1923                         t.Graphics.DrawString(\r
1924                                 outString,\r
1925                                 stringFont,\r
1926                                 Brushes.Black,\r
1927                                 new PointF(100, 0));\r
1928                         t.Show();\r
1929                         Assert.IsTrue(t.PDCompare());\r
1930                 }\r
1931 \r
1932                 [Test]\r
1933                 public virtual void MultiplyTransform() {\r
1934                         // Create transform matrix.\r
1935                         Matrix transformMatrix = new Matrix();\r
1936                         // Translate matrix, prepending translation vector.\r
1937                         transformMatrix.Translate(200.0F, 100.0F);\r
1938                         // Rotate transformation matrix of graphics object,\r
1939                         //  prepending rotation matrix.\r
1940                         t.Graphics.RotateTransform(30.0F);\r
1941                         // Multiply (append to) transformation matrix of\r
1942                         //  graphics object to translate graphics transformation.\r
1943                         t.Graphics.MultiplyTransform(transformMatrix);\r
1944                         // Draw rotated, translated ellipse.\r
1945                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);\r
1946                         t.Show();\r
1947                         Assert.IsTrue(t.PDCompare());\r
1948                 }\r
1949 \r
1950                 [Test]\r
1951                 public virtual void MultiplyTransformMatrixOrder() {\r
1952                         // Create transform matrix.\r
1953                         Matrix transformMatrix = new Matrix();\r
1954                         // Translate matrix, prepending translation vector.\r
1955                         transformMatrix.Translate(200.0F, 100.0F);\r
1956                         // Rotate transformation matrix of graphics object,\r
1957                         //  prepending rotation matrix.\r
1958                         t.Graphics.RotateTransform(30.0F);\r
1959                         // Multiply (append to) transformation matrix of\r
1960                         //  graphics object to translate graphics transformation.\r
1961                         t.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Append);\r
1962                         // Draw rotated, translated ellipse.\r
1963                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);\r
1964                         t.Show();\r
1965                         Assert.IsTrue(t.PDCompare());\r
1966                 }\r
1967 \r
1968                 [Test]\r
1969                 public virtual void MultiplyTransformMatrixOrder1() {\r
1970                         // Create transform matrix.\r
1971                         Matrix transformMatrix = new Matrix();\r
1972                         // Translate matrix, prepending translation vector.\r
1973                         transformMatrix.Translate(200.0F, 100.0F);\r
1974                         // Rotate transformation matrix of graphics object,\r
1975                         //  prepending rotation matrix.\r
1976                         t.Graphics.RotateTransform(30.0F);\r
1977                         // Multiply (append to) transformation matrix of\r
1978                         //  graphics object to translate graphics transformation.\r
1979                         t.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Prepend);\r
1980                         // Draw rotated, translated ellipse.\r
1981                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);\r
1982                         t.Show();\r
1983                         Assert.IsTrue(t.PDCompare());\r
1984                 }\r
1985 \r
1986                 [Test]\r
1987                 public virtual void ResetClipIntersectClipRectangleF() {\r
1988                         // Set clipping region.\r
1989                         Rectangle clipRect = new Rectangle(0, 0, 200, 200);\r
1990                         t.Graphics.SetClip(clipRect);\r
1991                         // Update clipping region to intersection of existing region with new rectangle.\r
1992                         RectangleF intersectRectF = new RectangleF(100.0F, 100.0F, 200.0F, 200.0F);\r
1993                         t.Graphics.IntersectClip(intersectRectF);\r
1994                         // Fill rectangle to demonstrate effective clipping region.\r
1995                         t.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 500, 500);\r
1996                         // Reset clipping region to infinite.\r
1997                         t.Graphics.ResetClip();\r
1998                         // Draw clipRect and intersectRect to screen.\r
1999                         t.Graphics.DrawRectangle(new Pen(Color.Black), clipRect);\r
2000                         t.Graphics.DrawRectangle(new Pen(Color.Red), Rectangle.Round(intersectRectF));\r
2001                         t.Show();\r
2002                         Assert.IsTrue(t.PDCompare());\r
2003                 }\r
2004 \r
2005                 [Test]\r
2006                 public virtual void SaveRestoreTranslate() {\r
2007                         // Translate transformation matrix.\r
2008                         t.Graphics.TranslateTransform(100, 0);\r
2009                         // Save translated graphics state.\r
2010                         GraphicsState transState = t.Graphics.Save();\r
2011                         // Reset transformation matrix to identity and fill rectangle.\r
2012                         t.Graphics.ResetTransform();\r
2013                         t.Graphics.FillRectangle(new SolidBrush(Color.Red), 0, 0, 100, 100);\r
2014                         t.Show();\r
2015                         // Restore graphics state to translated state and fill second rectangle.\r
2016                         t.Graphics.Restore(transState);\r
2017                         t.Graphics.FillRectangle(new SolidBrush(Color.Blue), 0, 0, 100, 100);\r
2018                         t.Show();\r
2019                         Assert.IsTrue(t.PDCompare());\r
2020                 }\r
2021 \r
2022                 [Test]\r
2023                 public virtual void RotateTransformAngleMatrixOrder() {\r
2024                         // Set world transform of graphics object to translate.\r
2025                         t.Graphics.TranslateTransform(100.0F, 0.0F);\r
2026                         // Then to rotate, appending rotation matrix.\r
2027                         t.Graphics.RotateTransform(30.0F, MatrixOrder.Append);\r
2028                         // Draw translated, rotated ellipse to screen.\r
2029                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), 0, 0, 200, 80);\r
2030                         t.Show();\r
2031                         Assert.IsTrue(t.PDCompare());\r
2032                 }\r
2033 \r
2034                 [Test]\r
2035                 public virtual void RotateTransformAngleMatrixOrder1() {\r
2036                         // Set world transform of graphics object to translate.\r
2037                         t.Graphics.TranslateTransform(100.0F, 0.0F);\r
2038                         // Then to rotate, appending rotation matrix.\r
2039                         t.Graphics.RotateTransform(30.0F, MatrixOrder.Prepend);\r
2040                         // Draw translated, rotated ellipse to screen.\r
2041                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), 0, 0, 200, 80);\r
2042                         t.Show();\r
2043                         Assert.IsTrue(t.PDCompare());  // Line width problem\r
2044                 }\r
2045 \r
2046                 [Test]\r
2047                 public virtual void ScaleTransformFloatMatrixOrder() {\r
2048                         // Set world transform of graphics object to rotate.\r
2049                         t.Graphics.RotateTransform(30.0F);\r
2050                         // Then to scale, appending to world transform.\r
2051                         t.Graphics.ScaleTransform(3.0F, 1.0F, MatrixOrder.Append);\r
2052                         // Draw rotated, scaled rectangle to screen.\r
2053                         t.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);\r
2054                         t.Show();\r
2055                         Assert.IsTrue(t.PDCompare()); // Line width problem\r
2056                 }\r
2057 \r
2058                 [Test]\r
2059                 public virtual void ScaleTransformFloatMatrixOrder1() {\r
2060                         // Set world transform of graphics object to rotate.\r
2061                         t.Graphics.RotateTransform(30.0F);\r
2062                         // Then to scale, appending to world transform.\r
2063                         t.Graphics.ScaleTransform(3.0F, 1.0F, MatrixOrder.Prepend);\r
2064                         // Draw rotated, scaled rectangle to screen.\r
2065                         t.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);\r
2066                         t.Show();\r
2067                         Assert.IsTrue(t.PDCompare());\r
2068                 }\r
2069 \r
2070                 [Test] //TBD: add more combination\r
2071                 public virtual void SetClipRegionCombine() {\r
2072                         // Create region for clipping.\r
2073                         Region clipRegion = new Region(new Rectangle(0, 0, 200, 100));\r
2074                         // Set clipping region of graphics to region.\r
2075                         t.Graphics.SetClip(clipRegion, CombineMode.Replace);\r
2076                         // Fill rectangle to demonstrate clip region.\r
2077                         t.Graphics.FillRectangle(new SolidBrush(Color.Black), 0, 0, 500, 300);\r
2078                         t.Show();\r
2079                         Assert.IsTrue(t.PDCompare());\r
2080                 }\r
2081 \r
2082                 [Test]\r
2083                 public virtual void TransformPointsPointF() {\r
2084                         // Create array of two points.\r
2085                         PointF[] points = {new PointF(0.0F, 0.0F),\r
2086                                                                   new PointF(100.0F, 50.0F)};\r
2087                         // Draw line connecting two untransformed points.\r
2088                         t.Graphics.DrawLine(new Pen(Color.Blue, 3),\r
2089                                 points[0],\r
2090                                 points[1]);\r
2091                         // Set world transformation of Graphics object to translate.\r
2092                         t.Graphics.TranslateTransform(40.0F, 30.0F);\r
2093                         // Transform points in array from world to page coordinates.\r
2094                         t.Graphics.TransformPoints(CoordinateSpace.Page,\r
2095                                 CoordinateSpace.World,\r
2096                                 points);\r
2097                         // Reset world transformation.\r
2098                         t.Graphics.ResetTransform();\r
2099                         // Draw line that connects transformed points.\r
2100                         t.Graphics.DrawLine(new Pen(Color.Red, 3),\r
2101                                 points[0],\r
2102                                 points[1]);\r
2103                         t.Show();\r
2104                         Assert.IsTrue(t.PDCompare());\r
2105                 }\r
2106 \r
2107                 [Test]\r
2108                 public virtual void TranslateClipFloat() {\r
2109                         // Create rectangle for clipping region.\r
2110                         RectangleF clipRect = new RectangleF(0.0F, 0.0F, 100.0F, 100.0F);\r
2111                         // Set clipping region of graphics to rectangle.\r
2112                         t.Graphics.SetClip(clipRect);\r
2113                         // Translate clipping region.\r
2114                         float dx = 50.0F;\r
2115                         float dy = 50.0F;\r
2116                         t.Graphics.TranslateClip(dx, dy);\r
2117                         // Fill rectangle to demonstrate translated clip region.\r
2118                         t.Graphics.FillRectangle(new SolidBrush(Color.Black), 0, 0, 500, 300);\r
2119                         t.Show();\r
2120                         Assert.IsTrue(t.PDCompare());\r
2121                 }\r
2122 \r
2123                 [Test]\r
2124                 public virtual void TranslateTransformAngleMatrixOrder() {\r
2125                         // Set world transform of graphics object to rotate.\r
2126                         t.Graphics.RotateTransform(30.0F);\r
2127                         // Then to translate, appending to world transform.\r
2128                         t.Graphics.TranslateTransform(100.0F, 0.0F, MatrixOrder.Append);\r
2129                         // Draw rotated, translated ellipse to screen.\r
2130                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), 0, 0, 200, 80);\r
2131                         t.Show();\r
2132                         Assert.IsTrue(t.PDCompare()); // Line width problem\r
2133                 }\r
2134 \r
2135                 [Test]\r
2136                 public virtual void TranslateTransformAngleMatrixOrder1() {\r
2137                         // Set world transform of graphics object to rotate.\r
2138                         t.Graphics.RotateTransform(30.0F);\r
2139                         // Then to translate, appending to world transform.\r
2140                         t.Graphics.TranslateTransform(100.0F, 0.0F, MatrixOrder.Prepend);\r
2141                         // Draw rotated, translated ellipse to screen.\r
2142                         t.Graphics.DrawEllipse(new Pen(Color.Blue, 3), 0, 0, 200, 80);\r
2143                         t.Show();\r
2144                         Assert.IsTrue(t.PDCompare());\r
2145                 }\r
2146 \r
2147                 [Test]\r
2148                 public virtual void TransfromPageScaleUnits() {\r
2149                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2150                         t.Graphics.PageScale = 1.0F;\r
2151                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2152 \r
2153                         t.Graphics.PageUnit = GraphicsUnit.Document;\r
2154                         t.Graphics.PageScale = 10.0F;\r
2155                         t.Graphics.DrawLine(Pens.Blue, 10, 70, 70, 10);\r
2156 \r
2157                         t.Graphics.PageUnit = GraphicsUnit.Inch;\r
2158                         t.Graphics.PageScale = 0.055F;\r
2159                         t.Graphics.DrawLine(Pens.Green, 10, 70, 70, 10);\r
2160 \r
2161                         Matrix mx=new Matrix(0.5f,0,0,0.5f,0,0);\r
2162                         t.Graphics.Transform = mx;\r
2163 \r
2164                         t.Graphics.PageUnit = GraphicsUnit.Inch;\r
2165                         t.Graphics.DrawLine(Pens.Black, 10, 70, 70, 10);\r
2166 \r
2167                         t.Graphics.PageUnit = GraphicsUnit.Point;\r
2168                         t.Graphics.PageScale = 2.7F;\r
2169                         t.Graphics.DrawLine(Pens.Yellow, 10, 70, 70, 10);\r
2170 \r
2171                         t.Show();\r
2172                         Assert.IsTrue(t.PDCompare());\r
2173                 }\r
2174 \r
2175                 [Test]\r
2176                 public virtual void TransfromPageScaleUnits_2() {\r
2177                         t.Graphics.RotateTransform(45);\r
2178                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2179                         t.Graphics.PageScale = 1.0F;\r
2180                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2181 \r
2182                         t.Graphics.TranslateTransform(100, 0);\r
2183                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
2184                         t.Graphics.PageScale = 2.0F;\r
2185                         t.Graphics.DrawLine(Pens.Blue, 10, 70, 70, 10);\r
2186 \r
2187                         t.Graphics.ResetTransform();\r
2188                         t.Graphics.DrawLine(Pens.Green, 10, 70, 70, 10);\r
2189 \r
2190                         t.Show();\r
2191                         Assert.IsTrue(t.PDCompare());\r
2192                 }\r
2193                 [Test]\r
2194                 public virtual void TransfromPageScaleUnits_3() {\r
2195                         t.Graphics.TranslateTransform(20, 20);\r
2196                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2197                         t.Graphics.PageScale = 1.0F;\r
2198                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2199                 \r
2200                         t.Graphics.TranslateTransform(10, 10);\r
2201                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2202                         t.Graphics.PageScale = 1.0F;\r
2203                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2204                 \r
2205                         t.Graphics.RotateTransform(15);\r
2206                 \r
2207                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2208                         t.Graphics.PageScale = 0.5F;\r
2209                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2210                 \r
2211                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
2212                         t.Graphics.PageScale = 0.5F;\r
2213                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2214                                         \r
2215                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
2216                         t.Graphics.TranslateTransform(0, 0);\r
2217                         t.Graphics.PageScale = 1.5F;\r
2218                         t.Graphics.DrawLine(Pens.Red, 10, 70, 70, 10);\r
2219 \r
2220                         t.Show();\r
2221                         Assert.IsTrue(t.PDCompare());\r
2222                 }\r
2223         }\r
2224 \r
2225 \r
2226         #endregion\r
2227 \r
2228         #region GraphicsFixturePropClip\r
2229 \r
2230         [TestFixture]\r
2231         public class GraphicsFixturePropClip : GraphicsFixture {\r
2232                 public override void SetUp() {\r
2233                         base.SetUp ("GraphicsFixturePropClip");\r
2234                         t.Graphics.Clip = new Region(new Rectangle(10, 10, 100, 100));\r
2235 \r
2236                         st["DrawArcTest:6"] = TOLERANCE * 5.0f;\r
2237                         st["DrawArcTest:8"] = TOLERANCE * 3.7f;\r
2238                         st["DrawLinesTest:2"] = TOLERANCE * 3.0f;\r
2239                         st["DrawLinesTestF:2"] = TOLERANCE * 3.0f;\r
2240                         st["DrawPieTestF:2"] = TOLERANCE * 2.0f;\r
2241                         st["DrawPieTestF:4"] = TOLERANCE * 2.0f;\r
2242                         st["DrawPieTest:2"] = TOLERANCE * 2.0f;\r
2243                         st["DrawPieTest:4"] = TOLERANCE * 2.0f;\r
2244                         st["FillClosedCurvePointFillModeTension:2"] = TOLERANCE * 1.5f;\r
2245                         st["FillClosedCurvePointFFillModeTension:2"] = TOLERANCE * 1.5f;\r
2246                         st["FillClosedCurvePointFillModeTension:4"] = TOLERANCE * 1.5f;\r
2247                         st["FillClosedCurvePointFFillModeTension:4"] = TOLERANCE * 1.5f;\r
2248                         st["FillClosedCurvePointFillModeTension:5"] = TOLERANCE * 1.5f;\r
2249                         st["FillClosedCurvePointFFillModeTension:6"] = TOLERANCE * 1.5f;\r
2250                         st["ScaleTransformFloatMatrixOrder1:2"] = TOLERANCE * 3.5f;\r
2251                 }\r
2252 \r
2253                 [Test]\r
2254                 [Category("NotWorking")]\r
2255                 public override void DrawIconTest() {\r
2256                         base.DrawIconTest ();\r
2257                 }\r
2258 \r
2259                 [Test]\r
2260                 [Category("NotWorking")]\r
2261                 public override void DrawIconUnstretchedTest() {\r
2262                         base.DrawIconUnstretchedTest ();\r
2263                 }\r
2264 \r
2265                 [Test]\r
2266                 public override void DrawImageUnscaledTest() {\r
2267                         base.DrawImageUnscaledTest ();\r
2268                 }\r
2269 \r
2270                 [Test]\r
2271                 public override void DrawStringFloatFormat() {\r
2272                         base.DrawStringFloatFormat ();\r
2273                 }\r
2274 \r
2275                 [Test]\r
2276                 [Category("NotWorking")]\r
2277                 public override void MeasureCharacterRangesRegions() {\r
2278                         base.MeasureCharacterRangesRegions ();\r
2279                 }\r
2280 \r
2281                 [Test] \r
2282                 [Category("NotWorking")]\r
2283                 public override void MeasureStringSizeFFormatInts() {\r
2284                         base.MeasureStringSizeFFormatInts ();\r
2285                 }\r
2286         }\r
2287 \r
2288         #endregion\r
2289 \r
2290         #region GraphicsFixturePropCompositingMode\r
2291 \r
2292         [TestFixture]\r
2293         public class GraphicsFixturePropCompositingMode1 : GraphicsFixture {\r
2294                 public override void SetUp() {\r
2295                         base.SetUp ("GraphicsFixturePropCompositingMode1");\r
2296                         t.Graphics.CompositingMode = CompositingMode.SourceCopy;\r
2297                 }\r
2298 \r
2299                 [Test]\r
2300                 [Category("NotWorking")]\r
2301                 public override void DrawIconTest() {\r
2302                         base.DrawIconTest ();\r
2303                 }\r
2304 \r
2305                 [Test]\r
2306                 [Category("NotWorking")]\r
2307                 public override void DrawIconUnstretchedTest() {\r
2308                         base.DrawIconUnstretchedTest ();\r
2309                 }\r
2310 \r
2311                 [Test]\r
2312                 [Category("NotWorking")]\r
2313                 public override void DrawImageUnscaledTest() {\r
2314                         base.DrawImageUnscaledTest ();\r
2315                 }\r
2316 \r
2317                 [Test]\r
2318                 [Category("NotWorking")]\r
2319                 public override void DrawStringFloatFormat() {\r
2320                         base.DrawStringFloatFormat ();\r
2321                 }\r
2322 \r
2323                 [Test]\r
2324                 [Category("NotWorking")]\r
2325                 public override void MeasureCharacterRangesRegions() {\r
2326                         base.MeasureCharacterRangesRegions ();\r
2327                 }\r
2328 \r
2329                 [Test] \r
2330                 [Category("NotWorking")]\r
2331                 public override void MeasureStringSizeFFormatInts() {\r
2332                         base.MeasureStringSizeFFormatInts ();\r
2333                 }\r
2334         }\r
2335 \r
2336         [TestFixture]\r
2337         public class GraphicsFixturePropCompositingMode2 : GraphicsFixture {\r
2338                 public override void SetUp() {\r
2339                         base.SetUp ("GraphicsFixturePropCompositingMode2");\r
2340                         t.Graphics.CompositingMode = CompositingMode.SourceOver;\r
2341                 }\r
2342 \r
2343                 [Test]\r
2344                 [Category("NotWorking")]\r
2345                 public override void DrawIconTest() {\r
2346                         base.DrawIconTest ();\r
2347                 }\r
2348 \r
2349                 [Test]\r
2350                 [Category("NotWorking")]\r
2351                 public override void DrawIconUnstretchedTest() {\r
2352                         base.DrawIconUnstretchedTest ();\r
2353                 }\r
2354 \r
2355                 [Test]\r
2356                 [Category("NotWorking")]\r
2357                 public override void DrawImageUnscaledTest() {\r
2358                         base.DrawImageUnscaledTest ();\r
2359                 }\r
2360 \r
2361                 [Test]\r
2362                 [Category("NotWorking")]\r
2363                 public override void DrawStringFloatFormat() {\r
2364                         base.DrawStringFloatFormat ();\r
2365                 }\r
2366 \r
2367                 [Test]\r
2368                 [Category("NotWorking")]\r
2369                 public override void MeasureCharacterRangesRegions() {\r
2370                         base.MeasureCharacterRangesRegions ();\r
2371                 }\r
2372 \r
2373                 [Test] \r
2374                 [Category("NotWorking")]\r
2375                 public override void MeasureStringSizeFFormatInts() {\r
2376                         base.MeasureStringSizeFFormatInts ();\r
2377                 }\r
2378         }\r
2379 \r
2380         #endregion\r
2381 \r
2382         #region GraphicsFixturePropInterpolationMode\r
2383 \r
2384         [TestFixture]\r
2385         public class GraphicsFixturePropInterpolationMode1 : GraphicsFixture {\r
2386                 public override void SetUp() {\r
2387                         base.SetUp ("GraphicsFixturePropInterpolationMode1");\r
2388                         t.Graphics.InterpolationMode = InterpolationMode.Bilinear;\r
2389                 }\r
2390 \r
2391                 [Test]\r
2392                 [Category("NotWorking")]\r
2393                 public override void DrawIconTest() {\r
2394                         base.DrawIconTest ();\r
2395                 }\r
2396 \r
2397                 [Test]\r
2398                 [Category("NotWorking")]\r
2399                 public override void DrawIconUnstretchedTest() {\r
2400                         base.DrawIconUnstretchedTest ();\r
2401                 }\r
2402 \r
2403                 [Test]\r
2404                 [Category("NotWorking")]\r
2405                 public override void DrawImageUnscaledTest() {\r
2406                         base.DrawImageUnscaledTest ();\r
2407                 }\r
2408 \r
2409                 [Test]\r
2410                 [Category("NotWorking")]\r
2411                 public override void DrawStringFloatFormat() {\r
2412                         base.DrawStringFloatFormat ();\r
2413                 }\r
2414 \r
2415                 [Test]\r
2416                 [Category("NotWorking")]\r
2417                 public override void MeasureCharacterRangesRegions() {\r
2418                         base.MeasureCharacterRangesRegions ();\r
2419                 }\r
2420 \r
2421                 [Test] \r
2422                 [Category("NotWorking")]\r
2423                 public override void MeasureStringSizeFFormatInts() {\r
2424                         base.MeasureStringSizeFFormatInts ();\r
2425                 }\r
2426         }\r
2427 \r
2428         [TestFixture]\r
2429         public class GraphicsFixturePropInterpolationMode2 : GraphicsFixture {\r
2430                 public override void SetUp() {\r
2431                         base.SetUp ("GraphicsFixturePropInterpolationMode2");\r
2432                         t.Graphics.InterpolationMode = InterpolationMode.Bicubic;\r
2433                 }\r
2434 \r
2435                 [Test]\r
2436                 [Category("NotWorking")]\r
2437                 public override void DrawIconTest() {\r
2438                         base.DrawIconTest ();\r
2439                 }\r
2440 \r
2441                 [Test]\r
2442                 [Category("NotWorking")]\r
2443                 public override void DrawIconUnstretchedTest() {\r
2444                         base.DrawIconUnstretchedTest ();\r
2445                 }\r
2446 \r
2447                 [Test]\r
2448                 [Category("NotWorking")]\r
2449                 public override void DrawImageUnscaledTest() {\r
2450                         base.DrawImageUnscaledTest ();\r
2451                 }\r
2452 \r
2453                 [Test]\r
2454                 [Category("NotWorking")]\r
2455                 public override void DrawStringFloatFormat() {\r
2456                         base.DrawStringFloatFormat ();\r
2457                 }\r
2458 \r
2459                 [Test]\r
2460                 [Category("NotWorking")]\r
2461                 public override void MeasureCharacterRangesRegions() {\r
2462                         base.MeasureCharacterRangesRegions ();\r
2463                 }\r
2464 \r
2465                 [Test] \r
2466                 [Category("NotWorking")]\r
2467                 public override void MeasureStringSizeFFormatInts() {\r
2468                         base.MeasureStringSizeFFormatInts ();\r
2469                 }\r
2470         }\r
2471 \r
2472         #endregion\r
2473 \r
2474         #region GraphicsFixturePropPageScale\r
2475 \r
2476         [TestFixture]\r
2477         public class GraphicsFixturePropPageScale : GraphicsFixture {\r
2478                 public override void SetUp() {\r
2479                         base.SetUp ("GraphicsFixturePropPageScale");\r
2480 \r
2481                         t.Graphics.PageScale = 4.34f;\r
2482                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
2483 \r
2484                         st["IntersectClipRegion:4"] = TOLERANCE * 1.5f;\r
2485                         st["ResetClipIntersectClipRectangleF:2"] = TOLERANCE * 1.5f;\r
2486                 }\r
2487 \r
2488                 [Test]\r
2489                 [Category("NotWorking")]\r
2490                 public override void DrawIconTest() {\r
2491                         base.DrawIconTest ();\r
2492                 }\r
2493 \r
2494                 [Test]\r
2495                 [Category("NotWorking")]\r
2496                 public override void DrawIconUnstretchedTest() {\r
2497                         base.DrawIconUnstretchedTest ();\r
2498                 }\r
2499 \r
2500                 [Test]\r
2501                 [Category("NotWorking")]\r
2502                 public override void DrawImageUnscaledTest() {\r
2503                         base.DrawImageUnscaledTest ();\r
2504                 }\r
2505 \r
2506                 [Test]\r
2507                 public override void DrawStringFloatFormat() {\r
2508                         base.DrawStringFloatFormat ();\r
2509                 }\r
2510 \r
2511                 [Test]\r
2512                 [Category("NotWorking")]\r
2513                 public override void MeasureCharacterRangesRegions() {\r
2514                         base.MeasureCharacterRangesRegions ();\r
2515                 }\r
2516 \r
2517                 [Test] \r
2518                 [Category("NotWorking")]\r
2519                 public override void MeasureStringSizeFFormatInts() {\r
2520                         base.MeasureStringSizeFFormatInts ();\r
2521                 }\r
2522         }\r
2523 \r
2524         #endregion\r
2525 \r
2526         #region GraphicsFixturePropPageUnit\r
2527 \r
2528         [TestFixture]\r
2529         public class GraphicsFixturePropPageUnit1 : GraphicsFixture {\r
2530                 public override void SetUp() {\r
2531                         base.SetUp ("GraphicsFixturePropPageUnit1");\r
2532                         t.Graphics.PageUnit = GraphicsUnit.Display;\r
2533                 }\r
2534 \r
2535                 [Test]\r
2536                 [Category("NotWorking")]\r
2537                 public override void DrawIconTest() {\r
2538                         base.DrawIconTest ();\r
2539                 }\r
2540 \r
2541                 [Test]\r
2542                 [Category("NotWorking")]\r
2543                 public override void DrawIconUnstretchedTest() {\r
2544                         base.DrawIconUnstretchedTest ();\r
2545                 }\r
2546 \r
2547                 [Test]\r
2548                 [Category("NotWorking")]\r
2549                 public override void DrawImageUnscaledTest() {\r
2550                         base.DrawImageUnscaledTest ();\r
2551                 }\r
2552 \r
2553                 [Test]\r
2554                 [Category("NotWorking")]\r
2555                 public override void DrawStringFloatFormat() {\r
2556                         base.DrawStringFloatFormat ();\r
2557                 }\r
2558 \r
2559                 [Test]\r
2560                 [Category("NotWorking")]\r
2561                 public override void MeasureCharacterRangesRegions() {\r
2562                         base.MeasureCharacterRangesRegions ();\r
2563                 }\r
2564 \r
2565                 [Test] \r
2566                 [Category("NotWorking")]\r
2567                 public override void MeasureStringSizeFFormatInts() {\r
2568                         base.MeasureStringSizeFFormatInts ();\r
2569                 }\r
2570         }\r
2571 \r
2572         [TestFixture]\r
2573         public class GraphicsFixturePropPageUnit2 : GraphicsFixture {\r
2574                 public override void SetUp() {\r
2575                         base.SetUp ("GraphicsFixturePropPageUnit2");\r
2576                         t.Graphics.PageUnit = GraphicsUnit.Document;\r
2577 \r
2578                         // FIXME: scaling down loss some pixels.\r
2579                         st["DrawBezierTest:2"] = TOLERANCE * 2.5f; \r
2580                         st["DrawBezierTest:4"] = TOLERANCE * 2.5f; \r
2581                         st["DrawBezierTest:6"] = TOLERANCE * 2.5f; \r
2582                         st["DrawBeziersTest:2"] = TOLERANCE * 2.0f;\r
2583                         st["DrawBeziersTest:4"] = TOLERANCE * 2.0f;\r
2584                         st["DrawClosedCurveTest:2"] = TOLERANCE * 3.0f;\r
2585                         st["DrawClosedCurveTest:4"] = TOLERANCE * 3.7f;\r
2586                         st["DrawCurveTest:2"] = TOLERANCE * 2.5f;\r
2587                         st["DrawCurveTest:4"] = TOLERANCE * 2.0f;\r
2588                         st["DrawCurveTest:6"] = TOLERANCE * 4.0f;\r
2589                         st["DrawCurveTestF:2"] = TOLERANCE * 2.5f;\r
2590                         st["DrawCurveTestF:4"] = TOLERANCE * 6.0f;\r
2591                         st["DrawCurveTestF:6"] = TOLERANCE * 6.0f;\r
2592                         st["DrawCurveTestF:8"] = TOLERANCE * 6.0f;\r
2593                         st["DrawEllipseTest:2"] = TOLERANCE * 2.0f;\r
2594                         st["DrawEllipseTest:4"] = TOLERANCE * 2.0f;\r
2595                         st["DrawEllipseTestF:2"] = TOLERANCE * 2.0f;\r
2596                         st["DrawEllipseTestF:4"] = TOLERANCE * 2.0f;\r
2597                         st["DrawLinesTest:2"] = TOLERANCE * 2.0f;\r
2598                         st["DrawLinesTestF:2"] = TOLERANCE * 2.0f;\r
2599                         st["DrawPathTest:2"] = TOLERANCE * 2.0f;\r
2600                         st["DrawPolygonPoint:2"] = TOLERANCE * 7.0f;\r
2601                         st["DrawPolygonPointF:2"] = TOLERANCE * 7.0f;\r
2602                         st["FillPieFloat:2"] = TOLERANCE * 1.5f;\r
2603                         st["FillPieFloat:4"] = TOLERANCE * 1.5f;\r
2604                         st["FillPieFloat:6"] = TOLERANCE * 1.5f;\r
2605                         st["IntersectClipRegion:4"] = TOLERANCE * 3.0f;\r
2606                         st["MultiplyTransform:2"] = TOLERANCE * 2.5f;\r
2607                         st["MultiplyTransformMatrixOrder1:2"] = TOLERANCE * 2.5f;\r
2608                         st["TranslateTransformAngleMatrixOrder1:2"] = TOLERANCE * 4.0f;\r
2609                         st["ScaleTransformFloatMatrixOrder:2"] = TOLERANCE * 4.0f;\r
2610                         st["ScaleTransformFloatMatrixOrder1:2"] = TOLERANCE * 5.5f;\r
2611                         st["RotateTransformAngleMatrixOrder:2"] = TOLERANCE * 3.5f;\r
2612                 }\r
2613 \r
2614                 [Test]\r
2615                 [Category("NotWorking")]\r
2616                 public override void BeginContainerTest() {\r
2617                         base.BeginContainerTest ();\r
2618                 }\r
2619 \r
2620                 [Test]\r
2621                 [Category("NotWorking")]\r
2622                 public override void DrawIconTest() {\r
2623                         base.DrawIconTest ();\r
2624                 }\r
2625 \r
2626                 [Test]\r
2627                 [Category("NotWorking")]\r
2628                 public override void DrawIconUnstretchedTest() {\r
2629                         base.DrawIconUnstretchedTest ();\r
2630                 }\r
2631 \r
2632                 [Test]\r
2633                 [Category("NotWorking")]\r
2634                 public override void DrawImageUnscaledTest() {\r
2635                         base.DrawImageUnscaledTest ();\r
2636                 }\r
2637 \r
2638                 [Test]\r
2639                 [Category("NotWorking")]\r
2640                 public override void DrawStringFloatFormat() {\r
2641                         base.DrawStringFloatFormat ();\r
2642                 }\r
2643 \r
2644                 [Test]\r
2645                 [Category("NotWorking")]\r
2646                 public override void EndContainerState() {\r
2647                         base.EndContainerState ();\r
2648                 }\r
2649 \r
2650                 [Test]\r
2651                 [Category("NotWorking")]\r
2652                 public override void MeasureCharacterRangesRegions() {\r
2653                         base.MeasureCharacterRangesRegions ();\r
2654                 }\r
2655 \r
2656                 [Test] \r
2657                 [Category("NotWorking")]\r
2658                 public override void MeasureStringSizeFFormatInts() {\r
2659                         base.MeasureStringSizeFFormatInts ();\r
2660                 }\r
2661         }\r
2662 \r
2663         [TestFixture]\r
2664         public class GraphicsFixturePropPageUnit3 : GraphicsFixture {\r
2665                 public override void SetUp() {\r
2666                         base.SetUp ("GraphicsFixturePropPageUnit3");\r
2667                         t.Graphics.PageUnit = GraphicsUnit.Inch;\r
2668                 }\r
2669 \r
2670                 [Test]\r
2671                 [Category("NotWorking")]\r
2672                 public override void DrawIconTest() {\r
2673                         base.DrawIconTest ();\r
2674                 }\r
2675 \r
2676                 [Test]\r
2677                 [Category("NotWorking")]\r
2678                 public override void DrawIconUnstretchedTest() {\r
2679                         base.DrawIconUnstretchedTest ();\r
2680                 }\r
2681 \r
2682                 [Test]\r
2683                 public override void DrawImageUnscaledTest() {\r
2684                         base.DrawImageUnscaledTest ();\r
2685                 }\r
2686 \r
2687                 [Test]\r
2688                 public override void DrawStringFloatFormat() {\r
2689                         base.DrawStringFloatFormat ();\r
2690                 }\r
2691 \r
2692                 [Test]\r
2693                 [Category("NotWorking")]\r
2694                 public override void IsVisible4Float() {\r
2695                         base.IsVisible4Float ();\r
2696                 }\r
2697 \r
2698                 [Test]\r
2699                 public override void MeasureCharacterRangesRegions() {\r
2700                         base.MeasureCharacterRangesRegions ();\r
2701                 }\r
2702 \r
2703                 [Test] \r
2704                 [Category("NotWorking")]\r
2705                 public override void MeasureStringSizeFFormatInts() {\r
2706                         base.MeasureStringSizeFFormatInts ();\r
2707                 }\r
2708         }\r
2709 \r
2710         [TestFixture]\r
2711         public class GraphicsFixturePropPageUnit4 : GraphicsFixture {\r
2712                 public override void SetUp() {\r
2713                         base.SetUp ("GraphicsFixturePropPageUnit4");\r
2714                         t.Graphics.PageUnit = GraphicsUnit.Millimeter;\r
2715 \r
2716                         st["DrawArcTest:8"] = TOLERANCE * 1.5f; \r
2717                         st["DrawRectangleFloat:2"] = TOLERANCE * 1.5f; // line width problem\r
2718                         st["DrawRectangleFloat:4"] = TOLERANCE * 1.5f; \r
2719                         st["DrawRectangleFloat:6"] = TOLERANCE * 1.5f; \r
2720                         st["DrawRectanglesRectangle:2"] = TOLERANCE * 1.5f; \r
2721                         st["DrawRectanglesRectangleF:2"] = TOLERANCE * 1.5f; \r
2722                 }\r
2723 \r
2724                 [Test]\r
2725                 [Category("NotWorking")]\r
2726                 public override void DrawClosedCurveTest() {\r
2727                         base.DrawClosedCurveTest ();\r
2728                 }\r
2729 \r
2730                 [Test]\r
2731                 [Category("NotWorking")]\r
2732                 public override void DrawIconTest() {\r
2733                         base.DrawIconTest ();\r
2734                 }\r
2735 \r
2736                 [Test]\r
2737                 [Category("NotWorking")]\r
2738                 public override void DrawIconUnstretchedTest() {\r
2739                         base.DrawIconUnstretchedTest ();\r
2740                 }\r
2741 \r
2742                 [Test]\r
2743                 [Category("NotWorking")]\r
2744                 public override void DrawImageUnscaledTest() {\r
2745                         base.DrawImageUnscaledTest ();\r
2746                 }\r
2747 \r
2748                 [Test]\r
2749                 public override void DrawStringFloatFormat() {\r
2750                         base.DrawStringFloatFormat ();\r
2751                 }\r
2752 \r
2753                 [Test]\r
2754                 [Category("NotWorking")]\r
2755                 public override void MeasureCharacterRangesRegions() {\r
2756                         base.MeasureCharacterRangesRegions ();\r
2757                 }\r
2758 \r
2759                 [Test] \r
2760                 [Category("NotWorking")]\r
2761                 public override void MeasureStringSizeFFormatInts() {\r
2762                         base.MeasureStringSizeFFormatInts ();\r
2763                 }\r
2764         }\r
2765 \r
2766         [TestFixture]\r
2767         public class GraphicsFixturePropPageUnit5 : GraphicsFixture {\r
2768                 public override void SetUp() {\r
2769                         base.SetUp ("GraphicsFixturePropPageUnit5");\r
2770 \r
2771                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
2772                 }\r
2773 \r
2774                 [Test]\r
2775                 [Category("NotWorking")]\r
2776                 public override void DrawIconTest() {\r
2777                         base.DrawIconTest ();\r
2778                 }\r
2779 \r
2780                 [Test]\r
2781                 [Category("NotWorking")]\r
2782                 public override void DrawIconUnstretchedTest() {\r
2783                         base.DrawIconUnstretchedTest ();\r
2784                 }\r
2785 \r
2786                 [Test]\r
2787                 [Category("NotWorking")]\r
2788                 public override void DrawImageUnscaledTest() {\r
2789                         base.DrawImageUnscaledTest ();\r
2790                 }\r
2791 \r
2792                 [Test]\r
2793                 [Category("NotWorking")]\r
2794                 public override void DrawStringFloatFormat() {\r
2795                         base.DrawStringFloatFormat ();\r
2796                 }\r
2797 \r
2798                 [Test]\r
2799                 [Category("NotWorking")]\r
2800                 public override void MeasureCharacterRangesRegions() {\r
2801                         base.MeasureCharacterRangesRegions ();\r
2802                 }\r
2803 \r
2804                 [Test] \r
2805                 [Category("NotWorking")]\r
2806                 public override void MeasureStringSizeFFormatInts() {\r
2807                         base.MeasureStringSizeFFormatInts ();\r
2808                 }\r
2809         }\r
2810 \r
2811         [TestFixture]\r
2812         public class GraphicsFixturePropPageUnit6 : GraphicsFixture {\r
2813                 public override void SetUp() {\r
2814                         base.SetUp ("GraphicsFixturePropPageUnit6");\r
2815                         t.Graphics.PageUnit = GraphicsUnit.Point;\r
2816 \r
2817                         st["DrawArcTest:2"] = TOLERANCE * 2.5f; \r
2818                         st["DrawArcTest:4"] = TOLERANCE * 8.0f; // big difference in width of line\r
2819                         st["DrawArcTest:6"] = TOLERANCE * 8.0f; // big difference in width of line\r
2820                         st["DrawArcTest:8"] = TOLERANCE * 6.0f; // big difference in width of line\r
2821                         st["IsVisible4Float:2"] = TOLERANCE * 1.5f; \r
2822                         st["TransformPointsPointF:2"] = TOLERANCE * 2.0f; \r
2823                 }\r
2824 \r
2825                 [Test]\r
2826                 [Category("NotWorking")]\r
2827                 public override void DrawClosedCurveTest() {\r
2828                         base.DrawClosedCurveTest ();\r
2829                 }\r
2830 \r
2831                 [Test]\r
2832                 [Category("NotWorking")]\r
2833                 public override void DrawCurveTest() {\r
2834                         base.DrawCurveTest ();\r
2835                 }\r
2836 \r
2837                 [Test]\r
2838                 [Category("NotWorking")]\r
2839                 public override void DrawCurveTestF() {\r
2840                         base.DrawCurveTestF ();\r
2841                 }\r
2842 \r
2843                 [Test]\r
2844                 [Category("NotWorking")]\r
2845                 public override void DrawEllipseTest() {\r
2846                         base.DrawEllipseTest ();\r
2847                 }\r
2848 \r
2849                 [Test]\r
2850                 [Category("NotWorking")]\r
2851                 public override void DrawEllipseTestF() {\r
2852                         base.DrawEllipseTestF ();\r
2853                 }\r
2854 \r
2855                 [Test]\r
2856                 [Category("NotWorking")]\r
2857                 public override void DrawIconTest() {\r
2858                         base.DrawIconTest ();\r
2859                 }\r
2860 \r
2861                 [Test]\r
2862                 [Category("NotWorking")]\r
2863                 public override void DrawIconUnstretchedTest() {\r
2864                         base.DrawIconUnstretchedTest ();\r
2865                 }\r
2866 \r
2867                 [Test]\r
2868                 [Category("NotWorking")]\r
2869                 public override void DrawImageUnscaledTest() {\r
2870                         base.DrawImageUnscaledTest ();\r
2871                 }\r
2872 \r
2873                 [Test]\r
2874                 [Category("NotWorking")]\r
2875                 public override void DrawPathTest() {\r
2876                         base.DrawPathTest ();\r
2877                 }\r
2878 \r
2879                 [Test]\r
2880                 [Category("NotWorking")]\r
2881                 public override void DrawStringFloatFormat() {\r
2882                         base.DrawStringFloatFormat ();\r
2883                 }\r
2884 \r
2885                 [Test]\r
2886                 [Category("NotWorking")]\r
2887                 public override void EndContainerState() {\r
2888                         base.EndContainerState ();\r
2889                 }\r
2890 \r
2891                 [Test]\r
2892                 [Category("NotWorking")]\r
2893                 public override void MeasureCharacterRangesRegions() {\r
2894                         base.MeasureCharacterRangesRegions ();\r
2895                 }\r
2896 \r
2897                 [Test] \r
2898                 [Category("NotWorking")]\r
2899                 public override void MeasureStringSizeFFormatInts() {\r
2900                         base.MeasureStringSizeFFormatInts ();\r
2901                 }\r
2902 \r
2903                 [Test] \r
2904                 [Category("NotWorking")]\r
2905                 public override void MultiplyTransform() {\r
2906                         base.MultiplyTransform ();\r
2907                 }\r
2908 \r
2909                 [Test] \r
2910                 [Category("NotWorking")]\r
2911                 public override void MultiplyTransformMatrixOrder1() {\r
2912                         base.MultiplyTransformMatrixOrder1 ();\r
2913                 }\r
2914 \r
2915                 [Test] \r
2916                 [Category("NotWorking")]\r
2917                 public override void RotateTransformAngleMatrixOrder1() {\r
2918                         base.RotateTransformAngleMatrixOrder1 ();\r
2919                 }\r
2920 \r
2921                 [Test] \r
2922                 [Category("NotWorking")]\r
2923                 public override void TranslateTransformAngleMatrixOrder() {\r
2924                         base.TranslateTransformAngleMatrixOrder ();\r
2925                 }\r
2926         }\r
2927 \r
2928         //      [TestFixture]\r
2929         //      public class GraphicsFixturePropPageUnit7 : GraphicsFixture {\r
2930         //              public override void SetUp() {\r
2931         //                      base.SetUp ();\r
2932         //\r
2933         //                      t.Graphics.PageUnit = GraphicsUnit.World;\r
2934         //              }\r
2935         //      }\r
2936 \r
2937         #endregion\r
2938 \r
2939         #region GraphicsFixturePropPixelOffsetMode\r
2940 \r
2941         [TestFixture]\r
2942         public class GraphicsFixturePropPixelOffsetMode : GraphicsFixture {\r
2943                 public override void SetUp() {\r
2944                         base.SetUp ("GraphicsFixturePropPixelOffsetMode");\r
2945                         t.Graphics.PixelOffsetMode = PixelOffsetMode.Half;\r
2946 \r
2947                         st["TransformPointsPointF:2"] = TOLERANCE * 3.0f;\r
2948                 }\r
2949 \r
2950                 [Test]\r
2951                 [Category("NotWorking")]\r
2952                 public override void DrawIconTest() {\r
2953                         base.DrawIconTest ();\r
2954                 }\r
2955 \r
2956                 [Test]\r
2957                 [Category("NotWorking")]\r
2958                 public override void DrawIconUnstretchedTest() {\r
2959                         base.DrawIconUnstretchedTest ();\r
2960                 }\r
2961 \r
2962                 [Test]\r
2963                 [Category("NotWorking")]\r
2964                 public override void DrawImageUnscaledTest() {\r
2965                         base.DrawImageUnscaledTest ();\r
2966                 }\r
2967 \r
2968                 [Test]\r
2969                 [Category("NotWorking")]\r
2970                 public override void DrawStringFloatFormat() {\r
2971                         base.DrawStringFloatFormat ();\r
2972                 }\r
2973 \r
2974                 [Test]\r
2975                 [Category("NotWorking")]\r
2976                 public override void MeasureCharacterRangesRegions() {\r
2977                         base.MeasureCharacterRangesRegions ();\r
2978                 }\r
2979 \r
2980                 [Test] \r
2981                 [Category("NotWorking")]\r
2982                 public override void MeasureStringSizeFFormatInts() {\r
2983                         base.MeasureStringSizeFFormatInts ();\r
2984                 }\r
2985         }\r
2986 \r
2987         [TestFixture]\r
2988         public class GraphicsFixturePropPixelOffsetMode1 : GraphicsFixture {\r
2989                 public override void SetUp() {\r
2990                         base.SetUp ("GraphicsFixturePropPixelOffsetMode1");\r
2991                         t.Graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed;\r
2992                 }\r
2993 \r
2994                 [Test]\r
2995                 [Category("NotWorking")]\r
2996                 public override void DrawIconTest() {\r
2997                         base.DrawIconTest ();\r
2998                 }\r
2999 \r
3000                 [Test]\r
3001                 [Category("NotWorking")]\r
3002                 public override void DrawIconUnstretchedTest() {\r
3003                         base.DrawIconUnstretchedTest ();\r
3004                 }\r
3005 \r
3006                 [Test]\r
3007                 [Category("NotWorking")]\r
3008                 public override void DrawImageUnscaledTest() {\r
3009                         base.DrawImageUnscaledTest ();\r
3010                 }\r
3011 \r
3012                 [Test]\r
3013                 [Category("NotWorking")]\r
3014                 public override void DrawStringFloatFormat() {\r
3015                         base.DrawStringFloatFormat ();\r
3016                 }\r
3017 \r
3018                 [Test]\r
3019                 [Category("NotWorking")]\r
3020                 public override void MeasureCharacterRangesRegions() {\r
3021                         base.MeasureCharacterRangesRegions ();\r
3022                 }\r
3023 \r
3024                 [Test] \r
3025                 [Category("NotWorking")]\r
3026                 public override void MeasureStringSizeFFormatInts() {\r
3027                         base.MeasureStringSizeFFormatInts ();\r
3028                 }\r
3029         }\r
3030 \r
3031         [TestFixture]\r
3032         public class GraphicsFixturePropPixelOffsetMode2 : GraphicsFixture {\r
3033                 public override void SetUp() {\r
3034                         base.SetUp ("GraphicsFixturePropPixelOffsetMode2");\r
3035                         t.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;\r
3036 \r
3037                         st["TransformPointsPointF:2"] = TOLERANCE * 3.0f;\r
3038                 }\r
3039 \r
3040                 [Test]\r
3041                 [Category("NotWorking")]\r
3042                 public override void DrawIconTest() {\r
3043                         base.DrawIconTest ();\r
3044                 }\r
3045 \r
3046                 [Test]\r
3047                 [Category("NotWorking")]\r
3048                 public override void DrawIconUnstretchedTest() {\r
3049                         base.DrawIconUnstretchedTest ();\r
3050                 }\r
3051 \r
3052                 [Test]\r
3053                 [Category("NotWorking")]\r
3054                 public override void DrawImageUnscaledTest() {\r
3055                         base.DrawImageUnscaledTest ();\r
3056                 }\r
3057 \r
3058                 [Test]\r
3059                 [Category("NotWorking")]\r
3060                 public override void DrawStringFloatFormat() {\r
3061                         base.DrawStringFloatFormat ();\r
3062                 }\r
3063 \r
3064                 [Test]\r
3065                 [Category("NotWorking")]\r
3066                 public override void MeasureCharacterRangesRegions() {\r
3067                         base.MeasureCharacterRangesRegions ();\r
3068                 }\r
3069 \r
3070                 [Test] \r
3071                 [Category("NotWorking")]\r
3072                 public override void MeasureStringSizeFFormatInts() {\r
3073                         base.MeasureStringSizeFFormatInts ();\r
3074                 }\r
3075         }\r
3076 \r
3077         #endregion\r
3078 \r
3079         #region GraphicsFixturePropRenderingOrigin\r
3080 \r
3081         [TestFixture]\r
3082         [Category("NotWorking")]\r
3083         public class GraphicsFixturePropRenderingOrigin : GraphicsFixture {\r
3084                 public override void SetUp() {\r
3085                         base.SetUp ("GraphicsFixturePropRenderingOrigin");\r
3086                         t.Graphics.RenderingOrigin = new Point(12, 23);\r
3087                 }\r
3088 \r
3089                 [Test]\r
3090                 [Category("NotWorking")]\r
3091                 public override void BeginContainerTest() {\r
3092                         base.BeginContainerTest ();\r
3093                 }\r
3094 \r
3095                 [Test]\r
3096                 [Category("NotWorking")]\r
3097                 public override void BeginContainerTest_2() {\r
3098                         base.BeginContainerTest_2 ();\r
3099                 }\r
3100 \r
3101                 [Test]\r
3102                 [Category("NotWorking")]\r
3103                 public override void ClearTest() {\r
3104                         base.ClearTest ();\r
3105                 }\r
3106 \r
3107                 [Test]\r
3108                 [Category("NotWorking")]\r
3109                 public override void DrawArcTest() {\r
3110                         base.DrawArcTest ();\r
3111                 }\r
3112 \r
3113                 [Test]\r
3114                 [Category("NotWorking")]\r
3115                 public override void DrawBezierTest() {\r
3116                         base.DrawBezierTest ();\r
3117                 }\r
3118 \r
3119                 [Test] \r
3120                 [Category("NotWorking")]\r
3121                 public override void DrawBeziersTest() {\r
3122                         base.DrawBeziersTest ();\r
3123                 }\r
3124 \r
3125                 [Test]\r
3126                 [Category("NotWorking")]\r
3127                 public override void DrawClosedCurveTest() {\r
3128                         base.DrawClosedCurveTest ();\r
3129                 }\r
3130 \r
3131                 [Test]\r
3132                 [Category("NotWorking")]\r
3133                 public override void DrawCurveTest() {\r
3134                         base.DrawCurveTest ();\r
3135                 }\r
3136 \r
3137                 [Test]\r
3138                 [Category("NotWorking")]\r
3139                 public override void DrawCurveTestF() {\r
3140                         base.DrawCurveTestF ();\r
3141                 }\r
3142 \r
3143                 [Test]\r
3144                 [Category("NotWorking")]\r
3145                 public override void DrawEllipseTest() {\r
3146                         base.DrawEllipseTest ();\r
3147                 }\r
3148 \r
3149                 [Test]\r
3150                 [Category("NotWorking")]\r
3151                 public override void DrawEllipseTestF() {\r
3152                         base.DrawEllipseTestF ();\r
3153                 }\r
3154 \r
3155                 [Test] \r
3156                 [Category("NotWorking")]\r
3157                 public override void DrawIconTest() {\r
3158                         base.DrawIconTest ();\r
3159                 }\r
3160 \r
3161                 [Test]\r
3162                 [Category("NotWorking")]\r
3163                 public override void DrawIconUnstretchedTest() {\r
3164                         base.DrawIconUnstretchedTest ();\r
3165                 }\r
3166 \r
3167                 [Test]\r
3168                 [Category("NotWorking")]\r
3169                 public override void DrawImageUnscaledTest() {\r
3170                         base.DrawImageUnscaledTest ();\r
3171                 }\r
3172 \r
3173                 [Test]\r
3174                 [Category("NotWorking")]\r
3175                 public override void DrawLineTest() {\r
3176                         base.DrawLineTest ();\r
3177                 }\r
3178 \r
3179                 [Test]\r
3180                 [Category("NotWorking")]\r
3181                 public override void DrawLineTestF() {\r
3182                         base.DrawLineTestF ();\r
3183                 }\r
3184 \r
3185                 [Test] \r
3186                 [Category("NotWorking")]\r
3187                 public override void DrawLinesTest() {\r
3188                         base.DrawLinesTest ();\r
3189                 }\r
3190 \r
3191                 [Test]\r
3192                 [Category("NotWorking")]\r
3193                 public override void DrawLinesTestF() {\r
3194                         base.DrawLinesTestF ();\r
3195                 }\r
3196 \r
3197                 [Test]\r
3198                 [Category("NotWorking")]\r
3199                 public override void DrawPathTest() {\r
3200                         base.DrawPathTest ();\r
3201                 }\r
3202 \r
3203                 [Test]\r
3204                 [Category("NotWorking")]\r
3205                 public override void DrawPieTestF() {\r
3206                         base.DrawPieTestF ();\r
3207                 }\r
3208 \r
3209                 [Test]\r
3210                 [Category("NotWorking")]\r
3211                 public override void DrawPieTest() {\r
3212                         base.DrawPieTest ();\r
3213                 }\r
3214 \r
3215                 [Test]\r
3216                 [Category("NotWorking")]\r
3217                 public override void DrawPolygonPoint() {\r
3218                         base.DrawPolygonPoint ();\r
3219                 }\r
3220 \r
3221                 [Test] \r
3222                 [Category("NotWorking")]\r
3223                 public override void DrawPolygonPointF() {\r
3224                         base.DrawPolygonPointF ();\r
3225                 }\r
3226 \r
3227                 [Test]\r
3228                 [Category("NotWorking")]\r
3229                 public override void DrawRectangleFloat() {\r
3230                         base.DrawRectangleFloat ();\r
3231                 }\r
3232 \r
3233                 [Test]\r
3234                 [Category("NotWorking")]\r
3235                 public override void DrawRectanglesRectangleF() {\r
3236                         base.DrawRectanglesRectangleF ();\r
3237                 }\r
3238 \r
3239                 [Test]\r
3240                 [Category("NotWorking")]\r
3241                 public override void DrawRectanglesRectangle() {\r
3242                         base.DrawRectanglesRectangle ();\r
3243                 }\r
3244 \r
3245                 [Test]\r
3246                 [Category("NotWorking")]\r
3247                 public override void DrawStringFloatFormat() {\r
3248                         base.DrawStringFloatFormat ();\r
3249                 }\r
3250 \r
3251                 [Test]\r
3252                 [Category("NotWorking")]\r
3253                 public override void EndContainerState() {\r
3254                         base.EndContainerState  ();\r
3255                 }\r
3256 \r
3257                 [Test] \r
3258                 [Category("NotWorking")]\r
3259                 public override void EnumerateMetafile() {\r
3260                         base.EnumerateMetafile ();\r
3261                 }\r
3262 \r
3263                 [Test]\r
3264                 [Category("NotWorking")]\r
3265                 public override void ExcludeClipRegion() {\r
3266                         base.ExcludeClipRegion ();\r
3267                 }\r
3268 \r
3269                 [Test]\r
3270                 [Category("NotWorking")]\r
3271                 public override void FillClosedCurvePointFillModeTension() {\r
3272                         base.FillClosedCurvePointFillModeTension ();\r
3273                 }\r
3274 \r
3275                 [Test]\r
3276                 [Category("NotWorking")]\r
3277                 public override void FillClosedCurvePointFFillModeTension() {\r
3278                         base.FillClosedCurvePointFFillModeTension ();\r
3279                 }\r
3280 \r
3281                 [Test]\r
3282                 [Category("NotWorking")]\r
3283                 public override void FillEllipse() {\r
3284                         base.FillEllipse ();\r
3285                 }\r
3286 \r
3287                 [Test]\r
3288                 [Category("NotWorking")]\r
3289                 public override void FillEllipseFloat() {\r
3290                         base.FillEllipseFloat ();\r
3291                 }\r
3292 \r
3293                 [Test] \r
3294                 [Category("NotWorking")]\r
3295                 public override void FillPathEllipse() {\r
3296                         base.FillPathEllipse ();\r
3297                 }\r
3298 \r
3299                 [Test]\r
3300                 [Category("NotWorking")]\r
3301                 public override void FillPieFloat() {\r
3302                         base.FillPieFloat ();\r
3303                 }\r
3304 \r
3305                 [Test]\r
3306                 [Category("NotWorking")]\r
3307                 public override void FillPolygonPointFillMode() {\r
3308                         base.FillPolygonPointFillMode ();\r
3309                 }\r
3310 \r
3311                 [Test]\r
3312                 [Category("NotWorking")]\r
3313                 public override void FillPolygonPointFFillMode() {\r
3314                         base.FillPolygonPointFFillMode ();\r
3315                 }\r
3316 \r
3317                 [Test]\r
3318                 [Category("NotWorking")]\r
3319                 public override void FillRectangle() {\r
3320                         base.FillRectangle ();\r
3321                 }\r
3322 \r
3323                 [Test]\r
3324                 [Category("NotWorking")]\r
3325                 public override void FillRectangleFloat() {\r
3326                         base.FillRectangleFloat ();\r
3327                 }\r
3328 \r
3329                 [Test] \r
3330                 [Category("NotWorking")]\r
3331                 public override void FillRectanglesRectangle() {\r
3332                         base.FillRectanglesRectangle ();\r
3333                 }\r
3334 \r
3335                 [Test]\r
3336                 [Category("NotWorking")]\r
3337                 public override void FillRectanglesRectangleF() {\r
3338                         base.FillRectanglesRectangleF ();\r
3339                 }\r
3340 \r
3341                 [Test]\r
3342                 [Category("NotWorking")]\r
3343                 public override void FillRegionRectangle() {\r
3344                         base.FillRegionRectangle ();\r
3345                 }\r
3346 \r
3347                 [Test]\r
3348                 [Category("NotWorking")]\r
3349                 public override void FlushTest() {\r
3350                         base.FlushTest ();\r
3351                 }\r
3352 \r
3353                 [Test]\r
3354                 [Category("NotWorking")]\r
3355                 public override void IsVisible4Float() {\r
3356                         base.IsVisible4Float ();\r
3357                 }\r
3358 \r
3359                 [Test]\r
3360                 [Category("NotWorking")]\r
3361                 public override void MeasureCharacterRangesRegions() {\r
3362                         base.MeasureCharacterRangesRegions ();\r
3363                 }\r
3364 \r
3365                 [Test] \r
3366                 [Category("NotWorking")]\r
3367                 public override void MeasureStringSizeFFormatInts() {\r
3368                         base.MeasureStringSizeFFormatInts ();\r
3369                 }\r
3370 \r
3371                 [Test]\r
3372                 [Category("NotWorking")]\r
3373                 public override void MultiplyTransform() {\r
3374                         base.MultiplyTransform ();\r
3375                 }\r
3376 \r
3377                 [Test]\r
3378                 [Category("NotWorking")]\r
3379                 public override void MultiplyTransformMatrixOrder() {\r
3380                         base.MultiplyTransformMatrixOrder ();\r
3381                 }\r
3382 \r
3383                 [Test]\r
3384                 [Category("NotWorking")]\r
3385                 public override void MultiplyTransformMatrixOrder1() {\r
3386                         base.MultiplyTransformMatrixOrder1 ();\r
3387                 }\r
3388 \r
3389                 [Test]\r
3390                 [Category("NotWorking")]\r
3391                 public override void ResetClipIntersectClipRectangleF() {\r
3392                         base.ResetClipIntersectClipRectangleF ();\r
3393                 }\r
3394 \r
3395                 [Test]\r
3396                 [Category("NotWorking")]\r
3397                 public override void SaveRestoreTranslate() {\r
3398                         base.SaveRestoreTranslate ();\r
3399                 }\r
3400 \r
3401                 [Test] \r
3402                 [Category("NotWorking")]\r
3403                 public override void RotateTransformAngleMatrixOrder() {\r
3404                         base.RotateTransformAngleMatrixOrder ();\r
3405                 }\r
3406 \r
3407                 [Test]\r
3408                 [Category("NotWorking")]\r
3409                 public override void RotateTransformAngleMatrixOrder1() {\r
3410                         base.RotateTransformAngleMatrixOrder1 ();\r
3411                 }\r
3412 \r
3413                 [Test]\r
3414                 [Category("NotWorking")]\r
3415                 public override void ScaleTransformFloatMatrixOrder() {\r
3416                         base.ScaleTransformFloatMatrixOrder ();\r
3417                 }\r
3418 \r
3419                 [Test]\r
3420                 [Category("NotWorking")]\r
3421                 public override void ScaleTransformFloatMatrixOrder1() {\r
3422                         base.ScaleTransformFloatMatrixOrder1 ();\r
3423                 }\r
3424 \r
3425                 [Test]\r
3426                 [Category("NotWorking")]\r
3427                 public override void SetClipRegionCombine() {\r
3428                         base.SetClipRegionCombine ();\r
3429                 }\r
3430 \r
3431                 [Test]\r
3432                 [Category("NotWorking")]\r
3433                 public override void TransformPointsPointF() {\r
3434                         base.TransformPointsPointF ();\r
3435                 }\r
3436 \r
3437                 [Test] \r
3438                 [Category("NotWorking")]\r
3439                 public override void TranslateClipFloat() {\r
3440                         base.TranslateClipFloat ();\r
3441                 }\r
3442 \r
3443                 [Test]\r
3444                 [Category("NotWorking")]\r
3445                 public override void TranslateTransformAngleMatrixOrder() {\r
3446                         base.TranslateTransformAngleMatrixOrder ();\r
3447                 }\r
3448 \r
3449                 [Test]\r
3450                 [Category("NotWorking")]\r
3451                 public override void TranslateTransformAngleMatrixOrder1() {\r
3452                         base.TranslateTransformAngleMatrixOrder1 ();\r
3453                 }\r
3454 \r
3455                 [Test]\r
3456                 [Category("NotWorking")]\r
3457                 public override void TransfromPageScaleUnits() {\r
3458                         base.TransfromPageScaleUnits ();\r
3459                 }\r
3460 \r
3461                 [Test]\r
3462                 [Category("NotWorking")]\r
3463                 public override void TransfromPageScaleUnits_2() {\r
3464                         base.TransfromPageScaleUnits_2 ();\r
3465                 }\r
3466 \r
3467                 [Test]\r
3468                 [Category("NotWorking")]\r
3469                 public override void TransfromPageScaleUnits_3() {\r
3470                         base.TransfromPageScaleUnits_3 ();\r
3471                 }\r
3472         }\r
3473 \r
3474         #endregion\r
3475 \r
3476         /// <summary>\r
3477         /// TBD: add more variants\r
3478         /// </summary>\r
3479         #region GraphicsFixturePropSmoothingMode \r
3480 \r
3481         [TestFixture]\r
3482         public class GraphicsFixturePropSmoothingMode : GraphicsFixture {\r
3483                 public override void SetUp() {\r
3484                         base.SetUp ("GraphicsFixturePropSmoothingMode");\r
3485                         t.Graphics.SmoothingMode = SmoothingMode.AntiAlias;\r
3486 \r
3487                         st["DrawArcTest:4"] = TOLERANCE * 3.0f;\r
3488                         st["DrawLineTest:2"] = TOLERANCE * 3.0f;\r
3489                         st["DrawLineTest:4"] = TOLERANCE * 3.0f; // difference in line width even in horizontal lines\r
3490                         st["DrawLineTestF:2"] = TOLERANCE * 3.0f;\r
3491                         st["DrawLineTestF:4"] = TOLERANCE * 3.0f;\r
3492                         st["DrawPieTest:2"] = TOLERANCE * 1.5f;\r
3493                         st["DrawPieTestF:2"] = TOLERANCE * 1.5f;\r
3494                         st["DrawPieTest:4"] = TOLERANCE * 1.5f;\r
3495                         st["DrawPieTestF:4"] = TOLERANCE * 1.5f;\r
3496                         st["DrawRectangleFloat:2"] = TOLERANCE * 3.0f; // big difference in line width\r
3497                         st["DrawRectangleFloat:4"] = TOLERANCE * 3.0f; // big difference in line width\r
3498                         st["DrawRectangleFloat:6"] = TOLERANCE * 3.0f;\r
3499                         st["DrawRectanglesRectangle:2"] = TOLERANCE * 3.0f;\r
3500                         st["DrawRectanglesRectangleF:2"] = TOLERANCE * 3.0f;\r
3501                 }\r
3502 \r
3503                 [Test]\r
3504                 [Category("NotWorking")]\r
3505                 public override void DrawIconTest() {\r
3506                         base.DrawIconTest ();\r
3507                 }\r
3508 \r
3509                 [Test]\r
3510                 [Category("NotWorking")]\r
3511                 public override void DrawIconUnstretchedTest() {\r
3512                         base.DrawIconUnstretchedTest ();\r
3513                 }\r
3514 \r
3515                 [Test]\r
3516                 [Category("NotWorking")]\r
3517                 public override void DrawImageUnscaledTest() {\r
3518                         base.DrawImageUnscaledTest ();\r
3519                 }\r
3520 \r
3521                 [Test]\r
3522                 [Category("NotWorking")]\r
3523                 public override void DrawStringFloatFormat() {\r
3524                         base.DrawStringFloatFormat ();\r
3525                 }\r
3526 \r
3527                 [Test]\r
3528                 [Category("NotWorking")]\r
3529                 public override void MeasureCharacterRangesRegions() {\r
3530                         base.MeasureCharacterRangesRegions ();\r
3531                 }\r
3532 \r
3533                 [Test] \r
3534                 [Category("NotWorking")]\r
3535                 public override void MeasureStringSizeFFormatInts() {\r
3536                         base.MeasureStringSizeFFormatInts ();\r
3537                 }\r
3538         }\r
3539 \r
3540         [TestFixture]\r
3541         public class GraphicsFixturePropSmoothingMode1 : GraphicsFixture {\r
3542                 public override void SetUp() {\r
3543                         base.SetUp ("GraphicsFixturePropSmoothingMode1");\r
3544                         t.Graphics.SmoothingMode = SmoothingMode.HighSpeed;\r
3545                 }\r
3546 \r
3547                 [Test]\r
3548                 [Category("NotWorking")]\r
3549                 public override void DrawIconTest() {\r
3550                         base.DrawIconTest ();\r
3551                 }\r
3552 \r
3553                 [Test]\r
3554                 [Category("NotWorking")]\r
3555                 public override void DrawIconUnstretchedTest() {\r
3556                         base.DrawIconUnstretchedTest ();\r
3557                 }\r
3558 \r
3559                 [Test]\r
3560                 [Category("NotWorking")]\r
3561                 public override void DrawImageUnscaledTest() {\r
3562                         base.DrawImageUnscaledTest ();\r
3563                 }\r
3564 \r
3565                 [Test]\r
3566                 [Category("NotWorking")]\r
3567                 public override void DrawStringFloatFormat() {\r
3568                         base.DrawStringFloatFormat ();\r
3569                 }\r
3570 \r
3571                 [Test]\r
3572                 [Category("NotWorking")]\r
3573                 public override void MeasureCharacterRangesRegions() {\r
3574                         base.MeasureCharacterRangesRegions ();\r
3575                 }\r
3576 \r
3577                 [Test] \r
3578                 [Category("NotWorking")]\r
3579                 public override void MeasureStringSizeFFormatInts() {\r
3580                         base.MeasureStringSizeFFormatInts ();\r
3581                 }\r
3582         }\r
3583 \r
3584         #endregion\r
3585 \r
3586         #region GraphicsFixturePropTextContrast\r
3587 \r
3588         [TestFixture]\r
3589         public class GraphicsFixturePropTextContrast : GraphicsFixture {\r
3590                 public override void SetUp() {\r
3591                         base.SetUp ("GraphicsFixturePropTextContrast");\r
3592                         t.Graphics.TextContrast = 9;\r
3593                 }\r
3594 \r
3595                 [Test]\r
3596                 [Category("NotWorking")]\r
3597                 public override void DrawIconTest() {\r
3598                         base.DrawIconTest ();\r
3599                 }\r
3600 \r
3601                 [Test]\r
3602                 [Category("NotWorking")]\r
3603                 public override void DrawIconUnstretchedTest() {\r
3604                         base.DrawIconUnstretchedTest ();\r
3605                 }\r
3606 \r
3607                 [Test]\r
3608                 [Category("NotWorking")]\r
3609                 public override void DrawImageUnscaledTest() {\r
3610                         base.DrawImageUnscaledTest ();\r
3611                 }\r
3612 \r
3613                 [Test]\r
3614                 [Category("NotWorking")]\r
3615                 public override void DrawStringFloatFormat() {\r
3616                         base.DrawStringFloatFormat ();\r
3617                 }\r
3618 \r
3619                 [Test]\r
3620                 [Category("NotWorking")]\r
3621                 public override void MeasureCharacterRangesRegions() {\r
3622                         base.MeasureCharacterRangesRegions ();\r
3623                 }\r
3624 \r
3625                 [Test] \r
3626                 [Category("NotWorking")]\r
3627                 public override void MeasureStringSizeFFormatInts() {\r
3628                         base.MeasureStringSizeFFormatInts ();\r
3629                 }\r
3630         }\r
3631 \r
3632         #endregion\r
3633 \r
3634         #region GraphicsFixtureGraphicsState\r
3635 \r
3636         [TestFixture]\r
3637         public class GraphicsFixtureGraphicsState {\r
3638                 protected DrawingTest t;\r
3639                 protected int TOLERANCE = 3; //in %;\r
3640 \r
3641                 [SetUp]\r
3642                 public virtual void SetUp() {\r
3643                         t = DrawingTest.Create(512, 512, "GraphicsFixtureGraphicsState");\r
3644                 }\r
3645 \r
3646                 [TearDown]\r
3647                 public void TearDown ()\r
3648                 {\r
3649                         if (t != null)\r
3650                                 t.Dispose ();\r
3651                 }\r
3652 \r
3653                 [Test]\r
3654                 public void BeginEndContainer() {\r
3655                         t.Graphics.FillRectangle( Brushes.Blue, 0, 0, 100, 100 );\r
3656 \r
3657                         GraphicsContainer c1 = t.Graphics.BeginContainer( \r
3658                                 new Rectangle(100, 100, 100, 100), \r
3659                                 new Rectangle(0, 0, 100, 100), \r
3660                                 GraphicsUnit.Pixel);\r
3661 \r
3662                         t.Graphics.FillRectangle( Brushes.Green, 0, 0, 100, 100 );\r
3663 \r
3664                         GraphicsContainer c2 = t.Graphics.BeginContainer( \r
3665                                 new Rectangle(100, 100, 100, 100), \r
3666                                 new Rectangle(0, 0, 100, 100), \r
3667                                 GraphicsUnit.Pixel);\r
3668 \r
3669                         t.Graphics.FillRectangle( Brushes.Red, 0, 0, 100, 100 );\r
3670 \r
3671                         GraphicsState s1 = t.Graphics.Save();\r
3672                         t.Graphics.PageUnit = GraphicsUnit.Pixel;\r
3673 \r
3674                         t.Graphics.PageScale = 0.7f;\r
3675                         t.Graphics.FillRectangle( Brushes.SeaGreen, 0, 0, 100, 100 );\r
3676 \r
3677                         t.Graphics.EndContainer(c2);\r
3678                         t.Graphics.PageScale = 0.7f;\r
3679                         t.Graphics.FillRectangle( Brushes.SeaGreen, 0, 0, 100, 100 );\r
3680 \r
3681                         t.Graphics.EndContainer(c1);\r
3682                         t.Graphics.PageScale = 0.7f;\r
3683                         t.Graphics.FillRectangle( Brushes.SeaGreen, 0, 0, 100, 100 );\r
3684 \r
3685                         t.Show();\r
3686                         Assert.IsTrue(t.PDCompare());\r
3687                 }\r
3688 \r
3689                 [Test]\r
3690                 public void SaveRestoreGraphicsProps() {\r
3691                         t.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;\r
3692                         t.Graphics.CompositingMode = CompositingMode.SourceCopy;\r
3693                         t.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;\r
3694                         t.Graphics.PageScale = 7;\r
3695                         t.Graphics.PageUnit = GraphicsUnit.Inch;\r
3696                         t.Graphics.PixelOffsetMode = PixelOffsetMode.Half;\r
3697                         t.Graphics.SmoothingMode = SmoothingMode.AntiAlias;\r
3698                         t.Graphics.Transform = new Matrix(1, 2, 3, 4, 5, 6);\r
3699                         t.Graphics.TextContrast = 10;\r
3700                         t.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;\r
3701 \r
3702                         GraphicsContainer c1 = t.Graphics.BeginContainer();\r
3703 \r
3704                         Assert.AreEqual(CompositingQuality.Default, t.Graphics.CompositingQuality);\r
3705                         Assert.AreEqual(CompositingMode.SourceOver, t.Graphics.CompositingMode);\r
3706                         Assert.AreEqual(InterpolationMode.Bilinear, t.Graphics.InterpolationMode);\r
3707                         Assert.AreEqual(1.0F, t.Graphics.PageScale);\r
3708                         Assert.AreEqual(GraphicsUnit.Display, t.Graphics.PageUnit);\r
3709                         Assert.AreEqual(PixelOffsetMode.Default, t.Graphics.PixelOffsetMode);\r
3710                         Assert.AreEqual(SmoothingMode.None, t.Graphics.SmoothingMode);\r
3711                         Assert.AreEqual(true, t.Graphics.Transform.IsIdentity);\r
3712                         Assert.AreEqual(4.0f, t.Graphics.TextContrast);\r
3713                         Assert.AreEqual(TextRenderingHint.SystemDefault, t.Graphics.TextRenderingHint);\r
3714 \r
3715                         t.Graphics.EndContainer(c1);\r
3716                 }\r
3717                 [Test]\r
3718                 public void SaveRestoreGraphicsProps_2() {\r
3719                         GraphicsState s = t.Graphics.Save();\r
3720 \r
3721                         t.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;\r
3722                         t.Graphics.CompositingMode = CompositingMode.SourceCopy;\r
3723                         t.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;\r
3724                         t.Graphics.PageScale = 7;\r
3725                         t.Graphics.PageUnit = GraphicsUnit.Inch;\r
3726                         t.Graphics.PixelOffsetMode = PixelOffsetMode.Half;\r
3727                         t.Graphics.SmoothingMode = SmoothingMode.AntiAlias;\r
3728                         t.Graphics.Transform = new Matrix(1, 2, 3, 4, 5, 6);\r
3729                         t.Graphics.TextContrast = 10;\r
3730                         t.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;\r
3731 \r
3732                         t.Graphics.Restore(s);\r
3733 \r
3734                         Assert.AreEqual(CompositingQuality.Default, t.Graphics.CompositingQuality);\r
3735                         Assert.AreEqual(CompositingMode.SourceOver, t.Graphics.CompositingMode);\r
3736                         Assert.AreEqual(InterpolationMode.Bilinear, t.Graphics.InterpolationMode);\r
3737                         Assert.AreEqual(1.0F, t.Graphics.PageScale);\r
3738                         Assert.AreEqual(GraphicsUnit.Display, t.Graphics.PageUnit);\r
3739                         Assert.AreEqual(PixelOffsetMode.Default, t.Graphics.PixelOffsetMode);\r
3740                         Assert.AreEqual(SmoothingMode.None, t.Graphics.SmoothingMode);\r
3741                         Assert.AreEqual(true, t.Graphics.Transform.IsIdentity);\r
3742                         Assert.AreEqual(4.0f, t.Graphics.TextContrast);\r
3743                         Assert.AreEqual(TextRenderingHint.SystemDefault, t.Graphics.TextRenderingHint);\r
3744                 }\r
3745 \r
3746                 [Test]\r
3747                 public void SaveRestoreGraphicsProps_3() {\r
3748                         t.Graphics.PageScale = 2;\r
3749                         GraphicsContainer c1 = t.Graphics.BeginContainer();\r
3750 \r
3751                         t.Graphics.PageScale = 3;\r
3752                         GraphicsContainer c2 = t.Graphics.BeginContainer();\r
3753 \r
3754                         t.Graphics.PageScale = 4;\r
3755                         GraphicsContainer c3 = t.Graphics.BeginContainer();\r
3756 \r
3757                         t.Graphics.EndContainer(c2);\r
3758                         Assert.AreEqual(3, t.Graphics.PageScale);\r
3759 \r
3760                         t.Graphics.PageScale = 5;\r
3761                         GraphicsState c5 = t.Graphics.Save();\r
3762 \r
3763                         t.Graphics.EndContainer(c3);\r
3764                         Assert.AreEqual(5, t.Graphics.PageScale);\r
3765 \r
3766                         t.Graphics.Restore(c5);\r
3767                         Assert.AreEqual(5, t.Graphics.PageScale);\r
3768 \r
3769                         t.Graphics.EndContainer(c1);\r
3770                         Assert.AreEqual(2, t.Graphics.PageScale);\r
3771                 }\r
3772                 [Test]\r
3773                 public void SaveRestoreGraphicsProps_4() {\r
3774                         t.Graphics.PageScale = 2;\r
3775                         GraphicsContainer c1 = t.Graphics.BeginContainer();\r
3776 \r
3777                         t.Graphics.PageScale = 3;\r
3778                         GraphicsState c2 = t.Graphics.Save();\r
3779 \r
3780                         t.Graphics.EndContainer(c1);\r
3781                         Assert.AreEqual(2, t.Graphics.PageScale);\r
3782 \r
3783                         t.Graphics.Restore(c2);\r
3784                         Assert.AreEqual(2, t.Graphics.PageScale);\r
3785                 }\r
3786         }\r
3787         #endregion\r
3788 \r
3789         #region GraphicsFixturePropTextRenderingHint\r
3790 \r
3791         [TestFixture]\r
3792         public class GraphicsFixturePropTextRenderingHint : GraphicsFixture {\r
3793                 public override void SetUp() {\r
3794                         base.SetUp ("GraphicsFixturePropTextRenderingHint");\r
3795                         t.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;\r
3796                 }\r
3797 \r
3798                 [Test]\r
3799                 [Category("NotWorking")]\r
3800                 public override void DrawIconTest() {\r
3801                         base.DrawIconTest ();\r
3802                 }\r
3803 \r
3804                 [Test]\r
3805                 [Category("NotWorking")]\r
3806                 public override void DrawIconUnstretchedTest() {\r
3807                         base.DrawIconUnstretchedTest ();\r
3808                 }\r
3809 \r
3810                 [Test]\r
3811                 [Category("NotWorking")]\r
3812                 public override void DrawImageUnscaledTest() {\r
3813                         base.DrawImageUnscaledTest ();\r
3814                 }\r
3815 \r
3816                 [Test]\r
3817                 [Category("NotWorking")]\r
3818                 public override void DrawStringFloatFormat() {\r
3819                         base.DrawStringFloatFormat ();\r
3820                 }\r
3821 \r
3822                 [Test]\r
3823                 [Category("NotWorking")]\r
3824                 public override void MeasureCharacterRangesRegions() {\r
3825                         base.MeasureCharacterRangesRegions ();\r
3826                 }\r
3827 \r
3828                 [Test] \r
3829                 [Category("NotWorking")]\r
3830                 public override void MeasureStringSizeFFormatInts() {\r
3831                         base.MeasureStringSizeFFormatInts ();\r
3832                 }\r
3833         }\r
3834 \r
3835         [TestFixture]\r
3836         public class GraphicsFixturePropTextRenderingHint1 : GraphicsFixture {\r
3837                 public override void SetUp() {\r
3838                         base.SetUp ("GraphicsFixturePropTextRenderingHint1");\r
3839                         t.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;\r
3840                 }\r
3841 \r
3842                 [Test]\r
3843                 [Category("NotWorking")]\r
3844                 public override void DrawIconTest() {\r
3845                         base.DrawIconTest ();\r
3846                 }\r
3847 \r
3848                 [Test]\r
3849                 [Category("NotWorking")]\r
3850                 public override void DrawIconUnstretchedTest() {\r
3851                         base.DrawIconUnstretchedTest ();\r
3852                 }\r
3853 \r
3854                 [Test]\r
3855                 [Category("NotWorking")]\r
3856                 public override void DrawImageUnscaledTest() {\r
3857                         base.DrawImageUnscaledTest ();\r
3858                 }\r
3859 \r
3860                 [Test]\r
3861                 [Category("NotWorking")]\r
3862                 public override void DrawStringFloatFormat() {\r
3863                         base.DrawStringFloatFormat ();\r
3864                 }\r
3865 \r
3866                 [Test]\r
3867                 [Category("NotWorking")]\r
3868                 public override void MeasureCharacterRangesRegions() {\r
3869                         base.MeasureCharacterRangesRegions ();\r
3870                 }\r
3871 \r
3872                 [Test] \r
3873                 [Category("NotWorking")]\r
3874                 public override void MeasureStringSizeFFormatInts() {\r
3875                         base.MeasureStringSizeFFormatInts ();\r
3876                 }\r
3877         }\r
3878 \r
3879         [TestFixture]\r
3880         public class GraphicsFixturePropTextRenderingHint2 : GraphicsFixture {\r
3881                 public override void SetUp() {\r
3882                         base.SetUp ("GraphicsFixturePropTextRenderingHint2");\r
3883                         t.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;\r
3884                 }\r
3885 \r
3886                 [Test]\r
3887                 [Category("NotWorking")]\r
3888                 public override void DrawIconTest() {\r
3889                         base.DrawIconTest ();\r
3890                 }\r
3891 \r
3892                 [Test]\r
3893                 [Category("NotWorking")]\r
3894                 public override void DrawIconUnstretchedTest() {\r
3895                         base.DrawIconUnstretchedTest ();\r
3896                 }\r
3897 \r
3898                 [Test]\r
3899                 [Category("NotWorking")]\r
3900                 public override void DrawImageUnscaledTest() {\r
3901                         base.DrawImageUnscaledTest ();\r
3902                 }\r
3903 \r
3904                 [Test]\r
3905                 [Category("NotWorking")]\r
3906                 public override void DrawStringFloatFormat() {\r
3907                         base.DrawStringFloatFormat ();\r
3908                 }\r
3909 \r
3910                 [Test]\r
3911                 [Category("NotWorking")]\r
3912                 public override void MeasureCharacterRangesRegions() {\r
3913                         base.MeasureCharacterRangesRegions ();\r
3914                 }\r
3915 \r
3916                 [Test] \r
3917                 [Category("NotWorking")]\r
3918                 public override void MeasureStringSizeFFormatInts() {\r
3919                         base.MeasureStringSizeFFormatInts ();\r
3920                 }\r
3921         }\r
3922 \r
3923         [TestFixture]\r
3924         public class GraphicsFixturePropTextRenderingHint3 : GraphicsFixture {\r
3925                 public override void SetUp() {\r
3926                         base.SetUp ("GraphicsFixturePropTextRenderingHint3");\r
3927                         t.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;\r
3928                 }\r
3929 \r
3930                 [Test]\r
3931                 [Category("NotWorking")]\r
3932                 public override void DrawIconTest() {\r
3933                         base.DrawIconTest ();\r
3934                 }\r
3935 \r
3936                 [Test]\r
3937                 [Category("NotWorking")]\r
3938                 public override void DrawIconUnstretchedTest() {\r
3939                         base.DrawIconUnstretchedTest ();\r
3940                 }\r
3941 \r
3942                 [Test]\r
3943                 [Category("NotWorking")]\r
3944                 public override void DrawImageUnscaledTest() {\r
3945                         base.DrawImageUnscaledTest ();\r
3946                 }\r
3947 \r
3948                 [Test]\r
3949                 [Category("NotWorking")]\r
3950                 public override void DrawStringFloatFormat() {\r
3951                         base.DrawStringFloatFormat ();\r
3952                 }\r
3953 \r
3954                 [Test]\r
3955                 [Category("NotWorking")]\r
3956                 public override void MeasureCharacterRangesRegions() {\r
3957                         base.MeasureCharacterRangesRegions ();\r
3958                 }\r
3959 \r
3960                 [Test] \r
3961                 [Category("NotWorking")]\r
3962                 public override void MeasureStringSizeFFormatInts() {\r
3963                         base.MeasureStringSizeFFormatInts ();\r
3964                 }\r
3965         }\r
3966 \r
3967         [TestFixture]\r
3968         public class GraphicsFixturePropTextRenderingHint4 : GraphicsFixture {\r
3969                 public override void SetUp() {\r
3970                         base.SetUp ("GraphicsFixturePropTextRenderingHint4");\r
3971                         t.Graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit;\r
3972                 }\r
3973 \r
3974                 [Test]\r
3975                 [Category("NotWorking")]\r
3976                 public override void DrawIconTest() {\r
3977                         base.DrawIconTest ();\r
3978                 }\r
3979 \r
3980                 [Test]\r
3981                 [Category("NotWorking")]\r
3982                 public override void DrawIconUnstretchedTest() {\r
3983                         base.DrawIconUnstretchedTest ();\r
3984                 }\r
3985 \r
3986                 [Test]\r
3987                 [Category("NotWorking")]\r
3988                 public override void DrawImageUnscaledTest() {\r
3989                         base.DrawImageUnscaledTest ();\r
3990                 }\r
3991 \r
3992                 [Test]\r
3993                 [Category("NotWorking")]\r
3994                 public override void DrawStringFloatFormat() {\r
3995                         base.DrawStringFloatFormat ();\r
3996                 }\r
3997 \r
3998                 [Test]\r
3999                 [Category("NotWorking")]\r
4000                 public override void MeasureCharacterRangesRegions() {\r
4001                         base.MeasureCharacterRangesRegions ();\r
4002                 }\r
4003 \r
4004                 [Test] \r
4005                 [Category("NotWorking")]\r
4006                 public override void MeasureStringSizeFFormatInts() {\r
4007                         base.MeasureStringSizeFFormatInts ();\r
4008                 }\r
4009         }\r
4010 \r
4011         [TestFixture]\r
4012         public class GraphicsFixturePropTextRenderingHint5 : GraphicsFixture {\r
4013                 public override void SetUp() {\r
4014                         base.SetUp ("GraphicsFixturePropTextRenderingHint5");\r
4015                         t.Graphics.TextRenderingHint = TextRenderingHint.SystemDefault;\r
4016                 }\r
4017 \r
4018                 [Test]\r
4019                 [Category("NotWorking")]\r
4020                 public override void DrawIconTest() {\r
4021                         base.DrawIconTest ();\r
4022                 }\r
4023 \r
4024                 [Test]\r
4025                 [Category("NotWorking")]\r
4026                 public override void DrawIconUnstretchedTest() {\r
4027                         base.DrawIconUnstretchedTest ();\r
4028                 }\r
4029 \r
4030                 [Test]\r
4031                 [Category("NotWorking")]\r
4032                 public override void DrawImageUnscaledTest() {\r
4033                         base.DrawImageUnscaledTest ();\r
4034                 }\r
4035 \r
4036                 [Test]\r
4037                 [Category("NotWorking")]\r
4038                 public override void DrawStringFloatFormat() {\r
4039                         base.DrawStringFloatFormat ();\r
4040                 }\r
4041 \r
4042                 [Test]\r
4043                 [Category("NotWorking")]\r
4044                 public override void MeasureCharacterRangesRegions() {\r
4045                         base.MeasureCharacterRangesRegions ();\r
4046                 }\r
4047 \r
4048                 [Test] \r
4049                 [Category("NotWorking")]\r
4050                 public override void MeasureStringSizeFFormatInts() {\r
4051                         base.MeasureStringSizeFFormatInts ();\r
4052                 }\r
4053         }\r
4054 \r
4055         #endregion\r
4056 \r
4057         #region GraphicsFixturePropTransform\r
4058 \r
4059         [TestFixture]\r
4060         public class GraphicsFixturePropTransform : GraphicsFixture {\r
4061                 public override void SetUp() {\r
4062                         base.SetUp ("GraphicsFixturePropTransform");\r
4063                         t.Graphics.Transform = new Matrix(0, 1, 2, 0, 0, 0);\r
4064 \r
4065                         st["DrawArcTest:2"] = TOLERANCE * 11.0f; // FIXME: Transfrom is ok, but very big difference in width\r
4066                         st["DrawArcTest:4"] = TOLERANCE * 12.0f; // FIXME: Transfrom is ok, but very big difference in width\r
4067                         st["DrawArcTest:6"] = TOLERANCE * 12.0f; // FIXME: Transfrom is ok, but very big difference in width\r
4068                         st["DrawArcTest:8"] = TOLERANCE * 10.0f; // FIXME: Transfrom is ok, but very big difference in width\r
4069                         st["DrawClosedCurveTest:4"] = TOLERANCE * 2.0f;\r
4070                         st["RotateTransformAngleMatrixOrder:2"] = TOLERANCE * 1.5f;\r
4071                         st["TransformPointsPointF:2"] = TOLERANCE * 3.5f;\r
4072                 }\r
4073 \r
4074                 [Test]\r
4075                 [Category("NotWorking")]\r
4076                 public override void DrawIconTest() {\r
4077                         base.DrawIconTest ();\r
4078                 }\r
4079 \r
4080                 [Test]\r
4081                 [Category("NotWorking")]\r
4082                 public override void DrawIconUnstretchedTest() {\r
4083                         base.DrawIconUnstretchedTest ();\r
4084                 }\r
4085 \r
4086                 [Test]\r
4087                 [Category("NotWorking")]\r
4088                 public override void DrawImageUnscaledTest() {\r
4089                         base.DrawImageUnscaledTest ();\r
4090                 }\r
4091 \r
4092                 [Test]\r
4093                 [Category("NotWorking")]\r
4094                 public override void DrawStringFloatFormat() {\r
4095                         base.DrawStringFloatFormat ();\r
4096                 }\r
4097 \r
4098                 [Test]\r
4099                 [Category("NotWorking")]\r
4100                 public override void MeasureCharacterRangesRegions() {\r
4101                         base.MeasureCharacterRangesRegions ();\r
4102                 }\r
4103 \r
4104                 [Test] \r
4105                 [Category("NotWorking")]\r
4106                 public override void MeasureStringSizeFFormatInts() {\r
4107                         base.MeasureStringSizeFFormatInts ();\r
4108                 }\r
4109         }\r
4110 \r
4111         #endregion\r
4112 \r
4113 }\r