Commit Graph

216 Commits

Author SHA1 Message Date
Barend Gehrels
0c5038233f [test] add last testcases also to union/difference tests 2017-10-04 15:29:34 +02:00
Barend Gehrels
5369afe1c5 [test] add last testcase, plus 3 missing ones, also to union/difference tests 2017-09-27 13:23:26 +02:00
Barend Gehrels
0c7199c230 [test] add last testcase also to union/diff 2017-09-20 13:05:05 +02:00
Adam Wulkiewicz
f93e3ad806 [test][union][overlay] Add geographic A/A test case (big polygons, one covering pole). 2017-09-17 21:14:18 +02:00
Barend Gehrels
ce9928a1aa [overlay] fix case which needed a specific selection of a matching ranked point 2017-09-13 13:07:10 +02:00
Barend Gehrels
ce3118c4c9 [test] add testcase from last commit also to union/difference 2017-09-06 14:52:07 +02:00
Barend Gehrels
3232fd0675 [test] enable testcase for all operations 2017-09-06 10:21:39 +02:00
Barend Gehrels
e9c1ed497f Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2017-09-06 09:40:11 +02:00
Adam Wulkiewicz
2f0705147c [test][union] Add failing A/A case (1.65 regression). 2017-08-30 18:20:17 +02:00
Barend Gehrels
0591aa63ea Merge branch 'develop' into feature/intvalid 2017-08-30 13:30:46 +02:00
Barend Gehrels
670ee5074f [test] add last testcase also to union/difference 2017-08-30 13:19:38 +02:00
Barend Gehrels
c7c4c23f4f [test] include testcase for checking left_count 2017-08-23 15:38:18 +02:00
Barend Gehrels
2088e708cd [test] add testcase for union for last fix 2017-08-23 13:52:25 +02:00
Barend Gehrels
e69c05da2f [overlay][test] add testcase for needing to avoid having blocked turns
in untraversed rings
2017-08-23 11:23:32 +02:00
Adam Wulkiewicz
35897a6a81 Merge pull request #412 from awulkiew/fix/algorithms_side_strategy
Geographic coordinate system related fixes.
2017-07-31 18:30:25 +02:00
Barend Gehrels
0938983c5e [test] add testcase 66 for startable self-turns 2017-07-31 12:16:26 +02:00
Barend Gehrels
664c1aa10a [test] add test cases for last fix 2017-07-26 14:33:26 +02:00
Barend Gehrels
174ef5e38c [overlay] fix cases where two arcs leave a cluster in same direction,
one longer as the other. Remaining distance needs to be considered.
Including testcase case_recursive_boxes_64 which is fixed by this issue.
2017-07-19 18:59:55 +02:00
Barend Gehrels
497e055639 [overlay] don't check startable for determining has_traversed_turn,
and also check for turns both going in opposite direction (so uu for int)
This fixes case_recursive_boxes_63 (but not for difference yet)
2017-07-19 14:02:59 +02:00
Adam Wulkiewicz
8e100074e2 [test][union] Update test case according to the recent fix. 2017-07-18 14:39:03 +02:00
Barend Gehrels
9acd4dcbba [overlay] dont excluded colocated self-turns from check within other geometry 2017-07-12 09:56:23 +02:00
Barend Gehrels
1b71880b4f [intersection] fix intersection pattern where it accidentally took last
one instead of penultimate
2017-07-08 12:45:24 +02:00
Barend Gehrels
59ea116d8c [test] intersection, check validity of whole output instead of
its separate polygons
2017-07-05 14:40:21 +02:00
Barend Gehrels
e32269b208 [test] move ignore_validity to macro 2017-06-25 17:22:10 +02:00
Barend Gehrels
0cabf049cd [test] Test validity for the whole outut, instead of per polygon 2017-06-25 17:21:50 +02:00
Barend Gehrels
ee3f5ea20d [union] fix generating of false interiors by checking count_left 2017-06-25 13:56:01 +02:00
Barend Gehrels
2f2972959a [test] Add test cases 57,58,59 for new approach for union-clusters 2017-06-25 12:09:32 +02:00
Barend Gehrels
b667a0a787 [test] Add testcases 55/56 for handling union clusters / not discarding self turns 2017-06-25 11:54:04 +02:00
Barend Gehrels
8e33d65ed7 [test] fix last added testcase for union which needs self-intersections
for validity
2017-06-14 12:08:58 +02:00
Barend Gehrels
604be619d9 [overlay] fix aggregations, include blocked as from 2017-06-14 10:28:47 +02:00
Barend Gehrels
412fc452da [overlay] Relax case 2, allow both continue and intersection
Fixes new #case_recursive_boxes_53
2017-06-13 20:29:25 +02:00
Barend Gehrels
3cd4f325ec [traverse] fix another similar case #case_137_multi now with two
different outgoing arcs
2017-06-07 22:48:18 +02:00
Barend Gehrels
9993d3697f [traverse] fix cases where touching interior/exterior is approached
from two different directions, and leave in one direction
2017-06-07 22:35:44 +02:00
Barend Gehrels
db372517b4 [traverse] fix cases where two polygons both have a touching interior ring,
which is equal to itself
2017-06-07 15:06:51 +02:00
Barend Gehrels
95454e4c8e [traverse] redo, isolated MUST be checked. Checking interior/exterior ring is
then redundant again, besides that it does not work for differences.
This breaks case_134 but that must be fixed differently.

