[DEV] add v1.66.0

This commit is contained in:
2018-01-12 21:47:58 +01:00
parent 87059bb1af
commit a97e9ae7d4
49032 changed files with 7668950 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
# Boost.Geometry (aka GGL, Generic Geometry Library)
#
# 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)
test-suite boost-geometry-algorithms-length
:
[ run length.cpp : : : : algorithms_length ]
[ run length_multi.cpp : : : : algorithms_length_multi ]
[ run length_sph.cpp : : : : algorithms_length_sph ]
[ run length_geo.cpp : : : : algorithms_length_geo ]
;

View File

@@ -0,0 +1,55 @@
// Boost.Geometry (aka GGL, Generic Geometry Library)
// Unit Test
// Copyright (c) 2007-2012 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 <algorithms/test_length.hpp>
#include <boost/geometry/geometries/geometries.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
#include <test_geometries/all_custom_linestring.hpp>
#include <test_geometries/wrapped_boost_array.hpp>
template <typename P>
void test_all()
{
// 3-4-5 triangle
test_geometry<std::pair<P, P> >("LINESTRING(0 0,3 4)", 5);
// 3-4-5 plus 1-1
test_geometry<bg::model::linestring<P> >("LINESTRING(0 0,3 4,4 3)", 5 + sqrt(2.0));
test_geometry<all_custom_linestring<P> >("LINESTRING(0 0,3 4,4 3)", 5 + sqrt(2.0));
test_geometry<test::wrapped_boost_array<P, 3> >("LINESTRING(0 0,3 4,4 3)", 5 + sqrt(2.0));
// Geometries with length zero
test_geometry<P>("POINT(0 0)", 0);
test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0);
}
template <typename P>
void test_empty_input()
{
test_empty_input(bg::model::linestring<P>());
}
int test_main(int, char* [])
{
test_all<bg::model::d2::point_xy<int> >();
test_all<bg::model::d2::point_xy<float> >();
test_all<bg::model::d2::point_xy<double> >();
#if defined(HAVE_TTMATH)
test_all<bg::model::d2::point_xy<ttmath_big> >();
#endif
// test_empty_input<bg::model::d2::point_xy<int> >();
return 0;
}

View File

@@ -0,0 +1,121 @@
// 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 <algorithms/test_length.hpp>
#include <algorithms/length/linestring_cases.hpp>
#include <boost/geometry/geometries/geometries.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
#include <test_geometries/all_custom_linestring.hpp>
#include <test_geometries/wrapped_boost_array.hpp>
template <typename P>
struct geo_strategies
{
// Set radius type, but for integer coordinates we want to have floating
// point radius type
typedef typename bg::promote_floating_point
<
typename bg::coordinate_type<P>::type
>::type rtype;
typedef bg::srs::spheroid<rtype> stype;
typedef bg::strategy::distance::andoyer<stype> andoyer_type;
typedef bg::strategy::distance::thomas<stype> thomas_type;
typedef bg::strategy::distance::vincenty<stype> vincenty_type;
};
template <typename P>
void test_default() //this should use andoyer strategy
{
for(std::size_t i = 0; i < 2; ++i)
{
test_geometry<bg::model::linestring<P> >(Ls_data_geo[i],
1116814.237 + 1116152.605);
}
// Geometries with length zero
test_geometry<P>("POINT(0 0)", 0);
test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0);
}
template <typename P, typename N, typename Strategy>
void test_with_strategy(N exp_length, Strategy strategy)
{
for(std::size_t i = 0; i < 2; ++i)
{
test_geometry<bg::model::linestring<P> >(Ls_data_geo[i],
exp_length,
strategy);
}
// Geometries with length zero
test_geometry<P>("POINT(0 0)", 0, strategy);
test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0,
strategy);
}
template <typename P>
void test_andoyer()
{
typename geo_strategies<P>::andoyer_type andoyer;
test_with_strategy<P>(1116814.237 + 1116152.605, andoyer);
}
template <typename P>
void test_thomas()
{
typename geo_strategies<P>::thomas_type thomas;
test_with_strategy<P>(1116825.795 + 1116158.7417, thomas);
}
template <typename P>
void test_vincenty()
{
typename geo_strategies<P>::vincenty_type vincenty;
test_with_strategy<P>(1116825.857 + 1116159.144, vincenty);
}
template <typename P>
void test_all()
{
test_default<P>();
test_andoyer<P>();
test_thomas<P>();
test_vincenty<P>();
}
template <typename P>
void test_empty_input()
{
test_empty_input(bg::model::linestring<P>());
test_empty_input(bg::model::multi_linestring<P>());
}
int test_main(int, char* [])
{
// Works only for double(?!)
//test_all<bg::model::d2::point_xy<int,
// bg::cs::geographic<bg::degree> > >();
//test_all<bg::model::d2::point_xy<float,
// bg::cs::geographic<bg::degree> > >();
test_all<bg::model::d2::point_xy<double,
bg::cs::geographic<bg::degree> > >();
#if defined(HAVE_TTMATH)
test_all<bg::model::d2::point_xy<ttmath_big> >();
#endif
//test_empty_input<bg::model::d2::point_xy<double,
// bg::cs::geographic<bg::degree> > >();
return 0;
}

