* TestHatchBrush.cs: Added a test case for HatchBrush.cs.
authorRavindra <ravindra@mono-cvs.ximian.com>
Tue, 18 May 2004 06:09:33 +0000 (06:09 -0000)
committerRavindra <ravindra@mono-cvs.ximian.com>
Tue, 18 May 2004 06:09:33 +0000 (06:09 -0000)
* TestBlend.cs: dos2unix format and namespace changed to
MonoTests.System.Drawing.Drawing2D.
* TestColorBlend.cs: dos2unix format and namespace changed to
MonoTests.System.Drawing.Drawing2D.

svn path=/trunk/mcs/; revision=27566

mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/ChangeLog
mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/TestBlend.cs
mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/TestColorBlend.cs
mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/TestHatchBrush.cs [new file with mode: 0644]

index e99364de7372ada19742ffdc8f13aa86b5052211..2c2ee2aa329cdc83e11e1b291f88aab2cbfbd0ef 100644 (file)
@@ -1,4 +1,13 @@
+2004-05-18  Ravindra  <rkumar@novell.com>
+
+       * TestHatchBrush.cs: Added a test case for HatchBrush.cs.
+       * TestBlend.cs: dos2unix format and namespace changed to
+       MonoTests.System.Drawing.Drawing2D.
+       * TestColorBlend.cs: dos2unix format and namespace changed to
+       MonoTests.System.Drawing.Drawing2D.
+
 2004-03-17  Ravindra  <rkumar@novell.com>
+
        * TestBlend.cs: Added.
        * TestColorBlend.cs: Added.
 
index 8820ebfe08b5da5273e523e05d3373ee10a9c9de..cde48dbf1caf1be6762478641b4300aeb54d636b 100644 (file)
@@ -1,18 +1,18 @@
-//\r
-// Tests for System.Drawing.Drawing2D.Blend.cs\r
-//\r
-// Author:\r
-//   Ravindra (rkumar@novell.com)\r
-//\r
-// Copyright (C) 2004 Novell, Inc. http://www.novell.com\r
 //
-\r
-using NUnit.Framework;\r
-using System;\r
-using System.Drawing;\r
-using System.Drawing.Drawing2D;\r
+// Tests for System.Drawing.Drawing2D.Blend.cs
+//
+// Author:
+//   Ravindra (rkumar@novell.com)
+//
+// Copyright (C) 2004 Novell, Inc. http://www.novell.com
+//
+
+using NUnit.Framework;
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
 
-namespace MonoTests.System.Drawing
+namespace MonoTests.System.Drawing.Drawing2D
 {
        [TestFixture]
        public class BlendTest : Assertion
@@ -47,10 +47,10 @@ namespace MonoTests.System.Drawing
                        AssertEquals ("P#2", 0, blend0.Positions[0]);
 
                        Blend blend1 = new Blend (1);
-                       float[] positions = {0.0F, 0.5F, 1.0F};\r
-                       float[] factors = {0.0F, 0.5F, 1.0F};\r
-                       blend1.Factors = factors;\r
-                       blend1.Positions = positions;\r
+                       float[] positions = {0.0F, 0.5F, 1.0F};
+                       float[] factors = {0.0F, 0.5F, 1.0F};
+                       blend1.Factors = factors;
+                       blend1.Positions = positions;
 
                        AssertEquals ("P#3", factors[0], blend1.Factors[0]);
                        AssertEquals ("P#4", factors[1], blend1.Factors[1]);
@@ -59,5 +59,5 @@ namespace MonoTests.System.Drawing
                        AssertEquals ("P#7", positions[1], blend1.Positions[1]);
                        AssertEquals ("P#8", positions[2], blend1.Positions[2]);
                }
-       }\r
+       }
 }
index 9fefb80ea33bb2b185ed35868bca06db506731e8..c17a455e5422bf140c217e7394427787e7c4225e 100644 (file)
@@ -1,18 +1,18 @@
-//\r
-// Tests for System.Drawing.Drawing2D.ColorBlend.cs\r
-//\r
-// Author:\r
-//   Ravindra (rkumar@novell.com)\r
-//\r
-// Copyright (C) 2004 Novell, Inc. http://www.novell.com\r
 //
