[geos-commits] r3280 - trunk/tests/unit/geom
svn_geos at osgeo.org
svn_geos at osgeo.org
Wed Apr 13 07:52:12 EDT 2011
Author: strk
Date: 2011-04-13 04:52:12 -0700 (Wed, 13 Apr 2011)
New Revision: 3280
Modified:
trunk/tests/unit/geom/CoordinateArraySequenceTest.cpp
Log:
Add test for bug #435
Modified: trunk/tests/unit/geom/CoordinateArraySequenceTest.cpp
===================================================================
--- trunk/tests/unit/geom/CoordinateArraySequenceTest.cpp 2011-04-13 11:32:19 UTC (rev 3279)
+++ trunk/tests/unit/geom/CoordinateArraySequenceTest.cpp 2011-04-13 11:52:12 UTC (rev 3280)
@@ -5,6 +5,7 @@
#include <tut.hpp>
// geos
#include <geos/geom/Coordinate.h>
+#include <geos/geom/CoordinateFilter.h>
#include <geos/geom/CoordinateArraySequence.h>
#include <geos/geom/CoordinateArraySequenceFactory.h>
// std
@@ -21,8 +22,19 @@
// Common data used by tests
struct test_coordinatearraysequence_data
{
+ test_coordinatearraysequence_data() {}
- test_coordinatearraysequence_data() {}
+ struct Filter : public geos::geom::CoordinateFilter
+ {
+ bool is3d;
+ Filter() : is3d(false) {}
+ void filter_rw(geos::geom::Coordinate* c) const {
+ if ( is3d ) {
+ if ( ISNAN(c->z) ) c->z = 0.0;
+ }
+ else c->z = DoubleNotANumber;
+ }
+ };
};
typedef test_group<test_coordinatearraysequence_data> group;
@@ -605,4 +617,21 @@
ensure_equals( sequence.getAt(5).x, 2 );
}
+ // Test getDimension and filtering (http://trac.osgeo.org/geos/ticket/435)
+ template<>
+ template<>
+ void object::test<17>()
+ {
+ geos::geom::CoordinateArraySequence seq(1);
+ ensure_equals(seq.getDimension(), 2u);
+
+ Filter f;
+
+ f.is3d = true; seq.apply_rw(&f);
+ ensure_equals(seq.getDimension(), 3u);
+
+ f.is3d = false; seq.apply_rw(&f);
+ ensure_equals(seq.getDimension(), 2u);
+ }
+
} // namespace tut
More information about the geos-commits
mailing list