]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/test/strategies/segment_intersection_geo.cpp
4 // Copyright (c) 2016, Oracle and/or its affiliates.
5 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
7 // Use, modification and distribution is subject to the Boost Software License,
8 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
12 #include "segment_intersection_geo.hpp"
16 void test_geographic()
18 typedef bg::model::point
<double, 2, bg::cs::geographic
<bg::degree
> > point_t
;
19 typedef bg::model::segment
<point_t
> segment_t
;
21 test_all_strategies
<segment_t
, point_t
>(
22 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 -2, -1 -1)", 'a', "POINT(-1 -1)");
23 test_all_strategies
<segment_t
, point_t
>(
24 "SEGMENT(-1 -2, 1 1)", "SEGMENT(-1 -2, -1 -1)", 'f', "POINT(-1 -2)");
25 test_all_strategies
<segment_t
, point_t
>(
26 "SEGMENT(1 1, -1 -1)", "SEGMENT(-1 -2, -1 -1)", 't', "POINT(-1 -1)");
27 test_all_strategies
<segment_t
, point_t
>(
28 "SEGMENT(1 1, -1 -2)", "SEGMENT(-1 -2, -1 -1)", 'a', "POINT(-1 -2)");
29 test_all_strategies
<segment_t
, point_t
>(
30 "SEGMENT(-1 -2, -1 -1)", "SEGMENT(-1 -1, 1 1)", 'a', "POINT(-1 -1)");
31 test_all_strategies
<segment_t
, point_t
>(
32 "SEGMENT(-1 -2, -1 -1)", "SEGMENT(-1 -2, 1 1)", 'f', "POINT(-1 -2)");
33 test_all_strategies
<segment_t
, point_t
>(
34 "SEGMENT(-1 -2, -1 -1)", "SEGMENT(1 1, -1 -1)", 't', "POINT(-1 -1)");
35 test_all_strategies
<segment_t
, point_t
>(
36 "SEGMENT(-1 -2, -1 -1)", "SEGMENT(1 1, -1 -2)", 'a', "POINT(-1 -2)");
38 test_strategies
<segment_t
, point_t
>(
39 "SEGMENT(-1 -2, -1 2)", "SEGMENT(-2 -2, 2 2)",
40 great_elliptic('i', "POINT(-1 -1.000457053724121)"),
41 geodesic_vincenty('i', "POINT(-1 -1.000459099991114)"),
42 geodesic_andoyer('i', "POINT(-1 -1.000453510849886)"));
43 test_strategies
<segment_t
, point_t
>(
44 "SEGMENT(-2 -2, 2 2)", "SEGMENT(-1 -2, -1 2)",
45 great_elliptic('i', "POINT(-1 -1.000457053724121)"),
46 geodesic_vincenty('i', "POINT(-1 -1.000459099991114)"),
47 geodesic_andoyer('i', "POINT(-1 -1.000453510849886)"));
50 test_strategies
<segment_t
, point_t
>(
51 "SEGMENT(-45 -45, 45 45)", "SEGMENT(-45 45, 45 -45)",
52 great_elliptic('i', "POINT(0 0)"),
53 geodesic_vincenty('i', "POINT(0 -0.0000000019543337739)"),
54 geodesic_andoyer('i', "POINT(0 0.0003512140328446071)"));
55 test_strategies
<segment_t
, point_t
>(
56 "SEGMENT(-45 -45, 45 45)", "SEGMENT(45 -45, -45 45)",
57 great_elliptic('i', "POINT(0 0)"),
58 geodesic_vincenty('i', "POINT(0 -0.0000000019543337739)"),
59 geodesic_andoyer('i', "POINT(0 0.0003512140328446071)"));
60 test_strategies
<segment_t
, point_t
>(
61 "SEGMENT(45 45, -45 -45)", "SEGMENT(-45 45, 45 -45)",
62 great_elliptic('i', "POINT(0 0)"),
63 geodesic_vincenty('i', "POINT(0 -0.0000000019543337739)"),
64 geodesic_andoyer('i', "POINT(0 0.0003512140328446071)"));
65 test_strategies
<segment_t
, point_t
>(
66 "SEGMENT(45 45, -45 -45)", "SEGMENT(45 -45, -45 45)",
67 great_elliptic('i', "POINT(0 0)"),
68 geodesic_vincenty('i', "POINT(0 -0.0000000019543337739)"),
69 geodesic_andoyer('i', "POINT(0 0.0003512140328446071)"));
72 test_strategies
<segment_t
, point_t
>(
73 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 1, 1 -1)",
74 great_elliptic('i', "POINT(0 0)"),
75 geodesic_vincenty('i', "POINT(0.000000000000000596354 -0.0000000000626626779)"),
76 geodesic_andoyer('i', "POINT(-0.000000000000000596354 0.0000055787431347552)"));
77 test_strategies
<segment_t
, point_t
>(
78 "SEGMENT(-1 -1, 1 1)", "SEGMENT(1 -1, -1 1)",
79 great_elliptic('i', "POINT(0 0)"),
80 geodesic_vincenty('i', "POINT(0.000000000000000596354 -0.0000000000626626779)"),
81 geodesic_andoyer('i', "POINT(-0.000000000000000596354 0.0000055787431347552)"));
82 test_strategies
<segment_t
, point_t
>(
83 "SEGMENT(1 1, -1 -1)", "SEGMENT(-1 1, 1 -1)",
84 great_elliptic('i', "POINT(0 0)"),
85 geodesic_vincenty('i', "POINT(0.000000000000000596354 -0.0000000000626626779)"),
86 geodesic_andoyer('i', "POINT(-0.000000000000000596354 0.0000055787431347552)"));
87 test_strategies
<segment_t
, point_t
>(
88 "SEGMENT(1 1, -1 -1)", "SEGMENT(1 -1, -1 1)",
89 great_elliptic('i', "POINT(0 0)"),
90 geodesic_vincenty('i', "POINT(0.000000000000000596354 -0.0000000000626626779)"),
91 geodesic_andoyer('i', "POINT(-0.000000000000000596354 0.0000055787431347552)"));
95 test_all_strategies
<segment_t
, point_t
>(
96 "SEGMENT(-45 -45, 45 45)", "SEGMENT(-45 -45, 45 45)", 'e', "POINT(-45 -45)", "POINT(45 45)", false);
98 test_all_strategies
<segment_t
, point_t
>(
99 "SEGMENT(-45 -45, 45 45)", "SEGMENT(45 45, -45 -45)", 'e', "POINT(-45 -45)", "POINT(45 45)", true);
101 // starting outside s1
104 test_all_strategies
<segment_t
, point_t
>(
105 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-2 -2, -1 -1)", 'a', "POINT(-1 -1)");
108 test_all_strategies
<segment_t
, point_t
>(
109 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-2 -2, 0 0)", 'm', "POINT(0 0)");
112 test_all_strategies
<segment_t
, point_t
>(
113 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-2 -2, 1 1)", 't', "POINT(1 1)");
116 test_strategies
<segment_t
, point_t
>(
117 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-2 -2, 2 2)",
118 great_elliptic('i', "POINT(0 0)"),
119 geodesic_vincenty('i', "POINT(0.00000013628420059 0.00000013624239008)"),
120 geodesic_thomas('i', "POINT(-0.00004079969079346 -0.00004078714535240)"),
121 geodesic_andoyer('i', "POINT(-0.01217344899138908 -0.01216980051876599)"));
124 test_all_strategies
<segment_t
, point_t
>(
125 "SEGMENT(-1 0, 1 0)", "SEGMENT(-2 0, -1 0)", 'a', "POINT(-1 0)");
128 test_all_strategies
<segment_t
, point_t
>(
129 "SEGMENT(-1 0, 1 0)", "SEGMENT(-2 0, 0 0)", 'c', "POINT(-1 0)", "POINT(0 0)", false);
130 test_all_strategies
<segment_t
, point_t
>(
131 "SEGMENT(-1 0, 1 0)", "SEGMENT(0 0, -2 0)", 'c', "POINT(-1 0)", "POINT(0 0)", true);
132 test_all_strategies
<segment_t
, point_t
>(
133 "SEGMENT(1 0, -1 0)", "SEGMENT(-2 0, 0 0)", 'c', "POINT(0 0)", "POINT(-1 0)", true);
134 test_all_strategies
<segment_t
, point_t
>(
135 "SEGMENT(1 0, -1 0)", "SEGMENT(0 0, -2 0)", 'c', "POINT(0 0)", "POINT(-1 0)", false);
138 test_all_strategies
<segment_t
, point_t
>(
139 "SEGMENT(-1 0, 1 0)", "SEGMENT(-2 0, 1 0)", 'c', "POINT(-1 0)", "POINT(1 0)", false);
140 test_all_strategies
<segment_t
, point_t
>(
141 "SEGMENT(-1 0, 1 0)", "SEGMENT(1 0, -2 0)", 'c', "POINT(-1 0)", "POINT(1 0)", true);
142 test_all_strategies
<segment_t
, point_t
>(
143 "SEGMENT(1 0, -1 0)", "SEGMENT(-2 0, 1 0)", 'c', "POINT(1 0)", "POINT(-1 0)", true);
144 test_all_strategies
<segment_t
, point_t
>(
145 "SEGMENT(1 0, -1 0)", "SEGMENT(1 0, -2 0)", 'c', "POINT(1 0)", "POINT(-1 0)", false);
148 test_all_strategies
<segment_t
, point_t
>(
149 "SEGMENT(-1 0, 1 0)", "SEGMENT(-2 0, 2 0)", 'c', "POINT(-1 0)", "POINT(1 0)", false);
154 test_all_strategies
<segment_t
, point_t
>(
155 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 -1, 0 0)", 'c', "POINT(-1 -1)", "POINT(0 0)", false);
158 test_all_strategies
<segment_t
, point_t
>(
159 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 -1, 1 1)", 'e', "POINT(-1 -1)", "POINT(1 1)", false);
162 test_all_strategies
<segment_t
, point_t
>(
163 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 -1, 2 2)", 'f', "POINT(-1 -1)");
166 test_all_strategies
<segment_t
, point_t
>(
167 "SEGMENT(-1 0, 1 0)", "SEGMENT(-1 0, 0 0)", 'c', "POINT(-1 0)", "POINT(0 0)", false);
170 test_all_strategies
<segment_t
, point_t
>(
171 "SEGMENT(-1 0, 1 0)", "SEGMENT(-1 0, 1 0)", 'e', "POINT(-1 0)", "POINT(1 0)", false);
174 test_all_strategies
<segment_t
, point_t
>(
175 "SEGMENT(-1 0, 1 0)", "SEGMENT(-1 0, 2 0)", 'c', "POINT(-1 0)", "POINT(1 0)", false);
180 test_all_strategies
<segment_t
, point_t
>(
181 "SEGMENT(-1 -1, 1 1)", "SEGMENT(0 0, 1 1)", 'c', "POINT(0 0)", "POINT(1 1)", false);
182 test_all_strategies
<segment_t
, point_t
>(
183 "SEGMENT(-1 -1, 1 1)", "SEGMENT(1 1, 0 0)", 'c', "POINT(0 0)", "POINT(1 1)", true);
184 test_all_strategies
<segment_t
, point_t
>(
185 "SEGMENT(1 1, -1 -1)", "SEGMENT(0 0, 1 1)", 'c', "POINT(1 1)", "POINT(0 0)", true);
186 test_all_strategies
<segment_t
, point_t
>(
187 "SEGMENT(1 1, -1 -1)", "SEGMENT(1 1, 0 0)", 'c', "POINT(1 1)", "POINT(0 0)", false);
188 test_all_strategies
<segment_t
, point_t
>(
189 "SEGMENT(0 0, 1 1)", "SEGMENT(-1 -1, 1 1)", 'c', "POINT(0 0)", "POINT(1 1)", false);
190 test_all_strategies
<segment_t
, point_t
>(
191 "SEGMENT(1 1, 0 0)", "SEGMENT(-1 -1, 1 1)", 'c', "POINT(1 1)", "POINT(0 0)", true);
192 test_all_strategies
<segment_t
, point_t
>(
193 "SEGMENT(0 0, 1 1)", "SEGMENT(1 1, -1 -1)", 'c', "POINT(0 0)", "POINT(1 1)", true);
194 test_all_strategies
<segment_t
, point_t
>(
195 "SEGMENT(1 1, 0 0)", "SEGMENT(1 1, -1 -1)", 'c', "POINT(1 1)", "POINT(0 0)", false);
198 test_all_strategies
<segment_t
, point_t
>(
199 "SEGMENT(-1 -1, 1 1)", "SEGMENT(0 0, 2 2)", 's', "POINT(0 0)");
202 test_all_strategies
<segment_t
, point_t
>(
203 "SEGMENT(-1 0, 1 0)", "SEGMENT(0 0, 1 0)", 'c', "POINT(0 0)", "POINT(1 0)", false);
206 test_all_strategies
<segment_t
, point_t
>(
207 "SEGMENT(-1 0, 1 0)", "SEGMENT(0 0, 2 0)", 'c', "POINT(0 0)", "POINT(1 0)", false);
212 test_all_strategies
<segment_t
, point_t
>(
213 "SEGMENT(-1 -1, 1 1)", "SEGMENT(1 1, 2 2)", 'a', "POINT(1 1)");
216 test_all_strategies
<segment_t
, point_t
>(
217 "SEGMENT(-1 0, 1 0)", "SEGMENT(1 0, 2 0)", 'a', "POINT(1 0)");
219 // disjoint, crossing
222 test_all_strategies
<segment_t
, point_t
>(
223 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-3 -3, -2 -2)", 'd');
226 test_all_strategies
<segment_t
, point_t
>(
227 "SEGMENT(-1 -1, 1 1)", "SEGMENT(2 2, 3 3)", 'd');
228 // disjoint, collinear
231 test_all_strategies
<segment_t
, point_t
>(
232 "SEGMENT(-1 0, 1 0)", "SEGMENT(-3 0, -2 0)", 'd');
235 test_all_strategies
<segment_t
, point_t
>(
236 "SEGMENT(-1 0, 1 0)", "SEGMENT(2 0, 3 0)", 'd');
241 test_all_strategies
<segment_t
, point_t
>(
242 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-2 -2, -2 -2)", 'd');
245 test_all_strategies
<segment_t
, point_t
>(
246 "SEGMENT(-1 -1, 1 1)", "SEGMENT(-1 -1, -1 -1)", '0', "POINT(-1 -1)");
250 test_all_strategies
<segment_t
, point_t
>(
251 "SEGMENT(-1 -1, 1 1)", "SEGMENT(0 0, 0 0)", '0', "POINT(0 0)");
254 test_all_strategies
<segment_t
, point_t
>(
255 "SEGMENT(-1 -1, 1 1)", "SEGMENT(1 1, 1 1)", '0', "POINT(1 1)");
258 test_all_strategies
<segment_t
, point_t
>(
259 "SEGMENT(-1 -1, 1 1)", "SEGMENT(2 2, 2 2)", 'd');
260 // similar to above, collinear
262 test_all_strategies
<segment_t
, point_t
>(
263 "SEGMENT(-1 0, 1 0)", "SEGMENT(-2 0, -2 0)", 'd');
265 test_all_strategies
<segment_t
, point_t
>(
266 "SEGMENT(-1 0, 1 0)", "SEGMENT(-1 0, -1 0)", '0', "POINT(-1 0)");
268 test_all_strategies
<segment_t
, point_t
>(
269 "SEGMENT(-1 0, 1 0)", "SEGMENT(0 0, 0 0)", '0', "POINT(0 0)");
271 test_all_strategies
<segment_t
, point_t
>(
272 "SEGMENT(-1 0, 1 0)", "SEGMENT(1 0, 1 0)", '0', "POINT(1 0)");
274 test_all_strategies
<segment_t
, point_t
>(
275 "SEGMENT(-1 0, 1 0)", "SEGMENT(2 0, 2 0)", 'd');
277 // Northern hemisphere
279 test_all_strategies
<segment_t
, point_t
>(
280 "SEGMENT(-1 50, 1 50)", "SEGMENT(-3 50, -2 50)", 'd');
283 test_all_strategies
<segment_t
, point_t
>(
284 "SEGMENT(-1 50, 1 50)", "SEGMENT(-2 50, -1 50)", 'a', "POINT(-1 50)");
286 // /\ (avoid multi-line comment)
287 test_strategies
<segment_t
, point_t
>(
288 "SEGMENT(-1 50, 1 50)", "SEGMENT(-2 50, 0 50)",
289 great_elliptic('i', "POINT(-0.5 50.0032229484023)"),
290 geodesic_vincenty('i', "POINT(-0.4999999996073994 50.00323192256208)"),
291 geodesic_thomas('i', "POINT(-0.4999999963998482 50.00323192258598)"),
292 geodesic_andoyer('i', "POINT(-0.4999990340391772 50.00323192463806)"));
294 // / _____\ (avoid multi-line comment)
295 test_all_strategies
<segment_t
, point_t
>(
296 "SEGMENT(-1 50, 1 50)", "SEGMENT(-2 50, 1 50)", 't', "POINT(1 50)");
298 // / _____ \ (avoid multi-line comment)
299 test_all_strategies
<segment_t
, point_t
>(
300 "SEGMENT(-1 50, 1 50)", "SEGMENT(-2 50, 2 50)", 'd');
302 // /___ \ (avoid multi-line comment)
303 test_all_strategies
<segment_t
, point_t
>(
304 "SEGMENT(-1 50, 1 50)", "SEGMENT(-1 50, 0 50)", 'f', "POINT(-1 50)");
307 test_all_strategies
<segment_t
, point_t
>(
308 "SEGMENT(-1 50, 1 50)", "SEGMENT(-1 50, 1 50)", 'e', "POINT(-1 50)", "POINT(1 50)", false);
310 // /_____ \ (avoid multi-line comment)
311 test_all_strategies
<segment_t
, point_t
>(
312 "SEGMENT(-1 50, 1 50)", "SEGMENT(-1 50, 2 50)", 'f', "POINT(-1 50)");
314 // / ___\ (avoid multi-line comment)
315 test_all_strategies
<segment_t
, point_t
>(
316 "SEGMENT(-1 50, 1 50)", "SEGMENT(0 50, 1 50)", 't', "POINT(1 50)");
318 // /\ (avoid multi-line comment)
319 test_strategies
<segment_t
, point_t
>(
320 "SEGMENT(-1 50, 1 50)", "SEGMENT(0 50, 2 50)",
321 great_elliptic('i', "POINT(0.5 50.0032229484023)"),
322 geodesic_vincenty('i', "POINT(0.4999999996112415 50.00323192256208)"),
323 geodesic_thomas('i', "POINT(0.5000000051005989 50.00323192258598)"),
324 geodesic_andoyer('i', "POINT(0.5000009655139563 50.00323192463806)"));
327 test_all_strategies
<segment_t
, point_t
>(
328 "SEGMENT(-1 50, 1 50)", "SEGMENT(1 50, 2 50)", 'a', "POINT(1 50)");
330 test_all_strategies
<segment_t
, point_t
>(
331 "SEGMENT(-1 50, 1 50)", "SEGMENT(2 50, 3 50)", 'd');
334 test_all_strategies
<segment_t
, point_t
>(
335 "SEGMENT(0 0, 1 0)", "SEGMENT(1 0, 1 1)", 'a', "POINT(1 0)");
337 test_all_strategies
<segment_t
, point_t
>(
338 "SEGMENT(1 0, 1 1)", "SEGMENT(0 0, 1 0)", 'a', "POINT(1 0)");
342 test_strategies
<segment_t
, point_t
>(
343 "SEGMENT(10 -1, 20 1)", "SEGMENT(12.5 -1, 12.5 1)",
344 great_elliptic('i', "POINT(12.5 -0.50051443471392)"),
345 geodesic_vincenty('i', "POINT(12.5 -0.5005177749487734)"),
346 geodesic_thomas('i', "POINT(12.5 -0.5005177654827411)"),
347 geodesic_andoyer('i', "POINT(12.5 -0.500525380045163)"));
350 test_strategies
<segment_t
, point_t
>(
351 "SEGMENT(10 -1, 20 1)", "SEGMENT(17.5 -1, 17.5 1)",
352 great_elliptic('i', "POINT(17.5 0.50051443471392)"),
353 geodesic_vincenty('i', "POINT(17.5 0.5005177748229335)"),
354 geodesic_thomas('i', "POINT(17.5 0.5005178030678186)"),
355 geodesic_andoyer('i', "POINT(17.5 0.5004949944844279)"));
357 // vertical, crossing at the pole or disjoint
358 test_all_strategies
<segment_t
, point_t
>(
359 "SEGMENT(90 45, -90 60)", "SEGMENT(0 50, 180 70)", 'i', "POINT(0 90)");
360 test_all_strategies
<segment_t
, point_t
>(
361 "SEGMENT(90 -45, -90 -60)", "SEGMENT(0 -50, 180 -70)", 'i', "POINT(0 -90)");
362 test_all_strategies
<segment_t
, point_t
>(
363 "SEGMENT(90 45, -90 60)", "SEGMENT(0 -50, 180 -70)", 'd');
364 test_all_strategies
<segment_t
, point_t
>(
365 "SEGMENT(90 -45, -90 -60)", "SEGMENT(0 50, 180 70)", 'd');
367 // vertical touching at the pole
368 test_all_strategies
<segment_t
, point_t
>(
369 "SEGMENT(90 90, 90 45)", "SEGMENT(0 90, 0 45)", 'f', "POINT(90 90)"); // should probably be (0 90)
370 test_all_strategies
<segment_t
, point_t
>(
371 "SEGMENT(90 90, 90 45)", "SEGMENT(0 45, 0 90)", 'a', "POINT(90 90)"); // should probably be (0 90)
372 test_all_strategies
<segment_t
, point_t
>(
373 "SEGMENT(90 45, 90 90)", "SEGMENT(0 90, 0 45)", 'a', "POINT(90 90)"); // should probably be (0 90)
374 test_all_strategies
<segment_t
, point_t
>(
375 "SEGMENT(90 45, 90 90)", "SEGMENT(0 45, 0 90)", 't', "POINT(90 90)"); // should probably be (0 90)
377 // one vertical with endpoint at a pole
378 /*test_strategies<segment_t, point_t>(
379 "SEGMENT(0 90, 90 0)", "SEGMENT(89 45, 91 45)",
380 great_elliptic('i', "POINT(90 45.00436354465514)"),
381 geodesic_vincenty('i', "POINT(90.00000000000112 45.00437824795338)"),
382 geodesic_thomas('i', "POINT(90.00000000472062 45.00437824797395)"),
383 geodesic_andoyer('i', "POINT(89.99999993672924 45.00437824794587)"));
384 test_strategies<segment_t, point_t>(
385 "SEGMENT(90 0, 0 90)", "SEGMENT(89 45, 91 45)",
386 great_elliptic('i', "POINT(90 45.00436354465514)"),
387 geodesic_vincenty('i', "POINT(90.00000000000112 45.00437824795338)"),
388 geodesic_thomas('i', "POINT(90.00000000472062 45.00437824797395)"),
389 geodesic_andoyer('i', "POINT(89.99999993672924 45.00437824794587)"));
390 test_strategies<segment_t, point_t>(
391 "SEGMENT(0 -90, 90 0)", "SEGMENT(89 -45, 91 -45)",
392 great_elliptic('i', "POINT(90 -45.00436354465514)"),
393 geodesic_vincenty('i', "POINT(90.00000000000112 -45.00437824795338)"),
394 geodesic_thomas('i', "POINT(90.00000000472062 -45.00437824797395)"),
395 geodesic_andoyer('i', "POINT(89.99999993672924 -45.00437824794587)"));
396 test_strategies<segment_t, point_t>(
397 "SEGMENT(90 0, 0 -90)", "SEGMENT(89 -45, 91 -45)",
398 great_elliptic('i', "POINT(90 -45.00436354465514)"),
399 geodesic_vincenty('i', "POINT(90.00000000000112 -45.00437824795338)"),
400 geodesic_thomas('i', "POINT(90.00000000472062 -45.00437824797395)"),
401 geodesic_andoyer('i', "POINT(89.99999993672924 -45.00437824794587)"));*/
404 int test_main(int, char* [])
406 //test_geographic<float>();
407 test_geographic
<double>();