// Boost.Geometry (aka GGL, Generic Geometry Library) // Unit Test // Copyright (c) 2016 Oracle and/or its affiliates. // Contributed and/or modified by Vissarion Fisikopoulos, 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 #include #include #include #include #include #include template void test_all_default() //test the default strategy { double const pi = boost::math::constants::pi(); for(std::size_t i = 0; i < 2; ++i) { test_geometry >(Ls_data_sph[i], 2 * pi); } // Geometries with length zero test_geometry

("POINT(0 0)", 0); test_geometry >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0); } template void test_all_haversine(double const mean_radius) { double const pi = boost::math::constants::pi(); bg::strategy::distance::haversine haversine_strategy(mean_radius); for(std::size_t i = 0; i < 2; ++i) { test_geometry >(Ls_data_sph[i], 2 * pi * mean_radius, haversine_strategy); } // Geometries with length zero test_geometry

("POINT(0 0)", 0, haversine_strategy); test_geometry >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0, haversine_strategy); } template void test_empty_input() { test_empty_input(bg::model::linestring

()); test_empty_input(bg::model::multi_linestring

()); } int test_main(int, char* []) { //Earth radius estimation in Km //(see https://en.wikipedia.org/wiki/Earth_radius) double const mean_radius = 6371.0; test_all_default > >(); test_all_default > >(); test_all_default > >(); test_all_haversine > >(mean_radius); test_all_haversine > >(mean_radius); test_all_haversine > >(mean_radius); #if defined(HAVE_TTMATH) test_all >(); #endif //test_empty_input >(); return 0; }