Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71358 - in trunk/libs/geometry/test: algorithms algorithms/overlay multi/algorithms/overlay
From: barend.gehrels_at_[hidden]
Date: 2011-04-17 16:57:19


Author: barendgehrels
Date: 2011-04-17 16:57:18 EDT (Sun, 17 Apr 2011)
New Revision: 71358
URL: http://svn.boost.org/trac/boost/changeset/71358

Log:
Added test for exception on invalid input.
Bugfix in one of the tests (77) which was indeed invalid
Text files modified:
   trunk/libs/geometry/test/algorithms/intersection.cpp | 21 +++++++++++++++++++++
   trunk/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp | 2 +-
   trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp | 2 +-
   3 files changed, 23 insertions(+), 2 deletions(-)

Modified: trunk/libs/geometry/test/algorithms/intersection.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/intersection.cpp (original)
+++ trunk/libs/geometry/test/algorithms/intersection.cpp 2011-04-17 16:57:18 EDT (Sun, 17 Apr 2011)
@@ -350,10 +350,31 @@
 }
 
 
+template <typename P>
+void test_exception()
+{
+ typedef bg::model::polygon<P> polygon;
 
+ try
+ {
+ // Define polygon with a spike (= invalid)
+ std::string spike = "POLYGON((0 0,0 4,2 4,2 6,2 4,4 4,4 0,0 0))";
+
+ test_one<polygon, polygon, polygon>("with_spike",
+ simplex_normal[0], spike,
+ 0, 0, 0);
+ }
+ catch(bg::overlay_invalid_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "No exception thrown");
+}
 
 int test_main(int, char* [])
 {
+ test_exception<bg::model::d2::point_xy<double> >();
+
     test_all<bg::model::d2::point_xy<double> >();
 
 #if ! defined(BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE)

Modified: trunk/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp (original)
+++ trunk/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp 2011-04-17 16:57:18 EDT (Sun, 17 Apr 2011)
@@ -53,7 +53,7 @@
         ///bg::get_intersection_points(geometry, turns);
 
         bg::detail::get_turns::no_interrupt_policy policy;
- bg::get_turns
+ bg::self_turns
             <
                 bg::detail::overlay::assign_null_policy
>(geometry, turns, policy);

Modified: trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp
==============================================================================
--- trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp (original)
+++ trunk/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp 2011-04-17 16:57:18 EDT (Sun, 17 Apr 2011)
@@ -138,7 +138,7 @@
     // -> went wrong in the assemble phase for intersection (traversal is OK)
     // -> fixed
     "MULTIPOLYGON(((3 3,3 4,4 4,4 3,3 3)),((5 3,5 4,4 4,4 5,3 5,3 6,5 6,5 5,7 5,7 6,8 6,8 5,9 5,9 2,8 2,8 1,7 1,7 2,5 2,5 3),(6 3,8 3,8 4,6 4,6 3)))",
- "MULTIPOLYGON(((6 3,6 4,7 4,7 3,6 3)),((2 3,1 3,1 4,3 4,3 5,4 5,4 6,5 6,5 7,9 7,9 4,7 4,7 5,8 5,8 6,7 6,7 5,6 5,6 4,4 4,4 3,3 3,3 2,4 2,2 2,2 3)),((5 2,4 2,4 3,6 3,6 2,5 2)),((7 2,7 3,8 3,8 2,8 1,7 1,7 2)))"
+ "MULTIPOLYGON(((6 3,6 4,7 4,7 3,6 3)),((2 3,1 3,1 4,3 4,3 5,4 5,4 6,5 6,5 7,9 7,9 4,7 4,7 5,8 5,8 6,7 6,7 5,6 5,6 4,4 4,4 3,3 3,3 2,2 2,2 3)),((5 2,4 2,4 3,6 3,6 2,5 2)),((7 2,7 3,8 3,8 2,8 1,7 1,7 2)))"
 };
 
 static std::string case_78_multi[2] =


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk