[geos-commits] r2400 - in trunk/tests/unit: . operation
operation/valid
svn_geos at osgeo.org
svn_geos at osgeo.org
Tue Apr 21 10:03:45 EDT 2009
Author: strk
Date: 2009-04-21 10:03:45 -0400 (Tue, 21 Apr 2009)
New Revision: 2400
Added:
trunk/tests/unit/operation/valid/
trunk/tests/unit/operation/valid/IsValidTest.cpp
Modified:
trunk/tests/unit/Makefile.am
Log:
Port IsValidOp unit test
Modified: trunk/tests/unit/Makefile.am
===================================================================
--- trunk/tests/unit/Makefile.am 2009-04-21 11:14:01 UTC (rev 2399)
+++ trunk/tests/unit/Makefile.am 2009-04-21 14:03:45 UTC (rev 2400)
@@ -71,6 +71,7 @@
operation/overlay/OffsetPointGeneratorTest.cpp \
operation/overlay/OverlayResultValidatorTest.cpp \
operation/union/CascadedPolygonUnionTest.cpp \
+ operation/valid/IsValidTest.cpp \
precision/GeometrySnapperTest.cpp \
precision/LineStringSnapperTest.cpp \
precision/SimpleGeometryPrecisionReducerTest.cpp \
Added: trunk/tests/unit/operation/valid/IsValidTest.cpp
===================================================================
--- trunk/tests/unit/operation/valid/IsValidTest.cpp (rev 0)
+++ trunk/tests/unit/operation/valid/IsValidTest.cpp 2009-04-21 14:03:45 UTC (rev 2400)
@@ -0,0 +1,78 @@
+// $Id$
+//
+// Test Suite for geos::operation::valid::IsValidOp class
+// Ported from JTS junit/operation/valid/IsValidTest.java rev. 1.1
+
+#include <tut.hpp>
+// geos
+#include <geos/operation/valid/IsValidOp.h>
+#include <geos/geom/Coordinate.h>
+#include <geos/geom/CoordinateArraySequence.h>
+#include <geos/geom/Dimension.h>
+#include <geos/geom/Geometry.h>
+#include <geos/geom/LineString.h>
+#include <geos/geom/GeometryFactory.h>
+#include <geos/geom/PrecisionModel.h>
+#include <geos/operation/valid/TopologyValidationError.h>
+#include <geos/platform.h> // for ISNAN
+// std
+#include <string>
+#include <memory>
+
+using namespace geos::geom;
+//using namespace geos::operation;
+using namespace geos::operation::valid;
+
+namespace tut
+{
+ //
+ // Test Group
+ //
+
+ struct test_isvalidop_data
+ {
+ typedef std::auto_ptr<Geometry> GeomPtr;
+
+ geos::geom::PrecisionModel pm_;
+ geos::geom::GeometryFactory factory_;
+
+ test_isvalidop_data()
+ : pm_(1), factory_(&pm_, 0)
+ {}
+ };
+
+ typedef test_group<test_isvalidop_data> group;
+ typedef group::object object;
+
+ group test_isvalidop_group("geos::operation::valid::IsValidOp");
+
+ //
+ // Test Cases
+ //
+
+ // 1 - testInvalidCoordinate
+ template<>
+ template<>
+ void object::test<1>()
+ {
+ CoordinateSequence* cs = new CoordinateArraySequence();
+ cs->add(Coordinate(0.0, 0.0));
+ cs->add(Coordinate(1.0, DoubleNotANumber));
+ GeomPtr line ( factory_.createLineString(cs) );
+
+
+ IsValidOp isValidOp(line.get());
+ bool valid = isValidOp.isValid();
+
+ TopologyValidationError* err = isValidOp.getValidationError();
+ const Coordinate& errCoord = err->getCoordinate();
+
+ ensure_equals( err->getErrorType(),
+ TopologyValidationError::eInvalidCoordinate );
+
+ ensure(ISNAN(errCoord.y));
+ ensure_equals(valid, false);
+ }
+
+
+} // namespace tut
More information about the geos-commits
mailing list