[geos-commits] r4378 - in trunk: . tests tests/unit2 tests/unit2/geom

Mateusz Loskot mateusz at loskot.net
Sun Mar 26 17:30:04 PDT 2017


Author: mloskot
Date: 2017-03-26 17:30:03 -0700 (Sun, 26 Mar 2017)
New Revision: 4378

Added:
   trunk/tests/unit2/
   trunk/tests/unit2/CMakeLists.txt
   trunk/tests/unit2/geom/
   trunk/tests/unit2/geom/PointTest.cpp
   trunk/tests/unit2/geos_include_all_headers.cpp
Modified:
   trunk/CMakeLists.txt
   trunk/tests/CMakeLists.txt
Log:
First stab at tests/uni2 with Catch-based tests

Add Point test.
Add CMake configuration.
Build unit2 tests only if GEOS_ENABLE_TESTS_UNIT2_ONLY=ON.
Add automatic download of Catch header.
Require C++11 to build Catch-based tests

Modified: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt	2017-03-27 00:27:46 UTC (rev 4377)
+++ trunk/CMakeLists.txt	2017-03-27 00:30:03 UTC (rev 4378)
@@ -55,9 +55,6 @@
 # Check custom global options
 #################################################################################
 
-option(GEOS_ENABLE_TESTS
-  "Set to OFF|ON (default) to control build of GEOS tests package" ON)
-
 option(GEOS_ENABLE_INLINE
   "Set to OFF|ON (default) to control GEOS compilation with small functions inlining" ON)
 
@@ -66,6 +63,12 @@
     "Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
 endif()
 
+option(GEOS_ENABLE_TESTS
+  "Set to OFF|ON (default) to control build of GEOS tests package" ON)
+
+option(GEOS_ENABLE_TESTS_UNIT2_ONLY
+  "Set to ON|OFF (default) to enable only new tests based on Catch (WIP: experimental)." OFF)
+
 option(GEOS_BUILD_STATIC
   "Set to OFF|ON (default) to build GEOS static libraries" ON)
 
@@ -336,13 +339,12 @@
 # Configure tests
 #################################################################################
 
-if(GEOS_ENABLE_TESTS)
+if(GEOS_ENABLE_TESTS OR GEOS_ENABLE_TESTS_UNIT2_ONLY)
   enable_testing()
   # Define "make check" as alias for "make test"
   add_custom_target(check COMMAND ctest)
 endif()
 
-
 #################################################################################
 # IDE specifics
 #################################################################################

Modified: trunk/tests/CMakeLists.txt
===================================================================
--- trunk/tests/CMakeLists.txt	2017-03-27 00:27:46 UTC (rev 4377)
+++ trunk/tests/CMakeLists.txt	2017-03-27 00:30:03 UTC (rev 4378)
@@ -12,8 +12,6 @@
 #################################################################################
 
 add_subdirectory(unit)
+add_subdirectory(unit2)
 add_subdirectory(xmltester)
 add_subdirectory(bigtest)
-# TODO: add other test programs
-
-

