53 Commits

Author SHA1 Message Date
Barend Gehrels
b25596dcf1 [test] remove switch_source from debug-svgs 2017-12-06 12:20:00 +01:00
Barend Gehrels
8690837e56 [dissolve][test] run suite for float too 2017-11-24 13:58:56 +01:00
Barend Gehrels
93862fa638 [dissolve][test] add testcase which was already fixed by one of the
earlier fixes
2017-11-24 12:54:10 +01:00
Barend Gehrels
9c6040f4de [dissolve][test] add comments to testcases, including a possible todo item 2017-11-24 12:31:17 +01:00
Barend Gehrels
13ee521b2f [dissolve][test] add case #dissolve_mail_2017_10_26_c which is fixed by
making sure count_left/count_right are not used
2017-11-24 12:23:03 +01:00
Barend Gehrels
66112af890 [dissolve][test] add second testcase which is fixed already
(be it that it generates two points which might be removed)
2017-11-24 12:09:55 +01:00
Barend Gehrels
6b474e536a [dissolve][test] add reported testcase which should generate a hole 2017-11-24 12:02:45 +01:00
Barend Gehrels
7ccda4bfc5 [test] add testcases for dissolve, some still failing 2017-10-20 16:34:18 +02:00
Barend Gehrels
36e70aa1ce [dissolve] move/partly enable other testcases 2017-10-20 15:14:57 +02:00
Barend Gehrels
8484bcc923 [test] Move and enable acute/obtuse heptagrams which are fixed now 2017-10-20 15:14:02 +02:00
Barend Gehrels
b39b9a319b [dissolve] reject negative child rings of negative parents (the parents
are reversed later), the same way as positive child rings of positive parents
are removed. This fixes the hexagram case and also dissolve_10 (both ccw)
2017-10-20 15:11:19 +02:00
Barend Gehrels
4382d85fb4 [dissolve] add testcase which is derived from (d) but has another spike,
or is horizontal instead of vertical
2017-10-20 12:48:54 +02:00
Barend Gehrels
13a8d13cb6 [dissolve] fix cases where turns were missed because 1) they were on adjacent
segments and 2) vertical segments were not sectionalized properly for this purpose.
2017-10-20 12:48:13 +02:00
Barend Gehrels
aa6778e83c [test] dissolve algorithm cannot use bg::correct, because orientation is
unknown and can be wrong. Orientation should not be reversed. Therefore
correct_closure is split of from correct, and can (should) be used to
close the geometries correctly. Only then some cases of dissolve can be
fixed. bg::dissolve can itself not close the rings by design of the library
(it would require drastic changes)
2017-10-19 16:38:49 +02:00
Barend Gehrels
a04050a31a [test] for dissolve unit tests now also check validity - and most
cases are already valid
2017-10-06 17:38:04 +02:00
Barend Gehrels
23e9f8628b [test] also move/cleanup multi-polygon tests 2017-10-06 16:38:35 +02:00
Barend Gehrels
c77f1c99ab [test] improve test, phase 2, now always check for clips/holes 2017-10-06 16:26:28 +02:00
Barend Gehrels
5f865f79f2 [test] dissolve: start testing #clips and #holes too 2017-10-06 16:01:40 +02:00
Barend Gehrels
1187e1e805 [dissolve] fix case with two triangles which needs to be corrected w.r.t.
next turn if there is only one turn
2017-10-06 15:46:20 +02:00
Barend Gehrels
ee02d25a42 [test] add Johan's testcases for dissolve 2017-10-06 13:02:14 +02:00
Barend Gehrels
7783eb6a24 [overlay] distinguish dissolve intersection/union to be able to avoid
self-turn being true for dissolve (otherwise all is true), to avoid having
those turns discarded.
This fixes some (but not all) of the regressions detected earlier
2017-10-06 12:30:48 +02:00
Barend Gehrels
f73abdab1b [test] add labels for dissolve-svg 2017-10-06 11:20:37 +02:00
Barend Gehrels
6e02971a66 [test] enhance dissolve SVG with information from visitor 2017-10-06 10:52:42 +02:00
Barend Gehrels
0bb0e7fcae [dissolve][test] enhance test information, check different outputs,
prepare svg-debug-info
2017-10-06 10:23:08 +02:00
Barend Gehrels
aaf2a5f4d6 [dissolve] use the map, which is now passed, instead of the old one
which was created explicitly
2017-10-06 10:00:36 +02:00
Barend Gehrels
1d23e0b511 [dissolve][test] fix test environment, exclude now failing cases 2017-10-06 09:18:56 +02:00
Adam Wulkiewicz
095b4f33c9 [extensions][test][dissolve] Add failing cases. 2017-04-14 15:30:17 +02:00
Barend Gehrels
28d46538be [dissolve][test] exclude (new) cases now failing 2016-07-20 16:54:38 +02:00
Barend Gehrels
347eaa580c [extensions][dissolve] use rescaling for dissolve, see ticket 10713 2014-11-05 13:59:08 +01:00
Adam Wulkiewicz
35b2f91ee4 [extensions][offset] Update #includes to include the moved buffer code 2014-06-14 17:34:10 +02:00
Barend Gehrels
31af14453a [buffer] Move from extensions to algorithms/detail 2014-06-13 20:26:33 +02:00
Barend Gehrels
9e05551e80 [buffer][unit test] exclude currently failing cure, make test more precise 2014-06-12 23:14:09 +02:00
Barend Gehrels
5085c749b1 [has_self_intersections] bugfix (did not return true when exception found) and
added optional parameter for non-throwing behaviour.
Use this from test_buffer instead
2014-06-12 23:00:57 +02:00
Barend Gehrels
6d632182f6 [buffer] Fix multi_point test w.r.t. growth test 2014-06-11 10:03:19 +02:00
Barend Gehrels
8f0b8f12fe [buffer] move Aimes' testcases to separate unit test 2014-06-09 20:02:48 +02:00
Barend Gehrels
a0c78403e2 [buffer] Enable negative buffer for polygons (deflate)
Update testcases for linestring (including Aimes-list now working)
Fix test for distance (right.distance was only done for SVG)
2014-06-09 18:37:01 +02:00
Barend Gehrels
447fd7edd2 [buffer] get occupation vectors by rescaled offsetted points
This fixes the last case rt_p20

