]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/test/algorithms/covered_by/covered_by_sph_geo.cpp
3 // Copyright (c) 2016 Oracle and/or its affiliates.
4 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
6 // Use, modification and distribution is subject to the Boost Software License,
7 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
10 #include "test_covered_by.hpp"
13 #include <boost/geometry/geometries/geometries.hpp>
19 typedef bg::model::box
<P
> box_t
;
21 test_geometry
<P
, box_t
>("POINT(0 0)", "BOX(0 0, 1 1)", true);
22 test_geometry
<P
, box_t
>("POINT(1 1)", "BOX(0 0, 2 2)", true);
24 test_geometry
<P
, box_t
>("POINT(180 1)", "BOX(170 0, 190 2)", true);
25 test_geometry
<P
, box_t
>("POINT(-180 1)", "BOX(170 0, 190 2)", true);
26 test_geometry
<P
, box_t
>("POINT(180 1)", "BOX(170 0, 180 2)", true);
27 test_geometry
<P
, box_t
>("POINT(-180 1)", "BOX(170 0, 180 2)", true);
28 test_geometry
<P
, box_t
>("POINT(179 1)", "BOX(170 0, 190 2)", true);
29 test_geometry
<P
, box_t
>("POINT(-179 1)", "BOX(170 0, 190 2)", true);
30 test_geometry
<P
, box_t
>("POINT(179 1)", "BOX(170 0, 180 2)", true);
31 test_geometry
<P
, box_t
>("POINT(-179 1)", "BOX(170 0, 180 2)", false);
32 test_geometry
<P
, box_t
>("POINT(169 1)", "BOX(170 0, 180 2)", false);
34 // https://svn.boost.org/trac/boost/ticket/12412
35 test_geometry
<P
, box_t
>("POINT(-0.127592 51.7)", "BOX(-2.08882 51.5034, -0.127592 51.9074)", true);
37 test_geometry
<P
, box_t
>("POINT(-2.08882 51.7)", "BOX(-2.08882 51.5034, -0.127592 51.9074)", true);
38 test_geometry
<P
, box_t
>("POINT(0.127592 51.7)", "BOX(0.127592 51.5034, 2.08882 51.9074)", true);
39 test_geometry
<P
, box_t
>("POINT(2.08882 51.7)", "BOX(0.127592 51.5034, 2.08882 51.9074)", true);
41 test_geometry
<P
, box_t
>("POINT(179.08882 1)", "BOX(179.08882 0, 538.127592 2)", true);
42 test_geometry
<P
, box_t
>("POINT(178.127592 1)", "BOX(179.08882 0, 538.127592 2)", true);
43 test_geometry
<P
, box_t
>("POINT(179.08882 1)", "BOX(179.08882 0, 182.127592 2)", true);
44 test_geometry
<P
, box_t
>("POINT(-177.872408 1)", "BOX(179.08882 0, 182.127592 2)", true);
50 typedef bg::model::box
<P
> box_t
;
52 test_geometry
<box_t
, box_t
>("BOX(0 0, 1 1)", "BOX(0 0, 1 1)", true);
54 test_geometry
<box_t
, box_t
>("BOX(-170 0,-160 1)", "BOX(-180 0, 180 1)", true);
55 test_geometry
<box_t
, box_t
>("BOX(-170 0,-160 1)", "BOX(170 0, 200 1)", true);
56 test_geometry
<box_t
, box_t
>("BOX(-170 0,-150 1)", "BOX(170 0, 200 1)", false);
57 test_geometry
<box_t
, box_t
>("BOX(0 0,1 1)", "BOX(170 0, 370 1)", true);
58 test_geometry
<box_t
, box_t
>("BOX(0 0,10 1)", "BOX(170 0, 370 1)", true);
59 test_geometry
<box_t
, box_t
>("BOX(-180 0,10 1)", "BOX(170 0, 370 1)", true);
60 test_geometry
<box_t
, box_t
>("BOX(-180 0,20 1)", "BOX(170 0, 370 1)", false);
61 test_geometry
<box_t
, box_t
>("BOX(10 0,20 1)", "BOX(170 0, 370 1)", false);
62 test_geometry
<box_t
, box_t
>("BOX(160 0,180 1)", "BOX(170 0, 370 1)", false);
64 test_geometry
<box_t
, box_t
>("BOX(-180 0,-170 1)", "BOX(180 0, 190 1)", true); // invalid?
65 test_geometry
<box_t
, box_t
>("BOX(-180 0,-170 1)", "BOX(180 0, 191 1)", true); // invalid?
66 test_geometry
<box_t
, box_t
>("BOX(-180 0,-170 1)", "BOX(179 0, 190 1)", true);
67 test_geometry
<box_t
, box_t
>("BOX(-180 0,-170 1)", "BOX(181 0, 190 1)", false); // invalid?
68 test_geometry
<box_t
, box_t
>("BOX(-180 0,-170 1)", "BOX(180 0, 189 1)", false); // invalid?
70 // Related to https://svn.boost.org/trac/boost/ticket/12412
71 test_geometry
<box_t
, box_t
>("BOX(-1.346346 51.6, -0.127592 51.7)", "BOX(-2.08882 51.5034, -0.127592 51.9074)", true);
72 test_geometry
<box_t
, box_t
>("BOX(-2.08882 51.6, -1.346346 51.7)", "BOX(-2.08882 51.5034, -0.127592 51.9074)", true);
73 test_geometry
<box_t
, box_t
>("BOX(0.127592 51.6, 1.346346 51.7)", "BOX(0.127592 51.5034, 2.08882 51.9074)", true);
74 test_geometry
<box_t
, box_t
>("BOX(1.346346 51.6, 2.08882 51.7)", "BOX(0.127592 51.5034, 2.08882 51.9074)", true);
76 test_geometry
<box_t
, box_t
>("BOX(179.08882 1, 180.0 1)", "BOX(179.08882 0, 538.127592 2)", true);
77 test_geometry
<box_t
, box_t
>("BOX(177.0 1, 178.127592 1)", "BOX(179.08882 0, 538.127592 2)", true);
78 test_geometry
<box_t
, box_t
>("BOX(179.08882 1, 179.9 1)", "BOX(179.08882 0, 182.127592 2)", true);
79 test_geometry
<box_t
, box_t
>("BOX(-179.9 1, -177.872408 1)", "BOX(179.08882 0, 182.127592 2)", true);
83 void test_point_polygon()
85 typename
boost::mpl::if_
87 boost::is_same
<typename
bg::cs_tag
<P
>::type
, bg::geographic_tag
>,
88 bg::strategy::within::geographic_winding
<P
>,
89 bg::strategy::within::spherical_winding
<P
>
92 typedef bg::model::polygon
<P
> poly
;
94 // MySQL report 08.2017
95 test_geometry
<P
, poly
>("POINT(-179 0)",
96 "POLYGON((0 0, 0 2, 2 0, 0 -2, 0 0))",
98 test_geometry
<P
, poly
>("POINT(-179 0)",
99 "POLYGON((0 0, 0 2, 2 0, 0 -2, 0 0))",
103 test_geometry
<P
, poly
>("POINT(1 0)",
104 "POLYGON((0 0, 0 2, 2 0, 0 -2, 0 0))",
106 test_geometry
<P
, poly
>("POINT(1 0)",
107 "POLYGON((0 0, 0 2, 2 0, 0 -2, 0 0))",
112 template <typename P
>
117 test_point_polygon
<P
>();
121 int test_main( int , char* [] )
123 test_cs
<bg::model::point
<double, 2, bg::cs::spherical_equatorial
<bg::degree
> > >();
124 test_cs
<bg::model::point
<double, 2, bg::cs::geographic
<bg::degree
> > >();
126 #if defined(HAVE_TTMATH)
127 test_cs
<bg::model::point
<ttmath_big
, 2, bg::cs::spherical_equatorial
<bg::degree
> > >();
128 test_cs
<bg::model::point
<ttmath_big
, 2, bg::cs::geographic
<bg::degree
> > >();;