-\r
-using NUnit.Framework;\r
-using System;\r
-using System.Drawing;\r
-using System.Drawing.Drawing2D;\r
+// Tests for System.Drawing.Drawing2D.ColorBlend.cs
+//
+// Author:
+//   Ravindra (rkumar@novell.com)
+//
+// Copyright (C) 2004 Novell, Inc. http://www.novell.com
+//
+
+using NUnit.Framework;
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
 
-namespace MonoTests.System.Drawing 
+namespace MonoTests.System.Drawing.Drawing2D 
 {
        [TestFixture]   
        public class ColorBlendTest : Assertion
@@ -47,10 +47,10 @@ namespace MonoTests.System.Drawing
                        AssertEquals ("P#2", 0, cb0.Positions[0]);
 
                        ColorBlend cb1 = new ColorBlend (1);
-                       float[] positions = {0.0F, 0.5F, 1.0F};\r
-                       Color[] colors = {Color.Red, Color.White, Color.Black};\r
-                       cb1.Colors = colors;\r
-                       cb1.Positions = positions;\r
+                       float[] positions = {0.0F, 0.5F, 1.0F};
+                       Color[] colors = {Color.Red, Color.White, Color.Black};
+                       cb1.Colors = colors;
+                       cb1.Positions = positions;
 
                        AssertEquals ("P#3", colors[0], cb1.Colors[0]);
                        AssertEquals ("P#4", colors[1], cb1.Colors[1]);
@@ -59,5 +59,5 @@ namespace MonoTests.System.Drawing
                        AssertEquals ("P#7", positions[1], cb1.Positions[1]);
                        AssertEquals ("P#8", positions[2], cb1.Positions[2]);
                }
-       }\r
+       }
 }
