123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // Boost.Geometry
- // Unit Test
- // Copyright (c) 2018 Adeel Ahmad, Islamabad, Pakistan.
- // Contributed and/or modified by Adeel Ahmad, as part of Google Summer of Code 2018 program.
- // 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)
- #ifndef BOOST_GEOMETRY_TEST_INVERSE_CASES_SMALL_ANGLES_HPP
- #define BOOST_GEOMETRY_TEST_INVERSE_CASES_SMALL_ANGLES_HPP
- #include "inverse_cases.hpp"
- struct expected_results_small_angles
- {
- coordinates p1;
- coordinates p2;
- expected_result karney;
- };
- /*
- These values are collected from GeodTest which is associated with GeographicLib:
- https://zenodo.org/record/32156
- The conversion to C++ array format is done using this Python script:
- https://github.com/adl1995/boost-geometry-extra/blob/master/geographiclib-dataset-parse-inverse.py
- Geodesic scale (M12) is absent from the GeodTest dataset, so it is manually generated
- using GeographicLib using this C++ script:
- https://github.com/adl1995/boost-geometry-extra/blob/master/geographicLib-direct-small_angles.cpp
- */
- expected_results_small_angles expected_small_angles[] =
- {
- {
- { 180, 0 },{ 0, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-300, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-200, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-100, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-50, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-20, 0 },
- { 20003931.45862544700503349304, -0.00000000000000000000, 180.00000000000000000000, 67125.61229850351810455322266, -1.00000000000000000000 },
- },{
- { 180, 0 },{ 1e-10, 0 },
- { 20003931.45862544700503349304, -9.501793528220011062168943853e-09, -179.9999999904981962117744843, 67125.61229850351810455322266, -1 },
- },{
- { 0, 1e-100 },{ 170, 1e-200},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-300 },{ 170, 1e-50},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-300 },{ 170, 1e-10},
- { 18924313.43485650792717933655, 89.99999999939157646622334141, 90.00000000060019544889655663, 1041298.80855225014965981245, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-100 },{ 170, 1e-50},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-200 },{ 170, 1e-50},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 0.0 },{ 170, 1e-10},
- { 18924313.43485650792717933655, 89.99999999939157646622334141, 90.00000000060019544889655663, 1041298.80855225014965981245, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-20 },{ 170, 1e-100},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-100 },{ 170, 0.0},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-10 },{ 170, 1e-300},
- { 18924313.43485650792717933655, 89.99999999939980455110344337, 90.00000000060842353377665859, 1041298.80855225014965981245, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-300 },{ 170, 1e-100},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-200 },{ 170, 1e-100},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 1e-10 },{ 170, 1e-50},
- { 18924313.43485650792717933655, 89.99999999939980455110344337, 90.00000000060842353377665859, 1041298.80855225014965981245, -0.9864919282563420210863114335 },
- },{
- { 0, 0.0 },{ 170, 1e-200},
- { 18924313.43485650792717933655, 90, 90, 1041298.808552250848151743412, -0.9864919282563420210863114335 },
- },{
- { 0, 0.0 },{ 170, 1e-10},
- { 18924313.43485650792717933655, 89.99999999939157646622334141, 90.00000000060019544889655663, 1041298.80855225014965981245, -0.9864919282563420210863114335 },
- }
- };
- size_t const expected_size_small_angles = sizeof(expected_small_angles) / sizeof(expected_results_small_angles);
- #endif // BOOST_GEOMETRY_TEST_INVERSE_CASES_SMALL_ANGLES_HPP
|