[geos-commits] r2397 - trunk/tests/xmltester

svn_geos at osgeo.org svn_geos at osgeo.org
Mon Apr 20 16:32:54 EDT 2009


Author: strk
Date: 2009-04-20 16:32:54 -0400 (Mon, 20 Apr 2009)
New Revision: 2397

Modified:
   trunk/tests/xmltester/BufferResultMatcher.cpp
   trunk/tests/xmltester/BufferResultMatcher.h
Log:
Use JTS heuristic for distance-0 buffer checking


Modified: trunk/tests/xmltester/BufferResultMatcher.cpp
===================================================================
--- trunk/tests/xmltester/BufferResultMatcher.cpp	2009-04-20 11:04:12 UTC (rev 2396)
+++ trunk/tests/xmltester/BufferResultMatcher.cpp	2009-04-20 20:32:54 UTC (rev 2397)
@@ -13,7 +13,7 @@
  *
  **********************************************************************
  *
- * Last port: jtstest/testrunner/BufferResultMatcher.java rev rev 1.5 (JTS-1.10)
+ * Last port: jtstest/testrunner/BufferResultMatcher.java rev rev 1.6 (JTS-1.11)
  *
  **********************************************************************/
 
@@ -30,6 +30,7 @@
 namespace xmltester {
 
 double BufferResultMatcher::MAX_RELATIVE_AREA_DIFFERENCE = 1.0E-3;
+double BufferResultMatcher::MIN_DISTANCE_TOLERANCE = 1.0e-8;
 double BufferResultMatcher::MAX_HAUSDORFF_DISTANCE_FACTOR = 100;
 
 bool
@@ -109,19 +110,15 @@
 	GeomPtr expectedBdy ( expectedBuffer.getBoundary() );
 
 	DiscreteHausdorffDistance haus(*actualBdy, *expectedBdy);
+	haus.setDensifyFraction(0.25);
 
-	// JTS PORT NOTE:
-	// For buffer(0) we won't densify coordinates, to
-	// avoid subtle drifts (tested as possibly reaching
-	// up to 4e-10 distance from original geometry)
-	//
-	if ( distance ) {
-		haus.setDensifyFraction(0.25);
-	}
-
-
 	double maxDistanceFound = haus.orientedDistance();
+
 	double expectedDistanceTol = fabs(distance) / MAX_HAUSDORFF_DISTANCE_FACTOR;
+	if (expectedDistanceTol < MIN_DISTANCE_TOLERANCE)
+	{
+		expectedDistanceTol = MIN_DISTANCE_TOLERANCE;
+	}
 
 	if (maxDistanceFound > expectedDistanceTol)
 	{

Modified: trunk/tests/xmltester/BufferResultMatcher.h
===================================================================
--- trunk/tests/xmltester/BufferResultMatcher.h	2009-04-20 11:04:12 UTC (rev 2396)
+++ trunk/tests/xmltester/BufferResultMatcher.h	2009-04-20 20:32:54 UTC (rev 2397)
@@ -13,7 +13,7 @@
  *
  **********************************************************************
  *
- * Last port: jtstest/testrunner/BufferResultMatcher.java rev rev 1.5 (JTS-1.10)
+ * Last port: jtstest/testrunner/BufferResultMatcher.java rev rev 1.6 (JTS-1.11)
  *
  **********************************************************************/
 
@@ -43,6 +43,13 @@
 
 	static double MAX_HAUSDORFF_DISTANCE_FACTOR;
 
+	/*
+	 * The minimum distance tolerance which will be used.
+	 * This is required because densified vertices do no lie
+	 * precisely on their parent segment.
+	 */
+	static double MIN_DISTANCE_TOLERANCE;
+
 	bool isSymDiffAreaInTolerance(const geom::Geometry& actualBuffer,
 	                              const geom::Geometry& expectedBuffer);
 



More information about the geos-commits mailing list