[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