]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/geometry/test/cs_undefined/index.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / geometry / test / cs_undefined / index.cpp
CommitLineData
92f5a8d4
TL
1// Boost.Geometry
2
1e59de90 3// Copyright (c) 2019-2021, Oracle and/or its affiliates.
92f5a8d4
TL
4
5// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
6
7// Licensed under the Boost Software License version 1.0.
8// http://www.boost.org/users/license.html
9
10#include "common.hpp"
11
12// These includes are required for the following code to compile.
13// This is probably wrong.
1e59de90 14#include <boost/geometry/algorithms/comparable_distance.hpp>
92f5a8d4
TL
15#include <boost/geometry/algorithms/covered_by.hpp>
16#include <boost/geometry/algorithms/disjoint.hpp>
17#include <boost/geometry/algorithms/equals.hpp>
18#include <boost/geometry/algorithms/intersects.hpp>
19
20#include <boost/geometry/index/rtree.hpp>
21
1e59de90
TL
22#include <boost/geometry/strategies/index/cartesian.hpp>
23#include <boost/geometry/strategies/index/geographic.hpp>
24#include <boost/geometry/strategies/index/spherical.hpp>
25
92f5a8d4
TL
26#include <vector>
27
28namespace bgi = boost::geometry::index;
29
30template
31<
32 typename VG, typename QG,
33 typename VTag = typename bg::tag<VG>::type,
34 typename QTag = typename bg::tag<QG>::type
35>
36struct call_query
37{
38 template <typename Rtree, typename Res>
39 static inline void apply(Rtree const& , Res const& )
40 {}
41};
42
43template <typename VG, typename QG>
44struct call_query<VG, QG, bg::box_tag, bg::point_tag>
45{
46 template <typename Rtree>
47 static inline void apply(Rtree const& rtree, QG const& qg)
48 {
49 std::vector<VG> res;
50 rtree.query(bgi::intersects(qg), std::back_inserter(res));
51 }
52};
53
54template <typename G, typename P>
55inline void rtree_test(G const& g, P const& p)
56{
57 {
58 bgi::rtree<G, P> rtree;
59 }
60
61 std::vector<G> de2(100, g);
62
63 bgi::rtree<G, P> rtree(de2, p);
64 rtree.insert(g);
65 rtree.remove(g);
66 rtree.count(g);
67
68 call_query<G, geom::point>::apply(rtree, geom::point(0, 0));
69}
70
71int test_main(int, char*[])
72{
73 geom g;
74
1e59de90
TL
75 rtree_test(g.pt, bgi::parameters<bgi::linear<4>, bg::strategies::index::cartesian<> >());
76 rtree_test(g.pt, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::cartesian<> >());
77 rtree_test(g.pt, bgi::parameters<bgi::rstar<4>, bg::strategies::index::cartesian<> >());
78 rtree_test(g.b, bgi::parameters<bgi::linear<4>, bg::strategies::index::cartesian<> >());
79 rtree_test(g.b, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::cartesian<> >());
80 rtree_test(g.b, bgi::parameters<bgi::rstar<4>, bg::strategies::index::cartesian<> >());
81 rtree_test(g.s, bgi::parameters<bgi::linear<4>, bg::strategies::index::cartesian<> >());
82 rtree_test(g.s, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::cartesian<> >());
83 rtree_test(g.s, bgi::parameters<bgi::rstar<4>, bg::strategies::index::cartesian<> >());
84
85 rtree_test(g.pt, bgi::parameters<bgi::linear<4>, bg::strategies::index::spherical<> >());
86 rtree_test(g.pt, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::spherical<> >());
87 rtree_test(g.pt, bgi::parameters<bgi::rstar<4>, bg::strategies::index::spherical<> >());
88 rtree_test(g.b, bgi::parameters<bgi::linear<4>, bg::strategies::index::spherical<> >());
89 rtree_test(g.b, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::spherical<> >());
90 rtree_test(g.b, bgi::parameters<bgi::rstar<4>, bg::strategies::index::spherical<> >());
91 rtree_test(g.s, bgi::parameters<bgi::linear<4>, bg::strategies::index::spherical<> >());
92 rtree_test(g.s, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::spherical<> >());
93 rtree_test(g.s, bgi::parameters<bgi::rstar<4>, bg::strategies::index::spherical<> >());
94
95 rtree_test(g.pt, bgi::parameters<bgi::linear<4>, bg::strategies::index::geographic<> >());
96 rtree_test(g.pt, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::geographic<> >());
97 rtree_test(g.pt, bgi::parameters<bgi::rstar<4>, bg::strategies::index::geographic<> >());
98 rtree_test(g.b, bgi::parameters<bgi::linear<4>, bg::strategies::index::geographic<> >());
99 rtree_test(g.b, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::geographic<> >());
100 rtree_test(g.b, bgi::parameters<bgi::rstar<4>, bg::strategies::index::geographic<> >());
101 rtree_test(g.s, bgi::parameters<bgi::linear<4>, bg::strategies::index::geographic<> >());
102 rtree_test(g.s, bgi::parameters<bgi::quadratic<4>, bg::strategies::index::geographic<> >());
103 rtree_test(g.s, bgi::parameters<bgi::rstar<4>, bg::strategies::index::geographic<> >());
92f5a8d4
TL
104
105 return 0;
106}