// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2013-2015 Adam Wulkiewicz, Lodz, Poland. // This file was modified by Oracle on 2014, 2015, 2016. // Modifications copyright (c) 2014-2016 Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include "test_within.hpp" #include #include #include #include template void test_l_a() { typedef bg::model::linestring ls; typedef bg::model::multi_linestring mls; typedef bg::model::polygon poly; typedef bg::model::ring ring; typedef bg::model::multi_polygon mpoly; // B,I test_geometry("LINESTRING(0 0, 2 2)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", true); // B,I test_geometry("LINESTRING(0 0, 2 2)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", true); // I test_geometry("LINESTRING(1 1, 2 2)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", true); // I,E test_geometry("LINESTRING(1 1, 6 6)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", false); // B test_geometry("LINESTRING(0 0, 5 0)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", false); test_geometry("LINESTRING(0 0, 0 5)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", false); // E test_geometry("LINESTRING(6 0, 6 5)", "POLYGON((0 0,0 5,5 5,5 0,0 0))", false); // BIBIB test_geometry("LINESTRING(0 0, 10 10)", "MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))", true); // BIBEBIB test_geometry("LINESTRING(0 0, 10 10)", "MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((6 6,5 10,10 10,10 5,6 6)))", false); // MySQL report 18.12.2014 (https://svn.boost.org/trac/boost/ticket/10887) test_geometry("LINESTRING(5 -2,5 2)", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", true); test_geometry("LINESTRING(5 -2,5 5)", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", true); test_geometry("LINESTRING(5 -2,5 0)", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", true); // MySQL report 18.12.2014 - extended test_geometry("LINESTRING(5 -2,5 0)", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)),((5 0,7 1,7 -1,5 0)))", true); test_geometry("LINESTRING(0 0,5 0)", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)),((5 0,7 1,7 -1,5 0)))", false); test_geometry("MULTILINESTRING((5 -2,4 -2,5 0),(5 -2,6 -2,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", true); test_geometry("MULTILINESTRING((0 0,0 1,5 0),(0 0,0 -1,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", false); test_geometry("MULTILINESTRING((5 -2,4 -2,5 0),(6 -2,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", true); test_geometry("MULTILINESTRING((0 0,0 1,5 0),(0 -1,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", false); test_geometry("MULTILINESTRING((0 0,5 0),(5 -2,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", false); test_geometry("MULTILINESTRING((5 -2,5 0),(0 0,5 0))", "MULTIPOLYGON(((5 0,0 5,10 5,5 0)),((5 0,10 -5,0 -5,5 0)))", false); // BI test_geometry("MULTILINESTRING((0 0,2 2),(2 2,3 3))", "POLYGON((0 0,0 5,5 5,5 0,0 0))", true); // I E test_geometry("MULTILINESTRING((1 1,2 2),(6 6,7 7))", "POLYGON((0 0,0 5,5 5,5 0,0 0))", false); // I I test_geometry("MULTILINESTRING((1 1,5 5),(6 6,7 7))", "MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))", true); // I E test_geometry("MULTILINESTRING((1 1,5 5),(11 11,12 12))", "MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))", false); } template void test_all() { test_l_a(); } template void test_all() { test_l_a(); } int test_main( int , char* [] ) { test_all >(); test_all >(); test_all, bg::model::point >(); #if defined(HAVE_TTMATH) test_all >(); #endif return 0; }