summaryrefslogtreecommitdiff
path: root/libs/geometry/test/algorithms/test_intersection_linear_linear.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/geometry/test/algorithms/test_intersection_linear_linear.hpp')
-rw-r--r--libs/geometry/test/algorithms/test_intersection_linear_linear.hpp213
1 files changed, 0 insertions, 213 deletions
diff --git a/libs/geometry/test/algorithms/test_intersection_linear_linear.hpp b/libs/geometry/test/algorithms/test_intersection_linear_linear.hpp
deleted file mode 100644
index b02aaa35e..000000000
--- a/libs/geometry/test/algorithms/test_intersection_linear_linear.hpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2014, Oracle and/or its affiliates.
-
-// Licensed under the Boost Software License version 1.0.
-// http://www.boost.org/users/license.html
-
-// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
-
-#ifndef BOOST_GEOMETRY_TEST_INTERSECTION_LINEAR_LINEAR_HPP
-#define BOOST_GEOMETRY_TEST_INTERSECTION_LINEAR_LINEAR_HPP
-
-#include "from_wkt.hpp"
-#include <boost/geometry/multi/geometries/multi_point.hpp>
-#include <boost/geometry/geometry.hpp>
-#include "test_set_ops_linear_linear.hpp"
-#include "to_svg.hpp"
-
-
-//==================================================================
-//==================================================================
-// intersection of (linear) geometries
-//==================================================================
-//==================================================================
-
-template
-<
- typename Geometry1, typename Geometry2,
- typename MultiLineString
->
-class test_intersection_of_geometries
-{
-private:
- static inline void base_test(Geometry1 const& geometry1,
- Geometry2 const& geometry2,
- MultiLineString const& mls_int1,
- MultiLineString const& mls_int2,
- std::string const& case_id,
- bool test_vector_and_deque = false)
- {
- static bool vector_deque_already_tested = false;
-
- typedef typename boost::range_value<MultiLineString>::type LineString;
- typedef std::vector<LineString> linestring_vector;
- typedef std::deque<LineString> linestring_deque;
-
- MultiLineString mls_output;
-
- linestring_vector ls_vector_output;
- linestring_deque ls_deque_output;
-
- bg::intersection(geometry1, geometry2, mls_output);
-
- BOOST_CHECK_MESSAGE( equals::apply(mls_int1, mls_output)
- || equals::apply(mls_int2, mls_output),
- "intersection L/L: " << bg::wkt(geometry1)
- << " " << bg::wkt(geometry2)
- << " -> Expected: " << bg::wkt(mls_int1)
- << " or: " << bg::wkt(mls_int2)
- << " computed: " << bg::wkt(mls_output) );
-
- set_operation_output("intersection", case_id,
- geometry1, geometry2, mls_output);
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "Geometry #1: " << bg::wkt(geometry1) << std::endl;
- std::cout << "Geometry #2: " << bg::wkt(geometry2) << std::endl;
- std::cout << "intersection : " << bg::wkt(mls_output) << std::endl;
- std::cout << "expected intersection : " << bg::wkt(mls_int1)
- << std::endl;
- std::cout << std::endl;
- std::cout << "************************************" << std::endl;
- std::cout << std::endl;
- std::cout << std::endl;
-#endif
-
- if ( !vector_deque_already_tested && test_vector_and_deque )
- {
- vector_deque_already_tested = true;
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl;
- std::cout << "Testing with vector and deque as output container..."
- << std::endl;
-#endif
- bg::intersection(geometry1, geometry2, ls_vector_output);
- bg::intersection(geometry1, geometry2, ls_deque_output);
-
- BOOST_CHECK(multilinestring_equals<false>::apply(mls_int1,
- ls_vector_output));
-
- BOOST_CHECK(multilinestring_equals<false>::apply(mls_int1,
- ls_deque_output));
-
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "Done!" << std::endl << std::endl;
-#endif
- }
-
- // check the intersection where the order of the two
- // geometries is reversed
- bg::clear(mls_output);
- bg::intersection(geometry2, geometry1, mls_output);
-
- BOOST_CHECK_MESSAGE( equals::apply(mls_int1, mls_output)
- || equals::apply(mls_int2, mls_output),
- "intersection L/L: " << bg::wkt(geometry1)
- << " " << bg::wkt(geometry2)
- << " -> Expected: " << bg::wkt(mls_int1)
- << " or: " << bg::wkt(mls_int2)
- << " computed: " << bg::wkt(mls_output) );
-
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "Geometry #1: " << bg::wkt(geometry2) << std::endl;
- std::cout << "Geometry #2: " << bg::wkt(geometry1) << std::endl;
- std::cout << "intersection : " << bg::wkt(mls_output) << std::endl;
- std::cout << "expected intersection : " << bg::wkt(mls_int2)
- << std::endl;
- std::cout << std::endl;
- std::cout << "************************************" << std::endl;
- std::cout << std::endl;
- std::cout << std::endl;
-#endif
- }
-
- static inline void base_test_all(Geometry1 const& geometry1,
- Geometry2 const& geometry2)
- {
- //typedef typename boost::range_value<MultiLineString>::type LineString;
- typedef typename bg::point_type<MultiLineString>::type Point;
- typedef bg::model::multi_point<Point> multi_point;
-
- MultiLineString mls12_output, mls21_output;
- multi_point mp12_output, mp21_output;
-
- bg::intersection(geometry1, geometry2, mls12_output);
- bg::intersection(geometry1, geometry2, mp12_output);
- bg::intersection(geometry2, geometry1, mls21_output);
- bg::intersection(geometry2, geometry1, mp21_output);
-
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "************************************" << std::endl;
- std::cout << "Geometry #1: " << bg::wkt(geometry1) << std::endl;
- std::cout << "Geometry #2: " << bg::wkt(geometry2) << std::endl;
- std::cout << "intersection(1,2) [MLS]: " << bg::wkt(mls12_output)
- << std::endl;
- std::cout << "intersection(2,1) [MLS]: " << bg::wkt(mls21_output)
- << std::endl;
- std::cout << std::endl;
- std::cout << "intersection(1,2) [MP]: " << bg::wkt(mp12_output)
- << std::endl;
- std::cout << "intersection(2,1) [MP]: " << bg::wkt(mp21_output)
- << std::endl;
- std::cout << std::endl;
- std::cout << "************************************" << std::endl;
- std::cout << std::endl;
- std::cout << std::endl;
-#endif
- }
-
-
-public:
- static inline void apply(Geometry1 const& geometry1,
- Geometry2 const& geometry2,
- MultiLineString const& mls_int1,
- MultiLineString const& mls_int2,
- std::string const& case_id)
- {
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << "test case: " << case_id << std::endl;
- std::stringstream sstr;
- sstr << "svgs/" << case_id << ".svg";
-#ifdef TEST_WITH_SVG
- to_svg(geometry1, geometry2, sstr.str());
-#endif
-#endif
-
- Geometry1 rg1(geometry1);
- bg::reverse<Geometry1>(rg1);
-
- Geometry2 rg2(geometry2);
- bg::reverse<Geometry2>(rg2);
-
- test_get_turns_ll_invariance<>::apply(geometry1, geometry2);
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl
- << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
- << std::endl << std::endl;
-#endif
- test_get_turns_ll_invariance<>::apply(rg1, geometry2);
-
-
- base_test(geometry1, geometry2, mls_int1, mls_int2, case_id);
- // base_test(rg1, rg2, mls_int1, mls_int2);
- base_test_all(geometry1, geometry2);
-
-#ifdef BOOST_GEOMETRY_TEST_DEBUG
- std::cout << std::endl;
- std::cout << std::endl;
-#endif
- }
-
-
-
- static inline void apply(Geometry1 const& geometry1,
- Geometry2 const& geometry2,
- MultiLineString const& mls_int,
- std::string const& case_id)
- {
- apply(geometry1, geometry2, mls_int, mls_int, case_id);
- }
-};
-
-
-#endif // BOOST_GEOMETRY_TEST_INTERSECTION_LINEAR_LINEAR_HPP