diff --git a/mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/TestHatchBrush.cs b/mcs/class/System.Drawing/Test/System.Drawing.Drawing2D/TestHatchBrush.cs
new file mode 100644 (file)
index 0000000..29a403a
--- /dev/null
@@ -0,0 +1,426 @@
+//
+// System.Drawing.Drawing2D.TestHatchBrush.cs 
+//
+// Author:
+//     Ravindra (rkumar@novell.com)
+//
+// Copyright (C) 2004 Novell, Inc. http://www.novell.com
+//
+
+using System;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.Drawing.Drawing2D;
+using NUnit.Framework;
+
+namespace MonoTests.System.Drawing.Drawing2D
+{
+       [TestFixture]   
+       public class HatchBrushTest : Assertion
+       {
+               Graphics gr;
+               Bitmap bmp;
+               Font font;
+               Color bgColor;  // background color
+               Color fgColor;  // foreground color
+               int currentTop; // the location for next drawing operation
+               int spacing;    // space between two consecutive drawing operations
+               int fontSize;   // text size
+               int textStart;  // text starting location
+               int lineStart;  // line starting location
+               int length;     // length of the line
+               int penWidth;   // width of the Pen used to draw lines
+
+               [SetUp]
+               public void GetReady () { }
+               
+               [TearDown]
+               public void Clear () { }
+
+               public HatchBrushTest ()
+               {
+                       fontSize = 16;
+                       textStart = 10;
+                       lineStart = 200;
+                       length = 400;
+                       penWidth = 50;
+                       currentTop = 0;
+                       spacing = 50;
+
+                       bgColor = Color.Yellow;
+                       fgColor = Color.Red;
+               }
+                       
+               [Test]
+               public void TestProperties () 
+               {
+                       HatchBrush hbr = new HatchBrush(HatchStyle.SolidDiamond, fgColor);
+
+                       AssertEquals ("Props#1", hbr.HatchStyle, HatchStyle.SolidDiamond);
+                       AssertEquals ("Props#2", hbr.ForegroundColor.ToArgb(), fgColor.ToArgb());
+                       AssertEquals ("Props#3", hbr.BackgroundColor.ToArgb(), Color.Black.ToArgb());
+
+                       hbr = new HatchBrush(HatchStyle.Cross, fgColor, bgColor);
+
+                       AssertEquals ("Props#4", hbr.HatchStyle, HatchStyle.Cross);
+                       AssertEquals ("Props#5", hbr.ForegroundColor.ToArgb(), fgColor.ToArgb());
+                       AssertEquals ("Props#6", hbr.BackgroundColor.ToArgb(), bgColor.ToArgb());
+               }
+               
+               [Test]
+               public void TestClone ()
+               {
+                       HatchBrush hbr = new HatchBrush(HatchStyle.Cross, fgColor, bgColor);
+
+                       HatchBrush clone = (HatchBrush) hbr.Clone ();
+
+                       AssertEquals ("Clone#1", hbr.HatchStyle, clone.HatchStyle);
+                       AssertEquals ("Clone#2", hbr.ForegroundColor, clone.ForegroundColor);
+                       AssertEquals ("Clone#3", hbr.BackgroundColor, clone.BackgroundColor);
+               }
+
+               [Test]
+               public void TestDrawing ()
+               {
+                       // create a bitmap with big enough dimensions 
+                       // to accomodate all the tests
+                       bmp = new Bitmap (700, 4000); // width, height
+                       gr = Graphics.FromImage (bmp);
+                       font = new Font (new FontFamily ("Arial"), fontSize);
+
+                        // make the background white
+                        gr.Clear (Color.White);
+
+                       // draw figures using hatch brush constructed
+                       // using different constructors
+                       Constructors ();
+
+                       // draw figures using different hatchstyles
+                       HatchStyles ();
+
+                       // save the drawing
+                       string file = getDir () + "TestHatchBrush.png";
+                       bmp.Save (file, ImageFormat.Png);
+               }
+
+               private void Constructors ()
+               {
+                       int top = currentTop;
+                       SolidBrush br = new SolidBrush (Color.Black);
+
+                       top += spacing;
+
+                       gr.DrawString ("Test Constructors", font, br, textStart, top);
+
+                       // #1
+                       top += spacing;
+                       gr.DrawString ("Test #1 Horizontal, BackgroundColor=Black, ForegroundColor=White", font, br, textStart, top);
+
+                       top += spacing;
+                       Pen pen = new Pen (new HatchBrush (HatchStyle.Horizontal, Color.White), penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #2
+                       top += spacing;
+                       gr.DrawString ("Test #2 Vertical, BackgroundColor=Blue, ForegroundColor=Red", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen = new Pen (new HatchBrush (HatchStyle.Vertical, Color.Red, Color.Blue), penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       currentTop = top;
+               }
+
+               private void HatchStyles ()
+               {
+                       int top = currentTop;
+                       HatchBrush hbr;
+                       Pen pen;
+                       SolidBrush br = new SolidBrush (Color.Black);
+
+                       top += spacing;
+
+                       gr.DrawString ("Test HatchStyles", font, br, textStart, top);
+
+                       // #1
+                       top += spacing;
+                       gr.DrawString ("Test #1 Horizontal", font, br, textStart, top);
+
+                       top += spacing;
+                       hbr = new HatchBrush (HatchStyle.Horizontal, fgColor, bgColor);
+                       pen = new Pen (hbr, penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #2
+                       top += spacing;
+                       gr.DrawString ("Test #2 Min", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.Min, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #3
+                       top += spacing;
+                       gr.DrawString ("Test #3 DarkHorizontal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DarkHorizontal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #4
+                       top += spacing;
+                       gr.DrawString ("Test #4 LightHorizontal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LightHorizontal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #5
+                       top += spacing;
+                       gr.DrawString ("Test #5 NarrowHorizontal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.NarrowHorizontal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart,top, lineStart + length,top);
+
+                       // #6
+                       top += spacing;
+                       gr.DrawString ("Test #6 Vertical", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.Vertical, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #7
+                       top += spacing;
+                       gr.DrawString ("Test #7 DarkVertical", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DarkVertical, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #8
+                       top += spacing;
+                       gr.DrawString ("Test #8 LightVertical", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LightVertical, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #9
+                       top += spacing;
+                       gr.DrawString ("Test #9 NarrowVertical", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.NarrowVertical, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #10
+                       top += spacing;
+                       gr.DrawString ("Test #10 Cross", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.Cross, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #11
+                       top += spacing;
+                       gr.DrawString ("Test #11 LargeGrid", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LargeGrid, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #12
+                       top += spacing;
+                       gr.DrawString ("Test #12 SmallGrid", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.SmallGrid, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #13
+                       top += spacing;
+                       gr.DrawString ("Test #13 DottedGrid", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DottedGrid, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart,top, lineStart + length,top);
+
+                       // #14
+                       top += spacing;
+                       gr.DrawString ("Test #14 DiagonalCross", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DiagonalCross, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #15
+                       top += spacing;
+                       gr.DrawString ("Test #15 BackwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.BackwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #16
+                       top += spacing;
+                       gr.DrawString ("Test #16 ForwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.ForwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #17
+                       top += spacing;
+                       gr.DrawString ("Test #17 LightDownwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LightDownwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #18
+                       top += spacing;
+                       gr.DrawString ("Test #18 DarkDownwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DarkDownwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #19
+                       top += spacing;
+                       gr.DrawString ("Test #19 WideDownwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.WideDownwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #20
+                       top += spacing;
+                       gr.DrawString ("Test #20 LightUpwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LightUpwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #21
+                       top += spacing;
+                       gr.DrawString ("Test #21 DarkUpwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DarkUpwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #22
+                       top += spacing;
+                       gr.DrawString ("Test #22 WideUpwardDiagonal", font, br, textStart, top);
+
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.WideUpwardDiagonal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #23
+                       top += spacing;
+                       gr.DrawString ("Test #23 DashedHorizontal", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DashedHorizontal, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #24
+                       top += spacing;
+                       gr.DrawString ("Test #24 DashedVertical", font, br, textStart, top);
+                       
+                       top += spacing;
+                       hbr = new HatchBrush (HatchStyle.DashedVertical, fgColor, bgColor);
+                       gr.FillRectangle (hbr, lineStart, top, length, penWidth);
+
+                       // #25
+                       top += spacing;
+                       gr.DrawString ("Test #25 DashedDownwardDiagonal", font, br, textStart, top);
+                       
+                       top += spacing;
+                       hbr = new HatchBrush (HatchStyle.DashedDownwardDiagonal, fgColor, bgColor);
+                       gr.FillRectangle (hbr, lineStart, top, length, penWidth);
+
+                       // #26
+                       top += spacing;
+                       gr.DrawString ("Test #26 DashedUpwardDiagonal", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen = new Pen (new HatchBrush (HatchStyle.DashedUpwardDiagonal, fgColor, bgColor), penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #27
+                       top += spacing;
+                       gr.DrawString ("Test #27 HorizontalBrick", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen = new Pen (new HatchBrush (HatchStyle.HorizontalBrick, fgColor, bgColor), penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #28
+                       top += spacing;
+                       gr.DrawString ("Test #28 DiagonalBrick", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen = new Pen (new HatchBrush (HatchStyle.DiagonalBrick, fgColor, bgColor), penWidth);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #29
+                       top += spacing;
+                       gr.DrawString ("Test #29 LargeCheckerBoard", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.LargeCheckerBoard, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #30
+                       top += spacing;
+                       gr.DrawString ("Test #30 SmallCheckerBoard", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.SmallCheckerBoard, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #31
+                       top += spacing;
+                       gr.DrawString ("Test #31 OutlinedDiamond", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.OutlinedDiamond, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #32
+                       top += spacing;
+                       gr.DrawString ("Test #32 SolidDiamond", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.SolidDiamond, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       // #33
+                       top += spacing;
+                       gr.DrawString ("Test #33 DottedDiamond", font, br, textStart, top);
+                       
+                       top += spacing;
+                       pen.Brush = new HatchBrush (HatchStyle.DottedDiamond, fgColor, bgColor);
+                       gr.DrawLine (pen, lineStart, top, lineStart + length, top);
+
+                       currentTop = top;
+               }
+
+               /* Get the right directory depending on the runtime */
+               private string getDir ()
+               {
+                       string dir;
+
+                       if (Environment.GetEnvironmentVariable ("MSNet") == null)
+                               dir = "mono/";
+                       else
+                               dir = "MSNet/";
+
+                       return dir;
+               }
+       }
+}