Added: trunk/tests/unit2/CMakeLists.txt
===================================================================
--- trunk/tests/unit2/CMakeLists.txt	                        (rev 0)
+++ trunk/tests/unit2/CMakeLists.txt	2017-03-27 00:30:03 UTC (rev 4378)
@@ -0,0 +1,87 @@
+#################################################################################
+#
+# CMake configuration of GEOS tests based on Catch
+#
+# Copyright (C) 2017 Mateusz Loskot <mateusz at loskot.net>
+#
+# This is free software; you can redistribute and/or modify it under
+# the terms of the GNU Lesser General Public Licence as published
+# by the Free Software Foundation. 
+# See the COPYING file for more information.
+#
+#################################################################################
+
+set(STATUS_MESSAGE "Enable GEOS Catch-based Unit Tests build")
+set(STATUS_RESULT "OFF")
+
+if(GEOS_ENABLE_TESTS_UNIT2_ONLY)
+  # TODO: Enable as soon as std::auto_pt ris gone
+  #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
+  include(CheckCXXCompilerFlag)
+  CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
+  CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
+  CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
+  if(COMPILER_SUPPORTS_CXX14)
+    message(STATUS "GEOS test build: C++ Standard: C++14")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+  elseif(COMPILER_SUPPORTS_CXX11)
+    message(STATUS "GEOS test build: C++ Standard: C++11")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+  elseif(COMPILER_SUPPORTS_CXX0X)
+    message(STATUS "GEOS test build: C++ Standard: C++0x")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+  else()
+    message(WARNING "Compiler ${CMAKE_CXX_COMPILER} has no C++ 0x/11/14 support.")
+  endif()
+
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_COMPILER_IS_GNUCXX)
+    # Workaround for Travis CI + Catch: `error: ignoring #pragma gcc diagnostic`
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
+  endif()
+
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    # Workaround for Travis CI|AppVeyor + Catch: `suggest parentheses around comparison in operand of '=='`
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=parentheses")
+  endif()
+
+  find_package(Git REQUIRED)
+
+  include(ExternalProject)
+  ExternalProject_Add(
+    catch
+    PREFIX ${CMAKE_BINARY_DIR}/catch
+    GIT_REPOSITORY https://github.com/philsquared/Catch.git
+    TIMEOUT 10
+    UPDATE_COMMAND ${GIT_EXECUTABLE} pull
+    CONFIGURE_COMMAND ""
+    BUILD_COMMAND ""
+    INSTALL_COMMAND ""
+    LOG_DOWNLOAD ON)
+    ExternalProject_Get_Property(catch source_dir)
+    set(CATCH_INCLUDE_DIR ${source_dir}/include CACHE INTERNAL "Path to include folder for Catch")
+  
+  file(GLOB_RECURSE geos_unit2_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
+  add_executable(geos_unit2 ${geos_unit2_SOURCES})
+
+  target_include_directories(geos_unit2 PRIVATE
+    $<BUILD_INTERFACE:${CATCH_INCLUDE_DIR}>
+    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
+
+
+  if(APPLE AND GEOS_ENABLE_MACOSX_FRAMEWORK)
+    target_link_libraries(geos_unit2 GEOS)
+ 	else()
+    target_link_libraries(geos_unit2 geos geos_c)
+ 	endif()
+
+  add_test(geos_unit2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/geos_unit2)
+
+  set(STATUS_RESULT "ON")
+endif()
+
+message(STATUS "${STATUS_MESSAGE} - ${STATUS_RESULT}")
+
+#################################################################################
+# Group source files for IDE source explorers (e.g. Visual Studio)
+#################################################################################
+GenerateSourceGroups(tests/unit2)

Added: trunk/tests/unit2/geom/PointTest.cpp
===================================================================
--- trunk/tests/unit2/geom/PointTest.cpp	                        (rev 0)
+++ trunk/tests/unit2/geom/PointTest.cpp	2017-03-27 00:30:03 UTC (rev 4378)
@@ -0,0 +1,27 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// geos::geom::Point class test
+//
+// Copyright (C) 2017 Mateusz Loskot <mateusz at loskot.net>
+//
+// This is free software; you can redistribute and/or modify it under
+// the terms of the GNU Lesser General Public Licence as published
+// by the Free Software Foundation. 
+// See the COPYING file for more information.
+////////////////////////////////////////////////////////////////////////////////
+#include <catch.hpp>
+
+#include <geos/geom/GeometryFactory.h>
+#include <geos/geom/Point.h>
+using namespace geos::geom;
+
+TEST_CASE("Point")
+{
+	GeometryFactory::unique_ptr factory{GeometryFactory::create()};
+
+	SECTION("empty")
+	{
+		std::unique_ptr<Point> p{factory->createPoint()};
+		REQUIRE(p->isEmpty());
+	}
+}

Added: trunk/tests/unit2/geos_include_all_headers.cpp
===================================================================
--- trunk/tests/unit2/geos_include_all_headers.cpp	                        (rev 0)
+++ trunk/tests/unit2/geos_include_all_headers.cpp	2017-03-27 00:30:03 UTC (rev 4378)
@@ -0,0 +1,366 @@
+#define CATCH_CONFIG_MAIN  // Catch provides main() - only in this .cpp file
+#include <catch.hpp>
+
+// Test including of all GEOS headers
+#include <geos/algorithm/Angle.h>
+#include <geos/algorithm/BoundaryNodeRule.h>
+#include <geos/algorithm/CentralEndpointIntersector.h>
+#include <geos/algorithm/Centroid.h>
+#include <geos/algorithm/CentroidArea.h>
+#include <geos/algorithm/CentroidLine.h>
+#include <geos/algorithm/CentroidPoint.h>
+#include <geos/algorithm/CGAlgorithms.h>
+#include <geos/algorithm/ConvexHull.h>
+#include <geos/algorithm/distance/DiscreteFrechetDistance.h>
+#include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
+#include <geos/algorithm/distance/DistanceToPoint.h>
+#include <geos/algorithm/distance/PointPairDistance.h>
+#include <geos/algorithm/HCoordinate.h>
+#include <geos/algorithm/InteriorPointArea.h>
+#include <geos/algorithm/InteriorPointLine.h>
+#include <geos/algorithm/InteriorPointPoint.h>
+#include <geos/algorithm/LineIntersector.h>
+#include <geos/algorithm/locate/IndexedPointInAreaLocator.h>
+#include <geos/algorithm/locate/PointOnGeometryLocator.h>
+#include <geos/algorithm/locate/SimplePointInAreaLocator.h>
+#include <geos/algorithm/MCPointInRing.h>
+#include <geos/algorithm/MinimumDiameter.h>
+#include <geos/algorithm/NotRepresentableException.h>
+#include <geos/algorithm/PointInRing.h>
+#include <geos/algorithm/PointLocator.h>
+#include <geos/algorithm/RayCrossingCounter.h>
+#include <geos/algorithm/RobustDeterminant.h>
+#include <geos/algorithm/SimplePointInRing.h>
+#include <geos/algorithm/SIRtreePointInRing.h>
+#include <geos/export.h>
+#include <geos/geom/BinaryOp.h>
+#include <geos/geom/Coordinate.h>
+#include <geos/geom/CoordinateArraySequence.h>
+#include <geos/geom/CoordinateArraySequenceFactory.h>
+#include <geos/geom/CoordinateFilter.h>
+#include <geos/geom/CoordinateList.h>
+#include <geos/geom/CoordinateSequence.h>
+#include <geos/geom/CoordinateSequenceFactory.h>
+#include <geos/geom/CoordinateSequenceFilter.h>
+#include <geos/geom/Dimension.h>
+#include <geos/geom/Envelope.h>
+#include <geos/geom/Geometry.h>
+#include <geos/geom/GeometryCollection.h>
+#include <geos/geom/GeometryComponentFilter.h>
+#include <geos/geom/GeometryFactory.h>
+#include <geos/geom/GeometryFilter.h>
+#include <geos/geom/GeometryList.h>
+#include <geos/geom/IntersectionMatrix.h>
+#include <geos/geom/Lineal.h>
+#include <geos/geom/LinearRing.h>
+#include <geos/geom/LineSegment.h>
+#include <geos/geom/LineString.h>
+#include <geos/geom/Location.h>
+#include <geos/geom/MultiLineString.h>
+#include <geos/geom/MultiPoint.h>
+#include <geos/geom/MultiPolygon.h>
+#include <geos/geom/Point.h>
+#include <geos/geom/Polygon.h>
+#include <geos/geom/Polygonal.h>
+#include <geos/geom/PrecisionModel.h>
+#include <geos/geom/prep/AbstractPreparedPolygonContains.h>
+#include <geos/geom/prep/BasicPreparedGeometry.h>
+#include <geos/geom/prep/PreparedGeometry.h>
+#include <geos/geom/prep/PreparedGeometryFactory.h>
+#include <geos/geom/prep/PreparedLineString.h>
+#include <geos/geom/prep/PreparedLineStringIntersects.h>
+#include <geos/geom/prep/PreparedPoint.h>
+#include <geos/geom/prep/PreparedPolygon.h>
+#include <geos/geom/prep/PreparedPolygonContains.h>
+#include <geos/geom/prep/PreparedPolygonContainsProperly.h>
+#include <geos/geom/prep/PreparedPolygonCovers.h>
+#include <geos/geom/prep/PreparedPolygonIntersects.h>
+#include <geos/geom/prep/PreparedPolygonPredicate.h>
+#include <geos/geom/Puntal.h>
+#include <geos/geom/Triangle.h>
+#include <geos/geom/util/ComponentCoordinateExtracter.h>
+#include <geos/geom/util/CoordinateOperation.h>
+#include <geos/geom/util/GeometryCombiner.h>
+#include <geos/geom/util/GeometryEditor.h>
+#include <geos/geom/util/GeometryEditorOperation.h>
+#include <geos/geom/util/GeometryExtracter.h>
+#include <geos/geom/util/GeometryTransformer.h>
+#include <geos/geom/util/LinearComponentExtracter.h>
+#include <geos/geom/util/PointExtracter.h>
+#include <geos/geom/util/PolygonExtracter.h>
+#include <geos/geom/util/ShortCircuitedGeometryVisitor.h>
+#include <geos/geom/util/SineStarFactory.h>
+#include <geos/geomgraph.h>
+#include <geos/geomgraph/Depth.h>
+#include <geos/geomgraph/DirectedEdge.h>
+#include <geos/geomgraph/DirectedEdgeStar.h>
+#include <geos/geomgraph/Edge.h>
+#include <geos/geomgraph/EdgeEnd.h>
+#include <geos/geomgraph/EdgeEndStar.h>
+#include <geos/geomgraph/EdgeIntersection.h>
+#include <geos/geomgraph/EdgeIntersectionList.h>
+#include <geos/geomgraph/EdgeList.h>
+#include <geos/geomgraph/EdgeNodingValidator.h>
+#include <geos/geomgraph/EdgeRing.h>
+#include <geos/geomgraph/GeometryGraph.h>
+#include <geos/geomgraph/GraphComponent.h>
+#include <geos/geomgraph/index/EdgeSetIntersector.h>
+#include <geos/geomgraph/index/MonotoneChain.h>
+#include <geos/geomgraph/index/MonotoneChainEdge.h>
+#include <geos/geomgraph/index/MonotoneChainIndexer.h>
+#include <geos/geomgraph/index/SegmentIntersector.h>
+#include <geos/geomgraph/index/SimpleEdgeSetIntersector.h>
+#include <geos/geomgraph/index/SimpleMCSweepLineIntersector.h>
+#include <geos/geomgraph/index/SimpleSweepLineIntersector.h>
+#include <geos/geomgraph/index/SweepLineEvent.h>
+#include <geos/geomgraph/index/SweepLineEventObj.h>
+#include <geos/geomgraph/index/SweepLineSegment.h>
+#include <geos/geomgraph/Label.h>
+#include <geos/geomgraph/Node.h>
+#include <geos/geomgraph/NodeFactory.h>
+#include <geos/geomgraph/NodeMap.h>
+#include <geos/geomgraph/PlanarGraph.h>
+#include <geos/geomgraph/Position.h>
+#include <geos/geomgraph/Quadrant.h>
+#include <geos/geomgraph/TopologyLocation.h>
+#include <geos/geomgraphindex.h>
+#include <geos/geomPrep.h>
+#include <geos/geomUtil.h>
+#include <geos/geosAlgorithm.h>
+#include <geos/index/bintree/Bintree.h>
+#include <geos/index/bintree/Interval.h>
+#include <geos/index/bintree/Key.h>
+#include <geos/index/bintree/Node.h>
+#include <geos/index/bintree/NodeBase.h>
+#include <geos/index/bintree/Root.h>
+#include <geos/index/chain/MonotoneChain.h>
+#include <geos/index/chain/MonotoneChainBuilder.h>
+#include <geos/index/chain/MonotoneChainOverlapAction.h>
+#include <geos/index/chain/MonotoneChainSelectAction.h>
+#include <geos/index/intervalrtree/IntervalRTreeBranchNode.h>
+#include <geos/index/intervalrtree/IntervalRTreeLeafNode.h>
+#include <geos/index/intervalrtree/IntervalRTreeNode.h>
+#include <geos/index/intervalrtree/SortedPackedIntervalRTree.h>
+#include <geos/index/ItemVisitor.h>
+#include <geos/index/quadtree/DoubleBits.h>
+#include <geos/index/quadtree/IntervalSize.h>
+#include <geos/index/quadtree/Key.h>
+#include <geos/index/quadtree/Node.h>
+#include <geos/index/quadtree/NodeBase.h>
+#include <geos/index/quadtree/Quadtree.h>
+#include <geos/index/quadtree/Root.h>
+#include <geos/index/SpatialIndex.h>
+#include <geos/index/strtree/AbstractNode.h>
+#include <geos/index/strtree/AbstractSTRtree.h>
+#include <geos/index/strtree/Boundable.h>
+#include <geos/index/strtree/BoundablePair.h>
+#include <geos/index/strtree/GeometryItemDistance.h>
+#include <geos/index/strtree/Interval.h>
+#include <geos/index/strtree/ItemBoundable.h>
+#include <geos/index/strtree/ItemDistance.h>
+#include <geos/index/strtree/SIRtree.h>
+#include <geos/index/strtree/STRtree.h>
+#include <geos/index/sweepline/SweepLineEvent.h>
+#include <geos/index/sweepline/SweepLineIndex.h>
+#include <geos/index/sweepline/SweepLineInterval.h>
+#include <geos/index/sweepline/SweepLineOverlapAction.h>
+#include <geos/indexBintree.h>
+#include <geos/indexChain.h>
+#include <geos/indexIntervalRTree.h>
+#include <geos/indexQuadtree.h>
+#include <geos/indexStrtree.h>
+#include <geos/indexSweepline.h>
+#include <geos/io/ByteOrderDataInStream.h>
+#include <geos/io/ByteOrderValues.h>
+#include <geos/io/CLocalizer.h>
+#include <geos/io/ParseException.h>
+#include <geos/io/StringTokenizer.h>
+#include <geos/io/WKBConstants.h>
+#include <geos/io/WKBReader.h>
+#include <geos/io/WKBWriter.h>
+#include <geos/io/WKTReader.h>
+#include <geos/io/WKTWriter.h>
+#include <geos/io/Writer.h>
+#include <geos/linearref/ExtractLineByLocation.h>
+#include <geos/linearref/LengthIndexedLine.h>
+#include <geos/linearref/LengthIndexOfPoint.h>
+#include <geos/linearref/LengthLocationMap.h>
+#include <geos/linearref/LinearGeometryBuilder.h>
+#include <geos/linearref/LinearIterator.h>
+#include <geos/linearref/LinearLocation.h>
+#include <geos/linearref/LocationIndexedLine.h>
+#include <geos/linearref/LocationIndexOfLine.h>
+#include <geos/linearref/LocationIndexOfPoint.h>
+#include <geos/noding.h>
+#include <geos/noding/BasicSegmentString.h>
+#include <geos/noding/FastNodingValidator.h>
+#include <geos/noding/FastSegmentSetIntersectionFinder.h>
+#include <geos/noding/GeometryNoder.h>
+#include <geos/noding/IntersectionAdder.h>
+#include <geos/noding/IntersectionFinderAdder.h>
+#include <geos/noding/IteratedNoder.h>
+#include <geos/noding/MCIndexNoder.h>
+#include <geos/noding/MCIndexSegmentSetMutualIntersector.h>
+#include <geos/noding/NodableSegmentString.h>
+#include <geos/noding/NodedSegmentString.h>
+#include <geos/noding/Noder.h>
+#include <geos/noding/NodingValidator.h>
+#include <geos/noding/Octant.h>
+#include <geos/noding/OrientedCoordinateArray.h>
+#include <geos/noding/ScaledNoder.h>
+#include <geos/noding/SegmentIntersectionDetector.h>
+#include <geos/noding/SegmentIntersector.h>
+#include <geos/noding/SegmentNode.h>
+#include <geos/noding/SegmentNodeList.h>
+#include <geos/noding/SegmentPointComparator.h>
+#include <geos/noding/SegmentSetMutualIntersector.h>
+#include <geos/noding/SegmentString.h>
+#include <geos/noding/SegmentStringUtil.h>
+#include <geos/noding/SimpleNoder.h>
+#include <geos/noding/SingleInteriorIntersectionFinder.h>
+#include <geos/noding/SinglePassNoder.h>
+#include <geos/noding/snapround/HotPixel.h>
+#include <geos/noding/snapround/MCIndexPointSnapper.h>
+#include <geos/noding/snapround/MCIndexSnapRounder.h>
+#include <geos/noding/snapround/SimpleSnapRounder.h>
+#include <geos/nodingSnapround.h>
+#include <geos/opBuffer.h>
+#include <geos/opDistance.h>
+#include <geos/operation.h>
+#include <geos/operation/buffer/BufferBuilder.h>
+#include <geos/operation/buffer/BufferInputLineSimplifier.h>
+#include <geos/operation/buffer/BufferOp.h>
+#include <geos/operation/buffer/BufferParameters.h>
+#include <geos/operation/buffer/BufferSubgraph.h>
+#include <geos/operation/buffer/OffsetCurveBuilder.h>
+#include <geos/operation/buffer/OffsetCurveSetBuilder.h>
+#include <geos/operation/buffer/OffsetSegmentGenerator.h>
+#include <geos/operation/buffer/OffsetSegmentString.h>
+#include <geos/operation/buffer/RightmostEdgeFinder.h>
+#include <geos/operation/buffer/SubgraphDepthLocater.h>
+#include <geos/operation/distance/ConnectedElementLocationFilter.h>
+#include <geos/operation/distance/ConnectedElementPointFilter.h>
+#include <geos/operation/distance/DistanceOp.h>
+#include <geos/operation/distance/FacetSequence.h>
+#include <geos/operation/distance/FacetSequenceTreeBuilder.h>
+#include <geos/operation/distance/GeometryLocation.h>
+#include <geos/operation/distance/IndexedFacetDistance.h>
+#include <geos/operation/GeometryGraphOperation.h>
+#include <geos/operation/intersection/Rectangle.h>
+#include <geos/operation/intersection/RectangleIntersection.h>
+#include <geos/operation/intersection/RectangleIntersectionBuilder.h>
+#include <geos/operation/IsSimpleOp.h>
+#include <geos/operation/linemerge/EdgeString.h>
+#include <geos/operation/linemerge/LineMergeDirectedEdge.h>
+#include <geos/operation/linemerge/LineMergeEdge.h>
+#include <geos/operation/linemerge/LineMergeGraph.h>
+#include <geos/operation/linemerge/LineMerger.h>
+#include <geos/operation/linemerge/LineSequencer.h>
+#include <geos/operation/overlay/EdgeSetNoder.h>
+#include <geos/operation/overlay/ElevationMatrix.h>
+#include <geos/operation/overlay/ElevationMatrixCell.h>
+#include <geos/operation/overlay/LineBuilder.h>
+#include <geos/operation/overlay/MaximalEdgeRing.h>
+#include <geos/operation/overlay/MinimalEdgeRing.h>
+#include <geos/operation/overlay/OverlayNodeFactory.h>
+#include <geos/operation/overlay/OverlayOp.h>
+#include <geos/operation/overlay/PointBuilder.h>
+#include <geos/operation/overlay/PolygonBuilder.h>
+#include <geos/operation/overlay/snap/GeometrySnapper.h>
+#include <geos/operation/overlay/snap/LineStringSnapper.h>
+#include <geos/operation/overlay/snap/SnapIfNeededOverlayOp.h>
+#include <geos/operation/overlay/snap/SnapOverlayOp.h>
+#include <geos/operation/overlay/validate/FuzzyPointLocator.h>
+#include <geos/operation/overlay/validate/OffsetPointGenerator.h>
+#include <geos/operation/overlay/validate/OverlayResultValidator.h>
+#include <geos/operation/polygonize/EdgeRing.h>
+#include <geos/operation/polygonize/PolygonizeDirectedEdge.h>
+#include <geos/operation/polygonize/PolygonizeEdge.h>
+#include <geos/operation/polygonize/PolygonizeGraph.h>
+#include <geos/operation/polygonize/Polygonizer.h>
+#include <geos/operation/predicate/RectangleContains.h>
+#include <geos/operation/predicate/RectangleIntersects.h>
+#include <geos/operation/predicate/SegmentIntersectionTester.h>
+#include <geos/operation/relate/EdgeEndBuilder.h>
+#include <geos/operation/relate/EdgeEndBundle.h>
+#include <geos/operation/relate/EdgeEndBundleStar.h>
+#include <geos/operation/relate/RelateComputer.h>
+#include <geos/operation/relate/RelateNode.h>
+#include <geos/operation/relate/RelateNodeFactory.h>
+#include <geos/operation/relate/RelateNodeGraph.h>
+#include <geos/operation/relate/RelateOp.h>
+#include <geos/operation/sharedpaths/SharedPathsOp.h>
+#include <geos/operation/union/CascadedPolygonUnion.h>
+#include <geos/operation/union/CascadedUnion.h>
+#include <geos/operation/union/GeometryListHolder.h>
+#include <geos/operation/union/PointGeometryUnion.h>
+#include <geos/operation/union/UnaryUnionOp.h>
+#include <geos/operation/valid/ConnectedInteriorTester.h>
+#include <geos/operation/valid/ConsistentAreaTester.h>
+#include <geos/operation/valid/IsValidOp.h>
+#include <geos/operation/valid/QuadtreeNestedRingTester.h>
+#include <geos/operation/valid/RepeatedPointTester.h>
+#include <geos/operation/valid/SimpleNestedRingTester.h>
+#include <geos/operation/valid/SweeplineNestedRingTester.h>
+#include <geos/operation/valid/TopologyValidationError.h>
+#include <geos/opLinemerge.h>
+#include <geos/opOverlay.h>
+#include <geos/opPolygonize.h>
+#include <geos/opPredicate.h>
+#include <geos/opRelate.h>
+#include <geos/opValid.h>
+#include <geos/planargraph.h>
+#include <geos/planargraph/algorithm/ConnectedSubgraphFinder.h>
+#include <geos/planargraph/DirectedEdge.h>
+#include <geos/planargraph/DirectedEdgeStar.h>
+#include <geos/planargraph/Edge.h>
+#include <geos/planargraph/GraphComponent.h>
+#include <geos/planargraph/Node.h>
+#include <geos/planargraph/NodeMap.h>
+#include <geos/planargraph/PlanarGraph.h>
+#include <geos/planargraph/Subgraph.h>
+#include <geos/precision.h>
+#include <geos/precision/CommonBits.h>
+#include <geos/precision/CommonBitsOp.h>
+#include <geos/precision/CommonBitsRemover.h>
+#include <geos/precision/EnhancedPrecisionOp.h>
+#include <geos/precision/GeometryPrecisionReducer.h>
+#include <geos/precision/MinimumClearance.h>
+#include <geos/precision/PrecisionReducerCoordinateOperation.h>
+#include <geos/precision/SimpleGeometryPrecisionReducer.h>
+#include <geos/profiler.h>
+#include <geos/simplify/DouglasPeuckerLineSimplifier.h>
+#include <geos/simplify/DouglasPeuckerSimplifier.h>
+#include <geos/simplify/LineSegmentIndex.h>
+#include <geos/simplify/TaggedLineSegment.h>
+#include <geos/simplify/TaggedLinesSimplifier.h>
+#include <geos/simplify/TaggedLineString.h>
+#include <geos/simplify/TaggedLineStringSimplifier.h>
+#include <geos/simplify/TopologyPreservingSimplifier.h>
+#include <geos/spatialIndex.h>
+#include <geos/triangulate/DelaunayTriangulationBuilder.h>
+#include <geos/triangulate/IncrementalDelaunayTriangulator.h>
+#include <geos/triangulate/quadedge/LastFoundQuadEdgeLocator.h>
+#include <geos/triangulate/quadedge/LocateFailureException.h>
+#include <geos/triangulate/quadedge/QuadEdge.h>
+#include <geos/triangulate/quadedge/QuadEdgeLocator.h>
+#include <geos/triangulate/quadedge/QuadEdgeSubdivision.h>
+#include <geos/triangulate/quadedge/TrianglePredicate.h>
+#include <geos/triangulate/quadedge/TriangleVisitor.h>
+#include <geos/triangulate/quadedge/Vertex.h>
+#include <geos/triangulate/VoronoiDiagramBuilder.h>
+#include <geos/unload.h>
+#include <geos/util.h>
+#include <geos/util/Assert.h>
+#include <geos/util/AssertionFailedException.h>
+#include <geos/util/CoordinateArrayFilter.h>
+#include <geos/util/GeometricShapeFactory.h>
+#include <geos/util/GEOSException.h>
+#include <geos/util/IllegalArgumentException.h>
+#include <geos/util/IllegalStateException.h>
+#include <geos/util/Interrupt.h>
+#include <geos/util/Machine.h>
+#include <geos/util/math.h>
+#include <geos/util/TopologyException.h>
+#include <geos/util/UniqueCoordinateArrayFilter.h>
+#include <geos/util/UnsupportedOperationException.h>



More information about the geos-commits mailing list