]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Boost.Geometry (aka GGL, Generic Geometry Library) |
2 | ||
3 | // Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands. | |
4 | ||
5 | // This file was modified by Oracle on 2014, 2015. | |
6 | // Modifications copyright (c) 2014-2015 Oracle and/or its affiliates. | |
7 | ||
8 | // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle | |
9 | ||
10 | // Use, modification and distribution is subject to the Boost Software License, | |
11 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
12 | // http://www.boost.org/LICENSE_1_0.txt) | |
13 | ||
14 | #include "test_overlaps.hpp" | |
15 | ||
16 | template <typename P> | |
17 | void test_aa() | |
18 | { | |
19 | typedef bg::model::polygon<P> poly; | |
20 | typedef bg::model::multi_polygon<poly> mpoly; | |
21 | ||
22 | test_geometry<poly, poly>("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((3 3,3 9,9 9,9 3,3 3))", true); | |
23 | test_geometry<poly, poly>("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((5 5,5 9,9 9,9 5,5 5))", false); | |
24 | test_geometry<poly, poly>("POLYGON((0 0,0 5,5 5,5 0,0 0))", "POLYGON((3 3,3 5,5 5,5 3,3 3))", false); | |
25 | ||
26 | test_geometry<poly, mpoly>("POLYGON((0 0,0 5,5 5,5 0,0 0))", | |
27 | "MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((5 5,5 6,6 6,6 5,5 5)))", | |
28 | true); | |
29 | test_geometry<mpoly, mpoly>("MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((0 0,0 3,3 3,3 0,0,0)))", | |
30 | "MULTIPOLYGON(((3 3,3 5,5 5,5 3,3 3)),((5 5,5 6,6 6,6 5,5 5)))", | |
31 | true); | |
32 | ||
33 | // related to https://svn.boost.org/trac/boost/ticket/10912 | |
34 | test_geometry<poly, poly>("POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,4 2,4 4,2 4,2 2))", | |
35 | "POLYGON((3 3,3 9,9 9,9 3,3 3))", | |
36 | true); | |
37 | test_geometry<poly, poly>("POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,4 2,4 4,2 4,2 2),(6 6,8 6,8 8,6 8,6 6))", | |
38 | "POLYGON((0 0,0 5,5 5,5 0,0 0))", | |
39 | true); | |
40 | ||
41 | test_geometry<mpoly, poly>("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0 0)))", | |
42 | "POLYGON((0 0,0 5,5 5,5 0,0 0))", | |
43 | false); | |
44 | test_geometry<mpoly, poly>("MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0 0)))", | |
45 | "POLYGON((0 0,0 10,10 10,10 0,0 0))", | |
46 | false); | |
47 | ||
48 | // mysql 21872795 | |
49 | test_geometry<poly, poly>("POLYGON((2 2,2 8,8 8,8 2,2 2))", | |
50 | "POLYGON((0 0,0 10,10 10,10 0,0 0),(8 8,4 6,4 4,8 8))", | |
51 | true); | |
52 | test_geometry<poly, poly>("POLYGON((2 2,2 8,8 8,8 2,2 2))", | |
53 | "POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,4 4,4 6,2 2))", | |
54 | true); | |
55 | } | |
56 | ||
57 | template <typename P> | |
58 | void test_2d() | |
59 | { | |
60 | test_aa<P>(); | |
61 | } | |
62 | ||
63 | int test_main( int , char* [] ) | |
64 | { | |
65 | test_2d<bg::model::d2::point_xy<int> >(); | |
66 | test_2d<bg::model::d2::point_xy<double> >(); | |
67 | ||
68 | #if defined(HAVE_TTMATH) | |
69 | test_2d<bg::model::d2::point_xy<ttmath_big> >(); | |
70 | #endif | |
71 | ||
72 | return 0; | |
73 | } |