From 39765c99835a1e2fa34cdcf58ebf48688eec5ded Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Thu, 3 Mar 2016 04:20:56 +0100 Subject: [PATCH] [test][within] Add test cases around poles. --- .../within/within_pointlike_geometry.cpp | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/test/algorithms/relational_operations/within/within_pointlike_geometry.cpp b/test/algorithms/relational_operations/within/within_pointlike_geometry.cpp index 303e94100..b23de44ae 100644 --- a/test/algorithms/relational_operations/within/within_pointlike_geometry.cpp +++ b/test/algorithms/relational_operations/within/within_pointlike_geometry.cpp @@ -205,18 +205,34 @@ void test_spherical() BOOST_CHECK_EQUAL(bg::within(pt_n23, poly_n), false); BOOST_CHECK_EQUAL(bg::within(pt_n24, poly_n), false); } + // segment going through pole - // Move to covered_by tests -#ifdef BOOST_GEOMETRY_TEST_ENABLE_FAILING + // TODO: Move to covered_by tests { bg::model::polygon poly_n; bg::read_wkt("POLYGON((-90 80,90 80,90 70,-90 70, -90 80))", poly_n); + // Points on segment Point pt_n1(-90, 85); Point pt_n2(90, 85); BOOST_CHECK_EQUAL(bg::covered_by(pt_n1, poly_n), true); BOOST_CHECK_EQUAL(bg::covered_by(pt_n2, poly_n), true); + // Points on pole + Point pt_np1(90, 90); + Point pt_np2(0, 90); + Point pt_np3(45, 90); + BOOST_CHECK_EQUAL(bg::covered_by(pt_np1, poly_n), true); + BOOST_CHECK_EQUAL(bg::covered_by(pt_np2, poly_n), true); + BOOST_CHECK_EQUAL(bg::covered_by(pt_np3, poly_n), true); + } + // Segment endpoints on pole with arbitrary longitudes + { + bg::model::polygon poly_n; + bg::read_wkt("POLYGON((45 90,45 80,0 80,45 90))", poly_n); + Point pt_n1(0, 85); + Point pt_n2(45, 85); + BOOST_CHECK_EQUAL(bg::covered_by(pt_n1, poly_n), true); + BOOST_CHECK_EQUAL(bg::covered_by(pt_n2, poly_n), true); } -#endif } void test_large_integers()