[geos-commits] [SCM] GEOS branch main updated. 0881e75c0672ee3b8529373c66f76368d8c864ee
git at osgeo.org
git at osgeo.org
Tue Jul 8 15:27:04 PDT 2025
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, main has been updated
via 0881e75c0672ee3b8529373c66f76368d8c864ee (commit)
from 57a55f348265dc722327865d896376d9fcca10dd (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 0881e75c0672ee3b8529373c66f76368d8c864ee
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Tue Jul 8 15:26:35 2025 -0700
Update GeometrySnapperTest and add coverage for self snap
diff --git a/tests/unit/operation/overlay/snap/GeometrySnapperTest.cpp b/tests/unit/operation/overlay/snap/GeometrySnapperTest.cpp
index 7866fb732..ef82353e3 100644
--- a/tests/unit/operation/overlay/snap/GeometrySnapperTest.cpp
+++ b/tests/unit/operation/overlay/snap/GeometrySnapperTest.cpp
@@ -3,6 +3,7 @@
// tut
#include <tut/tut.hpp>
+#include <utility.h>
// geos
#include <geos/operation/overlay/snap/GeometrySnapper.h>
#include <geos/geom/Geometry.h>
@@ -19,19 +20,15 @@ namespace tut {
// Common data used by tests
struct test_geometrysnapper_data {
- typedef std::unique_ptr<geos::geom::Geometry> GeomPtr;
geos::io::WKTReader reader;
- typedef geos::operation::overlay::snap::GeometrySnapper GeometrySnapper;
+ test_geometrysnapper_data() {};
- test_geometrysnapper_data()
- :
- reader()
- {
- }
};
+using geos::operation::overlay::snap::GeometrySnapper;
+
typedef test_group<test_geometrysnapper_data> group;
typedef group::object object;
@@ -44,54 +41,40 @@ group test_geometrysnapper_group("geos::operation::overlay::snap::GeometrySnappe
// Test vertices snapping
template<>
template<>
-void object::test<1>
-()
+void object::test<1> ()
{
- GeomPtr src(reader.read(
- "POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))"
- ));
-
- GeometrySnapper snapper(*(src.get()));
-
- GeomPtr snap(reader.read(
- "MULTIPOINT ((0 0), (0 100.0000001), (100 100), (100 0))"
- ));
-
- GeomPtr expected(reader.read(
- "POLYGON ((0 0, 0 100.0000001, 100 100, 100 0, 0 0))"
- ));
-
- GeomPtr ret(snapper.snapTo(*(snap.get()), 0.000001));
-
- ensure(ret->equalsExact(expected.get(), 0));
-
+ auto src = reader.read("POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))");
+ GeometrySnapper snapper(*src);
+ auto snap = reader.read("MULTIPOINT ((0 0), (0 100.0000001), (100 100), (100 0))");
+ auto expected = reader.read("POLYGON ((0 0, 0 100.0000001, 100 100, 100 0, 0 0))");
+ auto result = snapper.snapTo(*snap, 0.000001);
+ ensure_equals_geometry(expected.get(), result.get());
}
// Test vertices snapping
template<>
template<>
-void object::test<2>
-()
+void object::test<2> ()
{
- GeomPtr src(reader.read(
- "POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))"
- ));
-
- GeometrySnapper snapper(*(src.get()));
-
- GeomPtr snap(reader.read(
- "MULTIPOINT ((0.0000001 50))"
- ));
-
- GeomPtr expected(reader.read(
- "POLYGON ((0 0, 0.0000001 50, 0 100, 100 100, 100 0, 0 0))"
- ));
-
- GeomPtr ret(snapper.snapTo(*(snap.get()), 0.000001));
-
- ensure(ret->equalsExact(expected.get(), 0));
+ auto src = reader.read("POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))");
+ GeometrySnapper snapper(*src);
+ auto snap = reader.read("MULTIPOINT ((0.0000001 50))");
+ auto expected = reader.read("POLYGON ((0 0, 0.0000001 50, 0 100, 100 100, 100 0, 0 0))");
+ auto result = snapper.snapTo(*snap, 0.000001);
+ ensure_equals_geometry(expected.get(), result.get());
}
+// Test self snapping
+template<>
+template<>
+void object::test<3> ()
+{
+ auto src = reader.read("POLYGON ((0 0, 0 100, 0 100, 100 100, 100 0, 0 0))");
+ auto result = GeometrySnapper::snapToSelf(*src, 0.1, true);
+ auto expected = reader.read("POLYGON ((0 0, 0 100, 100 100, 100 0, 0 0))");
+ ensure_equals_geometry(expected.get(), result.get());
+}
+
} // namespace tut
-----------------------------------------------------------------------
Summary of changes:
.../operation/overlay/snap/GeometrySnapperTest.cpp | 73 +++++++++-------------
1 file changed, 28 insertions(+), 45 deletions(-)
hooks/post-receive
--
GEOS
More information about the geos-commits
mailing list