diff --git a/test/algorithms/relational_operations/Jamfile.v2 b/test/algorithms/relational_operations/Jamfile.v2 index b6955f5dc..cc94fd560 100644 --- a/test/algorithms/relational_operations/Jamfile.v2 +++ b/test/algorithms/relational_operations/Jamfile.v2 @@ -22,12 +22,12 @@ test-suite boost-geometry-algorithms-relational [ run equals.cpp : : : : algorithms_equals ] [ run equals_multi.cpp : : : : algorithms_equals_multi ] [ run equals_on_spheroid.cpp : : : : algorithms_equals_on_spheroid ] - [ run overlaps.cpp : : : : algorithms_overlaps ] [ run touches.cpp : : : : algorithms_touches ] [ run touches_multi.cpp : : : : algorithms_touches_multi ] ; build-project disjoint ; build-project intersects ; +build-project overlaps ; build-project relate ; build-project within ; diff --git a/test/algorithms/relational_operations/overlaps/Jamfile.v2 b/test/algorithms/relational_operations/overlaps/Jamfile.v2 new file mode 100644 index 000000000..2f9410b62 --- /dev/null +++ b/test/algorithms/relational_operations/overlaps/Jamfile.v2 @@ -0,0 +1,23 @@ +# Boost.Geometry (aka GGL, Generic Geometry Library) +# +# Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. +# Copyright (c) 2008-2015 Bruno Lalande, Paris, France. +# Copyright (c) 2009-2015 Mateusz Loskot, London, UK. +# +# This file was modified by Oracle on 2014, 2015. +# Modifications copyright (c) 2014-2015, Oracle and/or its affiliates. +# +# Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle +# 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) + +test-suite boost-geometry-algorithms-relational-overlaps + : + [ run overlaps.cpp : : : : algorithms_overlaps ] + [ run overlaps_areal.cpp : : : : algorithms_overlaps_areal ] + [ run overlaps_box.cpp : : : : algorithms_overlaps_box ] + ; + diff --git a/test/algorithms/relational_operations/overlaps/overlaps.cpp b/test/algorithms/relational_operations/overlaps/overlaps.cpp new file mode 100644 index 000000000..c6407f756 --- /dev/null +++ b/test/algorithms/relational_operations/overlaps/overlaps.cpp @@ -0,0 +1,56 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2014, 2015. +// Modifications copyright (c) 2014-2015 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_overlaps.hpp" + +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_2d() +{ + test_pp

(); + test_ll

(); +} + +int test_main( int , char* [] ) +{ + test_2d >(); + test_2d >(); + +#if defined(HAVE_TTMATH) + test_2d >(); +#endif + + return 0; +} diff --git a/test/algorithms/relational_operations/overlaps.cpp b/test/algorithms/relational_operations/overlaps/overlaps_areal.cpp similarity index 53% rename from test/algorithms/relational_operations/overlaps.cpp rename to test/algorithms/relational_operations/overlaps/overlaps_areal.cpp index 3d627af43..c41da0639 100644 --- a/test/algorithms/relational_operations/overlaps.cpp +++ b/test/algorithms/relational_operations/overlaps/overlaps_areal.cpp @@ -1,6 +1,6 @@ // Boost.Geometry (aka GGL, Generic Geometry Library) -// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. +// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. // This file was modified by Oracle on 2014, 2015. // Modifications copyright (c) 2014-2015 Oracle and/or its affiliates. @@ -13,59 +13,6 @@ #include "test_overlaps.hpp" -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() { @@ -102,11 +49,7 @@ void test_aa() template void test_2d() { - test_pp

(); - test_ll

(); test_aa

(); - - test_box_box_2d

(); } int test_main( int , char* [] ) @@ -118,7 +61,5 @@ int test_main( int , char* [] ) test_2d >(); #endif - //test_3d >(); - return 0; } diff --git a/test/algorithms/relational_operations/overlaps/overlaps_box.cpp b/test/algorithms/relational_operations/overlaps/overlaps_box.cpp new file mode 100644 index 000000000..c80ff6de4 --- /dev/null +++ b/test/algorithms/relational_operations/overlaps/overlaps_box.cpp @@ -0,0 +1,64 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2014, 2015. +// Modifications copyright (c) 2014-2015 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_overlaps.hpp" + +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_2d() +{ + test_box_box_2d

(); +} + +int test_main( int , char* [] ) +{ + test_2d >(); + test_2d >(); + +#if defined(HAVE_TTMATH) + test_2d >(); +#endif + + //test_3d >(); + + return 0; +} diff --git a/test/algorithms/relational_operations/test_overlaps.hpp b/test/algorithms/relational_operations/overlaps/test_overlaps.hpp similarity index 100% rename from test/algorithms/relational_operations/test_overlaps.hpp rename to test/algorithms/relational_operations/overlaps/test_overlaps.hpp