/// <summary>\r
/// Summary description for DrawingTest.\r
/// </summary>\r
- public abstract class DrawingTest {\r
+ public abstract class DrawingTest : IDisposable {\r
\r
public const float DEFAULT_FLOAT_TOLERANCE = 1e-5f; \r
- public const int DEFAULT_IMAGE_TOLERANCE = 3; \r
+ public const int DEFAULT_IMAGE_TOLERANCE = 2; \r
\r
Graphics _graphics;\r
protected Bitmap _bitmap;\r
AssertAlmostEqual (expected.Y, actual.Y, DEFAULT_FLOAT_TOLERANCE, msg);\r
}\r
\r
+ /// <summary>\r
+ /// Checks that the given bitmap norm is similar to expected\r
+ /// </summary>\r
+ /// <param name="tolerance">tolerance in percents (0..100)</param>\r
+ /// <returns></returns>\r
+ /// \r
+ public bool Compare (double tolerance) {\r
+ CheckCounter ();\r
+\r
+ double error = CompareToExpectedInternal()*100;\r
+\r
+ if (SpecialTolerance != null)\r
+ return error <= GetSpecialTolerance(TestName);\r
+\r
+ return error <= tolerance;\r
+ }\r
+\r
+ public bool PDCompare (double tolerance) {\r
+ Bitmap ri = GetReferenceImage(TestName);\r
+ if (ri == null)\r
+ return true;\r
+\r
+ double error = PDComparer.Compare(ri, _bitmap);\r
+ return error <= tolerance;\r
+ }\r
+ \r
public bool Compare () {\r
CheckCounter ();\r
+\r
double error = CompareToExpectedInternal()*100;\r
+ \r
if (SpecialTolerance != null)\r
return error <= GetSpecialTolerance(TestName);\r
\r
return error <= DEFAULT_IMAGE_TOLERANCE;\r
}\r
\r
+ public bool PDCompare () {\r
+ Bitmap ri = GetReferenceImage(TestName);\r
+ if (ri == null)\r
+ return true;\r
+\r
+ double error = PDComparer.Compare(ri, _bitmap);\r
+ return error <= DEFAULT_IMAGE_TOLERANCE;\r
+ }\r
+\r
+ protected abstract Bitmap GetReferenceImage(string testName);\r
+\r
protected double GetSpecialTolerance(string testName) {\r
try {\r
string shortTestName = testName.Substring( testName.LastIndexOf(".") + 1 );\r
}\r
}\r
\r
- /// <summary>\r
- /// Checks that the given bitmap norm is similar to expected\r
- /// </summary>\r
- /// <param name="tolerance">tolerance in percents (0..100)</param>\r
- /// <returns></returns>\r
- /// \r
- public bool Compare (double tolerance) {\r
- CheckCounter ();\r
- double error = CompareToExpectedInternal()*100;\r
- return error <= tolerance;\r
- }\r
-\r
public void AssertCompare () {\r
CheckCounter ();\r
Assert.IsTrue ((CompareToExpectedInternal () * 100) < DEFAULT_IMAGE_TOLERANCE);\r
test.OwnerClass = ownerClass;\r
return test;\r
}\r
+ #region IDisposable Members\r
+\r
+ public void Dispose()\r
+ {\r
+ // TODO: Add DrawingTest.Dispose implementation\r
+ if (_graphics != null) {\r
+ _graphics.Dispose();\r
+ _graphics = null;\r
+ }\r
+ }\r
+\r
+ #endregion\r
}\r
\r
#if TARGET_JVM\r
get {\r
if (_image != null)\r
return _image;\r
- Type imageType = typeof (Image);\r
- PropertyInfo prop = imageType.GetProperty ("NativeObject",\r
- BindingFlags.NonPublic | BindingFlags.Instance);\r
+ Type imageType = typeof (Bitmap);\r
+ PropertyInfo [] props = imageType.GetProperties (\r
+ BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);\r
+\r
+ PropertyInfo prop = null;\r
+ foreach (PropertyInfo p in props) {\r
+ if (p.Name == "NativeObject")\r
+ if (p.PropertyType == typeof(java.awt.image.BufferedImage))\r
+ prop = p;\r
+ }\r
+\r
MethodInfo method = prop.GetGetMethod (true);\r
_image = (java.awt.image.BufferedImage) method.Invoke (_bitmap, new object [0]);\r
return _image;\r
return ExpectedResults.GetNorm(TestName);\r
}\r
\r
+ protected override Bitmap GetReferenceImage(string testName) {\r
+ try{\r
+ string dotNetResultsFolder = @"";\r
+ string fileName = dotNetResultsFolder + testName.Replace(":", "_") + ".png";\r
+ return new Bitmap(fileName);\r
+ }\r
+ catch(System.Exception e) {\r
+ throw new System.Exception("Error creating .Net reference image");\r
+ }\r
+ }\r
+\r
private class JavaForm:java.awt.Dialog,IMyForm {\r
class EventListener : java.awt.@event.WindowListener {\r
#region WindowListener Members\r
return myNorm;\r
}\r
\r
+ protected override Bitmap GetReferenceImage(string testName) {\r
+ try{\r
+ string fileName = testName.Replace(":", "_") + ".png";\r
+ _bitmap.Save( fileName );\r
+ GC.Collect();\r
+ return null;\r
+ }\r
+ catch(System.Exception e) {\r
+ throw new System.Exception("Error creating .Net reference image");\r
+ }\r
+ }\r
+\r
private class NetForm:Form,IMyForm {\r
Image image;\r
public NetForm(string title, Image anImage):base() {\r
\r
}\r
#endif\r
+\r
}\r