From 27341e688e561757de92b3da45acaac62e61633a Mon Sep 17 00:00:00 2001 From: Simon Giraudot Date: Wed, 17 Aug 2016 14:27:51 +0200 Subject: [PATCH] Add new test for bugfix of polyline simplification with duplicate points --- .../Polyline_simplification_2/CMakeLists.txt | 2 ++ ...implify_polyline_with_duplicate_points.cpp | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 Polyline_simplification_2/test/Polyline_simplification_2/simplify_polyline_with_duplicate_points.cpp diff --git a/Polyline_simplification_2/test/Polyline_simplification_2/CMakeLists.txt b/Polyline_simplification_2/test/Polyline_simplification_2/CMakeLists.txt index 7eb69c97005..c39d1bbe68c 100644 --- a/Polyline_simplification_2/test/Polyline_simplification_2/CMakeLists.txt +++ b/Polyline_simplification_2/test/Polyline_simplification_2/CMakeLists.txt @@ -51,4 +51,6 @@ include( CGAL_CreateSingleSourceCGALProgram ) create_single_source_cgal_program( "simplify_polygon_test.cpp" ) +create_single_source_cgal_program( "simplify_polyline_with_duplicate_points.cpp" ) + diff --git a/Polyline_simplification_2/test/Polyline_simplification_2/simplify_polyline_with_duplicate_points.cpp b/Polyline_simplification_2/test/Polyline_simplification_2/simplify_polyline_with_duplicate_points.cpp new file mode 100644 index 00000000000..a86bba1cc55 --- /dev/null +++ b/Polyline_simplification_2/test/Polyline_simplification_2/simplify_polyline_with_duplicate_points.cpp @@ -0,0 +1,30 @@ +#include +#include + +typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; +typedef Kernel::Point_2 Point_2; +typedef CGAL::Polyline_simplification_2::Squared_distance_cost Cost; +typedef CGAL::Polyline_simplification_2::Stop_above_cost_threshold Threshold; + +int main(int, char**) +{ + std::vector points; + + points.push_back(Point_2(0, 0)); + points.push_back(Point_2(100, 0)); + points.push_back(Point_2(100, 100)); + points.push_back(Point_2(0, 100)); + points.push_back(Point_2(0, 50)); + points.push_back(Point_2(50, 50)); + points.push_back(Point_2(50, 51)); + points.push_back(Point_2(50, 49)); + points.push_back(Point_2(70, 49)); + + std::vector output; + CGAL::Polyline_simplification_2::simplify(points.begin(), + points.end(), + Cost(), Threshold (5.), + std::back_inserter(output)); + return EXIT_SUCCESS; +} +