[geos-commits] [SCM] GEOS branch 3.8-gh290 created. 07ad79c5ad48095aa2822668a2bc15085875eb52

git at osgeo.org git at osgeo.org
Mon Mar 9 14:44:58 PDT 2020


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, 3.8-gh290 has been created
        at  07ad79c5ad48095aa2822668a2bc15085875eb52 (commit)

- Log -----------------------------------------------------------------
commit 07ad79c5ad48095aa2822668a2bc15085875eb52
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Mon Mar 9 14:44:50 2020 -0700

    rename test to ctest picks it up

diff --git a/tests/unit/index/chain/MonotoneChainBuilder.cpp b/tests/unit/index/chain/MonotoneChainBuilderTest.cpp
similarity index 79%
rename from tests/unit/index/chain/MonotoneChainBuilder.cpp
rename to tests/unit/index/chain/MonotoneChainBuilderTest.cpp
index dcee194..efd5009 100644
--- a/tests/unit/index/chain/MonotoneChainBuilder.cpp
+++ b/tests/unit/index/chain/MonotoneChainBuilderTest.cpp
@@ -14,20 +14,21 @@
 
 namespace tut {
 // dummy data, not used
-struct test_monotonechain_data {
+struct test_monotonechainbuilder_data {
     geos::io::WKTReader wktreader;
     geos::io::WKTWriter wktwriter;
 
-    test_monotonechain_data()
+    test_monotonechainbuilder_data()
         :
-        wktreader()
+        wktreader(),
+        wktwriter()
     {}
 };
 
-typedef test_group<test_monotonechain_data> group;
+typedef test_group<test_monotonechainbuilder_data> group;
 typedef group::object object;
 
-group test_monotonechain_group("geos::index::chain::MonotoneChain");
+group test_monotonechainbuilder_group("geos::index::chain::MonotoneChainBuilder");
 
 //
 // Test Cases
@@ -58,12 +59,10 @@ void object::test<1>
 
     for (int i = 0; i < 5; ++i)
     {
-        auto csx = cs->getOrdinate(i, 0);
-        auto csy = cs->getOrdinate(i, 1);
         // std::cout << csx << ", " << csy << std::endl;
         // std::cout << x[i] << ", " << y[i] << std::endl;
-        ensure_equals("x", csx, x[i], 0.01);
-        ensure_equals("y", csy, y[i], 0.01);
+        ensure_equals("x", cs->getOrdinate(i, 0), x[i], 0.0001);
+        ensure_equals("y", cs->getOrdinate(i, 1), y[i], 0.0001);
     }
 
 }

commit c8191df69ac611dbbc9b37d66e0dadbb3afa61c2
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Mon Mar 9 14:16:27 2020 -0700

    add xml test for #1018 as well

diff --git a/tests/xmltester/Makefile.am b/tests/xmltester/Makefile.am
index 469a424..b20dafe 100644
--- a/tests/xmltester/Makefile.am
+++ b/tests/xmltester/Makefile.am
@@ -109,6 +109,7 @@ SAFE_XMLTESTS= \
 	$(srcdir)/tests/issue/issue-geos-838.xml \
 	$(srcdir)/tests/issue/issue-geos-990.xml \
 	$(srcdir)/tests/issue/issue-geos-994.xml \
+	$(srcdir)/tests/issue/issue-geos-1018.xml \
 	$(srcdir)/tests/validate/TestRelateAA-big.xml \
 	$(srcdir)/tests/validate/TestRelateAA.xml \
 	$(srcdir)/tests/validate/TestRelateAC.xml \
diff --git a/tests/xmltester/tests/issue/issue-geos-1018.xml b/tests/xmltester/tests/issue/issue-geos-1018.xml
new file mode 100644
index 0000000..9dc5c03
--- /dev/null
+++ b/tests/xmltester/tests/issue/issue-geos-1018.xml
@@ -0,0 +1,19 @@
+<run>
+<precisionModel type="FLOATING" />
+<case>
+<desc>
+Difference of two geometries
+</desc>
+<a>
+POLYGON((0.1 0.1, 4.0 0.1, 4.0 1.9, 0.1 1.9, 0.1 0.1))
+</a>
+<b>
+POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))
+</b>
+<test>
+<op name="difference" arg1="a" arg2="b">
+POLYGON ((2.0 1.9, 4.0 1.9, 4.0 0.1, 2.0 0.1, 2.0 1.9))
+</op>
+</test>
+</case>
+</run>

commit aa00639ca5dbad4f80724f38272a7b43e45643c1
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Mon Mar 9 13:43:02 2020 -0700

    add unit test for GH290

diff --git a/tests/unit/index/chain/MonotoneChainBuilder.cpp b/tests/unit/index/chain/MonotoneChainBuilder.cpp
new file mode 100644
index 0000000..dcee194
--- /dev/null
+++ b/tests/unit/index/chain/MonotoneChainBuilder.cpp
@@ -0,0 +1,73 @@
+//
+// Test Suite for geos::index::chain::MonotoneChainBuilder class.
+
+#include <tut/tut.hpp>
+// geos
+#include <geos/io/WKTReader.h>
+#include <geos/io/WKTWriter.h>
+#include <geos/geom/PrecisionModel.h>
+#include <geos/geom/GeometryFactory.h>
+#include <geos/geom/Geometry.h>
+#include <geos/geom/Point.h>
+#include <geos/geom/LineString.h>
+#include <geos/util.h>
+
+namespace tut {
+// dummy data, not used
+struct test_monotonechain_data {
+    geos::io::WKTReader wktreader;
+    geos::io::WKTWriter wktwriter;
+
+    test_monotonechain_data()
+        :
+        wktreader()
+    {}
+};
+
+typedef test_group<test_monotonechain_data> group;
+typedef group::object object;
+
+group test_monotonechain_group("geos::index::chain::MonotoneChain");
+
+//
+// Test Cases
+
+
+// This issue exercised a bug in MonotoneChainBuilder
+// https://github.com/libgeos/geos/issues/290
+template<>
+template<>
+void object::test<1>
+()
+{
+    std::string wkt1("POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))");
+    std::unique_ptr<geos::geom::Geometry> g1(wktreader.read(wkt1));
+
+    std::string wkt2("POLYGON((0.1 0.1, 4.0 0.1, 4.0 1.9, 0.1 1.9, 0.1 0.1))");
+    std::unique_ptr<geos::geom::Geometry> g2(wktreader.read(wkt2));
+
+    // POLYGON ((2.0 1.9, 4.0 1.9, 4.0 0.1, 2.0 0.1, 2.0 1.9))
+    double x[5] = {2.0, 4.0, 4.0, 2.0, 2.0};
+    double y[5] = {1.9, 1.9, 0.1, 0.1, 1.9};
+
+    auto g3 = g2->difference(g1.get());
+    auto cs = g3->getCoordinates();
+
+    // std::string wkt3 = wktwriter.write(g3.get());
+    // std::cout << wkt3 << std::endl;
+
+    for (int i = 0; i < 5; ++i)
+    {
+        auto csx = cs->getOrdinate(i, 0);
+        auto csy = cs->getOrdinate(i, 1);
+        // std::cout << csx << ", " << csy << std::endl;
+        // std::cout << x[i] << ", " << y[i] << std::endl;
+        ensure_equals("x", csx, x[i], 0.01);
+        ensure_equals("y", csy, y[i], 0.01);
+    }
+
+}
+
+
+} // namespace tut
+

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


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list