[geos-commits] [SCM] geos branch master updated. 64e823b26bc6a771571f39af245b0e0f4e256df8

git at osgeo.org git at osgeo.org
Tue Aug 29 11:47:12 PDT 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "geos".

The branch, master has been updated
       via  64e823b26bc6a771571f39af245b0e0f4e256df8 (commit)
      from  080d94701ce900494898c5fe78c53a1db72a5f4c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 64e823b26bc6a771571f39af245b0e0f4e256df8
Author: Mateusz Loskot <mateusz at loskot.net>
Date:   Tue Aug 29 17:02:33 2017 +0200

    Add GEOSPointOnSurface test for case of three similar polygons
    
    Might help to catch significant changes in
    algorithm calculating point on surface.
    
    Source https://trac.osgeo.org/geos/ticket/840

diff --git a/tests/unit/capi/GEOSPointOnSurfaceTest.cpp b/tests/unit/capi/GEOSPointOnSurfaceTest.cpp
index 41d4ec1..b6d0f9d 100644
--- a/tests/unit/capi/GEOSPointOnSurfaceTest.cpp
+++ b/tests/unit/capi/GEOSPointOnSurfaceTest.cpp
@@ -188,5 +188,61 @@ namespace tut
 
     }
 
+    // Check point on surface for three similar polygons (shapes)
+    // https://trac.osgeo.org/geos/ticket/840
+    template<>
+    template<>
+    void object::test<7>()
+    {
+      // Polygon A
+      {
+        geom1_ = GEOSGeomFromWKT("POLYGON(("
+          "182111.031940953 141935.935903267,181944.315698016 141813.663222482,"
+          "181993.426552077 141735.161360171,182025.215323227 141755.058841504,"
+          "182042.126877935 141723.338145732,182089.035943744 141755.453352846,"
+          "182096.699289843 141744.892410235,182142.107084301 141773.967727472,"
+          "182140.268233846 141825.482203511,182123.233970367 141827.369156254,"
+          "182111.031940953 141935.935903267))");
+        ensure(0 != geom1_);
+        geom2_ = GEOSPointOnSurface(geom1_);
+        ensure(0 != geom2_);
+
+        wkt_ = GEOSWKTWriter_write(wktw_, geom2_);
+        ensure_equals(std::string(wkt_), std::string("POINT (182077.08 141881.65)"));
+      }
+      // Polygon B
+      {
+        geom1_ = GEOSGeomFromWKT("POLYGON(("
+          "182512.231897141 141935.935903267,182344.315698016 141813.663222482,"
+          "182393.426552077 141735.161360171,182425.215323227 141755.058841504,"
+          "182442.126877935 141723.338145732,182489.035943744 141755.453352846,"
+          "182496.699289843 141744.892410235,182542.107084301 141773.967727472,"
+          "182540.268233846 141825.482203511,182522.034014178 141825.369229273,"
+          "182512.231897141 141935.935903267))");
+        ensure(0 != geom1_);
+        geom2_ = GEOSPointOnSurface(geom1_);
+        ensure(0 != geom2_);
+
+        wkt_ = GEOSWKTWriter_write(wktw_, geom2_);
+        ensure_equals(std::string(wkt_), std::string("POINT (182476.76 141880.71)"));
+      }
+      // Polygon C
+      {
+        geom1_ = GEOSGeomFromWKT("POLYGON(("
+          "182635.760119718 141846.477712277,182826.153168283 141974.473039044,"
+          "182834.952846998 141857.67730337,182862.151853936 141851.277537031,"
+          "182860.551912351 141779.280165725,182824.553226698 141748.881275618,"
+          "182814.953577191 141758.480925126,182766.155358861 141721.682268681,"
+          "182742.156235092 141744.881421657,182692.558045971 141716.882443927,"
+          "182635.760119718 141846.477712277))");
+        ensure(0 != geom1_);
+        geom2_ = GEOSPointOnSurface(geom1_);
+        ensure(0 != geom2_);
+
+        wkt_ = GEOSWKTWriter_write(wktw_, geom2_);
+        ensure_equals(std::string(wkt_), std::string("POINT (182755.89 141812.88)"));
+      }
+    }
+
 } // namespace tut
 

-----------------------------------------------------------------------

Summary of changes:
 tests/unit/capi/GEOSPointOnSurfaceTest.cpp |   56 ++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)


hooks/post-receive
-- 
geos


More information about the geos-commits mailing list