[geos-commits] r2321 - trunk/tests/unit/noding
svn_geos at osgeo.org
svn_geos at osgeo.org
Wed Apr 8 06:06:56 EDT 2009
Author: strk
Date: 2009-04-08 06:06:56 -0400 (Wed, 08 Apr 2009)
New Revision: 2321
Modified:
trunk/tests/unit/noding/SegmentNodeTest.cpp
Log:
Add a couple more tests to SegmentNode unit test
Modified: trunk/tests/unit/noding/SegmentNodeTest.cpp
===================================================================
--- trunk/tests/unit/noding/SegmentNodeTest.cpp 2009-04-08 09:42:55 UTC (rev 2320)
+++ trunk/tests/unit/noding/SegmentNodeTest.cpp 2009-04-08 10:06:56 UTC (rev 2321)
@@ -75,11 +75,12 @@
// Construct a node on the given NodedSegmentString
{
const size_t segment_index = 0;
- Coordinate cint(3, 3);
- SegmentNode node( segment, cint, segment_index,
+ SegmentNode node( segment, Coordinate(3,3), segment_index,
segment.getSegmentOctant(segment_index) );
ensure_equals( node.segmentIndex, segment_index );
+
+ // only first endpoint is considered interior
ensure( node.isInterior() );
//
@@ -89,6 +90,133 @@
//
}
+
}
+ template<>
+ template<>
+ void object::test<2>()
+ {
+ using geos::geom::Coordinate;
+ using geos::noding::NodedSegmentString;
+ using geos::noding::SegmentNode;
+
+ // Create coordinates sequence
+ const size_t coords_size = 2;
+ CoordSeqPtr cs( factory_->create(0, coords_size) );
+
+ ensure( 0 != cs.get() );
+
+ Coordinate c0(0, 0);
+ Coordinate c1(3, 3);
+ cs->add(c0);
+ cs->add(c1);
+
+ ensure_equals( cs->size(), coords_size );
+
+ // Create SegmentString instance
+
+ NodedSegmentString segment(cs.get(), 0);
+
+ ensure_equals( segment.size(), coords_size );
+
+ // Construct an interior node on the given NodedSegmentString
+ {
+ const size_t segment_index = 0;
+ SegmentNode node( segment, Coordinate(0,0), segment_index,
+ segment.getSegmentOctant(segment_index) );
+
+ ensure_equals( node.segmentIndex, segment_index );
+
+ // on first endpoint ...
+ ensure( ! node.isInterior() );
+
+ }
+
+ }
+
+ template<>
+ template<>
+ void object::test<3>()
+ {
+ using geos::geom::Coordinate;
+ using geos::noding::NodedSegmentString;
+ using geos::noding::SegmentNode;
+
+ // Create coordinates sequence
+ const size_t coords_size = 2;
+ CoordSeqPtr cs( factory_->create(0, coords_size) );
+
+ ensure( 0 != cs.get() );
+
+ Coordinate c0(0, 0);
+ Coordinate c1(3, 3);
+ cs->add(c0);
+ cs->add(c1);
+
+ ensure_equals( cs->size(), coords_size );
+
+ // Create SegmentString instance
+
+ NodedSegmentString segment(cs.get(), 0);
+
+ ensure_equals( segment.size(), coords_size );
+
+ // Construct an interior node on the given NodedSegmentString
+ {
+ const size_t segment_index = 0;
+ SegmentNode node( segment, Coordinate(2,2), segment_index,
+ segment.getSegmentOctant(segment_index) );
+
+ ensure_equals( node.segmentIndex, segment_index );
+
+ // on first endpoint ...
+ ensure( node.isInterior() );
+
+ }
+
+ }
+
+ template<>
+ template<>
+ void object::test<4>()
+ {
+ using geos::geom::Coordinate;
+ using geos::noding::NodedSegmentString;
+ using geos::noding::SegmentNode;
+
+ // Create coordinates sequence
+ const size_t coords_size = 2;
+ CoordSeqPtr cs( factory_->create(0, coords_size) );
+
+ ensure( 0 != cs.get() );
+
+ Coordinate c0(0, 0);
+ Coordinate c1(3, 3);
+ cs->add(c0);
+ cs->add(c1);
+
+ ensure_equals( cs->size(), coords_size );
+
+ // Create SegmentString instance
+
+ NodedSegmentString segment(cs.get(), 0);
+
+ ensure_equals( segment.size(), coords_size );
+
+ // Construct a node that doesn't even intersect !!
+ {
+ const size_t segment_index = 0;
+ SegmentNode node( segment, Coordinate(1,2), segment_index,
+ segment.getSegmentOctant(segment_index) );
+
+ ensure_equals( node.segmentIndex, segment_index );
+
+ // on first endpoint ...
+ ensure( node.isInterior() );
+
+ }
+
+ }
+
} // namespace tut
More information about the geos-commits
mailing list