[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