Check if the occupation vectors are short (length 1). This indicates a rounding issue.
If so, map again but use neighbouring cells.

Alas we have to do this, but still better than the former FP implementation.

Also, we map only points on offsetted borders now, and return if the map is empty,
to improve performance.
2014-06-09 15:07:47 +02:00
Barend Gehrels
432d62809d [buffer] remove old left-turn approach 2014-06-09 11:15:13 +02:00
Barend Gehrels
79cbf6f18c [buffer] Occupation map now makes use of robust points
(this adds one failing testcase, to be investigated,
 but further simplifies/enhances all code)
2014-06-08 12:46:41 +02:00
Barend Gehrels
8a417e6fa9 [buffer] Classify turn-points using rescaled rings
This makes side_on_convex_range and intersection_side redundant
It fixes all but one (p20) remaining cases for polygons
2014-06-07 12:38:02 +02:00
Barend Gehrels
89b2fb4d6a [buffer] use intersection_side for checking side on convex range
This fixes many of the issues (in multi_polygon_buffer). However, some
new cases now fail because of this and should be fixed later
2014-06-04 15:58:53 +02:00
Barend Gehrels
1a2a2f4de1 [buffer] remove RobustPolicy from side_on_convex_range
because side of a point w.r.t. a segment cannot be done with rescaling,
due to rounding the point can be located on the other side of the segment
This adds 4 more failing testcases, but it has to be done first because
the solution is not reliable
2014-06-04 13:26:26 +02:00
Barend Gehrels
ada844e6c0 [buffer][unit test] Adapt defines excluding some test
Remove defines of tests now OK
Add defines of tests now failing
Change intersects with has_self_intersections which excludes tangencies
2014-05-28 15:37:08 +02:00
Barend Gehrels
dee255ad5e [extensions][dissolve] added extra unit tests for cw/ccw check 2014-05-18 00:02:43 +02:00
Barend Gehrels
52fc96ccc1 [geometry] Get buffer in compileable state w.r.t. rescale policies 2014-02-12 22:44:28 +01:00
Barend Gehrels
d988e1ac93 [geometry] Work in progress: rescaling to robust-type
A robust type is integer for float/double. The rescaled points will only
be used for side-information and equality and distance-comparisons, not
to calculate the intersection points themselves.
Currently the code is #ifdefed
2013-12-14 13:25:46 +01:00
Barend Gehrels
f100acae4e [geometry] Silenced (some) warnings in extension code 2013-12-07 11:28:41 +01:00
Barend Gehrels
a0d3f209d2 [geometry] Avoid generating any SVG, by default, in unit tests 2013-12-04 12:33:06 +01:00
Barend Gehrels
3b51da2d6f [geometry] added the (not yet finished) distance_info to extensions
[SVN r86538]
2013-11-01 19:49:06 +00:00
Barend Gehrels
3a6ae0bacb [geometry] revised solution for robustness, we don't go to integer which was shortly done. This is partly a revert of r85867, where we scaled to integer. Now we make side information consistent by iteratively selecting a larger epsilon. This will be moved into a separate class. All tests pass now, also the complete ticket_9081 test which failed before
[SVN r86368]
2013-10-20 15:30:21 +00:00