// Boost.Geometry // Unit Test // Copyright (c) 2018-2019 Barend Gehrels, Amsterdam, the Netherlands. // 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_buffer_geo.hpp" static std::string const simplex = "POINT(4.9 52.0)"; template void test_point() { using polygon = bg::model::polygon; // Test with a high tolerance to account for possible differences in andoyer/thomas. auto make_settings = [](int points_per_circle) { ut_settings result; result.tolerance = 0.5; result.points_per_circle = points_per_circle; return result; }; // Test with a high tolerance to account for possible differences in andoyer/thomas. auto make_circle = [](int points_per_circle) { return bg::strategy::buffer::geographic_point_circle(points_per_circle); }; bg::strategies::buffer::geographic strategy; bg::strategy::buffer::geographic_join_miter join; bg::strategy::buffer::geographic_side_straight side; bg::strategy::buffer::end_flat end; test_one_geo("simplex_1_16", simplex, strategy, side, make_circle(360), join, end, 3.1415, 1.0, make_settings(360)); test_one_geo("simplex_5_8", simplex, strategy, side, make_circle(8), join, end, 70.7107, 5.0, make_settings(8)); test_one_geo("simplex_5_16", simplex, strategy, side, make_circle(16), join, end, 76.5437, 5.0, make_settings(16)); test_one_geo("simplex_5_32", simplex, strategy, side, make_circle(32), join, end, 77.9640, 5.0, make_settings(32)); // The more points used for the buffer, the more the area approaches 10*PI square meters test_one_geo("simplex_10_8", simplex, strategy, side, make_circle(8), join, end, 282.8430, 10.0, make_settings(8)); test_one_geo("simplex_10_16", simplex, strategy, side, make_circle(16), join, end, 306.1471, 10.0, make_settings(16)); test_one_geo("simplex_10_32", simplex, strategy, side, make_circle(32), join, end, 312.1450, 10.0, make_settings(32)); test_one_geo("simplex_10_180", simplex, strategy, side, make_circle(180), join, end, 313.9051, 10.0, make_settings(180)); test_one_geo("simplex_10_180", simplex, strategy, side, make_circle(360), join, end, 314.15, 10.0, make_settings(360)); } int test_main(int, char* []) { BoostGeometryWriteTestConfiguration(); test_point > >(); test_point > >(); #if ! defined(BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE) test_point > >(); #endif return 0; }