View File

@@ -0,0 +1,38 @@
// Boost.Geometry (aka GGL, Generic Geometry Library)
//
// Copyright (c) 2007-2015 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 <algorithms/test_length.hpp>
#include <boost/geometry/geometries/geometries.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
template <typename P>
void test_all()
{
test_geometry<bg::model::multi_linestring<bg::model::linestring<P> > >
("MULTILINESTRING((0 0,3 4,4 3))", 5 + sqrt(2.0));
}
template <typename P>
void test_empty_input()
{
test_empty_input(bg::model::multi_linestring<P>());
}
int test_main( int , char* [] )
{
test_all<bg::model::d2::point_xy<double> >();
#ifdef HAVE_TTMATH
test_all<bg::model::d2::point_xy<ttmath_big> >();
#endif
// test_empty_input<bg::model::d2::point_xy<int> >();
return 0;
}

View File

@@ -0,0 +1,87 @@
// 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 <algorithms/test_length.hpp>
#include <algorithms/length/linestring_cases.hpp>
#include <boost/geometry/geometries/geometries.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
#include <test_geometries/all_custom_linestring.hpp>
#include <test_geometries/wrapped_boost_array.hpp>
template <typename P>
void test_all_default() //test the default strategy
{
double const pi = boost::math::constants::pi<double>();
for(std::size_t i = 0; i < 2; ++i)
{
test_geometry<bg::model::linestring<P> >(Ls_data_sph[i], 2 * pi);
}
// Geometries with length zero
test_geometry<P>("POINT(0 0)", 0);
test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0);
}
template <typename P>
void test_all_haversine(double const mean_radius)
{
double const pi = boost::math::constants::pi<double>();
bg::strategy::distance::haversine<float> haversine_strategy(mean_radius);
for(std::size_t i = 0; i < 2; ++i)
{
test_geometry<bg::model::linestring<P> >(Ls_data_sph[i],
2 * pi * mean_radius,
haversine_strategy);
}
// Geometries with length zero
test_geometry<P>("POINT(0 0)", 0, haversine_strategy);
test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))",
0, haversine_strategy);
}
template <typename P>
void test_empty_input()
{
test_empty_input(bg::model::linestring<P>());
test_empty_input(bg::model::multi_linestring<P>());
}
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<bg::model::d2::point_xy<int,
bg::cs::spherical_equatorial<bg::degree> > >();
test_all_default<bg::model::d2::point_xy<float,
bg::cs::spherical_equatorial<bg::degree> > >();
test_all_default<bg::model::d2::point_xy<double,
bg::cs::spherical_equatorial<bg::degree> > >();
test_all_haversine<bg::model::d2::point_xy<int,
bg::cs::spherical_equatorial<bg::degree> > >(mean_radius);
test_all_haversine<bg::model::d2::point_xy<float,
bg::cs::spherical_equatorial<bg::degree> > >(mean_radius);
test_all_haversine<bg::model::d2::point_xy<double,
bg::cs::spherical_equatorial<bg::degree> > >(mean_radius);
#if defined(HAVE_TTMATH)
test_all<bg::model::d2::point_xy<ttmath_big> >();
#endif
//test_empty_input<bg::model::d2::point_xy<int> >();
return 0;
}

View File

@@ -0,0 +1,28 @@
// Boost.Geometry
// Unit Test
// Copyright (c) 2016 Oracle and/or its affiliates.
// Contributed and/or modified by Vissarion Fysikopoulos, 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)
#ifndef LINESTRING_CASES_HPP
#define LINESTRING_CASES_HPP
#include <string>
static std::string Ls_data_geo[] = {"LINESTRING(0 90,1 80,1 70)",
"LINESTRING(0 90,1 80,1 80,1 80,1 70,1 70)",
"LINESTRING(0 90,1 80,1 79,1 78,1 77,1 76,1 75,1 74,\
1 73,1 72,1 71,1 70)"};
static std::string Ls_data_sph[] = {"LINESTRING(0 0,180 0,180 180)",
"LINESTRING(0 0,180 0,180 0,180 0,180 180,180 180)",
"LINESTRING(0 0,180 0,180 10,180 20,180 30,180 40,180 50,180 60,\
180 70,180 80,180 90,180 100,180 110,180 120,180 130,\
180 140,180 150,180 160,180 170,180 180)"};
#endif // LINESTRING_CASES_HPP