After this change, recursive_polygons test is flawless
w.r.t. intersections/unions (validity/with self turns not yet checked)
2017-06-05 17:45:51 +02:00
Barend Gehrels
bd16305a72 [overlay] remove original behaviour to discard turns colocated with blocked turns,
because this stops generating interior rings in certain configurations, and
it is, in the meantime, handled differently in cluster traversal.
Fixes cases like new case #case_recursive_boxes_51
2017-06-05 15:59:29 +02:00
Barend Gehrels
0853342320 [traverse] fix #case_58_multi and #case_134_multi by verifying connected
regions in switch detector
2017-06-05 11:51:53 +02:00
Barend Gehrels
ecae306146 [traverse] generalize pattern for colocated interior rings by making
cases with multiple rings (#case_134_multi) possible. It also does
not check for isolated anymore but instead checks interior/exterior rings
and region_ids
2017-06-04 14:04:00 +02:00
Barend Gehrels
b0cf8ffb59 [traverse] extend handling specific case of cc/ii with another variant,
now also solving #case_recursive_boxes_50
2017-06-04 11:23:42 +02:00
Barend Gehrels
463f778a36 [overlay] fix cases with two parallel interior rings, one touching
the exterior ring, by adding a special case for this. This solves
nearly all robustness (recursive_polygon) now.
2017-06-03 20:09:06 +02:00
Barend Gehrels
390f924845 [test] add recently added cases to union/intersection tests 2017-05-31 11:22:05 +02:00
Barend Gehrels
f54f85a6de [test] update union.cpp, there is only one invalid input - but with
no robustness there are several failures
2017-05-26 22:40:15 +02:00
Barend Gehrels
27fdefbd2e [test] enhance svg filename with self info 2017-05-21 14:16:37 +02:00
Barend Gehrels
ae745f5b5c [test] enhance validity messages with ccw/open info 2017-05-21 14:15:47 +02:00
Barend Gehrels
d4ce96df48 [test] Add testcase 131 (fixed) and 132 (still unclear) 2017-05-20 17:30:25 +02:00
Barend Gehrels
0de898a004 [union] Fix select_source for self_turn, it should use multi_index 2017-05-20 15:54:57 +02:00
Barend Gehrels
9705fce852 [test] adapt testcase #case_recursive_boxes_14_invalid 2017-05-13 17:55:18 +02:00
Barend Gehrels
81578d48e2 [test] add two testcases necessary for new approach discarding ii 2017-05-10 09:51:33 +02:00
Barend Gehrels
92a4326c6a [test] rename cases which clashed in last merge (they were suffixed by m)
103m -> 106
104m -> 107
105m -> 105 (actually was not a clash)
2017-05-06 18:53:30 +02:00
Barend Gehrels
e52e2a8665 Merge branch 'develop' into feature/intvalid
# Conflicts:
#	test/algorithms/overlay/overlay_cases.hpp
#	test/algorithms/set_operations/intersection/intersection.cpp
#	test/algorithms/set_operations/union/union.cpp
2017-05-06 18:26:49 +02:00
Barend Gehrels
081860e8dd [sort_by_side] fix (rare) cases where two froms arrive at a turn,
but only one leaves the next turn. This simplifies state to just a boolean.
This fixes cases like case_recursive_boxes_46 for union
2017-04-19 16:32:40 +02:00
Adam Wulkiewicz
2a3cb7b951 [test][intersection][union] Add cases where all points of g1 are the same as some points of g2. 2017-04-14 14:40:52 +02:00
barendgehrels
ace8bdb7f0 [overlay] discard ii turns where two interior rings touch, for union operations.
This fixes case #80. Also, added case #105, testing that in a different way
(limiting solutions)
2017-03-18 20:17:22 +01:00
barendgehrels
12b1ad9e79 [test] avoid testing too much when one type is tested (compilation time) 2017-03-18 20:14:19 +01:00
barendgehrels
f9e2119d32 Merge branch 'develop' into feature/intvalid
# Conflicts:
#	include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
#	test/algorithms/set_operations/intersection/test_intersection.hpp
2017-03-13 16:22:58 +01:00
Adam Wulkiewicz
b1c78f6622 [test] Test setops, is_simple and is_valid with strategies. 2017-02-17 05:45:34 +01:00
barendgehrels
07872acca1 [test] add (still failing) test for validity needing self-turn 2016-12-16 12:30:11 +01:00
Barend Gehrels
a057b49ec0 [test] add testcases with one cluster and multiple outputs (one is invalid)
Add macros to specify testcases more conveniently
2016-10-05 12:55:39 +02:00
Barend Gehrels
30ad9da654 [validity] add cases with single cluster 2016-09-28 12:43:22 +02:00
Barend Gehrels
d4d24524a9 [test] various test updates w.r.t. robustness and validity 2016-07-20 13:46:23 +02:00
Barend Gehrels
389887eaaa [colocations] fix the issue for ccw 2016-07-06 14:25:30 +02:00
Barend Gehrels
08f87517b7 [colocations] also discard interior-ring turns with a ux 2016-07-06 13:31:11 +02:00
Barend Gehrels
5aa82adbba [test] remove duplicate testcase (mysql_23023665_4 is identical to mysql_21964049) 2016-07-06 12:48:46 +02:00
Barend Gehrels
f8ea789f31 [test] move cases, three newly reported cases are fixed already for non-ccw 2016-07-06 12:47:06 +02:00
Barend Gehrels
6b7f5f484d [test] make exceptions for invalid polygons or (union) 3 ccw cases which
are not yet created as valid
2016-06-29 14:08:05 +02:00
Barend Gehrels
b46805107b Merge branch 'develop' into feature/cluster_touch
Conflicts:
	include/boost/geometry/algorithms/detail/overlay/handle_touch.hpp
	test/algorithms/overlay/Jamfile.v2
	test/algorithms/set_operations/difference/difference.cpp
	test/algorithms/set_operations/union/union.cpp
2016-06-29 13:18:51 +02:00
Barend Gehrels
b75c055ff1 [test] add comments 2016-06-29 11:48:03 +02:00
Barend Gehrels
0879dccc81 [traversal] handle clustered turns with interior/exterior touching point by
discarding those turn_points (because detecting that in cluster or switch
and adapt behaviour is way more complex)
2016-06-22 18:44:17 +02:00
Adam Wulkiewicz
699df472e7 [test][setops] Use multi-geometries as output types (to simplify debugging). 2016-06-21 23:55:57 +02:00
Adam Wulkiewicz
ff77e78562 [test][setops] Add failing test cases. 2016-06-21 16:45:46 +02:00
Adam Wulkiewicz
94b2ff8f10 [test][difference][union] Add failing cases. 2016-06-20 15:28:51 +02:00
Barend Gehrels
3d5906f1e8 [traversal] revised switch detector because could not get previous approach
working for the last cases and for newly created connected interior rings. The new approach is much simpler and based
on regions (connected rings, connected via interiors) and works for almost
all cases including newly created connected interiors. Last cases still to
be checked though.

It does not traverse through turns, but instead navigates through rings
2016-06-08 14:53:49 +02:00
Barend Gehrels
8a1c3e99c6 [test] add (currently failing) testcase 2016-06-08 12:20:56 +02:00
Barend Gehrels
e5652cffe1 [test] add optional check of input validity 2016-06-01 13:48:20 +02:00
Barend Gehrels
597ea22bef [test] test validity now that input is valid, and add testcases for
some deliberately invalid input
2016-06-01 13:39:01 +02:00
Barend Gehrels
ee38e20243 [test] remove var which is not used anymore 2016-06-01 12:36:43 +02:00
Barend Gehrels
1b5efbaeb7 [traverse] fix switch cases on first visit by extracting that code
to separate method and call it twice
2016-06-01 12:36:08 +02:00
Barend Gehrels
f62503c2d4 [traverse] implement zones in traversal switch detections 2016-06-01 10:34:00 +02:00
Barend Gehrels
dc63848782 [traverse] check other ring while determining switches 2016-05-18 12:20:17 +02:00
Barend Gehrels
1d273e223b [traverse] touch detection for clusters, implemented partly.
This still causes some regressions and fixes other (about equally amount) cases
2016-05-11 14:09:03 +02:00
Barend Gehrels
1e99b1adf9 [traverse] use switch_source in clusters 2016-05-05 12:25:20 +02:00
Barend Gehrels
c2baa5c46b [test] add testcases for two tickets 2016-04-27 11:42:16 +02:00
Barend Gehrels
df9a97dea8 [traverse] enhance validity by checking touching (uu or combined turns creating a touch)
in clusters.
2016-04-27 11:39:40 +02:00
Barend Gehrels
950c2644e5 [traverse] reimplement touch the same way as traversal, but don't create rings
there but detect source-switching

This fixes several touching-cases (clusters with uu not yet handled)
2016-04-20 14:13:09 +02:00
Barend Gehrels
a7071f1ef1 [test] ignore validity teset for rt_f which is somehow failing (since
validity test is turned on) on this branch or my machine. To be fixed if
validity is fixed in general
2016-04-06 17:30:36 +02:00
Barend Gehrels
cfa0c184f8 Merge branch 'develop' into feature/cluster_touch 2016-04-06 09:38:08 +02:00
Adam Wulkiewicz
f46ed34965 [test][union][intersection] Add test case (failing union). 2016-04-05 20:23:30 +02:00
Barend Gehrels
5a5ed0cb10 [test] in union_multi, test for the uu-interior ring cases (4 of them still failing w.r.t. validity) 2016-03-30 11:27:26 +02:00
Barend Gehrels
ebe3ffbd58 [test][union] test validity by default 2016-03-30 11:12:09 +02:00
Barend Gehrels
ebd3b6a4b9 [test] fix #exected holes 2016-03-27 10:58:46 +02:00
Barend Gehrels
9c33e37647 [test] add test for ticket 10866 which is apparently fixed 2016-03-23 16:58:45 +01:00
Barend Gehrels
2f785c09e5 [test] add testcase for ticket_11725 which is solved now by sometimes
switching source in u/u (the yet simple approach)
2016-03-23 16:27:15 +01:00
Barend Gehrels
7818ce8793 [test] add testcase for ticket_11984 which is solved now by last commit 2016-03-23 16:05:01 +01:00
Barend Gehrels
85e0755ccd [traverse][fix] use two passes, in first pass avoid uu turns to get
the interior rings right at starting points. Second pass use uu, but
only switch source if there are only uu turns found. This fixes most
of the simple cases (complex cases can still go wrong)
2016-03-23 13:25:30 +01:00
Barend Gehrels
1439c479d6 [union][test] multi: add cases from branch handle_touch 2016-03-23 11:22:47 +01:00
Barend Gehrels
27b7b9d803 [union][test] add cases from branch handle_touch and put UT report
in argument order
2016-03-23 11:09:33 +01:00
Barend Gehrels
588d102b19 [union] same solution as for intersection should be applied for union,
but not in case of uu or similar
2016-03-16 17:54:03 +01:00
Barend Gehrels
7d3d0dd69f [traverse] revise last weeks fix, make it more general. It should just
skip finalized arcs. This fixes the robustness test almost completely
2016-03-16 14:46:05 +01:00
Barend Gehrels
d9ac176f27 [test] adapt expected values 2016-02-28 12:44:59 +01:00
Barend Gehrels
c4c180bb7d [union] instead of checking uu, count open spaces to support also
conbined touching turns without a uu
2016-02-10 20:34:37 +01:00