// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. // This file was modified by Oracle on 2014. // Modifications copyright (c) 2014 Oracle and/or its affiliates. // 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) // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle #include template void test_box_box_2d() { #if defined(BOOST_GEOMETRY_COMPILE_FAIL) test_geometry("POINT(1 1)", "POINT(1 1)", true); #endif test_geometry, bg::model::box

>("BOX(1 1, 3 3)", "BOX(0 0,2 2)", true); // touch -> false test_geometry, bg::model::box

>("BOX(1 1, 3 3)", "BOX(3 3,5 5)", false); // disjoint -> false test_geometry, bg::model::box

>("BOX(1 1, 3 3)", "BOX(4 4,6 6)", false); // within -> false test_geometry, bg::model::box

>("BOX(1 1, 5 5)", "BOX(2 2,3 3)", false); // within+touch -> false test_geometry, bg::model::box

>("BOX(1 1, 5 5)", "BOX(2 2,5 5)", false); } template void test_3d() { test_geometry, bg::model::box

>("BOX(1 1 1, 3 3 3)", "BOX(0 0 0,2 2 2)", true); test_geometry, bg::model::box

>("BOX(1 1 1, 3 3 3)", "BOX(3 3 3,5 5 5)", false); test_geometry, bg::model::box

>("BOX(1 1 1, 3 3 3)", "BOX(4 4 4,6 6 6)", false); } template void test_pp() { typedef bg::model::multi_point

mpt; test_geometry("MULTIPOINT(0 0,1 1,2 2)", "MULTIPOINT(1 1,3 3,4 4)", true); test_geometry("MULTIPOINT(0 0,1 1,2 2)", "MULTIPOINT(1 1,2 2)", false); } template void test_ll() { typedef bg::model::linestring

ls; typedef bg::model::multi_linestring mls; test_geometry("LINESTRING(0 0,2 2,3 1)", "LINESTRING(1 1,2 2,4 4)", true); test_geometry("LINESTRING(0 0,2 2,4 0)", "LINESTRING(0 1,2 1,3 2)", false); test_geometry("LINESTRING(0 0,2 2,3 1)", "MULTILINESTRING((1 1,2 2),(2 2,4 4))", true); test_geometry("LINESTRING(0 0,2 2,3 1)", "MULTILINESTRING((1 1,2 2),(3 3,4 4))", true); test_geometry("LINESTRING(0 0,3 3,3 1)", "MULTILINESTRING((3 3,2 2),(0 0,1 1))", false); } template void test_aa() { typedef bg::model::polygon

poly; typedef bg::model::multi_polygon mpoly; test_geometry("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((3 3,3 9,9 9,9 3,3 3))", true); test_geometry("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((5 5,5 9,9 9,9 5,5 5))", false); test_geometry("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((3 3,3 5,5 5,5 3,3 3))", false); test_geometry("POLYGON((0 0,0 5,5 5,5 0,0 0))", "MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((5 5,5 6,6 6,6 5,5 5)))", true); test_geometry("MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((0 0,0 3,3 3,3 0,0,0)))", "MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((5 5,5 6,6 6,6 5,5 5)))", true); } template void test_2d() { test_pp

(); test_ll

(); test_aa

(); test_box_box_2d

(); } int test_main( int , char* [] ) { test_2d >(); test_2d >(); #if defined(HAVE_TTMATH) test_2d >(); #endif //test_3d >(); return 0; }