]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/test/algorithms/disjoint/disjoint_multi.cpp
1 // Boost.Geometry (aka GGL, Generic Geometry Library)
4 // Copyright (c) 2012-2015 Barend Gehrels, Amsterdam, the Netherlands.
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)
11 #include "test_disjoint.hpp"
13 #include <boost/geometry/strategies/strategies.hpp>
15 #include <boost/geometry/geometries/geometries.hpp>
16 #include <boost/geometry/geometries/point_xy.hpp>
18 #include <test_common/test_point.hpp>
20 #include <algorithms/predef_relop.hpp>
26 typedef bg::model::linestring
<P
> ls
;
27 typedef bg::model::multi_linestring
<ls
> mls
;
28 typedef bg::model::polygon
<P
> polygon
;
29 typedef bg::model::multi_polygon
<polygon
> mp
;
31 test_disjoint
<mp
, mp
>("",
32 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
33 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
37 test_disjoint
<mp
, mp
>("",
38 "MULTIPOLYGON(((0 0,0 4,4 4,4 0,0 0)))",
39 "MULTIPOLYGON(((6 6,6 10,10 10,10 6,6 6)))",
42 // Touch -> not disjoint
43 test_disjoint
<mp
, mp
>("",
44 "MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))",
45 "MULTIPOLYGON(((5 5,5 10,10 10,10 5,5 5)))",
48 // Not disjoint but no IP's
49 test_disjoint
<mp
, mp
>("no_ips",
50 "MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2)),((20 0,20 10,30 10,30 0,20 0)))",
51 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((22 2,28 2,28 8,22 8,22 2)))",
54 // Not disjoint and not inside each other (in first ring) but wrapped (in second rings)
55 test_disjoint
<mp
, mp
>("no_ips2",
56 "MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2)),((20 0,20 10,30 10,30 0,20 0)))",
57 "MULTIPOLYGON(((2 12,2 18,8 18,8 12,2 12)),((22 2,28 2,28 8,22 8,22 2)))",
60 test_disjoint
<mp
, mp
>("no_ips2_rev",
61 "MULTIPOLYGON(((2 12,2 18,8 18,8 12,2 12)),((22 2,28 2,28 8,22 8,22 2)))",
62 "MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2)),((20 0,20 10,30 10,30 0,20 0)))",
66 test_disjoint
<P
, mp
>("point_mp1",
68 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
71 test_disjoint
<P
, mp
>("point_mp2",
73 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
76 test_disjoint
<P
, mp
>("point_mp1",
78 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
81 std::string
polygon_inside_hole("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0), (2 2,8 2,8 8,2 8,2 2)),((4 4,4 6,6 6,6 4,4 4)))");
82 test_disjoint
<P
, mp
>("point_mp_pih1",
87 test_disjoint
<P
, mp
>("point_mp_pih2",
92 test_disjoint
<mp
, P
>("point_mp1rev",
93 "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))",
97 // assertion failure in 1.57
98 test_disjoint
<ls
, mls
>("point_l_ml_assert_1_57",
99 "LINESTRING(-2305843009213693956 4611686018427387906, -33 -92, 78 83)",
100 "MULTILINESTRING((20 100, 31 -97, -46 57, -20 -4))",
102 test_disjoint
<ls
, mls
>("point_l_ml_assert_1_57",
103 "LINESTRING(-2305843009213693956 4611686018427387906, -33 -92, 78 83)",
104 "MULTILINESTRING((20 100, 31 -97, -46 57, -20 -4),(-71 -4))",
108 int test_main(int, char* [])
110 //test_all<bg::model::d2::point_xy<float> >();
111 test_all
<bg::model::d2::point_xy
<double> >();
114 test_all
<bg::model::d2::point_xy
<ttmath_big
> >();
124 select geometry::STGeomFromText('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2)),((20 0,20 10,30 10,30 0,20 0)))',0) as p
125 , geometry::STGeomFromText('MULTIPOLYGON(((2 12,2 18,8 18,8 12,2 12)),((22 2,28 2,28 8,22 8,22 2)))',0) as q
127 select p from viewy union all select q from viewy
128 -- select p.STDisjoint(q) from viewy