static inline void apply(Geometry1 const& geometry1, Geometry2 const& geometry2, MultiLineString const& mls_int1, MultiLineString const& mls_int2, std::string const& case_id, double tolerance = std::numeric_limits<double>::epsilon()) { #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); typedef typename bg::tag_cast < Geometry1, bg::linear_tag >::type tag1_type; typedef typename bg::tag_cast < Geometry2, bg::linear_tag >::type tag2_type; bool const are_linear = boost::is_same<tag1_type, bg::linear_tag>::value && boost::is_same<tag2_type, bg::linear_tag>::value; test_get_turns_ll_invariance<are_linear>::apply(geometry1, geometry2); #ifdef BOOST_GEOMETRY_TEST_DEBUG std::cout << std::endl << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << std::endl << std::endl; #endif test_get_turns_ll_invariance<are_linear>::apply(rg1, geometry2); base_test(geometry1, geometry2, mls_int1, mls_int2, case_id, tolerance); // 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_diff, std::string const& case_id, double tolerance = std::numeric_limits<double>::epsilon()) { #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_diff, case_id, tolerance); base_test(geometry1, rg2, mls_diff, case_id, tolerance, false); base_test(rg1, geometry2, mls_diff, case_id, tolerance, false, true); base_test(rg1, rg2, mls_diff, case_id, tolerance, false, true); #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_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 }