From 7b472fe18d61b6ad194c35278b00b2a5498d02c3 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Sat, 23 May 2026 18:27:45 +0300 Subject: [PATCH] Working on meshes --- CMakeLists.txt | 9 +- assets/data/icons/RemixIcon/paint-line.svg | 1 + assets/data/third_party_licenses/CDT | 373 + assets/data/third_party_licenses/Clipper2 | 23 + conanfile.py | 1 + include/CDT/CMakeLists.txt | 286 + include/CDT/LICENSE | 373 + include/CDT/conan_basic_setup.cmake | 10 + include/CDT/conanfile.py | 66 + include/CDT/extras/InitializeWithGrid.h | 242 + include/CDT/extras/VerifyTopology.h | 90 + include/CDT/include/CDT.h | 448 + include/CDT/include/CDT.hpp | 107 + include/CDT/include/CDTUtils.h | 592 + include/CDT/include/CDTUtils.hpp | 264 + include/CDT/include/KDTree.h | 471 + include/CDT/include/LocatorKDTree.h | 81 + include/CDT/include/Triangulation.h | 1160 + include/CDT/include/Triangulation.hpp | 2178 ++ include/CDT/include/portable_nth_element.hpp | 313 + include/CDT/include/predicates.h | 915 + include/CDT/include/remove_at.hpp | 55 + include/CDT/src/CDT.cpp | 80 + include/CDT/tests/cdt.test.cpp | 1252 + include/CDT/tests/expected/154_1.txt | 12 + include/CDT/tests/expected/154_2.txt | 25 + include/CDT/tests/expected/154_3.txt | 27 + .../Capital A__as-provided_ignore_all.txt | 95 + .../Capital A__as-provided_ignore_auto.txt | 65 + .../Capital A__as-provided_ignore_outer.txt | 66 + .../Capital A__as-provided_ignore_super.txt | 84 + .../Capital A__as-provided_resolve_all.txt | 95 + .../Capital A__as-provided_resolve_auto.txt | 65 + .../Capital A__as-provided_resolve_outer.txt | 66 + .../Capital A__as-provided_resolve_super.txt | 84 + .../expected/Capital A__auto_ignore_all.txt | 95 + .../expected/Capital A__auto_ignore_auto.txt | 65 + .../expected/Capital A__auto_ignore_outer.txt | 66 + .../expected/Capital A__auto_ignore_super.txt | 84 + .../expected/Capital A__auto_resolve_all.txt | 95 + .../expected/Capital A__auto_resolve_auto.txt | 65 + .../Capital A__auto_resolve_outer.txt | 66 + .../Capital A__auto_resolve_super.txt | 84 + ...Capital A__conforming_auto_ignore_auto.txt | 81 + .../Hanging2__as-provided_ignore_all.txt | 43 + .../Hanging2__as-provided_ignore_auto.txt | 25 + .../Hanging2__as-provided_ignore_outer.txt | 25 + .../Hanging2__as-provided_ignore_super.txt | 35 + .../Hanging2__as-provided_resolve_all.txt | 43 + .../Hanging2__as-provided_resolve_auto.txt | 25 + .../Hanging2__as-provided_resolve_outer.txt | 25 + .../Hanging2__as-provided_resolve_super.txt | 35 + .../expected/Hanging2__auto_ignore_all.txt | 43 + .../expected/Hanging2__auto_ignore_auto.txt | 25 + .../expected/Hanging2__auto_ignore_outer.txt | 25 + .../expected/Hanging2__auto_ignore_super.txt | 35 + .../expected/Hanging2__auto_resolve_all.txt | 43 + .../expected/Hanging2__auto_resolve_auto.txt | 25 + .../expected/Hanging2__auto_resolve_outer.txt | 25 + .../expected/Hanging2__auto_resolve_super.txt | 35 + .../Hanging2__conforming_auto_ignore_auto.txt | 74 + ...gingIntersection__f64_auto_resolve_all.txt | 40 + .../Hanging__as-provided_ignore_all.txt | 23 + .../Hanging__as-provided_ignore_auto.txt | 8 + .../Hanging__as-provided_ignore_outer.txt | 8 + .../Hanging__as-provided_ignore_super.txt | 14 + .../Hanging__as-provided_resolve_all.txt | 23 + .../Hanging__as-provided_resolve_auto.txt | 8 + .../Hanging__as-provided_resolve_outer.txt | 8 + .../Hanging__as-provided_resolve_super.txt | 14 + .../expected/Hanging__auto_ignore_all.txt | 23 + .../expected/Hanging__auto_ignore_auto.txt | 8 + .../expected/Hanging__auto_ignore_outer.txt | 8 + .../expected/Hanging__auto_ignore_super.txt | 14 + .../expected/Hanging__auto_resolve_all.txt | 23 + .../expected/Hanging__auto_resolve_auto.txt | 8 + .../expected/Hanging__auto_resolve_outer.txt | 8 + .../expected/Hanging__auto_resolve_super.txt | 14 + .../Letter u__as-provided_ignore_all.txt | 32 + .../Letter u__as-provided_ignore_auto.txt | 21 + .../Letter u__as-provided_ignore_outer.txt | 21 + .../Letter u__as-provided_ignore_super.txt | 23 + .../Letter u__as-provided_resolve_all.txt | 32 + .../Letter u__as-provided_resolve_auto.txt | 21 + .../Letter u__as-provided_resolve_outer.txt | 21 + .../Letter u__as-provided_resolve_super.txt | 23 + .../expected/Letter u__auto_ignore_all.txt | 32 + .../expected/Letter u__auto_ignore_auto.txt | 21 + .../expected/Letter u__auto_ignore_outer.txt | 21 + .../expected/Letter u__auto_ignore_super.txt | 23 + .../expected/Letter u__auto_resolve_all.txt | 32 + .../expected/Letter u__auto_resolve_auto.txt | 21 + .../expected/Letter u__auto_resolve_outer.txt | 21 + .../expected/Letter u__auto_resolve_super.txt | 23 + .../OnEdge__as-provided_ignore_all.txt | 48 + .../OnEdge__as-provided_ignore_auto.txt | 7 + .../OnEdge__as-provided_ignore_outer.txt | 7 + .../OnEdge__as-provided_ignore_super.txt | 41 + .../OnEdge__as-provided_resolve_all.txt | 48 + .../OnEdge__as-provided_resolve_auto.txt | 7 + .../OnEdge__as-provided_resolve_outer.txt | 7 + .../OnEdge__as-provided_resolve_super.txt | 41 + .../expected/OnEdge__auto_ignore_all.txt | 48 + .../expected/OnEdge__auto_ignore_auto.txt | 7 + .../expected/OnEdge__auto_ignore_outer.txt | 7 + .../expected/OnEdge__auto_ignore_super.txt | 41 + .../expected/OnEdge__auto_resolve_all.txt | 48 + .../expected/OnEdge__auto_resolve_auto.txt | 7 + .../expected/OnEdge__auto_resolve_outer.txt | 7 + .../expected/OnEdge__auto_resolve_super.txt | 41 + ...oblematicCase1__as-provided_ignore_all.txt | 25 + ...blematicCase1__as-provided_ignore_auto.txt | 8 + ...lematicCase1__as-provided_ignore_outer.txt | 8 + ...lematicCase1__as-provided_ignore_super.txt | 16 + ...blematicCase1__as-provided_resolve_all.txt | 25 + ...lematicCase1__as-provided_resolve_auto.txt | 8 + ...ematicCase1__as-provided_resolve_outer.txt | 8 + ...ematicCase1__as-provided_resolve_super.txt | 16 + .../ProblematicCase1__auto_ignore_all.txt | 25 + .../ProblematicCase1__auto_ignore_auto.txt | 8 + .../ProblematicCase1__auto_ignore_outer.txt | 8 + .../ProblematicCase1__auto_ignore_super.txt | 16 + .../ProblematicCase1__auto_resolve_all.txt | 25 + .../ProblematicCase1__auto_resolve_auto.txt | 8 + .../ProblematicCase1__auto_resolve_outer.txt | 8 + .../ProblematicCase1__auto_resolve_super.txt | 16 + ...aticCase1__conforming_auto_ignore_auto.txt | 31 + .../expected/cdt__as-provided_ignore_all.txt | 311 + .../expected/cdt__as-provided_ignore_auto.txt | 205 + .../cdt__as-provided_ignore_outer.txt | 219 + .../cdt__as-provided_ignore_super.txt | 287 + .../expected/cdt__as-provided_resolve_all.txt | 311 + .../cdt__as-provided_resolve_auto.txt | 205 + .../cdt__as-provided_resolve_outer.txt | 219 + .../cdt__as-provided_resolve_super.txt | 287 + .../tests/expected/cdt__auto_ignore_all.txt | 311 + .../tests/expected/cdt__auto_ignore_auto.txt | 205 + .../tests/expected/cdt__auto_ignore_outer.txt | 219 + .../tests/expected/cdt__auto_ignore_super.txt | 287 + .../tests/expected/cdt__auto_resolve_all.txt | 311 + .../tests/expected/cdt__auto_resolve_auto.txt | 205 + .../expected/cdt__auto_resolve_outer.txt | 219 + .../expected/cdt__auto_resolve_super.txt | 287 + .../cdt__conforming_auto_ignore_auto.txt | 237 + .../corner cases__as-provided_resolve_all.txt | 108 + ...corner cases__as-provided_resolve_auto.txt | 75 + ...orner cases__as-provided_resolve_outer.txt | 75 + ...orner cases__as-provided_resolve_super.txt | 95 + .../corner cases__auto_resolve_all.txt | 108 + .../corner cases__auto_resolve_auto.txt | 75 + .../corner cases__auto_resolve_outer.txt | 75 + .../corner cases__auto_resolve_super.txt | 95 + .../crossing-edges__auto_resolve_all.txt | 34 + ...ing-edges__conforming_auto_resolve_all.txt | 34 + .../ditch__as-provided_ignore_all.txt | 42 + .../ditch__as-provided_ignore_auto.txt | 28 + .../ditch__as-provided_ignore_outer.txt | 28 + .../ditch__as-provided_ignore_super.txt | 31 + .../ditch__as-provided_resolve_all.txt | 42 + .../ditch__as-provided_resolve_auto.txt | 28 + .../ditch__as-provided_resolve_outer.txt | 28 + .../ditch__as-provided_resolve_super.txt | 31 + .../tests/expected/ditch__auto_ignore_all.txt | 42 + .../expected/ditch__auto_ignore_auto.txt | 28 + .../expected/ditch__auto_ignore_outer.txt | 28 + .../expected/ditch__auto_ignore_super.txt | 31 + .../expected/ditch__auto_resolve_all.txt | 42 + .../expected/ditch__auto_resolve_auto.txt | 28 + .../expected/ditch__auto_resolve_outer.txt | 28 + .../expected/ditch__auto_resolve_super.txt | 31 + .../ditch__conforming_auto_ignore_auto.txt | 49 + ...ersection__f64_as-provided_resolve_all.txt | 39 + ...double-hanging__as-provided_ignore_all.txt | 23 + ...ouble-hanging__as-provided_ignore_auto.txt | 8 + ...uble-hanging__as-provided_ignore_outer.txt | 8 + ...uble-hanging__as-provided_ignore_super.txt | 15 + ...ouble-hanging__as-provided_resolve_all.txt | 23 + ...uble-hanging__as-provided_resolve_auto.txt | 8 + ...ble-hanging__as-provided_resolve_outer.txt | 8 + ...ble-hanging__as-provided_resolve_super.txt | 15 + .../double-hanging__auto_ignore_all.txt | 23 + .../double-hanging__auto_ignore_auto.txt | 8 + .../double-hanging__auto_ignore_outer.txt | 8 + .../double-hanging__auto_ignore_super.txt | 15 + .../double-hanging__auto_resolve_all.txt | 23 + .../double-hanging__auto_resolve_auto.txt | 8 + .../double-hanging__auto_resolve_outer.txt | 8 + .../double-hanging__auto_resolve_super.txt | 15 + ...e-hanging__conforming_auto_ignore_auto.txt | 31 + .../gh_issue__as-provided_ignore_all.txt | 242 + .../gh_issue__as-provided_ignore_auto.txt | 161 + .../gh_issue__as-provided_ignore_outer.txt | 161 + .../gh_issue__as-provided_ignore_super.txt | 229 + .../gh_issue__as-provided_resolve_all.txt | 242 + .../gh_issue__as-provided_resolve_auto.txt | 161 + .../gh_issue__as-provided_resolve_outer.txt | 161 + .../gh_issue__as-provided_resolve_super.txt | 229 + .../expected/gh_issue__auto_ignore_all.txt | 242 + .../expected/gh_issue__auto_ignore_auto.txt | 161 + .../expected/gh_issue__auto_ignore_outer.txt | 161 + .../expected/gh_issue__auto_ignore_super.txt | 229 + .../expected/gh_issue__auto_resolve_all.txt | 242 + .../expected/gh_issue__auto_resolve_auto.txt | 161 + .../expected/gh_issue__auto_resolve_outer.txt | 161 + .../expected/gh_issue__auto_resolve_super.txt | 229 + .../gh_issue__conforming_auto_ignore_auto.txt | 182 + ...o box__conforming_f32_auto_ignore_auto.txt | 331 + ...o box__conforming_f64_auto_ignore_auto.txt | 331 + ...tar no box__f32_as-provided_ignore_all.txt | 440 + ...ar no box__f32_as-provided_ignore_auto.txt | 299 + ...r no box__f32_as-provided_ignore_outer.txt | 320 + ...r no box__f32_as-provided_ignore_super.txt | 410 + ...ar no box__f32_as-provided_resolve_all.txt | 440 + ...r no box__f32_as-provided_resolve_auto.txt | 299 + ... no box__f32_as-provided_resolve_outer.txt | 320 + ... no box__f32_as-provided_resolve_super.txt | 410 + .../guitar no box__f32_auto_ignore_all.txt | 440 + .../guitar no box__f32_auto_ignore_auto.txt | 299 + .../guitar no box__f32_auto_ignore_outer.txt | 320 + .../guitar no box__f32_auto_ignore_super.txt | 410 + .../guitar no box__f32_auto_resolve_all.txt | 440 + .../guitar no box__f32_auto_resolve_auto.txt | 299 + .../guitar no box__f32_auto_resolve_outer.txt | 320 + .../guitar no box__f32_auto_resolve_super.txt | 410 + ...tar no box__f64_as-provided_ignore_all.txt | 440 + ...ar no box__f64_as-provided_ignore_auto.txt | 299 + ...r no box__f64_as-provided_ignore_outer.txt | 320 + ...r no box__f64_as-provided_ignore_super.txt | 408 + ...ar no box__f64_as-provided_resolve_all.txt | 440 + ...r no box__f64_as-provided_resolve_auto.txt | 299 + ... no box__f64_as-provided_resolve_outer.txt | 320 + ... no box__f64_as-provided_resolve_super.txt | 408 + .../guitar no box__f64_auto_ignore_all.txt | 440 + .../guitar no box__f64_auto_ignore_auto.txt | 299 + .../guitar no box__f64_auto_ignore_outer.txt | 320 + .../guitar no box__f64_auto_ignore_super.txt | 408 + .../guitar no box__f64_auto_resolve_all.txt | 440 + .../guitar no box__f64_auto_resolve_auto.txt | 299 + .../guitar no box__f64_auto_resolve_outer.txt | 320 + .../guitar no box__f64_auto_resolve_super.txt | 408 + .../island__as-provided_ignore_all.txt | 293 + .../island__as-provided_ignore_auto.txt | 195 + .../island__as-provided_ignore_outer.txt | 195 + .../island__as-provided_ignore_super.txt | 274 + .../island__as-provided_resolve_all.txt | 293 + .../island__as-provided_resolve_auto.txt | 195 + .../island__as-provided_resolve_outer.txt | 195 + .../island__as-provided_resolve_super.txt | 274 + .../expected/island__auto_ignore_all.txt | 293 + .../expected/island__auto_ignore_auto.txt | 195 + .../expected/island__auto_ignore_outer.txt | 195 + .../expected/island__auto_ignore_super.txt | 274 + .../expected/island__auto_resolve_all.txt | 293 + .../expected/island__auto_resolve_auto.txt | 195 + .../expected/island__auto_resolve_outer.txt | 195 + .../expected/island__auto_resolve_super.txt | 274 + ...e-hanging-edge__as-provided_ignore_all.txt | 35 + ...-hanging-edge__as-provided_ignore_auto.txt | 23 + ...hanging-edge__as-provided_ignore_outer.txt | 23 + ...hanging-edge__as-provided_ignore_super.txt | 28 + ...-hanging-edge__as-provided_resolve_all.txt | 35 + ...hanging-edge__as-provided_resolve_auto.txt | 23 + ...anging-edge__as-provided_resolve_outer.txt | 23 + ...anging-edge__as-provided_resolve_super.txt | 28 + ...2-double-hanging-edge__auto_ignore_all.txt | 35 + ...-double-hanging-edge__auto_ignore_auto.txt | 23 + ...double-hanging-edge__auto_ignore_outer.txt | 23 + ...double-hanging-edge__auto_ignore_super.txt | 28 + ...-double-hanging-edge__auto_resolve_all.txt | 35 + ...double-hanging-edge__auto_resolve_auto.txt | 23 + ...ouble-hanging-edge__auto_resolve_outer.txt | 23 + ...ouble-hanging-edge__auto_resolve_super.txt | 28 + ...ging-edge__conforming_auto_ignore_auto.txt | 87 + ...e-148-crossing-edges__auto_resolve_all.txt | 38 + ...ing-edges__conforming_auto_resolve_all.txt | 50 + ...ry-overlap__f32_as-provided_ignore_all.txt | 48 + ...y-overlap__f32_as-provided_ignore_auto.txt | 39 + ...-overlap__f32_as-provided_ignore_outer.txt | 41 + ...-overlap__f32_as-provided_ignore_super.txt | 41 + ...y-overlap__f32_as-provided_resolve_all.txt | 48 + ...-overlap__f32_as-provided_resolve_auto.txt | 39 + ...overlap__f32_as-provided_resolve_outer.txt | 41 + ...overlap__f32_as-provided_resolve_super.txt | 41 + ...-boundary-overlap__f32_auto_ignore_all.txt | 48 + ...boundary-overlap__f32_auto_ignore_auto.txt | 39 + ...oundary-overlap__f32_auto_ignore_outer.txt | 41 + ...oundary-overlap__f32_auto_ignore_super.txt | 41 + ...boundary-overlap__f32_auto_resolve_all.txt | 48 + ...oundary-overlap__f32_auto_resolve_auto.txt | 39 + ...undary-overlap__f32_auto_resolve_outer.txt | 41 + ...undary-overlap__f32_auto_resolve_super.txt | 41 + ...ry-overlap__f64_as-provided_ignore_all.txt | 48 + ...y-overlap__f64_as-provided_ignore_auto.txt | 39 + ...-overlap__f64_as-provided_ignore_outer.txt | 41 + ...-overlap__f64_as-provided_ignore_super.txt | 41 + ...y-overlap__f64_as-provided_resolve_all.txt | 48 + ...-overlap__f64_as-provided_resolve_auto.txt | 39 + ...overlap__f64_as-provided_resolve_outer.txt | 41 + ...overlap__f64_as-provided_resolve_super.txt | 41 + ...-boundary-overlap__f64_auto_ignore_all.txt | 48 + ...boundary-overlap__f64_auto_ignore_auto.txt | 39 + ...oundary-overlap__f64_auto_ignore_outer.txt | 41 + ...oundary-overlap__f64_auto_ignore_super.txt | 41 + ...boundary-overlap__f64_auto_resolve_all.txt | 48 + ...oundary-overlap__f64_auto_resolve_auto.txt | 39 + ...undary-overlap__f64_auto_resolve_outer.txt | 41 + ...undary-overlap__f64_auto_resolve_super.txt | 41 + ...erlaps-bondary__as-provided_ignore_all.txt | 43 + ...rlaps-bondary__as-provided_ignore_auto.txt | 32 + ...laps-bondary__as-provided_ignore_outer.txt | 34 + ...laps-bondary__as-provided_ignore_super.txt | 34 + ...rlaps-bondary__as-provided_resolve_all.txt | 43 + ...laps-bondary__as-provided_resolve_auto.txt | 32 + ...aps-bondary__as-provided_resolve_outer.txt | 34 + ...aps-bondary__as-provided_resolve_super.txt | 34 + ...hole-overlaps-bondary__auto_ignore_all.txt | 43 + ...ole-overlaps-bondary__auto_ignore_auto.txt | 32 + ...le-overlaps-bondary__auto_ignore_outer.txt | 34 + ...le-overlaps-bondary__auto_ignore_super.txt | 34 + ...ole-overlaps-bondary__auto_resolve_all.txt | 43 + ...le-overlaps-bondary__auto_resolve_auto.txt | 32 + ...e-overlaps-bondary__auto_resolve_outer.txt | 34 + ...e-overlaps-bondary__auto_resolve_super.txt | 34 + ...rm-to-edge__f32_as-provided_ignore_all.txt | 96 + ...m-to-edge__f32_as-provided_ignore_auto.txt | 77 + ...-to-edge__f32_as-provided_ignore_outer.txt | 83 + ...-to-edge__f32_as-provided_ignore_super.txt | 83 + ...m-to-edge__f32_as-provided_resolve_all.txt | 96 + ...-to-edge__f32_as-provided_resolve_auto.txt | 77 + ...to-edge__f32_as-provided_resolve_outer.txt | 83 + ...to-edge__f32_as-provided_resolve_super.txt | 83 + ...s-conform-to-edge__f32_auto_ignore_all.txt | 96 + ...-conform-to-edge__f32_auto_ignore_auto.txt | 77 + ...conform-to-edge__f32_auto_ignore_outer.txt | 83 + ...conform-to-edge__f32_auto_ignore_super.txt | 83 + ...-conform-to-edge__f32_auto_resolve_all.txt | 96 + ...conform-to-edge__f32_auto_resolve_auto.txt | 77 + ...onform-to-edge__f32_auto_resolve_outer.txt | 83 + ...onform-to-edge__f32_auto_resolve_super.txt | 83 + ...rm-to-edge__f64_as-provided_ignore_all.txt | 96 + ...m-to-edge__f64_as-provided_ignore_auto.txt | 77 + ...-to-edge__f64_as-provided_ignore_outer.txt | 83 + ...-to-edge__f64_as-provided_ignore_super.txt | 83 + ...m-to-edge__f64_as-provided_resolve_all.txt | 96 + ...-to-edge__f64_as-provided_resolve_auto.txt | 77 + ...to-edge__f64_as-provided_resolve_outer.txt | 83 + ...to-edge__f64_as-provided_resolve_super.txt | 83 + ...s-conform-to-edge__f64_auto_ignore_all.txt | 96 + ...-conform-to-edge__f64_auto_ignore_auto.txt | 77 + ...conform-to-edge__f64_auto_ignore_outer.txt | 83 + ...conform-to-edge__f64_auto_ignore_super.txt | 83 + ...-conform-to-edge__f64_auto_resolve_all.txt | 96 + ...conform-to-edge__f64_auto_resolve_auto.txt | 77 + ...onform-to-edge__f64_auto_resolve_outer.txt | 83 + ...onform-to-edge__f64_auto_resolve_super.txt | 83 + ...rlaps__conforming_f32_auto_ignore_auto.txt | 104 + ...rlaps__conforming_f64_auto_ignore_auto.txt | 104 + ...y-overlaps__f32_as-provided_ignore_all.txt | 93 + ...-overlaps__f32_as-provided_ignore_auto.txt | 72 + ...overlaps__f32_as-provided_ignore_outer.txt | 80 + ...overlaps__f32_as-provided_ignore_super.txt | 80 + ...-overlaps__f32_as-provided_resolve_all.txt | 93 + ...overlaps__f32_as-provided_resolve_auto.txt | 72 + ...verlaps__f32_as-provided_resolve_outer.txt | 80 + ...verlaps__f32_as-provided_resolve_super.txt | 80 + ...boundary-overlaps__f32_auto_ignore_all.txt | 93 + ...oundary-overlaps__f32_auto_ignore_auto.txt | 72 + ...undary-overlaps__f32_auto_ignore_outer.txt | 80 + ...undary-overlaps__f32_auto_ignore_super.txt | 80 + ...oundary-overlaps__f32_auto_resolve_all.txt | 93 + ...undary-overlaps__f32_auto_resolve_auto.txt | 72 + ...ndary-overlaps__f32_auto_resolve_outer.txt | 80 + ...ndary-overlaps__f32_auto_resolve_super.txt | 80 + ...y-overlaps__f64_as-provided_ignore_all.txt | 93 + ...-overlaps__f64_as-provided_ignore_auto.txt | 72 + ...overlaps__f64_as-provided_ignore_outer.txt | 80 + ...overlaps__f64_as-provided_ignore_super.txt | 80 + ...-overlaps__f64_as-provided_resolve_all.txt | 93 + ...overlaps__f64_as-provided_resolve_auto.txt | 72 + ...verlaps__f64_as-provided_resolve_outer.txt | 80 + ...verlaps__f64_as-provided_resolve_super.txt | 80 + ...boundary-overlaps__f64_auto_ignore_all.txt | 93 + ...oundary-overlaps__f64_auto_ignore_auto.txt | 72 + ...undary-overlaps__f64_auto_ignore_outer.txt | 80 + ...undary-overlaps__f64_auto_ignore_super.txt | 80 + ...oundary-overlaps__f64_auto_resolve_all.txt | 93 + ...undary-overlaps__f64_auto_resolve_auto.txt | 72 + ...ndary-overlaps__f64_auto_resolve_outer.txt | 80 + ...ndary-overlaps__f64_auto_resolve_super.txt | 80 + ...65-wrong-edges__as-provided_ignore_all.txt | 14 + ...5-wrong-edges__as-provided_ignore_auto.txt | 7 + ...-wrong-edges__as-provided_ignore_outer.txt | 7 + ...-wrong-edges__as-provided_ignore_super.txt | 8 + ...5-wrong-edges__as-provided_resolve_all.txt | 14 + ...-wrong-edges__as-provided_resolve_auto.txt | 7 + ...wrong-edges__as-provided_resolve_outer.txt | 7 + ...wrong-edges__as-provided_resolve_super.txt | 8 + .../issue-65-wrong-edges__auto_ignore_all.txt | 14 + ...issue-65-wrong-edges__auto_ignore_auto.txt | 7 + ...ssue-65-wrong-edges__auto_ignore_outer.txt | 7 + ...ssue-65-wrong-edges__auto_ignore_super.txt | 8 + ...issue-65-wrong-edges__auto_resolve_all.txt | 14 + ...ssue-65-wrong-edges__auto_resolve_auto.txt | 7 + ...sue-65-wrong-edges__auto_resolve_outer.txt | 7 + ...sue-65-wrong-edges__auto_resolve_super.txt | 8 + .../kidney__as-provided_ignore_all.txt | 158 + .../kidney__as-provided_ignore_auto.txt | 105 + .../kidney__as-provided_ignore_outer.txt | 105 + .../kidney__as-provided_ignore_super.txt | 123 + .../kidney__as-provided_resolve_all.txt | 158 + .../kidney__as-provided_resolve_auto.txt | 105 + .../kidney__as-provided_resolve_outer.txt | 105 + .../kidney__as-provided_resolve_super.txt | 123 + .../expected/kidney__auto_ignore_all.txt | 158 + .../expected/kidney__auto_ignore_auto.txt | 105 + .../expected/kidney__auto_ignore_outer.txt | 105 + .../expected/kidney__auto_ignore_super.txt | 123 + .../expected/kidney__auto_resolve_all.txt | 158 + .../expected/kidney__auto_resolve_auto.txt | 105 + .../expected/kidney__auto_resolve_outer.txt | 105 + .../expected/kidney__auto_resolve_super.txt | 123 + ...g constraints2__as-provided_ignore_all.txt | 38 + ... constraints2__as-provided_ignore_auto.txt | 31 + ...constraints2__as-provided_ignore_outer.txt | 31 + ...constraints2__as-provided_ignore_super.txt | 31 + ... constraints2__as-provided_resolve_all.txt | 38 + ...constraints2__as-provided_resolve_auto.txt | 31 + ...onstraints2__as-provided_resolve_outer.txt | 31 + ...onstraints2__as-provided_resolve_super.txt | 31 + ...rlapping constraints2__auto_ignore_all.txt | 38 + ...lapping constraints2__auto_ignore_auto.txt | 31 + ...apping constraints2__auto_ignore_outer.txt | 31 + ...apping constraints2__auto_ignore_super.txt | 31 + ...lapping constraints2__auto_resolve_all.txt | 38 + ...apping constraints2__auto_resolve_auto.txt | 31 + ...pping constraints2__auto_resolve_outer.txt | 31 + ...pping constraints2__auto_resolve_super.txt | 31 + ...onstraints__f32_as-provided_ignore_all.txt | 43 + ...nstraints__f32_as-provided_ignore_auto.txt | 30 + ...straints__f32_as-provided_ignore_outer.txt | 30 + ...straints__f32_as-provided_ignore_super.txt | 32 + ...nstraints__f32_as-provided_resolve_all.txt | 43 + ...straints__f32_as-provided_resolve_auto.txt | 30 + ...traints__f32_as-provided_resolve_outer.txt | 30 + ...traints__f32_as-provided_resolve_super.txt | 32 + ...pping constraints__f32_auto_ignore_all.txt | 43 + ...ping constraints__f32_auto_ignore_auto.txt | 30 + ...ing constraints__f32_auto_ignore_outer.txt | 30 + ...ing constraints__f32_auto_ignore_super.txt | 32 + ...ping constraints__f32_auto_resolve_all.txt | 43 + ...ing constraints__f32_auto_resolve_auto.txt | 30 + ...ng constraints__f32_auto_resolve_outer.txt | 30 + ...ng constraints__f32_auto_resolve_super.txt | 32 + ...onstraints__f64_as-provided_ignore_all.txt | 43 + ...nstraints__f64_as-provided_ignore_auto.txt | 30 + ...straints__f64_as-provided_ignore_outer.txt | 30 + ...straints__f64_as-provided_ignore_super.txt | 32 + ...nstraints__f64_as-provided_resolve_all.txt | 43 + ...straints__f64_as-provided_resolve_auto.txt | 30 + ...traints__f64_as-provided_resolve_outer.txt | 30 + ...traints__f64_as-provided_resolve_super.txt | 32 + ...pping constraints__f64_auto_ignore_all.txt | 43 + ...ping constraints__f64_auto_ignore_auto.txt | 30 + ...ing constraints__f64_auto_ignore_outer.txt | 30 + ...ing constraints__f64_auto_ignore_super.txt | 32 + ...ping constraints__f64_auto_resolve_all.txt | 43 + ...ing constraints__f64_auto_resolve_auto.txt | 30 + ...ng constraints__f64_auto_resolve_outer.txt | 30 + ...ng constraints__f64_auto_resolve_super.txt | 32 + ...onstraint_edge__as-provided_ignore_all.txt | 44 + ...nstraint_edge__as-provided_ignore_auto.txt | 19 + ...straint_edge__as-provided_ignore_outer.txt | 19 + ...straint_edge__as-provided_ignore_super.txt | 31 + ...nstraint_edge__as-provided_resolve_all.txt | 44 + ...straint_edge__as-provided_resolve_auto.txt | 19 + ...traint_edge__as-provided_resolve_outer.txt | 19 + ...traint_edge__as-provided_resolve_super.txt | 31 + ...ts_on_constraint_edge__auto_ignore_all.txt | 44 + ...s_on_constraint_edge__auto_ignore_auto.txt | 19 + ..._on_constraint_edge__auto_ignore_outer.txt | 19 + ..._on_constraint_edge__auto_ignore_super.txt | 31 + ...s_on_constraint_edge__auto_resolve_all.txt | 44 + ..._on_constraint_edge__auto_resolve_auto.txt | 19 + ...on_constraint_edge__auto_resolve_outer.txt | 19 + ...on_constraint_edge__auto_resolve_super.txt | 31 + ...aint_edge__conforming_auto_ignore_auto.txt | 43 + ...ong_hull_small__as-provided_ignore_all.txt | 20 + ...ng_hull_small__as-provided_ignore_auto.txt | 7 + ...g_hull_small__as-provided_ignore_outer.txt | 7 + ...g_hull_small__as-provided_ignore_super.txt | 12 + ...ng_hull_small__as-provided_resolve_all.txt | 20 + ...g_hull_small__as-provided_resolve_auto.txt | 7 + ..._hull_small__as-provided_resolve_outer.txt | 7 + ..._hull_small__as-provided_resolve_super.txt | 12 + ...e_38_wrong_hull_small__auto_ignore_all.txt | 20 + ..._38_wrong_hull_small__auto_ignore_auto.txt | 7 + ...38_wrong_hull_small__auto_ignore_outer.txt | 7 + ...38_wrong_hull_small__auto_ignore_super.txt | 12 + ..._38_wrong_hull_small__auto_resolve_all.txt | 20 + ...38_wrong_hull_small__auto_resolve_auto.txt | 7 + ...8_wrong_hull_small__auto_resolve_outer.txt | 7 + ...8_wrong_hull_small__auto_resolve_super.txt | 12 + ...are with crack__as-provided_ignore_all.txt | 29 + ...re with crack__as-provided_ignore_auto.txt | 19 + ...e with crack__as-provided_ignore_outer.txt | 19 + ...e with crack__as-provided_ignore_super.txt | 20 + ...re with crack__as-provided_resolve_all.txt | 29 + ...e with crack__as-provided_resolve_auto.txt | 19 + ... with crack__as-provided_resolve_outer.txt | 19 + ... with crack__as-provided_resolve_super.txt | 20 + .../square with crack__auto_ignore_all.txt | 29 + .../square with crack__auto_ignore_auto.txt | 19 + .../square with crack__auto_ignore_outer.txt | 19 + .../square with crack__auto_ignore_super.txt | 20 + .../square with crack__auto_resolve_all.txt | 29 + .../square with crack__auto_resolve_auto.txt | 19 + .../square with crack__auto_resolve_outer.txt | 19 + .../square with crack__auto_resolve_super.txt | 20 + ...est_data_small__as-provided_ignore_all.txt | 210 + ...st_data_small__as-provided_ignore_auto.txt | 9 + ...t_data_small__as-provided_ignore_outer.txt | 9 + ...t_data_small__as-provided_ignore_super.txt | 195 + ...st_data_small__as-provided_resolve_all.txt | 210 + ...t_data_small__as-provided_resolve_auto.txt | 9 + ..._data_small__as-provided_resolve_outer.txt | 9 + ..._data_small__as-provided_resolve_super.txt | 195 + .../test_data_small__auto_ignore_all.txt | 210 + .../test_data_small__auto_ignore_auto.txt | 9 + .../test_data_small__auto_ignore_outer.txt | 9 + .../test_data_small__auto_ignore_super.txt | 195 + .../test_data_small__auto_resolve_all.txt | 210 + .../test_data_small__auto_resolve_auto.txt | 9 + .../test_data_small__auto_resolve_outer.txt | 9 + .../test_data_small__auto_resolve_super.txt | 195 + ...anging-flipped__as-provided_ignore_all.txt | 25 + ...nging-flipped__as-provided_ignore_auto.txt | 8 + ...ging-flipped__as-provided_ignore_outer.txt | 8 + ...ging-flipped__as-provided_ignore_super.txt | 17 + ...nging-flipped__as-provided_resolve_all.txt | 25 + ...ging-flipped__as-provided_resolve_auto.txt | 8 + ...ing-flipped__as-provided_resolve_outer.txt | 8 + ...ing-flipped__as-provided_resolve_super.txt | 17 + ...riple-hanging-flipped__auto_ignore_all.txt | 25 + ...iple-hanging-flipped__auto_ignore_auto.txt | 8 + ...ple-hanging-flipped__auto_ignore_outer.txt | 8 + ...ple-hanging-flipped__auto_ignore_super.txt | 17 + ...iple-hanging-flipped__auto_resolve_all.txt | 25 + ...ple-hanging-flipped__auto_resolve_auto.txt | 8 + ...le-hanging-flipped__auto_resolve_outer.txt | 8 + ...le-hanging-flipped__auto_resolve_super.txt | 17 + ...g-flipped__conforming_auto_ignore_auto.txt | 31 + ...triple-hanging__as-provided_ignore_all.txt | 25 + ...riple-hanging__as-provided_ignore_auto.txt | 8 + ...iple-hanging__as-provided_ignore_outer.txt | 8 + ...iple-hanging__as-provided_ignore_super.txt | 17 + ...riple-hanging__as-provided_resolve_all.txt | 25 + ...iple-hanging__as-provided_resolve_auto.txt | 8 + ...ple-hanging__as-provided_resolve_outer.txt | 8 + ...ple-hanging__as-provided_resolve_super.txt | 17 + .../triple-hanging__auto_ignore_all.txt | 25 + .../triple-hanging__auto_ignore_auto.txt | 8 + .../triple-hanging__auto_ignore_outer.txt | 8 + .../triple-hanging__auto_ignore_super.txt | 17 + .../triple-hanging__auto_resolve_all.txt | 25 + .../triple-hanging__auto_resolve_auto.txt | 8 + .../triple-hanging__auto_resolve_outer.txt | 8 + .../triple-hanging__auto_resolve_super.txt | 17 + ...e-hanging__conforming_auto_ignore_auto.txt | 31 + .../unit square__as-provided_ignore_all.txt | 20 + .../unit square__as-provided_ignore_auto.txt | 13 + .../unit square__as-provided_ignore_outer.txt | 13 + .../unit square__as-provided_ignore_super.txt | 13 + .../unit square__as-provided_resolve_all.txt | 20 + .../unit square__as-provided_resolve_auto.txt | 13 + ...unit square__as-provided_resolve_outer.txt | 13 + ...unit square__as-provided_resolve_super.txt | 13 + .../expected/unit square__auto_ignore_all.txt | 20 + .../unit square__auto_ignore_auto.txt | 13 + .../unit square__auto_ignore_outer.txt | 13 + .../unit square__auto_ignore_super.txt | 13 + .../unit square__auto_resolve_all.txt | 20 + .../unit square__auto_resolve_auto.txt | 13 + .../unit square__auto_resolve_outer.txt | 13 + .../unit square__auto_resolve_super.txt | 13 + ...it square__conforming_auto_ignore_auto.txt | 13 + include/CDT/tests/inputs/Capital A.txt | 59 + .../CDT/tests/inputs/Constrained Sweden.txt | 5239 ++++ include/CDT/tests/inputs/Hanging.txt | 9 + include/CDT/tests/inputs/Hanging2.txt | 23 + .../CDT/tests/inputs/HangingIntersection.txt | 10 + include/CDT/tests/inputs/Letter u.txt | 17 + include/CDT/tests/inputs/OnEdge.txt | 21 + include/CDT/tests/inputs/ProblematicCase1.txt | 10 + include/CDT/tests/inputs/cdt.txt | 205 + include/CDT/tests/inputs/corner cases.txt | 19 + include/CDT/tests/inputs/crossing-edges.txt | 7 + include/CDT/tests/inputs/debug2.txt | 20001 ++++++++++++++++ include/CDT/tests/inputs/ditch.txt | 24 + ...constraint_when_resolving_intersection.txt | 10 + include/CDT/tests/inputs/double-hanging.txt | 9 + include/CDT/tests/inputs/gh_issue.txt | 157 + include/CDT/tests/inputs/guitar no box.txt | 289 + include/CDT/tests/inputs/hanging3.txt | 9 + include/CDT/tests/inputs/island.txt | 191 + .../inputs/issue-142-double-hanging-edge.txt | 19 + .../tests/inputs/issue-148-crossing-edges.txt | 9 + .../inputs/issue-42-full-boundary-overlap.txt | 29 + .../inputs/issue-42-hole-overlaps-bondary.txt | 17 + ...iple-boundary-overlaps-conform-to-edge.txt | 37 + .../issue-42-multiple-boundary-overlaps.txt | 33 + .../CDT/tests/inputs/issue-65-wrong-edges.txt | 4 + include/CDT/tests/inputs/kidney.txt | 101 + .../tests/inputs/overlapping constraints.txt | 17 + .../tests/inputs/overlapping constraints2.txt | 13 + .../inputs/points_on_constraint_edge.txt | 14 + .../regression_issue_38_wrong_hull_small.txt | 7 + .../CDT/tests/inputs/square with crack.txt | 15 + include/CDT/tests/inputs/test_data_small.txt | 103 + .../tests/inputs/triple-hanging-flipped.txt | 10 + include/CDT/tests/inputs/triple-hanging.txt | 10 + include/CDT/tests/inputs/unit square.txt | 9 + include/Helpers/SCollision.hpp | 15 + src/CanvasComponents/BrushComponentCode.cpp | 287 + src/CanvasComponents/BrushComponentCode.hpp | 43 + .../BrushStrokeCanvasComponent.cpp | 574 - src/CanvasComponents/CanvasComponent.cpp | 6 +- src/CanvasComponents/CanvasComponent.hpp | 1 + src/CanvasComponents/CanvasComponentType.hpp | 4 +- .../EllipseCanvasComponent.cpp | 64 +- .../EllipseCanvasComponent.hpp | 3 +- src/CanvasComponents/ImageCanvasComponent.cpp | 24 +- src/CanvasComponents/ImageCanvasComponent.hpp | 5 +- src/CanvasComponents/MeshCanvasComponent.cpp | 221 + ...sComponent.hpp => MeshCanvasComponent.hpp} | 37 +- .../RectangleCanvasComponent.cpp | 36 +- .../RectangleCanvasComponent.hpp | 4 +- .../TextBoxCanvasComponent.cpp | 17 +- .../TextBoxCanvasComponent.hpp | 2 +- src/DrawingProgram/DrawingProgram.cpp | 1 + src/DrawingProgram/DrawingProgram.hpp | 1 + src/DrawingProgram/Tools/BrushTool.cpp | 65 +- src/DrawingProgram/Tools/BrushTool.hpp | 8 +- .../Tools/DrawingProgramToolBase.cpp | 3 + .../Tools/DrawingProgramToolBase.hpp | 1 + src/DrawingProgram/Tools/EditTool.cpp | 6 +- .../{BrushEditTool.cpp => MeshEditTool.cpp} | 40 +- .../{BrushEditTool.hpp => MeshEditTool.hpp} | 4 +- src/DrawingProgram/Tools/FillTool.cpp | 98 + src/DrawingProgram/Tools/FillTool.hpp | 44 + src/DrawingProgram/Tools/LassoSelectTool.cpp | 21 +- src/DrawingProgram/Tools/LineDrawTool.cpp | 69 +- src/EarcutIncludes.hpp | 41 + 652 files changed, 81120 insertions(+), 852 deletions(-) create mode 100644 assets/data/icons/RemixIcon/paint-line.svg create mode 100644 assets/data/third_party_licenses/CDT create mode 100644 assets/data/third_party_licenses/Clipper2 create mode 100644 include/CDT/CMakeLists.txt create mode 100644 include/CDT/LICENSE create mode 100644 include/CDT/conan_basic_setup.cmake create mode 100644 include/CDT/conanfile.py create mode 100644 include/CDT/extras/InitializeWithGrid.h create mode 100644 include/CDT/extras/VerifyTopology.h create mode 100644 include/CDT/include/CDT.h create mode 100644 include/CDT/include/CDT.hpp create mode 100644 include/CDT/include/CDTUtils.h create mode 100644 include/CDT/include/CDTUtils.hpp create mode 100644 include/CDT/include/KDTree.h create mode 100644 include/CDT/include/LocatorKDTree.h create mode 100644 include/CDT/include/Triangulation.h create mode 100644 include/CDT/include/Triangulation.hpp create mode 100644 include/CDT/include/portable_nth_element.hpp create mode 100644 include/CDT/include/predicates.h create mode 100644 include/CDT/include/remove_at.hpp create mode 100644 include/CDT/src/CDT.cpp create mode 100644 include/CDT/tests/cdt.test.cpp create mode 100644 include/CDT/tests/expected/154_1.txt create mode 100644 include/CDT/tests/expected/154_2.txt create mode 100644 include/CDT/tests/expected/154_3.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Capital A__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Capital A__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/Capital A__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Hanging2__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Hanging2__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/Hanging2__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/HangingIntersection__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Hanging__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Hanging__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Letter u__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/Letter u__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/OnEdge__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/OnEdge__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/ProblematicCase1__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/cdt__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/cdt__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/cdt__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/cdt__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/cdt__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/cdt__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/cdt__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/cdt__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/cdt__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/cdt__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/corner cases__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/corner cases__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/corner cases__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/corner cases__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/corner cases__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/corner cases__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/corner cases__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/corner cases__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/crossing-edges__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/crossing-edges__conforming_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/ditch__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/ditch__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/ditch__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/ditch__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/ditch__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/ditch__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/ditch__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/ditch__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/ditch__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/ditch__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/dont_flip_constraint_when_resolving_intersection__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/double-hanging__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/double-hanging__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/double-hanging__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/gh_issue__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/gh_issue__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/gh_issue__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__conforming_f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__conforming_f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f32_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/guitar no box__f64_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/island__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/island__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/island__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/island__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/island__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/island__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/island__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/island__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/island__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/island__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/island__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/island__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/island__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/island__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/island__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/island__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-142-double-hanging-edge__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-148-crossing-edges__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-148-crossing-edges__conforming_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/kidney__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/kidney__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/kidney__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/kidney__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/kidney__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/kidney__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/kidney__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/kidney__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/kidney__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints2__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/points_on_constraint_edge__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/square with crack__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/square with crack__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/test_data_small__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/test_data_small__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging-flipped__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/triple-hanging__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/triple-hanging__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_ignore_all.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_ignore_auto.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_ignore_outer.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_ignore_super.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_resolve_all.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_resolve_auto.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_resolve_outer.txt create mode 100644 include/CDT/tests/expected/unit square__as-provided_resolve_super.txt create mode 100644 include/CDT/tests/expected/unit square__auto_ignore_all.txt create mode 100644 include/CDT/tests/expected/unit square__auto_ignore_auto.txt create mode 100644 include/CDT/tests/expected/unit square__auto_ignore_outer.txt create mode 100644 include/CDT/tests/expected/unit square__auto_ignore_super.txt create mode 100644 include/CDT/tests/expected/unit square__auto_resolve_all.txt create mode 100644 include/CDT/tests/expected/unit square__auto_resolve_auto.txt create mode 100644 include/CDT/tests/expected/unit square__auto_resolve_outer.txt create mode 100644 include/CDT/tests/expected/unit square__auto_resolve_super.txt create mode 100644 include/CDT/tests/expected/unit square__conforming_auto_ignore_auto.txt create mode 100644 include/CDT/tests/inputs/Capital A.txt create mode 100644 include/CDT/tests/inputs/Constrained Sweden.txt create mode 100644 include/CDT/tests/inputs/Hanging.txt create mode 100644 include/CDT/tests/inputs/Hanging2.txt create mode 100644 include/CDT/tests/inputs/HangingIntersection.txt create mode 100644 include/CDT/tests/inputs/Letter u.txt create mode 100644 include/CDT/tests/inputs/OnEdge.txt create mode 100644 include/CDT/tests/inputs/ProblematicCase1.txt create mode 100644 include/CDT/tests/inputs/cdt.txt create mode 100644 include/CDT/tests/inputs/corner cases.txt create mode 100644 include/CDT/tests/inputs/crossing-edges.txt create mode 100644 include/CDT/tests/inputs/debug2.txt create mode 100644 include/CDT/tests/inputs/ditch.txt create mode 100644 include/CDT/tests/inputs/dont_flip_constraint_when_resolving_intersection.txt create mode 100644 include/CDT/tests/inputs/double-hanging.txt create mode 100644 include/CDT/tests/inputs/gh_issue.txt create mode 100644 include/CDT/tests/inputs/guitar no box.txt create mode 100644 include/CDT/tests/inputs/hanging3.txt create mode 100644 include/CDT/tests/inputs/island.txt create mode 100644 include/CDT/tests/inputs/issue-142-double-hanging-edge.txt create mode 100644 include/CDT/tests/inputs/issue-148-crossing-edges.txt create mode 100644 include/CDT/tests/inputs/issue-42-full-boundary-overlap.txt create mode 100644 include/CDT/tests/inputs/issue-42-hole-overlaps-bondary.txt create mode 100644 include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps-conform-to-edge.txt create mode 100644 include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps.txt create mode 100644 include/CDT/tests/inputs/issue-65-wrong-edges.txt create mode 100644 include/CDT/tests/inputs/kidney.txt create mode 100644 include/CDT/tests/inputs/overlapping constraints.txt create mode 100644 include/CDT/tests/inputs/overlapping constraints2.txt create mode 100644 include/CDT/tests/inputs/points_on_constraint_edge.txt create mode 100644 include/CDT/tests/inputs/regression_issue_38_wrong_hull_small.txt create mode 100644 include/CDT/tests/inputs/square with crack.txt create mode 100644 include/CDT/tests/inputs/test_data_small.txt create mode 100644 include/CDT/tests/inputs/triple-hanging-flipped.txt create mode 100644 include/CDT/tests/inputs/triple-hanging.txt create mode 100644 include/CDT/tests/inputs/unit square.txt create mode 100644 src/CanvasComponents/BrushComponentCode.cpp create mode 100644 src/CanvasComponents/BrushComponentCode.hpp delete mode 100644 src/CanvasComponents/BrushStrokeCanvasComponent.cpp create mode 100644 src/CanvasComponents/MeshCanvasComponent.cpp rename src/CanvasComponents/{BrushStrokeCanvasComponent.hpp => MeshCanvasComponent.hpp} (60%) rename src/DrawingProgram/Tools/EditTools/{BrushEditTool.cpp => MeshEditTool.cpp} (56%) rename src/DrawingProgram/Tools/EditTools/{BrushEditTool.hpp => MeshEditTool.hpp} (89%) create mode 100644 src/DrawingProgram/Tools/FillTool.cpp create mode 100644 src/DrawingProgram/Tools/FillTool.hpp create mode 100644 src/EarcutIncludes.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 94ebbba..1afaec5 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,6 +86,7 @@ set(sources "src/main.cpp" "src/DrawingProgram/Tools/EyeDropperTool.cpp" "src/DrawingProgram/Tools/ScreenshotTool.cpp" "src/DrawingProgram/Tools/EditTool.cpp" + "src/DrawingProgram/Tools/FillTool.cpp" "src/DrawingProgram/Tools/ZoomCanvasTool.cpp" "src/DrawingProgram/Tools/PanCanvasTool.cpp" "src/DrawingProgram/Tools/GridModifyTool.cpp" @@ -95,7 +96,7 @@ set(sources "src/main.cpp" "src/DrawingProgram/Tools/EditTools/EllipseDrawEditTool.cpp" "src/DrawingProgram/Tools/EditTools/RectDrawEditTool.cpp" "src/DrawingProgram/Tools/EditTools/TextBoxEditTool.cpp" - "src/DrawingProgram/Tools/EditTools/BrushEditTool.cpp" + "src/DrawingProgram/Tools/EditTools/MeshEditTool.cpp" "src/DrawingProgram/Layers/DrawingProgramLayerManagerGUI.cpp" "src/DrawingProgram/Layers/DrawingProgramLayerManager.cpp" "src/DrawingProgram/Layers/DrawingProgramLayerListItem.cpp" @@ -104,11 +105,12 @@ set(sources "src/main.cpp" "src/DrawingProgram/Layers/SerializedBlendMode.cpp" "src/CanvasComponents/CanvasComponentContainer.cpp" "src/CanvasComponents/CanvasComponentAllocator.cpp" - "src/CanvasComponents/BrushStrokeCanvasComponent.cpp" + "src/CanvasComponents/MeshCanvasComponent.cpp" "src/CanvasComponents/RectangleCanvasComponent.cpp" "src/CanvasComponents/TextBoxCanvasComponent.cpp" "src/CanvasComponents/EllipseCanvasComponent.cpp" "src/CanvasComponents/ImageCanvasComponent.cpp" + "src/CanvasComponents/BrushComponentCode.cpp" "src/CanvasComponents/CanvasComponent.cpp" "src/GUIStuff/GUIManager.cpp" "src/GUIStuff/GUIFloatAnimation.cpp" @@ -228,6 +230,7 @@ if((NOT (GRAPHICS_BACKEND STREQUAL "Vulkan")) AND (NOT EMSCRIPTEN) AND LINUX AND endif() find_package(zstd REQUIRED) +find_package(clipper2 REQUIRED) message("Skia root: " ${SKIA_INCLUDE}) message("Build type: " ${CMAKE_BUILD_TYPE}) @@ -357,7 +360,7 @@ if((NOT EMSCRIPTEN) AND (NOT APPLE) AND (NOT ANDROID)) endif() endif() -target_link_libraries(main zstd::libzstd_static) +target_link_libraries(main zstd::libzstd_static Clipper2::clipper2) if((NOT EMSCRIPTEN) AND WIN32) target_link_libraries(main dwrite) diff --git a/assets/data/icons/RemixIcon/paint-line.svg b/assets/data/icons/RemixIcon/paint-line.svg new file mode 100644 index 0000000..2f5efbf --- /dev/null +++ b/assets/data/icons/RemixIcon/paint-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/data/third_party_licenses/CDT b/assets/data/third_party_licenses/CDT new file mode 100644 index 0000000..14e2f77 --- /dev/null +++ b/assets/data/third_party_licenses/CDT @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/assets/data/third_party_licenses/Clipper2 b/assets/data/third_party_licenses/Clipper2 new file mode 100644 index 0000000..36b7cd9 --- /dev/null +++ b/assets/data/third_party_licenses/Clipper2 @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/conanfile.py b/conanfile.py index 3c512ca..909012a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -118,6 +118,7 @@ class CompressorRecipe(ConanFile): self.requires("libdatachannel/0.24.0") self.requires("libcurl/8.20.0") + self.requires("clipper2/2.0.1") self.requires("zstd/1.5.7") self.requires("icu-infinipaint/77.1") diff --git a/include/CDT/CMakeLists.txt b/include/CDT/CMakeLists.txt new file mode 100644 index 0000000..8018966 --- /dev/null +++ b/include/CDT/CMakeLists.txt @@ -0,0 +1,286 @@ +cmake_minimum_required(VERSION 3.4...4.0) + +project( + "CDT" + VERSION 1.4.2 + DESCRIPTION + "C++ library for constrained Delaunay triangulation" + HOMEPAGE_URL "https://github.com/artem-ogre/CDT" + LANGUAGES CXX) + +# ------- +# target +# ------- + +# export all symbols as we do it by instantiating templates anyway +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +# options +option(CDT_USE_AS_COMPILED_LIBRARY + "If enabled templates for float and double will be instantiated and compiled into a library") + +option(CDT_USE_64_BIT_INDEX_TYPE + "If enabled 64bits are used to store vertex/triangle index types. Otherwise 32bits are used (up to 4.2bn items)" + OFF) + +option(CDT_ENABLE_CALLBACK_HANDLER + "If enabled it is possible to provide a callback handler to the triangulation" + OFF) + +option(CDT_ENABLE_TESTING + "If enabled tests target will ge generated)" + OFF) + +option(CDT_USE_STRONG_TYPING + "If enabled uses strong typing for types: useful for development and debugging" + OFF) + +option(CDT_DEVELOPER_BUILD + "Enables all warnings." + OFF) + +option(CDT_DISABLE_EXCEPTIONS + "Disables exceptions: instead of throwing the library will call `std::terminate`" + OFF) + +if(CDT_DEVELOPER_BUILD) + if (MSVC) + # warning level 4 and all warnings as errors + add_compile_options(/W4 /WX) + else() + # lots of warnings and all warnings as errors + add_compile_options(-Wall -Wextra -pedantic -Wno-comment) + endif() +endif() + +# check if Boost is needed +if(cxx_std_11 IN_LIST CMAKE_CXX_COMPILE_FEATURES) + # Work-around as AppleClang 11 defaults to c++98 by default + if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + message(STATUS "AppleClang work-around: set CMAKE_CXX_STANDARD to 11") + set(CMAKE_CXX_STANDARD 11) + endif() +else() + message(STATUS "Compiler does not support C++11: falling back to Boost") + set(CDT_USE_BOOST ON) +endif() + +if(CDT_USE_STRONG_TYPING) + set(CDT_USE_BOOST ON) +endif() + +message(STATUS "CDT_USE_AS_COMPILED_LIBRARY is ${CDT_USE_AS_COMPILED_LIBRARY}") +message(STATUS "CDT_USE_64_BIT_INDEX_TYPE is ${CDT_USE_64_BIT_INDEX_TYPE}") +message(STATUS "CDT_ENABLE_CALLBACK_HANDLER is ${CDT_ENABLE_CALLBACK_HANDLER}") +message(STATUS "CDT_ENABLE_TESTING is ${CDT_ENABLE_TESTING}") +message(STATUS "CDT_USE_STRONG_TYPING is ${CDT_USE_STRONG_TYPING}") +message(STATUS "CDT_DEVELOPER_BUILD is ${CDT_DEVELOPER_BUILD}") +message(STATUS "CDT_DISABLE_EXCEPTIONS is ${CDT_DISABLE_EXCEPTIONS}") + +# Use boost for c++98 versions of c++11 containers or for Boost::rtree +if(CDT_USE_BOOST) + find_package(Boost REQUIRED) +endif() + + +# configure target +set(cdt_include_dirs + include + extras +) + +if(CDT_USE_AS_COMPILED_LIBRARY) + set(cdt_scope PUBLIC) + set(cdt_sources + src/CDT.cpp + ) + set(cdt_headers + include/CDT.h + include/CDTUtils.h + include/Triangulation.h + include/KDTree.h + include/LocatorKDTree.h + include/remove_at.hpp + include/CDT.hpp + include/CDTUtils.hpp + include/Triangulation.hpp + include/predicates.h + extras/VerifyTopology.h + extras/InitializeWithGrid.h + ) + add_library(${PROJECT_NAME} ${cdt_sources} ${cdt_headers}) + # Set symbols visibility to hidden by default + set_target_properties( + ${PROJECT_NAME} + PROPERTIES + VERSION ${PROJECT_VERSION} + SOVERSION ${PROJECT_VERSION} + CXX_VISIBILITY_PRESET hidden + VISIBILITY_INLINES_HIDDEN 1 + ) + # Generate export header and add it to include directories + include(GenerateExportHeader) + generate_export_header(${PROJECT_NAME}) + target_include_directories( + ${PROJECT_NAME} ${cdt_scope} + $ + ) + target_sources( + ${PROJECT_NAME} ${cdt_scope} + $ + ) + +else() + set(cdt_scope INTERFACE) + add_library(${PROJECT_NAME} INTERFACE) +endif() + +add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +foreach(dir_ ${cdt_include_dirs}) + target_include_directories( + ${PROJECT_NAME} + ${cdt_scope} + $ + ) +endforeach() + +target_include_directories( + ${PROJECT_NAME} INTERFACE $) + +target_compile_definitions( + ${PROJECT_NAME} + ${cdt_scope} + $<$:CDT_USE_BOOST> + $<$:CDT_USE_AS_COMPILED_LIBRARY> + $<$:CDT_USE_64_BIT_INDEX_TYPE> + $<$:CDT_ENABLE_CALLBACK_HANDLER> + $<$:CDT_USE_STRONG_TYPING> + $<$:CDT_DISABLE_EXCEPTIONS> +) + +target_link_libraries(${PROJECT_NAME} ${cdt_scope} $<$:Boost::boost>) + +# ------------- +# installation +# ------------- + + +include(GNUInstallDirs) + +# install and export the library +foreach(dir_ ${cdt_include_dirs}) + install(DIRECTORY ${dir_}/ DESTINATION include) +endforeach() + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Config + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +install( + FILES + $<$:${CMAKE_CURRENT_BINARY_DIR}/cdt_export.h> + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(EXPORT ${PROJECT_NAME}Config NAMESPACE CDT:: DESTINATION cmake) + +# ------------ +# documentation +# ------------ + +# work-around to detect custom-doxygen +#set(DOXYGEN_EXECUTABLE /usr/local/bin/doxygen) + +find_package(Doxygen 1.9) +if(DOXYGEN_FOUND) + message(STATUS "Doxygen found: adding documentation target.") + set(DOXYGEN_EXCLUDE_PATTERNS + */cmake-build* + */predicates.h + conanfile.py + ${PROJECT_SOURCE_DIR}/tests/* + ) + # doxygen settings can be set here, prefixed with "DOXYGEN_" + set(DOXYGEN_SOURCE_BROWSER YES) + set(DOXYGEN_JAVADOC_AUTOBRIEF YES) + set(DOXYGEN_ENABLE_PREPROCESSING NO) + set(DOXYGEN_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/docs") + set(CDT_DOCS_DIRECTORY ${PROJECT_SOURCE_DIR}/../docs) + set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${CDT_DOCS_DIRECTORY}/README.md) + set(DOXYGEN_IMAGE_PATH ${CDT_DOCS_DIRECTORY}/images) + + set(DOXYGEN_GENERATE_TREEVIEW YES) + set(CDT_DOXYGEN_AWESOME_DIRECTORY ${CDT_DOCS_DIRECTORY}/doxygen-custom/doxygen-awesome) + set(DOXYGEN_HTML_EXTRA_STYLESHEET + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome.css + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome-sidebar-only.css + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome-sidebar-only-darkmode-toggle.css + ${CDT_DOCS_DIRECTORY}/doxygen-custom/custom.css + ) + set(DOXYGEN_HTML_HEADER ${PROJECT_SOURCE_DIR}/../docs/doxygen-custom/header.html) + set(DOXYGEN_HTML_EXTRA_FILES + ${CDT_DOCS_DIRECTORY}/doxygen-custom/logo.svg + ${CDT_DOCS_DIRECTORY}/doxygen-custom/favicon/favicon.ico + ${CDT_DOCS_DIRECTORY}/doxygen-custom/favicon/apple-touch-icon.png + ${CDT_DOCS_DIRECTORY}/doxygen-custom/favicon/android-chrome-192x192.png + ${CDT_DOCS_DIRECTORY}/doxygen-custom/favicon/android-chrome-512x512.png + ${CDT_DOCS_DIRECTORY}/doxygen-custom/favicon/site.webmanifest + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome-darkmode-toggle.js + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome-fragment-copy-button.js + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/doxygen-awesome-paragraph-link.js + ${CDT_DOXYGEN_AWESOME_DIRECTORY}/toggle-alternative-theme.js + ) + set(DOXYGEN_LAYOUT_FILE ${CDT_DOCS_DIRECTORY}/doxygen-custom/DoxygenLayout.xml) + # this target will only be built if specifically asked to. + # run "make api-docs" to create the doxygen documentation + doxygen_add_docs( + ${PROJECT_NAME}-docs + ${PROJECT_SOURCE_DIR} + ${CDT_DOCS_DIRECTORY} + COMMENT "Generate doxygen documentation for CDT." + ) + # copy README.md images to doxygen so that they are displayed + add_custom_command( + TARGET ${PROJECT_NAME}-docs POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${PROJECT_SOURCE_DIR}/../docs/images + ${DOXYGEN_OUTPUT_DIRECTORY}/html/images + ) +endif(DOXYGEN_FOUND) + + +# ------------ +# tests +# ------------ + +if(CDT_ENABLE_TESTING) + include(CTest) + enable_testing() + # add Catch2 + find_package(Catch2 3 QUIET) + if(Catch2_FOUND) + list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras) + else() + set(Catch2_directory ${PROJECT_SOURCE_DIR}/tests/Catch2) + add_subdirectory(${Catch2_directory}) + list(APPEND CMAKE_MODULE_PATH ${Catch2_directory}/extras) + endif() + set(TEST_TARGET_NAME ${PROJECT_NAME}-tests) + add_executable(${TEST_TARGET_NAME}) + set_property(TARGET ${TEST_TARGET_NAME} PROPERTY CXX_STANDARD 17) + target_sources(${TEST_TARGET_NAME} PRIVATE tests/cdt.test.cpp) + target_link_libraries( + ${TEST_TARGET_NAME} + PRIVATE + Catch2::Catch2WithMain + CDT::CDT + ) + include(Catch) + catch_discover_tests(${TEST_TARGET_NAME} WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/tests") +endif() diff --git a/include/CDT/LICENSE b/include/CDT/LICENSE new file mode 100644 index 0000000..14e2f77 --- /dev/null +++ b/include/CDT/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/include/CDT/conan_basic_setup.cmake b/include/CDT/conan_basic_setup.cmake new file mode 100644 index 0000000..4949c3c --- /dev/null +++ b/include/CDT/conan_basic_setup.cmake @@ -0,0 +1,10 @@ +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/conanbuildinfo.cmake") + message(STATUS "Detected Conan build: perform conan setup") + include("${CMAKE_CURRENT_SOURCE_DIR}/conanbuildinfo.cmake") + # See: https://docs.conan.io/en/latest/howtos/manage_shared_libraries/rpaths.html#default-conan-approach + if(APPLE) + conan_basic_setup(KEEP_RPATHS) + else() + conan_basic_setup() + endif() +endif() \ No newline at end of file diff --git a/include/CDT/conanfile.py b/include/CDT/conanfile.py new file mode 100644 index 0000000..777fd28 --- /dev/null +++ b/include/CDT/conanfile.py @@ -0,0 +1,66 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at https://mozilla.org/MPL/2.0/. + +from conan import ConanFile +from conan.tools.cmake import CMake, CMakeToolchain +from conan.tools.files import collect_libs + + +class CDTConan(ConanFile): + name = "cdt" + version = "1.3.0" + license = "MPL-2.0 License" + url = "https://github.com/artem-ogre/CDT" + description = "Numerically robust C++ implementation of constrained Delaunay triangulation (CDT)" + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeDeps" + options = { + "shared": [True, False], + "use_boost": [True, False], + "as_compiled_library": [True, False], + "enable_testing": [True, False], + "enable_callback_handler": [True, False], + } + default_options = { + "shared": False, + "use_boost": False, + "as_compiled_library": False, + "enable_testing": False, + "enable_callback_handler": False, + } + exports_sources = "*", "!.idea", "!conanfile.py" + + def requirements(self): + if self.options.use_boost: + self.requires("boost/1.83.0") + self.requires("catch2/3.4.0") + + def configure(self): + if self.options.use_boost: + self.options["boost"].header_only = True + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["CDT_USE_BOOST"] = self.options.use_boost + tc.cache_variables["CDT_USE_AS_COMPILED_LIBRARY"] = ( + self.options.as_compiled_library + ) + tc.cache_variables["CMAKE_PROJECT_CDT_INCLUDE"] = "conan_basic_setup.cmake" + tc.cache_variables["CDT_ENABLE_TESTING"] = self.options.enable_testing + tc.cache_variables["CDT_ENABLE_CALLBACK_HANDLER"] = self.options.enable_callback_handler + tc.generate() + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + if self.options.enable_testing: + cmake.test(cli_args=["--verbose"]) + + def package(self): + cmake = CMake(self) + cmake.install() + + def package_info(self): + self.cpp_info.libs = collect_libs(self) diff --git a/include/CDT/extras/InitializeWithGrid.h b/include/CDT/extras/InitializeWithGrid.h new file mode 100644 index 0000000..9b87315 --- /dev/null +++ b/include/CDT/extras/InitializeWithGrid.h @@ -0,0 +1,242 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Helper function to initialize triangulation with regular grid instead of + * super-triangle + */ + +#ifndef CDT_HmXGv083vZCrT3OXASD9 +#define CDT_HmXGv083vZCrT3OXASD9 + +#include +#include + +#ifdef CDT_CXX11_IS_SUPPORTED +#include +#endif +#include +#include +#include + +namespace CDT +{ +namespace detail +{ + +/** + * Generate grid vertices given of X- and Y-ticks + * + * @tparam OutputVertIt output vertices iterator + * @tparam OutputTriIt output triangles iterator + * @tparam TXCoordIter iterator dereferencing to X coordinate + * @tparam TYCoordIter iterator dereferencing to Y coordinate + * @param outFirst the beginning of the destination range + * @param xfirst beginning of X-ticks range + * @param xlast end of X-ticks range + * @param yfirst beginning of Y-ticks range + * @param ylast end of Y-ticks range + */ +template < + typename OutputVertIt, + typename OutputTriIt, + typename TXCoordIter, + typename TYCoordIter> +void generateGridVertices( + OutputVertIt outVertsFirst, + OutputTriIt outTrisFirst, + const TXCoordIter xfirst, + const TXCoordIter xlast, + const TYCoordIter yfirst, + const TYCoordIter ylast) +{ + typedef typename std::iterator_traits::value_type T; + const std::size_t xres = std::distance(xfirst, xlast) - 1; + const std::size_t yres = std::distance(yfirst, ylast) - 1; + + TXCoordIter yiter = yfirst; + for(std::size_t iy = 0; yiter != ylast; ++yiter, ++iy) + { + TXCoordIter xiter = xfirst; + for(std::size_t ix = 0; xiter != xlast; ++xiter, ++ix) + { + *outVertsFirst++ = V2d(*xiter, *yiter); + const std::size_t i = iy * xres + ix; + TriIndVec vTris; + vTris.reserve(6); + // left-up + if(ix > 0 && iy < yres) + { + vTris.push_back(static_cast(2 * (i - 1))); + vTris.push_back(static_cast(2 * (i - 1) + 1)); + } + // right-up + if(ix < xres && iy < yres) + { + vTris.push_back(static_cast(2 * i)); + } + // left-down + if(ix > 0 && iy > 0) + { + vTris.push_back(static_cast(2 * (i - xres - 1) + 1)); + } + // right-down + if(ix < xres && iy > 0) + { + vTris.push_back(static_cast(2 * (i - xres))); + vTris.push_back(static_cast(2 * (i - xres) + 1)); + } +#ifdef CDT_CXX11_IS_SUPPORTED + *outTrisFirst++ = std::move(vTris.front()); +#else + *outTrisFirst++ = vTris; +#endif + } + } +} + +/** + * Generate grid triangles + * + * @tparam OutputIt output iterator + * @param outFirst the beginning of the destination range + * @param xres grid X-resolution + * @param yres grid Y-resolution + */ +template +void generateGridTriangles( + OutputIt outFirst, + const IndexSizeType xres, + const IndexSizeType yres) +{ + for(IndexSizeType iy = 0; iy < yres; ++iy) + { + for(IndexSizeType ix = 0; ix < xres; ++ix) + { + // 2___3 v3 + // |\ | /\ + // | \ | n3/ \n2 + // |__\| /____\ + // 0 1 v1 n1 v2 + const IndexSizeType i = iy * xres + ix; + const IndexSizeType iv = iy * (xres + 1) + ix; + const VertInd vv[4] = { + VertInd(iv), + VertInd(iv + 1), + VertInd(iv + xres + 1), + VertInd(iv + xres + 2)}; + { + const Triangle t = { + {vv[0], vv[1], vv[2]}, + {TriInd(iy ? 2 * i - xres * 2 + 1 : noNeighbor), + TriInd(2 * i + 1), + TriInd(ix ? 2 * i - 1 : noNeighbor)}}; + *outFirst++ = t; + } + { + const Triangle t = { + {vv[1], vv[3], vv[2]}, + {TriInd(ix < xres - 1 ? 2 * i + 2 : noNeighbor), + TriInd(iy < yres - 1 ? 2 * i + xres * 2 : noNeighbor), + TriInd(2 * i)}}; + *outFirst++ = t; + } + } + } +} + +} // namespace detail + +/** + * Make a triangulation that uses regular grid triangles instead of + * super-triangle + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @tparam TNearPointLocator class providing locating near point for efficiently + * inserting new points. + * @param xmin minimum X-coordinate of grid + * @param xmax maximum X-coordinate of grid + * @param ymin minimum Y-coordinate of grid + * @param ymax maximum Y-coordinate of grid + * @param xres grid X-resolution + * @param yres grid Y-resolution + * @param out triangulation to initialize with grid super-geometry + */ +template +void initializeWithRegularGrid( + const T xmin, + const T xmax, + const T ymin, + const T ymax, + const std::size_t xres, + const std::size_t yres, + Triangulation& out) +{ + std::vector xcoords; + std::vector ycoords; + xcoords.reserve(xres + 1); + ycoords.reserve(yres + 1); + const T xstep = (xmax - xmin) / xres; + T x = xmin; + for(std::size_t ix = 0; ix <= xres; ++ix, x += xstep) + xcoords.push_back(x); + const T ystep = (ymax - ymin) / yres; + T y = ymin; + for(std::size_t iy = 0; iy <= yres; ++iy, y += ystep) + ycoords.push_back(y); + + return initializeWithIrregularGrid( + xcoords.begin(), xcoords.end(), ycoords.begin(), ycoords.end(), out); +} + +/** + * Make a triangulation that uses irregular grid triangles instead of + * super-triangle. Irregular grid is given by collections of X- and Y-ticks + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @tparam TNearPointLocator class providing locating near point for efficiently + * inserting new points. + * @tparam TXCoordIter iterator dereferencing to X coordinate + * @tparam TYCoordIter iterator dereferencing to Y coordinate + * @param xfirst beginning of X-ticks range + * @param xlast end of X-ticks range + * @param yfirst beginning of Y-ticks range + * @param ylast end of Y-ticks range + * @param out triangulation to initialize with grid super-geometry + */ +template < + typename T, + typename TNearPointLocator, + typename TXCoordIter, + typename TYCoordIter> +void initializeWithIrregularGrid( + const TXCoordIter xfirst, + const TXCoordIter xlast, + const TYCoordIter yfirst, + const TYCoordIter ylast, + Triangulation& out) +{ + const std::size_t xres = std::distance(xfirst, xlast) - 1; + const std::size_t yres = std::distance(yfirst, ylast) - 1; + out.triangles.reserve(xres * yres * 2); + out.vertices.reserve((xres + 1) * (yres + 1)); + out.VertTrisInternal().reserve((xres + 1) * (yres + 1)); + detail::generateGridVertices( + std::back_inserter(out.vertices), + std::back_inserter(out.VertTrisInternal()), + xfirst, + xlast, + yfirst, + ylast); + detail::generateGridTriangles( + std::back_inserter(out.triangles), + static_cast(xres), + static_cast(yres)); + out.initializedWithCustomSuperGeometry(); +} + +} // namespace CDT + +#endif diff --git a/include/CDT/extras/VerifyTopology.h b/include/CDT/extras/VerifyTopology.h new file mode 100644 index 0000000..3bcac63 --- /dev/null +++ b/include/CDT/extras/VerifyTopology.h @@ -0,0 +1,90 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Helper function to verify if triangulation has no inconsistencies + */ + +#ifndef CDT_Zahj4kpHLwFgkKtcOI1i +#define CDT_Zahj4kpHLwFgkKtcOI1i + +#include + +#include + +namespace CDT +{ + +/** + * Verify that triangulation topology is consistent. + * + * Checks: + * - for each vertex adjacent triangles contain the vertex + * - each triangle's neighbor in turn has triangle as its neighbor + * - each of triangle's vertices has triangle as adjacent + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @tparam TNearPointLocator class providing locating near point for efficiently + */ +template +inline bool verifyTopology(const CDT::Triangulation& cdt) +{ + // Check if vertices' adjacent triangles contain vertex + const VerticesTriangles vertTris = calculateTrianglesByVertex( + cdt.triangles, static_cast(cdt.vertices.size())); + for(VertInd iV(0); iV < VertInd(cdt.vertices.size()); ++iV) + { + const TriIndVec& vTris = vertTris[iV]; + typedef TriIndVec::const_iterator TriIndCit; + for(TriIndCit it = vTris.begin(); it != vTris.end(); ++it) + { + const array& vv = cdt.triangles[*it].vertices; + if(std::find(vv.begin(), vv.end(), iV) == vv.end()) + return false; + } + } + // Check if triangle neighbor links are fine + for(TriInd iT(0); iT < TriInd(cdt.triangles.size()); ++iT) + { + const Triangle& t = cdt.triangles[iT]; + typedef NeighborsArr3::const_iterator NCit; + for(NCit it = t.neighbors.begin(); it != t.neighbors.end(); ++it) + { + if(*it == noNeighbor) + continue; + const array& nn = cdt.triangles[*it].neighbors; + if(std::find(nn.begin(), nn.end(), iT) == nn.end()) + return false; + } + } + // Check if triangle's vertices have triangle as adjacent + for(TriInd iT(0); iT < TriInd(cdt.triangles.size()); ++iT) + { + const Triangle& t = cdt.triangles[iT]; + typedef VerticesArr3::const_iterator VCit; + for(VCit it = t.vertices.begin(); it != t.vertices.end(); ++it) + { + const TriIndVec& tt = vertTris[*it]; + if(std::find(tt.begin(), tt.end(), iT) == tt.end()) + return false; + } + } + return true; +} + +/// Check that each vertex has a neighbor triangle +template +inline bool eachVertexHasNeighborTriangle( + const CDT::Triangulation& cdt) +{ + for(const auto& vt : cdt.VertTrisInternal()) + if(vt == noNeighbor) + return false; + return true; +} + +} // namespace CDT + +#endif diff --git a/include/CDT/include/CDT.h b/include/CDT/include/CDT.h new file mode 100644 index 0000000..bccb471 --- /dev/null +++ b/include/CDT/include/CDT.h @@ -0,0 +1,448 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Public API + */ + +#ifndef CDT_lNrmUayWQaIR5fxnsg9B +#define CDT_lNrmUayWQaIR5fxnsg9B + +#include "CDTUtils.h" +#include "Triangulation.h" + +#include "remove_at.hpp" + +#include +#include +#include +#include +#include +#include +#include + +/// Namespace containing triangulation functionality +namespace CDT +{ + +/** @defgroup API Public API + * Contains API for constrained and conforming Delaunay triangulations + */ +/// @{ + +/** + * Type used for storing layer depths for triangles + * @note LayerDepth should support 60K+ layers, which could be to much or + * too little for some use cases. Feel free to re-define this typedef. + */ +typedef unsigned short LayerDepth; +typedef LayerDepth BoundaryOverlapCount; + +/// Triangles by vertex index +typedef std::vector VerticesTriangles; + +/** @defgroup helpers Helpers + * Helpers for working with CDT::Triangulation. + */ +/// @{ + +/** + * Calculate triangles adjacent to vertices (triangles by vertex index) + * @param triangles triangulation + * @param verticesSize total number of vertices to pre-allocate the output + * @return triangles by vertex index + */ +CDT_EXPORT VerticesTriangles +calculateTrianglesByVertex(const TriangleVec& triangles, VertInd verticesSize); + +/** + * Information about removed duplicated vertices. + * + * Contains mapping information and removed duplicates indices. + * @note vertices {0,1,2,3,4} where 0 and 3 are the same will produce mapping + * {0,1,2,0,3} (to new vertices {0,1,2,3}) and duplicates {3} + */ +struct CDT_EXPORT DuplicatesInfo +{ + std::vector mapping; ///< vertex index mapping + std::vector duplicates; ///< duplicates' indices +}; + +/** + * Find duplicates in given custom point-type range + * @note duplicates are points with exactly same X and Y coordinates + * @tparam TVertexIter iterator that dereferences to custom point type + * @tparam TGetVertexCoordX function object getting x coordinate from vertex. + * Getter signature: const TVertexIter::value_type& -> T + * @tparam TGetVertexCoordY function object getting y coordinate from vertex. + * Getter signature: const TVertexIter::value_type& -> T + * @param first beginning of the range of vertices + * @param last end of the range of vertices + * @param getX getter of X-coordinate + * @param getY getter of Y-coordinate + * @returns information about vertex duplicates + */ +template < + typename T, + typename TVertexIter, + typename TGetVertexCoordX, + typename TGetVertexCoordY> +DuplicatesInfo FindDuplicates( + TVertexIter first, + TVertexIter last, + TGetVertexCoordX getX, + TGetVertexCoordY getY); + +/** + * Remove duplicates in-place from vector of custom points + * @tparam TVertex vertex type + * @tparam TAllocator allocator used by input vector of vertices + * @param vertices vertices to remove duplicates from + * @param duplicates information about duplicates + */ +template +void RemoveDuplicates( + std::vector& vertices, + const std::vector& duplicates); + +/** + * Remove duplicated points in-place + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @param[in, out] vertices collection of vertices to remove duplicates from + * @returns information about duplicated vertices that were removed. + */ +template +CDT_EXPORT DuplicatesInfo RemoveDuplicates(std::vector >& vertices); + +/** + * Remap vertex indices in edges (in-place) using given vertex-index mapping. + * @tparam TEdgeIter iterator that dereferences to custom edge type + * @tparam TGetEdgeVertexStart function object getting start vertex index + * from an edge. + * Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TGetEdgeVertexEnd function object getting end vertex index from + * an edge. Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TMakeEdgeFromStartAndEnd function object that makes new edge from + * start and end vertices + * @param first beginning of the range of edges + * @param last end of the range of edges + * @param mapping vertex-index mapping + * @param getStart getter of edge start vertex index + * @param getEnd getter of edge end vertex index + * @param makeEdge factory for making edge from vetices + */ +template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd, + typename TMakeEdgeFromStartAndEnd> +void RemapEdges( + TEdgeIter first, + TEdgeIter last, + const std::vector& mapping, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd, + TMakeEdgeFromStartAndEnd makeEdge); + +/** + * Remap vertex indices in edges (in-place) using given vertex-index mapping. + * + * @note Mapping can be a result of RemoveDuplicates function + * @param[in,out] edges collection of edges to remap + * @param mapping vertex-index mapping + */ +CDT_EXPORT void +RemapEdges(std::vector& edges, const std::vector& mapping); + +/** + * Find point duplicates, remove them from vector (in-place) and remap edges + * (in-place) + * @note Same as a chained call of CDT::FindDuplicates, CDT::RemoveDuplicates, + * and CDT::RemapEdges + * @tparam T type of vertex coordinates (e.g., float, double) + * @tparam TVertex type of vertex + * @tparam TGetVertexCoordX function object getting x coordinate from vertex. + * Getter signature: const TVertexIter::value_type& -> T + * @tparam TGetVertexCoordY function object getting y coordinate from vertex. + * Getter signature: const TVertexIter::value_type& -> T + * @tparam TEdgeIter iterator that dereferences to custom edge type + * @tparam TGetEdgeVertexStart function object getting start vertex index + * from an edge. + * Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TGetEdgeVertexEnd function object getting end vertex index from + * an edge. Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TMakeEdgeFromStartAndEnd function object that makes new edge from + * start and end vertices + * @param[in, out] vertices vertices to remove duplicates from + * @param[in, out] edges collection of edges connecting vertices + * @param getX getter of X-coordinate + * @param getY getter of Y-coordinate + * @param edgesFirst beginning of the range of edges + * @param edgesLast end of the range of edges + * @param getStart getter of edge start vertex index + * @param getEnd getter of edge end vertex index + * @param makeEdge factory for making edge from vetices + * @returns information about vertex duplicates + */ +template < + typename T, + typename TVertex, + typename TGetVertexCoordX, + typename TGetVertexCoordY, + typename TVertexAllocator, + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd, + typename TMakeEdgeFromStartAndEnd> +DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector& vertices, + TGetVertexCoordX getX, + TGetVertexCoordY getY, + TEdgeIter edgesFirst, + TEdgeIter edgesLast, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd, + TMakeEdgeFromStartAndEnd makeEdge); + +/** + * Same as a chained call of CDT::RemoveDuplicates + CDT::RemapEdges + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @param[in, out] vertices collection of vertices to remove duplicates from + * @param[in,out] edges collection of edges to remap + */ +template +CDT_EXPORT DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector >& vertices, + std::vector& edges); + +/** + * Extract all edges of triangles + * + * @param triangles triangles used to extract edges + * @return an unordered set of all edges of triangulation + */ +CDT_EXPORT EdgeUSet extractEdgesFromTriangles(const TriangleVec& triangles); + +/*! + * Converts piece->original_edges mapping to original_edge->pieces + * @param pieceToOriginals maps pieces to original edges + * @return mapping of original edges to pieces + */ +CDT_EXPORT unordered_map +EdgeToPiecesMapping(const unordered_map& pieceToOriginals); + +/*! + * Convert edge-to-pieces mapping into edge-to-split-vertices mapping + * @tparam T type of vertex coordinates (e.g., float, double) + * @param edgeToPieces edge-to-pieces mapping + * @param vertices vertex buffer + * @return mapping of edge-to-split-points. + * Split points are sorted from edge's start (v1) to end (v2) + */ +template +unordered_map > EdgeToSplitVertices( + const unordered_map& edgeToPieces, + const std::vector >& vertices); + +/// @} + +/// @} + +} // namespace CDT + +//***************************************************************************** +// Implementations of template functionlity +//***************************************************************************** +// hash for CDT::V2d +#ifdef CDT_CXX11_IS_SUPPORTED +namespace std +#else +namespace boost +#endif +{ +template +struct hash > +{ + size_t operator()(const CDT::V2d& xy) const + { +#ifdef CDT_CXX11_IS_SUPPORTED + typedef std::hash Hasher; +#else + typedef boost::hash Hasher; +#endif + return Hasher()(xy.x) ^ Hasher()(xy.y); + } +}; +} // namespace std + +namespace CDT +{ + +//----- +// API +//----- +template < + typename T, + typename TVertexIter, + typename TGetVertexCoordX, + typename TGetVertexCoordY> +DuplicatesInfo FindDuplicates( + TVertexIter first, + TVertexIter last, + TGetVertexCoordX getX, + TGetVertexCoordY getY) +{ + typedef unordered_map, std::size_t> PosToIndex; + PosToIndex uniqueVerts; + const std::size_t verticesSize = std::distance(first, last); + DuplicatesInfo di = { + std::vector(verticesSize), std::vector()}; + for(std::size_t iIn = 0, iOut = iIn; iIn < verticesSize; ++iIn, ++first) + { + typename PosToIndex::const_iterator it; + bool isUnique; + tie(it, isUnique) = uniqueVerts.insert( + std::make_pair(V2d(getX(*first), getY(*first)), iOut)); + if(isUnique) + { + di.mapping[iIn] = iOut++; + continue; + } + di.mapping[iIn] = it->second; // found a duplicate + di.duplicates.push_back(iIn); + } + return di; +} + +template +void RemoveDuplicates( + std::vector& vertices, + const std::vector& duplicates) +{ + vertices.erase( + remove_at( + vertices.begin(), + vertices.end(), + duplicates.begin(), + duplicates.end()), + vertices.end()); +} + +template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd, + typename TMakeEdgeFromStartAndEnd> +void RemapEdges( + TEdgeIter first, + const TEdgeIter last, + const std::vector& mapping, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd, + TMakeEdgeFromStartAndEnd makeEdge) +{ + for(; first != last; ++first) + { + *first = makeEdge( + static_cast(mapping[getStart(*first)]), + static_cast(mapping[getEnd(*first)])); + } +} + +template < + typename T, + typename TVertex, + typename TGetVertexCoordX, + typename TGetVertexCoordY, + typename TVertexAllocator, + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd, + typename TMakeEdgeFromStartAndEnd> +DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector& vertices, + TGetVertexCoordX getX, + TGetVertexCoordY getY, + const TEdgeIter edgesFirst, + const TEdgeIter edgesLast, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd, + TMakeEdgeFromStartAndEnd makeEdge) +{ + const DuplicatesInfo di = + FindDuplicates(vertices.begin(), vertices.end(), getX, getY); + RemoveDuplicates(vertices, di.duplicates); + RemapEdges(edgesFirst, edgesLast, di.mapping, getStart, getEnd, makeEdge); + return di; +} + +template +unordered_map > EdgeToSplitVertices( + const unordered_map& edgeToPieces, + const std::vector >& vertices) +{ + typedef std::pair VertCoordPair; + struct ComparePred + { + bool operator()(const VertCoordPair& a, const VertCoordPair& b) const + { + return a.second < b.second; + } + } comparePred; + + unordered_map > edgeToSplitVerts; + typedef unordered_map::const_iterator It; + for(It e2pIt = edgeToPieces.begin(); e2pIt != edgeToPieces.end(); ++e2pIt) + { + const Edge& e = e2pIt->first; + const T dX = vertices[e.v2()].x - vertices[e.v1()].x; + const T dY = vertices[e.v2()].y - vertices[e.v1()].y; + const bool isX = std::abs(dX) >= std::abs(dY); // X-coord longer + const bool isAscending = + isX ? dX >= 0 : dY >= 0; // Longer coordinate ascends + const EdgeVec& pieces = e2pIt->second; + std::vector splitVerts; + // size is: 2[ends] + (pieces - 1)[split vertices] = pieces + 1 + splitVerts.reserve(pieces.size() + 1); + typedef EdgeVec::const_iterator EIt; + for(EIt pieceIt = pieces.begin(); pieceIt != pieces.end(); ++pieceIt) + { + const array vv = {pieceIt->v1(), pieceIt->v2()}; + typedef array::const_iterator VIt; + for(VIt v = vv.begin(); v != vv.end(); ++v) + { + const T c = isX ? vertices[*v].x : vertices[*v].y; + splitVerts.push_back(std::make_pair(*v, isAscending ? c : -c)); + } + } + // sort by longest coordinate + std::sort(splitVerts.begin(), splitVerts.end(), comparePred); + // remove duplicates + splitVerts.erase( + std::unique(splitVerts.begin(), splitVerts.end()), + splitVerts.end()); + assert(splitVerts.size() > 2); // 2 end points with split vertices + std::pair > val = + std::make_pair(e, std::vector()); + val.second.reserve(splitVerts.size()); + typedef typename std::vector::const_iterator SEIt; + for(SEIt it = splitVerts.begin() + 1; it != splitVerts.end() - 1; ++it) + { + val.second.push_back(it->first); + } + edgeToSplitVerts.insert(val); + } + return edgeToSplitVerts; +} + +} // namespace CDT + +#ifndef CDT_USE_AS_COMPILED_LIBRARY +#include "CDT.hpp" +#endif + +#endif // header-guard diff --git a/include/CDT/include/CDT.hpp b/include/CDT/include/CDT.hpp new file mode 100644 index 0000000..66f9f26 --- /dev/null +++ b/include/CDT/include/CDT.hpp @@ -0,0 +1,107 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Public API - implementation + */ + +#include "CDT.h" + +#include +#include +#include +#include + +namespace CDT +{ + +CDT_INLINE_IF_HEADER_ONLY VerticesTriangles calculateTrianglesByVertex( + const TriangleVec& triangles, + const VertInd verticesSize) +{ + VerticesTriangles vertTris(verticesSize); + for(TriInd iT(0); iT < triangles.size(); ++iT) + { + const VerticesArr3& vv = triangles[iT].vertices; + for(VerticesArr3::const_iterator v = vv.begin(); v != vv.end(); ++v) + { + vertTris[*v].push_back(iT); + } + } + return vertTris; +} + +template +DuplicatesInfo RemoveDuplicates(std::vector >& vertices) +{ + const DuplicatesInfo di = FindDuplicates( + vertices.begin(), vertices.end(), getX_V2d, getY_V2d); + RemoveDuplicates(vertices, di.duplicates); + return di; +} + +CDT_INLINE_IF_HEADER_ONLY void +RemapEdges(std::vector& edges, const std::vector& mapping) +{ + RemapEdges( + edges.begin(), + edges.end(), + mapping, + edge_get_v1, + edge_get_v2, + edge_make); +} + +template +DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector >& vertices, + std::vector& edges) +{ + return RemoveDuplicatesAndRemapEdges( + vertices, + getX_V2d, + getY_V2d, + edges.begin(), + edges.end(), + edge_get_v1, + edge_get_v2, + edge_make); +} + +CDT_INLINE_IF_HEADER_ONLY EdgeUSet +extractEdgesFromTriangles(const TriangleVec& triangles) +{ + EdgeUSet edges; + typedef TriangleVec::const_iterator CIt; + for(CIt t = triangles.begin(); t != triangles.end(); ++t) + { + edges.insert(Edge(VertInd(t->vertices[0]), VertInd(t->vertices[1]))); + edges.insert(Edge(VertInd(t->vertices[1]), VertInd(t->vertices[2]))); + edges.insert(Edge(VertInd(t->vertices[2]), VertInd(t->vertices[0]))); + } + return edges; +} + +CDT_INLINE_IF_HEADER_ONLY unordered_map +EdgeToPiecesMapping(const unordered_map& pieceToOriginals) +{ + unordered_map originalToPieces; + typedef unordered_map::const_iterator Cit; + for(Cit ptoIt = pieceToOriginals.begin(); ptoIt != pieceToOriginals.end(); + ++ptoIt) + { + const Edge piece = ptoIt->first; + const EdgeVec& originals = ptoIt->second; + for(EdgeVec::const_iterator origIt = originals.begin(); + origIt != originals.end(); + ++origIt) + { + originalToPieces[*origIt].push_back(piece); + } + } + return originalToPieces; +} + +} // namespace CDT diff --git a/include/CDT/include/CDTUtils.h b/include/CDT/include/CDTUtils.h new file mode 100644 index 0000000..8941eeb --- /dev/null +++ b/include/CDT/include/CDTUtils.h @@ -0,0 +1,592 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Utilities and helpers + */ + +#ifndef CDT_obwOaxOTdAWcLNTlNnaq +#define CDT_obwOaxOTdAWcLNTlNnaq + +#ifdef CDT_DONT_USE_BOOST_RTREE +// CDT_DONT_USE_BOOST_RTREE was replaced with CDT_USE_BOOST +typedef char CDT_DONT_USE_BOOST_RTREE__was__replaced__with__CDT_USE_BOOST[-1]; +#endif + +// #define CDT_USE_STRONG_TYPING // strong type checks on indices + +// check if c++11 is supported +#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) +#define CDT_CXX11_IS_SUPPORTED +#elif !defined(__cplusplus) && !defined(_MSC_VER) +typedef char couldnt_parse_cxx_standard[-1]; ///< Error: couldn't parse standard +#endif + +// Functions defined outside the class need to be 'inline' +// if CDT is configured to be used as header-only library: +// single-definition rule is violated otherwise +#ifdef CDT_USE_AS_COMPILED_LIBRARY +#define CDT_INLINE_IF_HEADER_ONLY +#include "cdt_export.h" // automatically generated by CMake +#else +/** + * Macro for inlining non-template functions when in header-only mode to + * avoid multiple declaration errors. + */ +#define CDT_INLINE_IF_HEADER_ONLY inline +/// Export not needed in header-only mode +#define CDT_EXPORT +#endif + +#include +#include +#include +#include +#include + +#ifdef CDT_USE_STRONG_TYPING +#include +#endif + +// use fall-backs for c++11 features +#ifdef CDT_CXX11_IS_SUPPORTED + +#include +#include +#include +#include +#include +#include + +#ifdef CDT_DISABLE_EXCEPTIONS +#include +#endif + +namespace CDT +{ +using std::array; +using std::get; +using std::make_tuple; +using std::tie; +using std::to_string; +using std::tuple; +using std::unordered_map; +using std::unordered_set; +} // namespace CDT + +#else +#include +#include +#include +#include +#include +#include +namespace CDT +{ +using boost::array; +using boost::get; +using boost::make_tuple; +using boost::tie; +using boost::tuple; +using boost::unordered_map; +using boost::unordered_set; + +template +std::string to_string(const T& value) +{ + return boost::lexical_cast(value); +} +} // namespace CDT +#endif + +namespace CDT +{ + +template +void handleException(const T& error) +{ +#ifdef CDT_DISABLE_EXCEPTIONS + std::terminate(); +#else + throw error; +#endif +} + +/// Needed for c++03 compatibility (no uniform initialization available) +template +array arr3(const T& v0, const T& v1, const T& v2) +{ + const array out = {v0, v1, v2}; + return out; +} + +/// Needed for c++03 compatibility (no uniform initialization available) +template +array arr3(const T& v) +{ + const array out = {v, v, v}; + return out; +} + +/// 2D vector +template +struct CDT_EXPORT V2d +{ + T x; ///< X-coordinate + T y; ///< Y-coordinate + + /// Vertex with zero coordinates + V2d() + : x(T(0)) + , y(T(0)) + {} + + /// Vertex with given coordinates + V2d(const T x, const T y) + : x(x) + , y(y) + {} +}; + +/// X- coordinate getter for V2d +template +const T& getX_V2d(const V2d& v) +{ + return v.x; +} + +/// Y-coordinate getter for V2d +template +const T& getY_V2d(const V2d& v) +{ + return v.y; +} + +/// If two 2D vectors are exactly equal +template +bool operator==(const CDT::V2d& lhs, const CDT::V2d& rhs) +{ + return lhs.x == rhs.x && lhs.y == rhs.y; +} + +#ifdef CDT_USE_64_BIT_INDEX_TYPE +typedef unsigned long long IndexSizeType; +#else +typedef unsigned int IndexSizeType; +#endif + +#ifdef CDT_USE_STRONG_TYPING +/// Index in triangle +BOOST_STRONG_TYPEDEF(unsigned char, Index); +/// Vertex index +BOOST_STRONG_TYPEDEF(IndexSizeType, VertInd); +/// Triangle index +BOOST_STRONG_TYPEDEF(IndexSizeType, TriInd); +#else +/// Index in triangle +typedef unsigned char Index; +/// Vertex index +typedef IndexSizeType VertInd; +/// Triangle index +typedef IndexSizeType TriInd; +#endif + +/// Constant representing no valid value for index +const static Index invalidIndex(std::numeric_limits::max()); +/// Constant representing no valid value for index size +const static IndexSizeType + invalidIndexSizeType(std::numeric_limits::max()); +/// Number of super triangle vertices +/// @note placed in a constant so that it's easier to find usages in code +const static IndexSizeType nSuperTriangleVertices(3); +/// Constant representing no valid neighbor for a triangle +const static TriInd noNeighbor(invalidIndexSizeType); +/// Constant representing no valid vertex for a triangle +const static VertInd noVertex(invalidIndexSizeType); + +typedef std::vector TriIndVec; ///< Vector of triangle indices +typedef array VerticesArr3; ///< array of three vertex indices +typedef array NeighborsArr3; ///< array of three neighbors + +/// 2D bounding box +template +struct CDT_EXPORT Box2d +{ + V2d min; ///< min box corner + V2d max; ///< max box corner + + /// Box that doesn't contain any point + Box2d() + : min(std::numeric_limits::max(), std::numeric_limits::max()) + , max(-std::numeric_limits::max(), -std::numeric_limits::max()) + {} + + /// Envelop box around a point + Box2d& envelopPoint(const V2d& p) + { + return envelopPoint(p.x, p.y); + } + + /// Envelop box around a point with given coordinates + Box2d& envelopPoint(const T x, const T y) + { + min.x = std::min(x, min.x); + max.x = std::max(x, max.x); + min.y = std::min(y, min.y); + max.y = std::max(y, max.y); + return *this; + } + + /// Envelop box around a collection of custom points + template < + typename TVertexIter, + typename TGetVertexCoordX, + typename TGetVertexCoordY> + Box2d& envelopPoints( + TVertexIter first, + TVertexIter last, + TGetVertexCoordX getX, + TGetVertexCoordY getY) + { + for(; first != last; ++first) + { + envelopPoint(getX(*first), getY(*first)); + } + return *this; + } + + /// Envelop box around a collection of points + Box2d& envelopPoints(const std::vector >& vertices) + { + return envelopPoints( + vertices.begin(), vertices.end(), getX_V2d, getY_V2d); + } +}; + +/// Edge connecting two vertices: vertex with smaller index is always first +/// @note: hash Edge is specialized at the bottom +struct CDT_EXPORT Edge +{ + /// Constructor + Edge(const VertInd iV1, const VertInd iV2) + : m_vertices( + iV1 < iV2 ? std::make_pair(iV1, iV2) : std::make_pair(iV2, iV1)) + {} + + /// Equals operator + bool operator==(const Edge& other) const + { + return m_vertices == other.m_vertices; + } + + /// Not-equals operator + bool operator!=(const Edge& other) const + { + return !(this->operator==(other)); + } + + /// V1 getter + VertInd v1() const + { + return m_vertices.first; + } + + /// V2 getter + VertInd v2() const + { + return m_vertices.second; + } + + /// Edges' vertices + const std::pair& verts() const + { + return m_vertices; + } + +private: + std::pair m_vertices; +}; + +/// Get edge first vertex +inline VertInd edge_get_v1(const Edge& e) +{ + return e.v1(); +} + +/// Get edge second vertex +inline VertInd edge_get_v2(const Edge& e) +{ + return e.v2(); +} + +/// Get edge second vertex +inline Edge edge_make(VertInd iV1, VertInd iV2) +{ + return Edge(iV1, iV2); +} + +typedef std::vector EdgeVec; ///< Vector of edges +typedef unordered_set EdgeUSet; ///< Hash table of edges +typedef unordered_set TriIndUSet; ///< Hash table of triangles +typedef unordered_map TriIndUMap; ///< Triangle hash map + +/// Triangulation triangle (counter-clockwise winding) +/* + * v3 + * /\ + * n3/ \n2 + * /____\ + * v1 n1 v2 + */ +struct CDT_EXPORT Triangle +{ + VerticesArr3 vertices; ///< triangle's three vertices + NeighborsArr3 neighbors; ///< triangle's three neighbors + + /// Triangle with no vertices and no neighbors + Triangle() + : vertices(arr3(noVertex)) + , neighbors(arr3(noNeighbor)) + {} + + /// Triangle with given vertices and neighbors + Triangle(const VerticesArr3& vertices, const NeighborsArr3& neighbors) + : vertices(vertices) + , neighbors(neighbors) + {} + + /// Next triangle adjacent to a vertex (clockwise) + /// @returns pair of next triangle and the other vertex of a common edge + std::pair next(const VertInd i) const + { + assert(vertices[0] == i || vertices[1] == i || vertices[2] == i); + if(vertices[0] == i) + { + return std::make_pair(neighbors[0], vertices[1]); + } + if(vertices[1] == i) + { + return std::make_pair(neighbors[1], vertices[2]); + } + return std::make_pair(neighbors[2], vertices[0]); + } + + /// Previous triangle adjacent to a vertex (counter-clockwise) + /// @returns pair of previous triangle and the other vertex of a common edge + std::pair prev(const VertInd i) const + { + assert(vertices[0] == i || vertices[1] == i || vertices[2] == i); + if(vertices[0] == i) + return std::make_pair(neighbors[2], vertices[2]); + if(vertices[1] == i) + return std::make_pair(neighbors[0], vertices[0]); + return std::make_pair(neighbors[1], vertices[1]); + } + + /// Check if triangle contains a vertex + bool containsVertex(const VertInd i) const + { + return std::find(vertices.begin(), vertices.end(), i) != vertices.end(); + } +}; + +typedef std::vector TriangleVec; ///< Vector of triangles + +/// Advance vertex or neighbor index counter-clockwise +CDT_EXPORT Index ccw(Index i); + +/// Advance vertex or neighbor index clockwise +CDT_EXPORT Index cw(Index i); + +/// Location of point on a triangle +struct CDT_EXPORT PtTriLocation +{ + /// Enum + enum Enum + { + Inside, + Outside, + OnEdge1, + OnEdge2, + OnEdge3, + OnVertex, + }; +}; + +/// Check if location is classified as on any of three edges +CDT_EXPORT bool isOnEdge(PtTriLocation::Enum location); + +/// Neighbor index from a on-edge location +/// @note Call only if located on the edge! +CDT_EXPORT Index edgeNeighbor(PtTriLocation::Enum location); + +/// Relative location of point to a line +struct CDT_EXPORT PtLineLocation +{ + /// Enum + enum Enum + { + Left, + Right, + OnLine, + }; +}; + +/// Orient p against line v1-v2 2D: robust geometric predicate +template +CDT_EXPORT T orient2D(const V2d& p, const V2d& v1, const V2d& v2); + +/// Check if point lies to the left of, to the right of, or on a line +template +CDT_EXPORT PtLineLocation::Enum locatePointLine( + const V2d& p, + const V2d& v1, + const V2d& v2, + T orientationTolerance = T(0)); + +/// Classify value of orient2d predicate +template +CDT_EXPORT PtLineLocation::Enum +classifyOrientation(T orientation, T orientationTolerance = T(0)); + +/// Check if point a lies inside of, outside of, or on an edge of a triangle +template +CDT_EXPORT PtTriLocation::Enum locatePointTriangle( + const V2d& p, + const V2d& v1, + const V2d& v2, + const V2d& v3); + +/// Opposed neighbor index from vertex index +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index opoNbr(Index vertIndex); + +/// Opposed vertex index from neighbor index +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index opoVrt(Index neighborIndex); + +/// Index of triangle's neighbor opposed to a vertex +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index +opposedTriangleInd(const VerticesArr3& vv, VertInd iVert); + +/// Index of triangle's neighbor opposed to an edge +CDT_INLINE_IF_HEADER_ONLY Index +edgeNeighborInd(const VerticesArr3& vv, VertInd iVedge1, VertInd iVedge2); + +/// Index of triangle's vertex opposed to a triangle +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index +opposedVertexInd(const NeighborsArr3& nn, TriInd iTopo); + +/// If triangle has a given vertex return vertex-index +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index +vertexInd(const VerticesArr3& vv, VertInd iV); + +/// Given triangle and a vertex find opposed triangle +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY TriInd +opposedTriangle(const Triangle& tri, VertInd iVert); + +/// Given triangle and an edge find neighbor sharing the edge +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY TriInd +edgeNeighbor(const Triangle& tri, VertInd iVedge1, VertInd iVedge2); + +/// Given two triangles, return vertex of first triangle opposed to the second +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY VertInd +opposedVertex(const Triangle& tri, TriInd iTopo); + +/// Test if point lies in a circumscribed circle of a triangle +template +CDT_EXPORT bool isInCircumcircle( + const V2d& p, + const V2d& v1, + const V2d& v2, + const V2d& v3); + +/// Test if two vertices share at least one common triangle +CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY bool +verticesShareEdge(const TriIndVec& aTris, const TriIndVec& bTris); + +/// Distance between two 2D points +template +CDT_EXPORT T distance(const V2d& a, const V2d& b); + +/// Squared distance between two 2D points +template +CDT_EXPORT T distanceSquared(const V2d& a, const V2d& b); + +/// Check if any of triangle's vertices belongs to a super-triangle +CDT_INLINE_IF_HEADER_ONLY bool touchesSuperTriangle(const Triangle& t); +} // namespace CDT + +#ifndef CDT_USE_AS_COMPILED_LIBRARY +#include "CDTUtils.hpp" +#endif + +//***************************************************************************** +// Specialize hash functions +//***************************************************************************** +#ifdef CDT_CXX11_IS_SUPPORTED +namespace std +#else +namespace boost +#endif +{ + +#ifdef CDT_USE_STRONG_TYPING + +/// Vertex index hasher +template <> +struct hash +{ + /// Hash operator + std::size_t operator()(const CDT::VertInd& vi) const + { + return std::hash()(vi.t); + } +}; + +/// Triangle index hasher +template <> +struct hash +{ + /// Hash operator + std::size_t operator()(const CDT::TriInd& vi) const + { + return std::hash()(vi.t); + } +}; + +#endif // CDT_USE_STRONG_TYPING + +/// Edge hasher +template <> +struct hash +{ + /// Hash operator + std::size_t operator()(const CDT::Edge& e) const + { + return hashEdge(e); + } + +private: + static void hashCombine(std::size_t& seed, const CDT::VertInd& key) + { +#ifdef CDT_CXX11_IS_SUPPORTED + typedef std::hash Hasher; +#else + typedef boost::hash Hasher; +#endif + seed ^= Hasher()(key) + 0x9e3779b9 + (seed << 6) + (seed >> 2); + } + + static std::size_t hashEdge(const CDT::Edge& e) + { + std::size_t seed(0); + hashCombine(seed, e.v1()); + hashCombine(seed, e.v2()); + return seed; + } +}; + +} // namespace std/boost + +#endif // header guard diff --git a/include/CDT/include/CDTUtils.hpp b/include/CDT/include/CDTUtils.hpp new file mode 100644 index 0000000..2976a0e --- /dev/null +++ b/include/CDT/include/CDTUtils.hpp @@ -0,0 +1,264 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Utilities and helpers - implementation + */ + +#include "CDTUtils.h" + +#include "predicates.h" // robust predicates: orient, in-circle + +#include + +namespace CDT +{ + +CDT_INLINE_IF_HEADER_ONLY Index ccw(Index i) +{ + return Index((i + 1) % 3); +} + +CDT_INLINE_IF_HEADER_ONLY Index cw(Index i) +{ + return Index((i + 2) % 3); +} + +CDT_INLINE_IF_HEADER_ONLY bool isOnEdge(const PtTriLocation::Enum location) +{ + return location == PtTriLocation::OnEdge1 || + location == PtTriLocation::OnEdge2 || + location == PtTriLocation::OnEdge3; +} + +CDT_INLINE_IF_HEADER_ONLY Index edgeNeighbor(const PtTriLocation::Enum location) +{ + assert(isOnEdge(location)); + return static_cast(location - PtTriLocation::OnEdge1); +} + +template +T orient2D(const V2d& p, const V2d& v1, const V2d& v2) +{ + return predicates::adaptive::orient2d(v1.x, v1.y, v2.x, v2.y, p.x, p.y); +} + +template +PtLineLocation::Enum locatePointLine( + const V2d& p, + const V2d& v1, + const V2d& v2, + const T orientationTolerance) +{ + return classifyOrientation(orient2D(p, v1, v2), orientationTolerance); +} + +template +PtLineLocation::Enum +classifyOrientation(const T orientation, const T orientationTolerance) +{ + if(orientation < -orientationTolerance) + return PtLineLocation::Right; + if(orientation > orientationTolerance) + return PtLineLocation::Left; + return PtLineLocation::OnLine; +} + +template +PtTriLocation::Enum locatePointTriangle( + const V2d& p, + const V2d& v1, + const V2d& v2, + const V2d& v3) +{ + using namespace predicates::adaptive; + PtTriLocation::Enum result = PtTriLocation::Inside; + PtLineLocation::Enum edgeCheck = locatePointLine(p, v1, v2); + if(edgeCheck == PtLineLocation::Right) + return PtTriLocation::Outside; + if(edgeCheck == PtLineLocation::OnLine) + result = PtTriLocation::OnEdge1; + edgeCheck = locatePointLine(p, v2, v3); + if(edgeCheck == PtLineLocation::Right) + return PtTriLocation::Outside; + if(edgeCheck == PtLineLocation::OnLine) + { + result = (result == PtTriLocation::Inside) ? PtTriLocation::OnEdge2 + : PtTriLocation::OnVertex; + } + edgeCheck = locatePointLine(p, v3, v1); + if(edgeCheck == PtLineLocation::Right) + return PtTriLocation::Outside; + if(edgeCheck == PtLineLocation::OnLine) + { + result = (result == PtTriLocation::Inside) ? PtTriLocation::OnEdge3 + : PtTriLocation::OnVertex; + } + return result; +} + +CDT_INLINE_IF_HEADER_ONLY Index opoNbr(const Index vertIndex) +{ + if(vertIndex == Index(0)) + return Index(1); + if(vertIndex == Index(1)) + return Index(2); + if(vertIndex == Index(2)) + return Index(0); + assert(false && "Invalid vertex index"); + handleException(std::runtime_error("Invalid vertex index")); + return invalidIndex; +} + +CDT_INLINE_IF_HEADER_ONLY Index opoVrt(const Index neighborIndex) +{ + if(neighborIndex == Index(0)) + return Index(2); + if(neighborIndex == Index(1)) + return Index(0); + if(neighborIndex == Index(2)) + return Index(1); + assert(false && "Invalid neighbor index"); + handleException(std::runtime_error("Invalid neighbor index")); + return invalidIndex; +} + +CDT_INLINE_IF_HEADER_ONLY Index +opposedTriangleInd(const VerticesArr3& vv, const VertInd iVert) +{ + assert(vv[0] == iVert || vv[1] == iVert || vv[2] == iVert); + if(vv[0] == iVert) + return Index(1); + if(vv[1] == iVert) + return Index(2); + return Index(0); +} + +CDT_INLINE_IF_HEADER_ONLY Index edgeNeighborInd( + const VerticesArr3& vv, + const VertInd iVedge1, + const VertInd iVedge2) +{ + assert(vv[0] == iVedge1 || vv[1] == iVedge1 || vv[2] == iVedge1); + assert(vv[0] == iVedge2 || vv[1] == iVedge2 || vv[2] == iVedge2); + assert( + (vv[0] != iVedge1 && vv[0] != iVedge2) || + (vv[1] != iVedge1 && vv[1] != iVedge2) || + (vv[2] != iVedge1 && vv[2] != iVedge2)); + /* + * vv[2] + * /\ + * n[2]/ \n[1] + * /____\ + * vv[0] n[0] vv[1] + */ + if(vv[0] == iVedge1) + { + if(vv[1] == iVedge2) + return Index(0); + return Index(2); + } + if(vv[0] == iVedge2) + { + if(vv[1] == iVedge1) + return Index(0); + return Index(2); + } + return Index(1); +} + +CDT_INLINE_IF_HEADER_ONLY Index +opposedVertexInd(const NeighborsArr3& nn, const TriInd iTopo) +{ + assert(nn[0] == iTopo || nn[1] == iTopo || nn[2] == iTopo); + if(nn[0] == iTopo) + return Index(2); + if(nn[1] == iTopo) + return Index(0); + return Index(1); +} + +CDT_INLINE_IF_HEADER_ONLY Index +vertexInd(const VerticesArr3& vv, const VertInd iV) +{ + assert(vv[0] == iV || vv[1] == iV || vv[2] == iV); + if(vv[0] == iV) + return Index(0); + if(vv[1] == iV) + return Index(1); + return Index(2); +} + +CDT_INLINE_IF_HEADER_ONLY TriInd +opposedTriangle(const Triangle& tri, const VertInd iVert) +{ + return tri.neighbors[opposedTriangleInd(tri.vertices, iVert)]; +} + +CDT_INLINE_IF_HEADER_ONLY VertInd +opposedVertex(const Triangle& tri, const TriInd iTopo) +{ + return tri.vertices[opposedVertexInd(tri.neighbors, iTopo)]; +} + +/// Given triangle and an edge find neighbor sharing the edge +CDT_INLINE_IF_HEADER_ONLY TriInd +edgeNeighbor(const Triangle& tri, VertInd iVedge1, VertInd iVedge2) +{ + return tri.neighbors[edgeNeighborInd(tri.vertices, iVedge1, iVedge2)]; +} + +template +bool isInCircumcircle( + const V2d& p, + const V2d& v1, + const V2d& v2, + const V2d& v3) +{ + using namespace predicates::adaptive; + return incircle(v1.x, v1.y, v2.x, v2.y, v3.x, v3.y, p.x, p.y) > T(0); +} + +CDT_INLINE_IF_HEADER_ONLY +bool verticesShareEdge(const TriIndVec& aTris, const TriIndVec& bTris) +{ + for(TriIndVec::const_iterator it = aTris.begin(); it != aTris.end(); ++it) + if(std::find(bTris.begin(), bTris.end(), *it) != bTris.end()) + return true; + return false; +} + +template +T distanceSquared(const T ax, const T ay, const T bx, const T by) +{ + const T dx = bx - ax; + const T dy = by - ay; + return dx * dx + dy * dy; +} + +template +T distance(const T ax, const T ay, const T bx, const T by) +{ + return std::sqrt(distanceSquared(ax, ay, bx, by)); +} + +template +T distance(const V2d& a, const V2d& b) +{ + return distance(a.x, a.y, b.x, b.y); +} + +template +T distanceSquared(const V2d& a, const V2d& b) +{ + return distanceSquared(a.x, a.y, b.x, b.y); +} + +bool touchesSuperTriangle(const Triangle& t) +{ + return t.vertices[0] < 3 || t.vertices[1] < 3 || t.vertices[2] < 3; +} + +} // namespace CDT diff --git a/include/CDT/include/KDTree.h b/include/CDT/include/KDTree.h new file mode 100644 index 0000000..bc408e6 --- /dev/null +++ b/include/CDT/include/KDTree.h @@ -0,0 +1,471 @@ +/// This Source Code Form is subject to the terms of the Mozilla Public +/// License, v. 2.0. If a copy of the MPL was not distributed with this +/// file, You can obtain one at https://mozilla.org/MPL/2.0/. +/// Contribution of original implementation: +/// Andre Fecteau + +#ifndef KDTREE_KDTREE_H +#define KDTREE_KDTREE_H + +#include "CDTUtils.h" + +#include + +namespace CDT +{ +namespace KDTree +{ + +struct NodeSplitDirection +{ + enum Enum + { + X, + Y, + }; +}; + +/// Simple tree structure with alternating half splitting nodes +/// @details Simple tree structure +/// - Tree to incrementally add points to the structure. +/// - Get the nearest point to a given input. +/// - Does not check for duplicates, expect unique points. +/// @tparam TCoordType type used for storing point coordinate. +/// @tparam NumVerticesInLeaf The number of points per leaf. +/// @tparam InitialStackDepth initial size of stack depth for nearest query. +/// Should be at least 1. +/// @tparam StackDepthIncrement increment of stack depth for nearest query when +/// stack depth is reached. +template < + typename TCoordType, + size_t NumVerticesInLeaf, + size_t InitialStackDepth, + size_t StackDepthIncrement> +class KDTree +{ +public: + typedef TCoordType coord_type; + typedef CDT::V2d point_type; + typedef CDT::VertInd point_index; + typedef std::pair value_type; + typedef std::vector point_data_vec; + typedef point_data_vec::const_iterator pd_cit; + typedef CDT::VertInd node_index; + typedef CDT::array children_type; + + /// Stores kd-tree node data + struct Node + { + children_type children; ///< two children if not leaf; {0,0} if leaf + point_data_vec data; ///< points' data if leaf + /// Create empty leaf + Node() + { + setChildren(node_index(0), node_index(0)); + data.reserve(NumVerticesInLeaf); + } + /// Children setter for convenience + void setChildren(const node_index c1, const node_index c2) + { + children[0] = c1; + children[1] = c2; + } + /// Check if node is a leaf (has no valid children) + bool isLeaf() const + { + return children[0] == children[1]; + } + }; + + /// Default constructor + KDTree() + : m_rootDir(NodeSplitDirection::X) + , m_min(point_type( + -std::numeric_limits::max(), + -std::numeric_limits::max())) + , m_max(point_type( + std::numeric_limits::max(), + std::numeric_limits::max())) + , m_size(0) + , m_isRootBoxInitialized(false) + , m_tasksStack(InitialStackDepth, NearestTask()) + { + m_root = addNewNode(); + } + + /// Constructor with bounding box known in advance + KDTree(const point_type& min, const point_type& max) + : m_rootDir(NodeSplitDirection::X) + , m_min(min) + , m_max(max) + , m_size(0) + , m_isRootBoxInitialized(true) + , m_tasksStack(InitialStackDepth, NearestTask()) + { + m_root = addNewNode(); + } + + CDT::VertInd size() const + { + return m_size; + } + + /// Insert a point into kd-tree + /// @note external point-buffer is used to reduce kd-tree's memory footprint + /// @param iPoint index of point in external point-buffer + /// @param points external point-buffer + void + insert(const point_index& iPoint, const std::vector& points) + { + ++m_size; + // if point is outside root, extend tree by adding new roots + const point_type& pos = points[iPoint]; + while(!isInsideBox(pos, m_min, m_max)) + { + extendTree(pos); + } + // now insert the point into the tree + node_index node = m_root; + point_type min = m_min; + point_type max = m_max; + NodeSplitDirection::Enum dir = m_rootDir; + + // below: initialized only to suppress warnings + NodeSplitDirection::Enum newDir(NodeSplitDirection::X); + coord_type mid(0); + point_type newMin, newMax; + while(true) + { + if(m_nodes[node].isLeaf()) + { + // add point if capacity is not reached + point_data_vec& pd = m_nodes[node].data; + if(pd.size() < NumVerticesInLeaf) + { + pd.push_back(iPoint); + return; + } + // initialize bbox first time the root capacity is reached + if(!m_isRootBoxInitialized) + { + initializeRootBox(points); + min = m_min; + max = m_max; + } + // split a full leaf node + calcSplitInfo(min, max, dir, mid, newDir, newMin, newMax); + const node_index c1 = addNewNode(), c2 = addNewNode(); + Node& n = m_nodes[node]; + n.setChildren(c1, c2); + point_data_vec& c1data = m_nodes[c1].data; + point_data_vec& c2data = m_nodes[c2].data; + // move node's points to children + for(pd_cit it = n.data.begin(); it != n.data.end(); ++it) + { + whichChild(points[*it], mid, dir) == 0 + ? c1data.push_back(*it) + : c2data.push_back(*it); + } + n.data = point_data_vec(); + } + else + { + calcSplitInfo(min, max, dir, mid, newDir, newMin, newMax); + } + // add the point to a child + const std::size_t iChild = whichChild(points[iPoint], mid, dir); + iChild == 0 ? max = newMax : min = newMin; + node = m_nodes[node].children[iChild]; + dir = newDir; + } + } + + /// Query kd-tree for a nearest neighbor point + /// @note external point-buffer is used to reduce kd-tree's memory footprint + /// @param point query point position + /// @param points external point-buffer + value_type nearest( + const point_type& point, + const std::vector& points) const + { + value_type out; + int iTask = -1; + coord_type minDistSq = std::numeric_limits::max(); + m_tasksStack[++iTask] = NearestTask( + m_root, + m_min, + m_max, + m_rootDir, + distanceSquaredToBox(point, m_min, m_max)); + while(iTask != -1) + { + const NearestTask t = m_tasksStack[iTask--]; + if(t.distSq > minDistSq) + continue; + const Node& n = m_nodes[t.node]; + if(n.isLeaf()) + { + for(pd_cit it = n.data.begin(); it != n.data.end(); ++it) + { + const point_type& p = points[*it]; + const coord_type distSq = CDT::distanceSquared(point, p); + if(distSq < minDistSq) + { + minDistSq = distSq; + out.first = p; + out.second = *it; + } + } + } + else + { + coord_type mid(0); + NodeSplitDirection::Enum newDir(NodeSplitDirection::X); + point_type newMin = t.min, newMax = t.max; + coord_type dSqFarther = std::numeric_limits::max(); + switch(t.dir) + { + case NodeSplitDirection::X: + { + mid = (t.min.x + t.max.x) / coord_type(2); + newDir = NodeSplitDirection::Y; + newMin.x = mid; + newMax.x = mid; + const coord_type dx = point.x - mid; + const coord_type dy = std::max( + std::max(t.min.y - point.y, coord_type(0)), + point.y - t.max.y); + dSqFarther = dx * dx + dy * dy; + break; + } + case NodeSplitDirection::Y: + { + mid = (t.min.y + t.max.y) / coord_type(2); + newDir = NodeSplitDirection::X; + newMin.y = mid; + newMax.y = mid; + const coord_type dx = std::max( + std::max(t.min.x - point.x, coord_type(0)), + point.x - t.max.x); + const coord_type dy = point.y - mid; + dSqFarther = dx * dx + dy * dy; + break; + } + } + + if(iTask + 2 >= static_cast(m_tasksStack.size())) + { + m_tasksStack.resize( + m_tasksStack.size() + StackDepthIncrement); + } + + // put the closest node on top of the stack + if(isAfterSplit(point, mid, t.dir)) + { + if(dSqFarther <= minDistSq) + { + m_tasksStack[++iTask] = NearestTask( + n.children[0], t.min, newMax, newDir, dSqFarther); + } + m_tasksStack[++iTask] = NearestTask( + n.children[1], newMin, t.max, newDir, t.distSq); + } + else + { + if(dSqFarther <= minDistSq) + { + m_tasksStack[++iTask] = NearestTask( + n.children[1], newMin, t.max, newDir, dSqFarther); + } + m_tasksStack[++iTask] = NearestTask( + n.children[0], t.min, newMax, newDir, t.distSq); + } + } + } + return out; + } + +private: + /// Add a new node and return it's index in nodes buffer + node_index addNewNode() + { + const node_index newNodeIndex = static_cast(m_nodes.size()); + m_nodes.push_back(Node()); + return newNodeIndex; + } + + static bool isAfterSplit( + const point_type& point, + const coord_type& split, + const NodeSplitDirection::Enum dir) + { + return dir == NodeSplitDirection::X ? point.x > split : point.y > split; + } + + /// Test which child point belongs to after the split + /// @returns 0 if first child, 1 if second child + static std::size_t whichChild( + const point_type& point, + const coord_type& split, + const NodeSplitDirection::Enum dir) + { + return isAfterSplit(point, split, dir); + } + + /// Calculate split location, direction, and children boxes + static void calcSplitInfo( + const point_type& min, + const point_type& max, + const NodeSplitDirection::Enum dir, + coord_type& midOut, + NodeSplitDirection::Enum& newDirOut, + point_type& newMinOut, + point_type& newMaxOut) + { + newMaxOut = max; + newMinOut = min; + switch(dir) + { + case NodeSplitDirection::X: + midOut = (min.x + max.x) / coord_type(2); + newDirOut = NodeSplitDirection::Y; + newMinOut.x = midOut; + newMaxOut.x = midOut; + return; + case NodeSplitDirection::Y: + midOut = (min.y + max.y) / coord_type(2); + newDirOut = NodeSplitDirection::X; + newMinOut.y = midOut; + newMaxOut.y = midOut; + return; + } + } + + /// Test if point is inside a box + static bool isInsideBox( + const point_type& p, + const point_type& min, + const point_type& max) + { + return p.x >= min.x && p.x <= max.x && p.y >= min.y && p.y <= max.y; + } + + /// Extend a tree by creating new root with old root and a new node as + /// children + void extendTree(const point_type& point) + { + const node_index newRoot = addNewNode(); + const node_index newLeaf = addNewNode(); + switch(m_rootDir) + { + case NodeSplitDirection::X: + m_rootDir = NodeSplitDirection::Y; + if(point.y < m_min.y) + { + m_min.y -= m_max.y - m_min.y; + m_nodes[newRoot].setChildren(newLeaf, m_root); + } + else + { + m_max.y += m_max.y - m_min.y; + m_nodes[newRoot].setChildren(m_root, newLeaf); + } + break; + case NodeSplitDirection::Y: + m_rootDir = NodeSplitDirection::X; + if(point.x < m_min.x) + { + m_min.x -= m_max.x - m_min.x; + m_nodes[newRoot].setChildren(newLeaf, m_root); + } + else + { + m_max.x += m_max.x - m_min.x; + m_nodes[newRoot].setChildren(m_root, newLeaf); + } + break; + } + m_root = newRoot; + } + + /// Calculate root's box enclosing all root points + void initializeRootBox(const std::vector& points) + { + const point_data_vec& data = m_nodes[m_root].data; + m_min = points[data.front()]; + m_max = m_min; + for(pd_cit it = data.begin(); it != data.end(); ++it) + { + const point_type& p = points[*it]; + m_min = point_type(std::min(m_min.x, p.x), std::min(m_min.y, p.y)); + m_max = point_type(std::max(m_max.x, p.x), std::max(m_max.y, p.y)); + } + // Make sure bounding box does not have a zero size by adding padding: + // zero-size bounding box cannot be extended properly + const TCoordType padding(1); + if(m_min.x == m_max.x) + { + m_min.x -= padding; + m_max.x += padding; + } + if(m_min.y == m_max.y) + { + m_min.y -= padding; + m_max.y += padding; + } + m_isRootBoxInitialized = true; + } + + static coord_type distanceSquaredToBox( + const point_type& p, + const point_type& min, + const point_type& max) + { + const coord_type dx = + std::max(std::max(min.x - p.x, coord_type(0)), p.x - max.x); + const coord_type dy = + std::max(std::max(min.y - p.y, coord_type(0)), p.y - max.y); + return dx * dx + dy * dy; + } + +private: + node_index m_root; + std::vector m_nodes; + NodeSplitDirection::Enum m_rootDir; + point_type m_min; + point_type m_max; + CDT::VertInd m_size; + + bool m_isRootBoxInitialized; + + // used for nearest query + struct NearestTask + { + node_index node; + point_type min, max; + NodeSplitDirection::Enum dir; + coord_type distSq; + NearestTask() + : dir(NodeSplitDirection::X) + {} + NearestTask( + const node_index node, + const point_type& min, + const point_type& max, + const NodeSplitDirection::Enum dir, + const coord_type distSq = std::numeric_limits::max()) + : node(node) + , min(min) + , max(max) + , dir(dir) + , distSq(distSq) + {} + }; + // allocated in class (not in the 'nearest' method) for better performance + mutable std::vector m_tasksStack; +}; + +} // namespace KDTree +} // namespace CDT + +#endif // header guard diff --git a/include/CDT/include/LocatorKDTree.h b/include/CDT/include/LocatorKDTree.h new file mode 100644 index 0000000..06aa806 --- /dev/null +++ b/include/CDT/include/LocatorKDTree.h @@ -0,0 +1,81 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Adapter between for KDTree and CDT + */ + +#ifndef CDT_POINTKDTREE_H +#define CDT_POINTKDTREE_H + +#include "CDTUtils.h" +#include "KDTree.h" + +namespace CDT +{ + +/// KD-tree holding points +template < + typename TCoordType, + size_t NumVerticesInLeaf = 32, + size_t InitialStackDepth = 32, + size_t StackDepthIncrement = 32> +class LocatorKDTree +{ +public: + /// Initialize KD-tree with points + void initialize(const std::vector >& points) + { + typedef V2d V2d_t; + V2d_t min = points.front(); + V2d_t max = min; + typedef typename std::vector::const_iterator Cit; + for(Cit it = points.begin(); it != points.end(); ++it) + { + min = V2d_t(std::min(min.x, it->x), std::min(min.y, it->y)); + max = V2d_t(std::max(max.x, it->x), std::max(max.y, it->y)); + } + m_kdTree = KDTree_t(min, max); + for(VertInd i(0); i < points.size(); ++i) + { + m_kdTree.insert(i, points); + } + } + /// Add point to KD-tree + void addPoint(const VertInd i, const std::vector >& points) + { + m_kdTree.insert(i, points); + } + /// Find nearest point using R-tree + VertInd nearPoint( + const V2d& pos, + const std::vector >& points) const + { + return m_kdTree.nearest(pos, points).second; + } + + CDT::VertInd size() const + { + return m_kdTree.size(); + } + + bool empty() const + { + return !size(); + } + +private: + typedef KDTree::KDTree< + TCoordType, + NumVerticesInLeaf, + InitialStackDepth, + StackDepthIncrement> + KDTree_t; + KDTree_t m_kdTree; +}; + +} // namespace CDT + +#endif diff --git a/include/CDT/include/Triangulation.h b/include/CDT/include/Triangulation.h new file mode 100644 index 0000000..9194935 --- /dev/null +++ b/include/CDT/include/Triangulation.h @@ -0,0 +1,1160 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Triangulation class + */ + +#ifndef CDT_vW1vZ0lO8rS4gY4uI4fB +#define CDT_vW1vZ0lO8rS4gY4uI4fB + +#include "CDTUtils.h" +#include "LocatorKDTree.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/// Namespace containing triangulation functionality +namespace CDT +{ + +/// @addtogroup API +/// @{ + +/** + * Enum of strategies specifying order in which a range of vertices is inserted + * @note VertexInsertionOrder::Randomized will only randomize order of + * inserting in triangulation, vertex indices will be preserved as they were + * specified in the final triangulation + */ +struct CDT_EXPORT VertexInsertionOrder +{ + /** + * The Enum itself + * @note needed to pre c++11 compilers that don't support 'class enum' + */ + enum Enum + { + /** + * Automatic insertion order optimized for better performance + * @details breadth-first traversal of a Kd-tree for initial bulk-load, + * randomized for subsequent insertions + */ + Auto, + /// insert vertices in same order they are provided + AsProvided, + }; +}; + +/// Enum of what type of geometry used to embed triangulation into +struct CDT_EXPORT SuperGeometryType +{ + /** + * The Enum itself + * @note needed to pre c++11 compilers that don't support 'class enum' + */ + enum Enum + { + SuperTriangle, ///< conventional super-triangle + Custom, ///< user-specified custom geometry (e.g., grid) + }; +}; + +/** + * Enum of strategies for treating intersecting constraint edges + */ +struct CDT_EXPORT IntersectingConstraintEdges +{ + /** + * The Enum itself + * @note needed to pre c++11 compilers that don't support 'class enum' + */ + enum Enum + { + NotAllowed, ///< constraint edge intersections are not allowed + TryResolve, ///< attempt to resolve constraint edge intersections + /** + * No checks: slightly faster but less safe. + * User must provide a valid input without intersecting constraints. + */ + DontCheck, + }; +}; + +/** + * Type used for storing layer depths for triangles + * @note LayerDepth should support 60K+ layers, which could be to much or + * too little for some use cases. Feel free to re-define this typedef. + */ +typedef unsigned short LayerDepth; +typedef LayerDepth BoundaryOverlapCount; + +/** + * Contains source location info: file, function, line + */ +class SourceLocation +{ +public: + /// Constructor + SourceLocation(const std::string& file, const std::string& func, int line) + : m_file(file) + , m_func(func) + , m_line(line) + {} + /// source file + const std::string& file() const + { + return m_file; + } + /// source function + const std::string& func() const + { + return m_func; + } + /// source line + int line() const + { + return m_line; + } + +private: + std::string m_file; + std::string m_func; + int m_line; +}; + +/// Macro for getting source location +#define CDT_SOURCE_LOCATION \ + SourceLocation(std::string(__FILE__), std::string(__func__), __LINE__) + +/** + * Base class for errors. Contains error description and source location: file, + * function, line + */ +class Error : public std::runtime_error +{ +public: + /// Constructor + Error(const std::string& description, const SourceLocation& srcLoc) + : std::runtime_error( + description + "\nin '" + srcLoc.func() + "' at " + srcLoc.file() + + ":" + CDT::to_string(srcLoc.line())) + , m_description(description) + , m_srcLoc(srcLoc) + {} + /// Get error description + const std::string& description() const + { + return m_description; + } + /// Get source location from where the error was thrown + const SourceLocation& sourceLocation() const + { + return m_srcLoc; + } + +private: + std::string m_description; + SourceLocation m_srcLoc; +}; + +/** + * Error thrown when triangulation modification is attempted after it was + * finalized + */ +class FinalizedError : public Error +{ +public: + /// Constructor + FinalizedError(const SourceLocation& srcLoc) + : Error( + "Triangulation was finalized with 'erase...' method. Further " + "modification is not possible.", + srcLoc) + {} +}; + +/** + * Error thrown when duplicate vertex is detected during vertex insertion + */ +class DuplicateVertexError : public Error +{ +public: + /// Constructor + DuplicateVertexError( + const VertInd v1, + const VertInd v2, + const SourceLocation& srcLoc) + : Error( + "Duplicate vertex detected: #" + CDT::to_string(v1) + + " is a duplicate of #" + CDT::to_string(v2), + srcLoc) + , m_v1(v1) + , m_v2(v2) + {} + /// first duplicate + VertInd v1() const + { + return m_v1; + } + /// second duplicate + VertInd v2() const + { + return m_v2; + } + +private: + VertInd m_v1, m_v2; +}; + +/** + * Error thrown when intersecting constraint edges are detected, but + * triangulation is not configured to attempt to resolve them + */ +class IntersectingConstraintsError : public Error +{ +public: + /// Constructor + IntersectingConstraintsError( + const Edge& e1, + const Edge& e2, + const SourceLocation& srcLoc) + : Error( + "Intersecting constraint edges detected: (" + + CDT::to_string(e1.v1()) + ", " + CDT::to_string(e1.v2()) + + ") intersects (" + CDT::to_string(e2.v1()) + ", " + + CDT::to_string(e2.v2()) + ")", + srcLoc) + , m_e1(e1) + , m_e2(e2) + {} + /// first intersecting constraint + const Edge& e1() const + { + return m_e1; + } + /// second intersecting constraint + const Edge& e2() const + { + return m_e2; + } + +private: + Edge m_e1, m_e2; +}; + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + +/** + * What type of vertex is added to the triangulation + */ +struct CDT_EXPORT AddVertexType +{ + /** + * The Enum itself + * @note needed to pre c++11 compilers that don't support 'class enum' + */ + enum Enum + { + /// Original vertex from user input + UserInput, + /// During conforming triangulation edge mid-point is added + FixedEdgeMidpoint, + /// Resolving fixed/constraint edges' intersection + FixedEdgesIntersection, + }; +}; + +/** + * What type of triangle change happened + */ +struct CDT_EXPORT TriangleChangeType +{ + /** + * The Enum itself + * @note needed to pre c++11 compilers that don't support 'class enum' + */ + enum Enum + { + AddedNew, ///< new triangle added to the triangulation + ModifiedExisting, ///< existing triangle was modified + }; +}; + +// parameter names are used for documentation purposes, even if they are un-used +// in the interface's default implementation +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/** + * Interface for the callback handler that user can derive from and inject into + * the triangulation to monitor certain events or order aborting the calculation + */ +class CDT_EXPORT ICallbackHandler +{ +public: + /// Virtual destructor + virtual ~ICallbackHandler() + {} + + /** + * Called when super-triangle is added. + * 1.Added three new vertices with indices 0, 1, 2 + * 2. Added one a new triangle with an index 0 + */ + virtual void onAddSuperTriangle() + {} + + /** + * Called when inserted vertex is inside a triangle. + * The triangle is split in three: original trianlge is re-purposed and two + * new triangles are added + * @param iRepurposedTri index of original triangle containing the point + * that will be modified (re-purposed) + * @param iNewTri1 index of first added new triangle + * @param iNewTri2 index of second added new triangle + */ + virtual void onInsertVertexInsideTriangle( + const TriInd iRepurposedTri, + const TriInd iNewTri1, + const TriInd iNewTri2) + {} + + /** + * Called when inserted vertex is on an edge. + * Two triangles sharing an edge are split in four:original triangles are + * re-purposed and two new triangles are added. + * @param iRepurposedTri1 index of first original triangle sharing an edge + * that will be modified (re-purposed) + * @param iRepurposedTri2 index of second original triangle sharing + * an edge that will be modified (re-purposed) + * @param iNewTri1 index of first added new triangle + * @param iNewTri2 index of second added new triangle + */ + virtual void onInsertVertexOnEdge( + const TriInd iRepurposedTri1, + const TriInd iRepurposedTri2, + const TriInd iNewTri1, + const TriInd iNewTri2) + {} + + /** + * Called just before an edge between tro triangles is flipped + * @param iT index of the first triangle sharing an edge + * @param iTopo index of the second triangle sharing an edge + */ + virtual void onFlipEdge(const TriInd iT, const TriInd iTopo) + {} + + /** + * Called at the start of adding new vertex to the triangulation + * @param iV index of the vertex + * @param vertexType what type of vertex is being added + */ + virtual void + onAddVertexStart(const VertInd iV, const AddVertexType::Enum vertexType) + {} + + /** + * Called at the start of adding a constraint edge to the triangulation + * @param edge constraint that is added/enforced + */ + virtual void onAddEdgeStart(const Edge& edge) + {} + + /** + * Called when inserting a constraint edge causes polygon containing + * triangles to be re-triangulated + * @tris triangles in the polygon that will be re-triangulated and triangles + * re-purposed + */ + virtual void onReTriangulatePolygon(const std::vector& tris) + {} + + /** + * Tells whether the user wants to abort the triangulation at the earliest + * opportunity + */ + virtual bool isAbortCalculation() const + { + return false; + }; +}; + +// parameter names are used for documentation purposes, even if they are +// un-used in the interface's default implementation +#pragma GCC diagnostic pop + +#endif + +/** + * @defgroup Triangulation Triangulation Class + * Class performing triangulations. + */ +/// @{ + +/** + * Data structure representing a 2D constrained Delaunay triangulation + * + * @tparam T type of vertex coordinates (e.g., float, double) + * @tparam TNearPointLocator class providing locating near point for efficiently + * inserting new points. Provides methods: 'addPoint(vPos, iV)' and + * 'nearPoint(vPos) -> iV' + */ +template > +class CDT_EXPORT Triangulation +{ +public: + typedef std::vector > V2dVec; ///< Vertices vector + V2dVec vertices; ///< triangulation's vertices + TriangleVec triangles; ///< triangulation's triangles + EdgeUSet fixedEdges; ///< triangulation's constraints (fixed edges) + + /** Stores count of overlapping boundaries for a fixed edge. If no entry is + * present for an edge: no boundaries overlap. + * @note map only has entries for fixed for edges that represent overlapping + * boundaries + * @note needed for handling depth calculations and hole-removel in case of + * overlapping boundaries + */ + unordered_map overlapCount; + + /** Stores list of original edges represented by a given fixed edge + * @note map only has entries for edges where multiple original fixed edges + * overlap or where a fixed edge is a part of original edge created by + * conforming Delaunay triangulation vertex insertion + */ + unordered_map pieceToOriginals; + + /*____ API _____*/ + /// Default constructor + Triangulation(); + /** + * Constructor + * @param vertexInsertionOrder strategy used for ordering vertex insertions + */ + explicit Triangulation(VertexInsertionOrder::Enum vertexInsertionOrder); + /** + * Constructor + * @param vertexInsertionOrder strategy used for ordering vertex insertions + * @param intersectingEdgesStrategy strategy for treating intersecting + * constraint edges + * @param minDistToConstraintEdge distance within which point is considered + * to be lying on a constraint edge. Used when adding constraints to the + * triangulation. + */ + Triangulation( + VertexInsertionOrder::Enum vertexInsertionOrder, + IntersectingConstraintEdges::Enum intersectingEdgesStrategy, + T minDistToConstraintEdge); + /** + * Constructor + * @param vertexInsertionOrder strategy used for ordering vertex insertions + * @param nearPtLocator class providing locating near point for efficiently + * inserting new points + * @param intersectingEdgesStrategy strategy for treating intersecting + * constraint edges + * @param minDistToConstraintEdge distance within which point is considered + * to be lying on a constraint edge. Used when adding constraints to the + * triangulation. + */ + Triangulation( + VertexInsertionOrder::Enum vertexInsertionOrder, + const TNearPointLocator& nearPtLocator, + IntersectingConstraintEdges::Enum intersectingEdgesStrategy, + T minDistToConstraintEdge); + /** + * Insert custom point-types specified by iterator range and X/Y-getters + * @tparam TVertexIter iterator that dereferences to custom point type + * @tparam TGetVertexCoordX function object getting x coordinate from + * vertex. Getter signature: const TVertexIter::value_type& -> T + * @tparam TGetVertexCoordY function object getting y coordinate from + * vertex. Getter signature: const TVertexIter::value_type& -> T + * @param first beginning of the range of vertices to add + * @param last end of the range of vertices to add + * @param getX getter of X-coordinate + * @param getY getter of Y-coordinate + */ + template < + typename TVertexIter, + typename TGetVertexCoordX, + typename TGetVertexCoordY> + void insertVertices( + TVertexIter first, + TVertexIter last, + TGetVertexCoordX getX, + TGetVertexCoordY getY); + /** + * Insert vertices into triangulation + * @param vertices vector of vertices to insert + */ + void insertVertices(const std::vector >& vertices); + /** + * Insert constraint edges into triangulation for Constrained Delaunay + * Triangulation (for example see figure below). + * + * Uses only original vertices: no new verties are added + * + * CDT show-case: constrained and
+     * conforming triangulations, convex hulls, automatically removing holes + * + * @note Each fixed edge is inserted by deleting the triangles it crosses, + * followed by the triangulation of the polygons on each side of the edge. + * No new vertices are inserted. + * @note If some edge appears more than once in the input this means that + * multiple boundaries overlap at the edge and impacts how hole detection + * algorithm of Triangulation::eraseOuterTrianglesAndHoles works. + * Make sure there are no erroneous duplicates. + * @tparam TEdgeIter iterator that dereferences to custom edge type + * @tparam TGetEdgeVertexStart function object getting start vertex index + * from an edge. + * Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TGetEdgeVertexEnd function object getting end vertex index from + * an edge. Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @param first beginning of the range of edges to add + * @param last end of the range of edges to add + * @param getStart getter of edge start vertex index + * @param getEnd getter of edge end vertex index + */ + template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd> + void insertEdges( + TEdgeIter first, + TEdgeIter last, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd); + /** + * Insert constraint edges into triangulation for Constrained Delaunay + * Triangulation (for example see figure below). + * + * Uses only original vertices: no new verties are added + * + * CDT show-case: constrained and
+     * conforming triangulations, convex hulls, automatically removing holes + * + * @note Each fixed edge is inserted by deleting the triangles it crosses, + * followed by the triangulation of the polygons on each side of the edge. + * No new vertices are inserted. + * @note If some edge appears more than once in the input this means that + * multiple boundaries overlap at the edge and impacts how hole detection + * algorithm of Triangulation::eraseOuterTrianglesAndHoles works. + * Make sure there are no erroneous duplicates. + * @tparam edges constraint edges + */ + void insertEdges(const std::vector& edges); + /** + * Insert constraint edges into triangulation for Conforming Delaunay + * Triangulation (for example see figure below). + * + * May add new vertices. + * + * CDT show-case: constrained and
+     * conforming triangulations, convex hulls, automatically removing holes + * + * @note For each fixed edge that is not present in the triangulation its + * midpoint is recursively added until the original edge is represented by a + * sequence of its pieces. New vertices are inserted. + * @note If some edge appears more than once the input this + * means that multiple boundaries overlap at the edge and impacts how hole + * detection algorithm of Triangulation::eraseOuterTrianglesAndHoles works. + * Make sure there are no erroneous duplicates. + * @tparam TEdgeIter iterator that dereferences to custom edge type + * @tparam TGetEdgeVertexStart function object getting start vertex index + * from an edge. + * Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @tparam TGetEdgeVertexEnd function object getting end vertex index from + * an edge. Getter signature: const TEdgeIter::value_type& -> CDT::VertInd + * @param first beginning of the range of edges to add + * @param last end of the range of edges to add + * @param getStart getter of edge start vertex index + * @param getEnd getter of edge end vertex index + */ + template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd> + void conformToEdges( + TEdgeIter first, + TEdgeIter last, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd); + /** + * Insert constraint edges into triangulation for Conforming Delaunay + * Triangulation (for example see figure below). + * + * May add new vertices. + * + * CDT show-case: constrained and
+     * conforming triangulations, convex hulls, automatically removing holes + * + * @note For each fixed edge that is not present in the triangulation its + * midpoint is recursively added until the original edge is represented by a + * sequence of its pieces. New vertices are inserted. + * @note If some edge appears more than once the input this + * means that multiple boundaries overlap at the edge and impacts how hole + * detection algorithm of Triangulation::eraseOuterTrianglesAndHoles works. + * Make sure there are no erroneous duplicates. + * @tparam edges edges to conform to + */ + void conformToEdges(const std::vector& edges); + /** + * Erase triangles adjacent to super triangle + * + * @note does nothing if custom geometry is used + */ + void eraseSuperTriangle(); + /// Erase triangles outside of constrained boundary using growing + void eraseOuterTriangles(); + /** + * Erase triangles outside of constrained boundary and auto-detected holes + * + * @note detecting holes relies on layer peeling based on layer depth + * @note supports overlapping or touching boundaries + */ + void eraseOuterTrianglesAndHoles(); + /** + * Call this method after directly setting custom super-geometry via + * vertices and triangles members + */ + void initializedWithCustomSuperGeometry(); + + /** + * Check if the triangulation was finalized with `erase...` method and + * super-triangle was removed. + * @return true if triangulation is finalized, false otherwise + */ + bool isFinalized() const; + + /** + * Calculate depth of each triangle in constraint triangulation. Supports + * overlapping boundaries. + * + * Perform depth peeling from super triangle to outermost boundary, + * then to next boundary and so on until all triangles are traversed.@n + * For example depth is: + * - 0 for triangles outside outermost boundary + * - 1 for triangles inside boundary but outside hole + * - 2 for triangles in hole + * - 3 for triangles in island and so on... + * @return vector where element at index i stores depth of i-th triangle + */ + std::vector calculateTriangleDepths() const; + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + /** + * Set user-provided callback handler + * @warning callback handler must outlive the triangulation class + * @warning triangulatio does not own the callback and does not try to free + * it + * @param callbackHandler pointer to the callback handler + */ + void setCallbackHandler(ICallbackHandler* callbackHandler); +#endif + /** + * @defgroup Advanced Advanced Triangulation Methods + * Advanced methods for manually modifying the triangulation from + * outside. Please only use them when you know what you are doing. + */ + /// @{ + + /** + * Flip an edge between two triangle. + * @note Advanced method for manually modifying the triangulation from + * outside. Please call it when you know what you are doing. + * @param iT first triangle + * @param iTopo second triangle + */ + void flipEdge(TriInd iT, TriInd iTopo); + + /** + * Flip edge between two triangles given all the information such as + * triangle vertices and neighbors + */ + void flipEdge( + TriInd iT, + TriInd iTopo, + VertInd v1, + VertInd v2, + VertInd v3, + VertInd v4, + TriInd n1, + TriInd n2, + TriInd n3, + TriInd n4); + + /** + * Remove triangles with specified indices. + * Adjust internal triangulation state accordingly. + * @param removedTriangles indices of triangles to remove + */ + void removeTriangles(const TriIndUSet& removedTriangles); + + /// Access internal vertex adjacent triangles + TriIndVec& VertTrisInternal(); + /// Access internal vertex adjacent triangles + const TriIndVec& VertTrisInternal() const; + /// @} + +private: + /*____ Detail __*/ + void addSuperTriangle(const Box2d& box); + void addNewVertex(const V2d& pos, TriInd iT); + void insertVertex(VertInd iVert); + void insertVertex(VertInd iVert, VertInd walkStart); + void ensureDelaunayByEdgeFlips(VertInd iV1, std::stack& triStack); + /// Flip fixed edges and return a list of flipped fixed edges + std::vector insertVertex_FlipFixedEdges(VertInd iV1); + + /// State for an iteration of triangulate pseudo-polygon + typedef tuple + TriangulatePseudoPolygonTask; + + /** + * Insert an edge into constraint Delaunay triangulation + * @param edge edge to insert + * @param originalEdge original edge inserted edge is part of + * @param[in,out] remaining parts of the edge that still need to + * be inserted + * @param[in,out] tppIterations stack to be used for storing iterations of + * triangulating pseudo-polygon + * @note in-out state (@param remaining @param tppIterations) is shared + * between different runs for performance gains (reducing memory + * allocations) + */ + void insertEdge( + Edge edge, + Edge originalEdge, + EdgeVec& remaining, + std::vector& tppIterations); + + /** + * Insert an edge or its part into constraint Delaunay triangulation + * @param edge edge to insert + * @param originalEdge original edge inserted edge is part of + * @param[in,out] remainingStack parts of the edge that still need to + * be inserted + * @param[in,out] tppIterations stack to be used for storing iterations of + * triangulating pseudo-polygon + * @note in-out state (@param remaining @param tppIterations) is shared + * between different runs for performance gains (reducing memory + * allocations) + */ + void insertEdgeIteration( + Edge edge, + Edge originalEdge, + EdgeVec& remaining, + std::vector& tppIterations); + + /// State for iteration of conforming to edge + typedef tuple ConformToEdgeTask; + + /** + * Conform Delaunay triangulation to a fixed edge by recursively inserting + * mid point of the edge and then conforming to its halves + * @param edge fixed edge to conform to + * @param originals original edges that new edge is piece of + * @param overlaps count of overlapping boundaries at the edge. Only used + * when re-introducing edge with overlaps > 0 + * @param[in,out] remaining remaining edge parts to be conformed to + * @note in-out state (@param remaining @param reintroduce) is shared + * between different runs for performance gains (reducing memory + * allocations) + */ + void conformToEdge( + Edge edge, + EdgeVec originals, + BoundaryOverlapCount overlaps, + std::vector& remaining); + + /** + * Iteration of conform to fixed edge. + * @param edge fixed edge to conform to + * @param originals original edges that new edge is piece of + * @param overlaps count of overlapping boundaries at the edge. Only used + * when re-introducing edge with overlaps > 0 + * @param[in,out] remaining remaining edge parts + * @note in-out state (@param remaining @param reintroduce) is shared + * between different runs for performance gains (reducing memory + * allocations) + */ + void conformToEdgeIteration( + Edge edge, + const EdgeVec& originals, + BoundaryOverlapCount overlaps, + std::vector& remaining); + + tuple intersectedTriangle( + VertInd iA, + const V2d& a, + const V2d& b, + T orientationTolerance = T(0)) const; + /// Returns indices of three resulting triangles + std::stack insertVertexInsideTriangle(VertInd v, TriInd iT); + /// Returns indices of four resulting triangles + std::stack insertVertexOnEdge( + VertInd v, + TriInd iT1, + TriInd iT2, + const bool doHandleFixedSplitEdge = false); + array trianglesAt(const V2d& pos) const; + array + walkingSearchTrianglesAt(VertInd iV, VertInd startVertex) const; + TriInd walkTriangles(VertInd startVertex, const V2d& pos) const; + /// Given triangle and its vertex find opposite triangle and the other three + /// vertices and surrounding neighbors + void edgeFlipInfo( + TriInd iT, + VertInd iV1, + TriInd& iTopo, + VertInd& iV2, + VertInd& iV3, + VertInd& iV4, + TriInd& n1, + TriInd& n2, + TriInd& n3, + TriInd& n4); + bool isFlipNeeded(VertInd iV1, VertInd iV2, VertInd iV3, VertInd iV4) const; + void changeNeighbor(TriInd iT, TriInd oldNeighbor, TriInd newNeighbor); + void changeNeighbor( + TriInd iT, + VertInd iVedge1, + VertInd iVedge2, + TriInd newNeighbor); + void triangulatePseudoPolygon( + const std::vector& poly, + unordered_map& outerTris, + TriInd iT, + TriInd iN, + std::vector& trianglesToReuse, + std::vector& iterations); + void triangulatePseudoPolygonIteration( + const std::vector& poly, + unordered_map& outerTris, + std::vector& trianglesToReuse, + std::vector& iterations); + IndexSizeType findDelaunayPoint( + const std::vector& poly, + IndexSizeType iA, + IndexSizeType iB) const; + TriInd addTriangle(const Triangle& t); + TriInd addTriangle(); + /** + * Remove super-triangle (if used) and triangles with specified indices. + * Adjust internal triangulation state accordingly. + * @removedTriangles indices of triangles to remove + */ + void finalizeTriangulation(const TriIndUSet& removedTriangles); + TriIndUSet growToBoundary(std::stack seeds) const; + void fixEdge(const Edge& edge); + void fixEdge(const Edge& edge, const Edge& originalEdge); + /** + * Split existing constraint (fixed) edge + * @param edge fixed edge to split + * @param iSplitVert index of the vertex to be used as a split vertex + */ + void splitFixedEdge(const Edge& edge, const VertInd iSplitVert); + /** + * Add a vertex that splits an edge into the triangulation + * @param splitVert position of split vertex + * @param iT index of a first triangle adjacent to the split edge + * @param iTopo index of a second triangle adjacent to the split edge + * (opposed to the first triangle) + * @return index of a newly added split vertex + */ + VertInd addSplitEdgeVertex( + const V2d& splitVert, + const TriInd iT, + const TriInd iTopo); + /** + * Split fixed edge and add a split vertex into the triangulation + * @param edge fixed edge to split + * @param splitVert position of split vertex + * @param iT index of a first triangle adjacent to the split edge + * @param iTopo index of a second triangle adjacent to the split edge + * (opposed to the first triangle) + * @return index of a newly added split vertex + */ + VertInd splitFixedEdgeAt( + const Edge& edge, + const V2d& splitVert, + const TriInd iT, + const TriInd iTopo); + /** + * Depth-peel a layer in triangulation, used when calculating triangle + * depths + * + * It takes starting seed triangles, traverses neighboring triangles, and + * assigns given layer depth to the traversed triangles. Traversal is + * blocked by constraint edges. Triangles behind constraint edges are + * recorded as seeds of next layer and returned from the function. + * + * @param seeds indices of seed triangles + * @param layerDepth current layer's depth to mark triangles with + * @param[in, out] triDepths depths of triangles + * @return triangles of the deeper layers that are adjacent to the peeled + * layer. To be used as seeds when peeling deeper layers. + */ + unordered_map peelLayer( + std::stack seeds, + LayerDepth layerDepth, + std::vector& triDepths) const; + + void insertVertices_AsProvided(VertInd superGeomVertCount); + void insertVertices_Randomized(VertInd superGeomVertCount); + void insertVertices_KDTreeBFS(VertInd superGeomVertCount, Box2d box); + std::pair edgeTriangles(VertInd a, VertInd b) const; + bool hasEdge(VertInd a, VertInd b) const; + void setAdjacentTriangle(const VertInd v, const TriInd t); + void pivotVertexTriangleCW(VertInd v); + /// Add vertex to nearest-point locator if locator is initialized + void tryAddVertexToLocator(const VertInd v); + /// Perform lazy initialization of nearest-point locator after the Kd-tree + /// BFS bulk load if necessary + void tryInitNearestPointLocator(); + + TNearPointLocator m_nearPtLocator; + VertInd m_nTargetVerts; + SuperGeometryType::Enum m_superGeomType; + VertexInsertionOrder::Enum m_vertexInsertionOrder; + IntersectingConstraintEdges::Enum m_intersectingEdgesStrategy; + T m_minDistToConstraintEdge; + TriIndVec m_vertTris; /// one triangle adjacent to each vertex +#ifdef CDT_ENABLE_CALLBACK_HANDLER + ICallbackHandler* m_callbackHandler; /// user-provided callback handler +#endif +}; + +/// @} +/// @} + +namespace detail +{ + +/// SplitMix64 pseudo-random number generator +struct SplitMix64RandGen +{ + typedef unsigned long long uint64; ///< uint64 type + uint64 m_state; ///< PRNG's state + /// constructor + explicit SplitMix64RandGen(uint64 state) + : m_state(state) + {} + /// default constructor + explicit SplitMix64RandGen() + : m_state(0) + {} + /// functor's operator + uint64 operator()() + { + uint64 z = (m_state += 0x9e3779b97f4a7c15); + z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9; + z = (z ^ (z >> 27)) * 0x94d049bb133111eb; + return z ^ (z >> 31); + } +}; + +/// backport from c++11 +template +void random_shuffle(RandomIt first, RandomIt last) +{ + detail::SplitMix64RandGen prng; + typename std::iterator_traits::difference_type i, n; + n = last - first; + for(i = n - 1; i > 0; --i) + { + std::swap(first[i], first[prng() % (i + 1)]); + } +} + +/// backport from c++11 +template +void iota(ForwardIt first, ForwardIt last, T value) +{ + while(first != last) + { + *first++ = value; + ++value; + } +} + +} // namespace detail + +//----------------------- +// Triangulation methods +//----------------------- +template +template < + typename TVertexIter, + typename TGetVertexCoordX, + typename TGetVertexCoordY> +void Triangulation::insertVertices( + const TVertexIter first, + const TVertexIter last, + TGetVertexCoordX getX, + TGetVertexCoordY getY) +{ + if(isFinalized()) + handleException(FinalizedError(CDT_SOURCE_LOCATION)); + + const bool isFirstTime = vertices.empty(); + + // + // performance optimization: pre-allocate triangles and vertices + // + const std::size_t nNewVertices = std::distance(first, last); + std::size_t exactCapacityTriangles = triangles.size() + 2 * nNewVertices; + std::size_t exactCapacityVertices = vertices.size() + nNewVertices; + if(isFirstTime) // account for adding super-triangle on the first run + { + exactCapacityTriangles += 1; + exactCapacityVertices += nSuperTriangleVertices; + } + std::size_t capacityTriangles = exactCapacityTriangles; + std::size_t capacityVertices = exactCapacityVertices; + // to avoid re-allocation and unused memory + // over-allocate by a fixed factor + // when constraint edge intersections are resolved and vertices are many + // because vertex is added for each intersection + // and total number of intersections is unknown + const VertInd overAllocationVerticesThreshold(1000); + const T overAllocationFactor(1.1); + const bool isOverPreAllocated = + m_intersectingEdgesStrategy == + IntersectingConstraintEdges::TryResolve && + VertInd(nNewVertices) >= overAllocationVerticesThreshold; + if(isOverPreAllocated) + { + capacityTriangles *= overAllocationFactor; + capacityVertices *= overAllocationFactor; + } + triangles.reserve(capacityTriangles); + vertices.reserve(capacityVertices); + m_vertTris.reserve(capacityVertices); + + Box2d box; + if(isFirstTime) + { + box.envelopPoints(first, last, getX, getY); + addSuperTriangle(box); + } + tryInitNearestPointLocator(); + const VertInd nExistingVerts = static_cast(vertices.size()); + + for(TVertexIter it = first; it != last; ++it) + addNewVertex(V2d(getX(*it), getY(*it)), noNeighbor); + + switch(m_vertexInsertionOrder) + { + case VertexInsertionOrder::AsProvided: + insertVertices_AsProvided(nExistingVerts); + break; + case VertexInsertionOrder::Auto: + isFirstTime ? insertVertices_KDTreeBFS(nExistingVerts, box) + : insertVertices_Randomized(nExistingVerts); + break; + } + +// make sure pre-allocation was correct +#ifdef CDT_ENABLE_CALLBACK_HANDLER + assert( + !m_callbackHandler || m_callbackHandler->isAbortCalculation() || + (vertices.size() == exactCapacityVertices)); + assert( + !m_callbackHandler || m_callbackHandler->isAbortCalculation() || + (triangles.size() == exactCapacityTriangles)); +#else + assert(vertices.size() == exactCapacityVertices); + assert(triangles.size() == exactCapacityTriangles); +#endif +} + +template +template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd> +void Triangulation::insertEdges( + TEdgeIter first, + const TEdgeIter last, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd) +{ + if(isFinalized()) + handleException(FinalizedError(CDT_SOURCE_LOCATION)); + + std::vector tppIterations; + EdgeVec remaining; + for(; first != last; ++first) + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler && m_callbackHandler->isAbortCalculation()) + { + return; + } +#endif + // +3 to account for super-triangle vertices + const Edge edge( + VertInd(getStart(*first) + m_nTargetVerts), + VertInd(getEnd(*first) + m_nTargetVerts)); + insertEdge(edge, edge, remaining, tppIterations); + } +} + +template +template < + typename TEdgeIter, + typename TGetEdgeVertexStart, + typename TGetEdgeVertexEnd> +void Triangulation::conformToEdges( + TEdgeIter first, + const TEdgeIter last, + TGetEdgeVertexStart getStart, + TGetEdgeVertexEnd getEnd) +{ + if(isFinalized()) + handleException(FinalizedError(CDT_SOURCE_LOCATION)); + + tryInitNearestPointLocator(); + // state shared between different runs for performance gains + std::vector remaining; + for(; first != last; ++first) + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler && m_callbackHandler->isAbortCalculation()) + { + return; + } +#endif + // +3 to account for super-triangle vertices + const Edge e( + VertInd(getStart(*first) + m_nTargetVerts), + VertInd(getEnd(*first) + m_nTargetVerts)); + conformToEdge(e, EdgeVec(1, e), 0, remaining); + } +} + +} // namespace CDT + +#ifndef CDT_USE_AS_COMPILED_LIBRARY +#include "Triangulation.hpp" +#endif + +#endif // header-guard diff --git a/include/CDT/include/Triangulation.hpp b/include/CDT/include/Triangulation.hpp new file mode 100644 index 0000000..fde546e --- /dev/null +++ b/include/CDT/include/Triangulation.hpp @@ -0,0 +1,2178 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Triangulation class - implementation + */ + +#include "Triangulation.h" +#include "portable_nth_element.hpp" + +#include +#include +#include +#include +#include + +namespace CDT +{ + +typedef std::deque TriDeque; + +namespace detail +{ + +namespace defaults +{ + +const std::size_t nTargetVerts = 0; +const SuperGeometryType::Enum superGeomType = SuperGeometryType::SuperTriangle; +const VertexInsertionOrder::Enum vertexInsertionOrder = + VertexInsertionOrder::Auto; +const IntersectingConstraintEdges::Enum intersectingEdgesStrategy = + IntersectingConstraintEdges::NotAllowed; +const float minDistToConstraintEdge(0); + +} // namespace defaults + +} // namespace detail + +template +Triangulation::Triangulation() + : m_nTargetVerts(detail::defaults::nTargetVerts) + , m_superGeomType(detail::defaults::superGeomType) + , m_vertexInsertionOrder(detail::defaults::vertexInsertionOrder) + , m_intersectingEdgesStrategy(detail::defaults::intersectingEdgesStrategy) + , m_minDistToConstraintEdge(detail::defaults::minDistToConstraintEdge) +#ifdef CDT_ENABLE_CALLBACK_HANDLER + , m_callbackHandler(NULL) +#endif +{} + +template +Triangulation::Triangulation( + const VertexInsertionOrder::Enum vertexInsertionOrder) + : m_nTargetVerts(detail::defaults::nTargetVerts) + , m_superGeomType(detail::defaults::superGeomType) + , m_vertexInsertionOrder(vertexInsertionOrder) + , m_intersectingEdgesStrategy(detail::defaults::intersectingEdgesStrategy) + , m_minDistToConstraintEdge(detail::defaults::minDistToConstraintEdge) +#ifdef CDT_ENABLE_CALLBACK_HANDLER + , m_callbackHandler(NULL) +#endif +{} + +template +Triangulation::Triangulation( + const VertexInsertionOrder::Enum vertexInsertionOrder, + const IntersectingConstraintEdges::Enum intersectingEdgesStrategy, + const T minDistToConstraintEdge) + : m_nTargetVerts(detail::defaults::nTargetVerts) + , m_superGeomType(detail::defaults::superGeomType) + , m_vertexInsertionOrder(vertexInsertionOrder) + , m_intersectingEdgesStrategy(intersectingEdgesStrategy) + , m_minDistToConstraintEdge(minDistToConstraintEdge) +#ifdef CDT_ENABLE_CALLBACK_HANDLER + , m_callbackHandler(NULL) +#endif +{} + +template +Triangulation::Triangulation( + const VertexInsertionOrder::Enum vertexInsertionOrder, + const TNearPointLocator& nearPtLocator, + const IntersectingConstraintEdges::Enum intersectingEdgesStrategy, + const T minDistToConstraintEdge) + : m_nearPtLocator(nearPtLocator) + , m_nTargetVerts(detail::defaults::nTargetVerts) + , m_superGeomType(detail::defaults::superGeomType) + , m_vertexInsertionOrder(vertexInsertionOrder) + , m_intersectingEdgesStrategy(intersectingEdgesStrategy) + , m_minDistToConstraintEdge(minDistToConstraintEdge) +#ifdef CDT_ENABLE_CALLBACK_HANDLER + , m_callbackHandler(NULL) +#endif +{} + +template +void Triangulation::eraseSuperTriangle() +{ + if(m_superGeomType != SuperGeometryType::SuperTriangle) + return; + // find triangles adjacent to super-triangle's vertices + TriIndUSet toErase; + for(TriInd iT(0); iT < TriInd(triangles.size()); ++iT) + { + if(touchesSuperTriangle(triangles[iT])) + toErase.insert(iT); + } + finalizeTriangulation(toErase); +} + +template +void Triangulation::eraseOuterTriangles() +{ + assert(m_vertTris[0] != noNeighbor); + const std::stack seed(std::deque(1, m_vertTris[0])); + const TriIndUSet toErase = growToBoundary(seed); + finalizeTriangulation(toErase); +} + +template +void Triangulation::eraseOuterTrianglesAndHoles() +{ + const std::vector triDepths = calculateTriangleDepths(); + TriIndUSet toErase; + toErase.reserve(triangles.size()); + for(std::size_t iT = 0; iT != triangles.size(); ++iT) + { + if(triDepths[iT] % 2 == 0) + toErase.insert(static_cast(iT)); + } + finalizeTriangulation(toErase); +} + +/// Remap removing super-triangle: subtract 3 from vertices +inline Edge RemapNoSuperTriangle(const Edge& e) +{ + return Edge(VertInd(e.v1() - 3), VertInd(e.v2() - 3)); +} + +template +void Triangulation::removeTriangles( + const TriIndUSet& removedTriangles) +{ + if(removedTriangles.empty()) + return; + // remove triangles and calculate triangle index mapping + TriIndUMap triIndMap; + for(TriInd iT(0), iTnew(0); iT < TriInd(triangles.size()); ++iT) + { + if(removedTriangles.count(iT)) + continue; + triIndMap[iT] = iTnew; + triangles[iTnew] = triangles[iT]; + iTnew++; + } + triangles.erase(triangles.end() - removedTriangles.size(), triangles.end()); + // adjust triangles' neighbors + for(TriInd iT(0); iT < triangles.size(); ++iT) + { + Triangle& t = triangles[iT]; + // update neighbors to account for removed triangles + NeighborsArr3& nn = t.neighbors; + for(NeighborsArr3::iterator n = nn.begin(); n != nn.end(); ++n) + { + if(removedTriangles.count(*n)) + { + *n = noNeighbor; + } + else if(*n != noNeighbor) + { + *n = triIndMap[*n]; + } + } + } +} + +template +TriIndVec& Triangulation::VertTrisInternal() +{ + return m_vertTris; +} + +template +const TriIndVec& Triangulation::VertTrisInternal() const +{ + return m_vertTris; +} + +template +void Triangulation::finalizeTriangulation( + const TriIndUSet& removedTriangles) +{ + m_vertTris = TriIndVec(); + // remove super-triangle + if(m_superGeomType == SuperGeometryType::SuperTriangle) + { + vertices.erase( + vertices.begin(), vertices.begin() + nSuperTriangleVertices); + // Edge re-mapping + { // fixed edges + EdgeUSet updatedFixedEdges; + typedef CDT::EdgeUSet::const_iterator It; + for(It e = fixedEdges.begin(); e != fixedEdges.end(); ++e) + { + updatedFixedEdges.insert(RemapNoSuperTriangle(*e)); + } + fixedEdges = updatedFixedEdges; + } + { // overlap count + unordered_map updatedOverlapCount; + typedef unordered_map::const_iterator + It; + for(It it = overlapCount.begin(); it != overlapCount.end(); ++it) + { + updatedOverlapCount.insert( + std::make_pair( + RemapNoSuperTriangle(it->first), it->second)); + } + overlapCount = updatedOverlapCount; + } + { // split edges mapping + unordered_map updatedPieceToOriginals; + typedef unordered_map::const_iterator It; + for(It it = pieceToOriginals.begin(); it != pieceToOriginals.end(); + ++it) + { + EdgeVec ee = it->second; + for(EdgeVec::iterator eeIt = ee.begin(); eeIt != ee.end(); + ++eeIt) + { + *eeIt = RemapNoSuperTriangle(*eeIt); + } + updatedPieceToOriginals.insert( + std::make_pair(RemapNoSuperTriangle(it->first), ee)); + } + pieceToOriginals = updatedPieceToOriginals; + } + } + // remove other triangles + removeTriangles(removedTriangles); + // adjust triangle vertices: account for removed super-triangle + if(m_superGeomType == SuperGeometryType::SuperTriangle) + { + for(TriangleVec::iterator t = triangles.begin(); t != triangles.end(); + ++t) + { + VerticesArr3& vv = t->vertices; + for(VerticesArr3::iterator v = vv.begin(); v != vv.end(); ++v) + { + *v -= nSuperTriangleVertices; + } + } + } +} + +template +void Triangulation::initializedWithCustomSuperGeometry() +{ + m_nearPtLocator.initialize(vertices); + m_nTargetVerts = static_cast(vertices.size()); + m_superGeomType = SuperGeometryType::Custom; +} + +template +TriIndUSet Triangulation::growToBoundary( + std::stack seeds) const +{ + TriIndUSet traversed; + while(!seeds.empty()) + { + const TriInd iT = seeds.top(); + seeds.pop(); + traversed.insert(iT); + const Triangle& t = triangles[iT]; + for(Index i(0); i < Index(3); ++i) + { + const Edge opEdge(t.vertices[ccw(i)], t.vertices[cw(i)]); + if(fixedEdges.count(opEdge)) + continue; + const TriInd iN = t.neighbors[opoNbr(i)]; + if(iN != noNeighbor && traversed.count(iN) == 0) + seeds.push(iN); + } + } + return traversed; +} + +template +TriInd Triangulation::addTriangle(const Triangle& t) +{ + const TriInd iT(triangles.size()); + triangles.push_back(t); + return iT; +} + +template +TriInd Triangulation::addTriangle() +{ + return addTriangle(Triangle()); +} + +template +void Triangulation::insertEdges( + const std::vector& edges) +{ + insertEdges(edges.begin(), edges.end(), edge_get_v1, edge_get_v2); +} + +template +void Triangulation::conformToEdges( + const std::vector& edges) +{ + conformToEdges(edges.begin(), edges.end(), edge_get_v1, edge_get_v2); +} + +template +void Triangulation::fixEdge(const Edge& edge) +{ + if(!fixedEdges.insert(edge).second) + { + ++overlapCount[edge]; // if edge is already fixed increment the counter + } +} + +namespace detail +{ + +// add element to 'to' if not already in 'to' +template +void insert_unique(std::vector& to, const T& elem) +{ + if(std::find(to.begin(), to.end(), elem) == to.end()) + { + to.push_back(elem); + } +} + +// add elements of 'from' that are not present in 'to' to 'to' +template +void insert_unique( + std::vector& to, + const std::vector& from) +{ + typedef typename std::vector::const_iterator Cit; + to.reserve(to.size() + from.size()); + for(Cit cit = from.begin(); cit != from.end(); ++cit) + { + insert_unique(to, *cit); + } +} + +} // namespace detail + +template +void Triangulation::splitFixedEdge( + const Edge& edge, + const VertInd iSplitVert) +{ + // split constraint (fixed) edge that already exists in triangulation + const Edge half1(edge.v1(), iSplitVert); + const Edge half2(iSplitVert, edge.v2()); + // remove the edge that and add its halves + fixedEdges.erase(edge); + fixEdge(half1); + fixEdge(half2); + // maintain overlaps + typedef unordered_map::const_iterator It; + const It overlapIt = overlapCount.find(edge); + if(overlapIt != overlapCount.end()) + { + overlapCount[half1] += overlapIt->second; + overlapCount[half2] += overlapIt->second; + overlapCount.erase(overlapIt); + } + // maintain piece-to-original mapping + EdgeVec newOriginals(1, edge); + const unordered_map::const_iterator originalsIt = + pieceToOriginals.find(edge); + if(originalsIt != pieceToOriginals.end()) + { // edge being split was split before: pass-through originals + newOriginals = originalsIt->second; + pieceToOriginals.erase(originalsIt); + } + detail::insert_unique(pieceToOriginals[half1], newOriginals); + detail::insert_unique(pieceToOriginals[half2], newOriginals); +} + +template +VertInd Triangulation::addSplitEdgeVertex( + const V2d& splitVert, + const TriInd iT, + const TriInd iTopo) +{ + // add a new point on the edge that splits an edge in two + const VertInd iSplitVert = static_cast(vertices.size()); + addNewVertex(splitVert, noNeighbor); + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddVertexStart( + iSplitVert, AddVertexType::FixedEdgesIntersection); + } +#endif + + std::stack triStack = insertVertexOnEdge(iSplitVert, iT, iTopo); + tryAddVertexToLocator(iSplitVert); + ensureDelaunayByEdgeFlips(iSplitVert, triStack); + return iSplitVert; +} + +template +VertInd Triangulation::splitFixedEdgeAt( + const Edge& edge, + const V2d& splitVert, + const TriInd iT, + const TriInd iTopo) +{ + const VertInd iSplitVert = addSplitEdgeVertex(splitVert, iT, iTopo); + splitFixedEdge(edge, iSplitVert); + return iSplitVert; +} + +template +void Triangulation::fixEdge( + const Edge& edge, + const Edge& originalEdge) +{ + fixEdge(edge); + if(edge != originalEdge) + detail::insert_unique(pieceToOriginals[edge], originalEdge); +} + +namespace detail +{ + +template +T lerp(const T& a, const T& b, const T t) +{ + return (T(1) - t) * a + t * b; +} + +// Precondition: ab and cd intersect normally +template +V2d intersectionPosition( + const V2d& a, + const V2d& b, + const V2d& c, + const V2d& d) +{ + using namespace predicates::adaptive; + + // note: for better accuracy we interpolate x and y separately + // on a segment with the shortest x/y-projection correspondingly + const T a_cd = orient2d(c.x, c.y, d.x, d.y, a.x, a.y); + const T b_cd = orient2d(c.x, c.y, d.x, d.y, b.x, b.y); + const T t_ab = a_cd / (a_cd - b_cd); + + const T c_ab = orient2d(a.x, a.y, b.x, b.y, c.x, c.y); + const T d_ab = orient2d(a.x, a.y, b.x, b.y, d.x, d.y); + const T t_cd = c_ab / (c_ab - d_ab); + + return V2d( + std::fabs(a.x - b.x) < std::fabs(c.x - d.x) ? lerp(a.x, b.x, t_ab) + : lerp(c.x, d.x, t_cd), + std::fabs(a.y - b.y) < std::fabs(c.y - d.y) ? lerp(a.y, b.y, t_ab) + : lerp(c.y, d.y, t_cd)); +} + +} // namespace detail + +template +void Triangulation::insertEdgeIteration( + const Edge edge, + const Edge originalEdge, + EdgeVec& remaining, + std::vector& tppIterations) +{ + const VertInd iA = edge.v1(); + VertInd iB = edge.v2(); + if(iA == iB) // edge connects a vertex to itself + return; + + if(hasEdge(iA, iB)) + { + fixEdge(edge, originalEdge); + return; + } + + const V2d& a = vertices[iA]; + const V2d& b = vertices[iB]; + const T distanceTolerance = + m_minDistToConstraintEdge == T(0) + ? T(0) + : m_minDistToConstraintEdge * distance(a, b); + + TriInd iT; + // Note: 'L' is left and 'R' is right of the inserted constraint edge + VertInd iVL, iVR; + tie(iT, iVL, iVR) = intersectedTriangle(iA, a, b, distanceTolerance); + // if one of the triangle vertices is on the edge, move edge start + if(iT == noNeighbor) + { + const Edge edgePart(iA, iVL); + fixEdge(edgePart, originalEdge); + remaining.push_back(Edge(iVL, iB)); + return; + } + Triangle t = triangles[iT]; + std::vector intersected(1, iT); + std::vector polyL, polyR; + polyL.reserve(2); + polyL.push_back(iA); + polyL.push_back(iVL); + polyR.reserve(2); + polyR.push_back(iA); + polyR.push_back(iVR); + unordered_map outerTris; + outerTris[Edge(iA, iVL)] = edgeNeighbor(t, iA, iVL); + outerTris[Edge(iA, iVR)] = edgeNeighbor(t, iA, iVR); + VertInd iV = iA; + + while(!t.containsVertex(iB)) + { + const TriInd iTopo = opposedTriangle(t, iV); + const Triangle& tOpo = triangles[iTopo]; + const VertInd iVopo = opposedVertex(tOpo, iT); + + switch(m_intersectingEdgesStrategy) + { + case IntersectingConstraintEdges::NotAllowed: + if(fixedEdges.count(Edge(iVL, iVR))) + { + // make sure to report original input edges in the exception + Edge e1 = originalEdge; + Edge e2 = Edge(iVL, iVR); + e2 = pieceToOriginals.count(e2) + ? pieceToOriginals.at(e2).front() + : e2; + // don't count super-triangle vertices + e1 = Edge( + VertInd(e1.v1() - m_nTargetVerts), + VertInd(e1.v2() - m_nTargetVerts)); + e2 = Edge( + VertInd(e2.v1() - m_nTargetVerts), + VertInd(e2.v2() - m_nTargetVerts)); + handleException(IntersectingConstraintsError( + e1, + pieceToOriginals.count(e2) ? pieceToOriginals.at(e2).front() + : e2, + CDT_SOURCE_LOCATION)); + } + break; + case IntersectingConstraintEdges::TryResolve: + { + if(!fixedEdges.count(Edge(iVL, iVR))) + break; + // split edge at the intersection of two constraint edges + const V2d newV = detail::intersectionPosition( + vertices[iA], vertices[iB], vertices[iVL], vertices[iVR]); + const VertInd iNewVert = + splitFixedEdgeAt(Edge(iVL, iVR), newV, iT, iTopo); + // TODO: is it's possible to re-use pseudo-polygons + // for inserting [iA, iNewVert] edge half? + remaining.push_back(Edge(iA, iNewVert)); + remaining.push_back(Edge(iNewVert, iB)); + return; + } + case IntersectingConstraintEdges::DontCheck: + assert(!fixedEdges.count(Edge(iVL, iVR))); + break; + } + + const PtLineLocation::Enum loc = + locatePointLine(vertices[iVopo], a, b, distanceTolerance); + if(loc == PtLineLocation::Left) + { + const Edge e(polyL.back(), iVopo); + const TriInd outer = edgeNeighbor(tOpo, e.v1(), e.v2()); + if(!outerTris.insert(std::make_pair(e, outer)).second) + outerTris.at(e) = noNeighbor; // hanging edge detected + polyL.push_back(iVopo); + iV = iVL; + iVL = iVopo; + } + else if(loc == PtLineLocation::Right) + { + const Edge e(polyR.back(), iVopo); + const TriInd outer = edgeNeighbor(tOpo, e.v1(), e.v2()); + if(!outerTris.insert(std::make_pair(e, outer)).second) + outerTris.at(e) = noNeighbor; // hanging edge detected + polyR.push_back(iVopo); + iV = iVR; + iVR = iVopo; + } + else // encountered point on the edge + iB = iVopo; + + intersected.push_back(iTopo); + iT = iTopo; + t = triangles[iT]; + } + outerTris[Edge(polyL.back(), iB)] = edgeNeighbor(t, polyL.back(), iB); + outerTris[Edge(polyR.back(), iB)] = edgeNeighbor(t, polyR.back(), iB); + polyL.push_back(iB); + polyR.push_back(iB); + + assert(!intersected.empty()); + // make sure start/end vertices have a valid adjacent triangle + // that is not intersected by an edge + if(m_vertTris[iA] == intersected.front()) + pivotVertexTriangleCW(iA); + if(m_vertTris[iB] == intersected.back()) + pivotVertexTriangleCW(iB); + + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onReTriangulatePolygon(intersected); + } +#endif + + // Triangulate pseudo-polygons on both sides + std::reverse(polyR.begin(), polyR.end()); + + // note: intersected triangles are re-used for new triangles + // every triangulation of an n-gon has n − 2 triangles + // even if outer polygon has hanging edges it holds + assert(intersected.size() >= 2); + const TriInd iTL = intersected.back(); + intersected.pop_back(); + const TriInd iTR = intersected.back(); + intersected.pop_back(); + + triangulatePseudoPolygon( + polyL, outerTris, iTL, iTR, intersected, tppIterations); + triangulatePseudoPolygon( + polyR, outerTris, iTR, iTL, intersected, tppIterations); + assert(intersected.empty()); + } + + if(iB != edge.v2()) // encountered point on the edge + { + // fix edge part + const Edge edgePart(iA, iB); + fixEdge(edgePart, originalEdge); + remaining.push_back(Edge(iB, edge.v2())); + return; + } + else + { + fixEdge(edge, originalEdge); + } +} + +template +void Triangulation::insertEdge( + Edge edge, + const Edge originalEdge, + EdgeVec& remaining, + std::vector& tppIterations) +{ +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddEdgeStart(edge); + } +#endif + + // use iteration over recursion to avoid stack overflows + remaining.clear(); + remaining.push_back(edge); + while(!remaining.empty()) + { + edge = remaining.back(); + remaining.pop_back(); + insertEdgeIteration(edge, originalEdge, remaining, tppIterations); + } +} + +template +void Triangulation::conformToEdgeIteration( + Edge edge, + const EdgeVec& originals, + BoundaryOverlapCount overlaps, + std::vector& remaining) +{ + const VertInd iA = edge.v1(); + VertInd iB = edge.v2(); + if(iA == iB) // edge connects a vertex to itself + return; + + if(hasEdge(iA, iB)) + { + fixEdge(edge); + if(overlaps > 0) + overlapCount[edge] = overlaps; + // avoid marking edge as a part of itself + if(!originals.empty() && edge != originals.front()) + { + detail::insert_unique(pieceToOriginals[edge], originals); + } + return; + } + + const V2d& a = vertices[iA]; + const V2d& b = vertices[iB]; + const T distanceTolerance = + m_minDistToConstraintEdge == T(0) + ? T(0) + : m_minDistToConstraintEdge * distance(a, b); + TriInd iT; + VertInd iVleft, iVright; + tie(iT, iVleft, iVright) = intersectedTriangle(iA, a, b, distanceTolerance); + // if one of the triangle vertices is on the edge, move edge start + if(iT == noNeighbor) + { + const Edge edgePart(iA, iVleft); + fixEdge(edgePart); + if(overlaps > 0) + overlapCount[edgePart] = overlaps; + detail::insert_unique(pieceToOriginals[edgePart], originals); +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(Edge(iVleft, iB), originals, overlaps); +#else + remaining.push_back(make_tuple(Edge(iVleft, iB), originals, overlaps)); +#endif + return; + } + + VertInd iV = iA; + Triangle t = triangles[iT]; + while(std::find(t.vertices.begin(), t.vertices.end(), iB) == + t.vertices.end()) + { + const TriInd iTopo = opposedTriangle(t, iV); + const Triangle& tOpo = triangles[iTopo]; + const VertInd iVopo = opposedVertex(tOpo, iT); + const V2d vOpo = vertices[iVopo]; + + switch(m_intersectingEdgesStrategy) + { + case IntersectingConstraintEdges::NotAllowed: + if(fixedEdges.count(Edge(iVleft, iVright))) + { + // make sure to report original input edges in the exception + Edge e1 = pieceToOriginals.count(edge) + ? pieceToOriginals.at(edge).front() + : edge; + Edge e2(iVleft, iVright); + e2 = pieceToOriginals.count(e2) + ? pieceToOriginals.at(e2).front() + : e2; + // don't count super-triangle vertices + e1 = Edge( + VertInd(e1.v1() - m_nTargetVerts), + VertInd(e1.v2() - m_nTargetVerts)); + e2 = Edge( + VertInd(e2.v1() - m_nTargetVerts), + VertInd(e2.v2() - m_nTargetVerts)); + handleException( + IntersectingConstraintsError(e1, e2, CDT_SOURCE_LOCATION)); + } + break; + case IntersectingConstraintEdges::TryResolve: + { + if(!fixedEdges.count(Edge(iVleft, iVright))) + break; + // split edge at the intersection of two constraint edges + const V2d newV = detail::intersectionPosition( + vertices[iA], + vertices[iB], + vertices[iVleft], + vertices[iVright]); + const VertInd iNewVert = + splitFixedEdgeAt(Edge(iVleft, iVright), newV, iT, iTopo); +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(Edge(iNewVert, iB), originals, overlaps); + remaining.emplace_back(Edge(iA, iNewVert), originals, overlaps); +#else + remaining.push_back( + make_tuple(Edge(iNewVert, iB), originals, overlaps)); + remaining.push_back( + make_tuple(Edge(iA, iNewVert), originals, overlaps)); +#endif + return; + } + case IntersectingConstraintEdges::DontCheck: + assert(!fixedEdges.count(Edge(iVleft, iVright))); + break; + } + + iT = iTopo; + t = triangles[iT]; + + const PtLineLocation::Enum loc = + locatePointLine(vOpo, a, b, distanceTolerance); + if(loc == PtLineLocation::Left) + { + iV = iVleft; + iVleft = iVopo; + } + else if(loc == PtLineLocation::Right) + { + iV = iVright; + iVright = iVopo; + } + else // encountered point on the edge + iB = iVopo; + } + + // encountered one or more points on the edge: add remaining edge part + if(iB != edge.v2()) + { +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(Edge(iB, edge.v2()), originals, overlaps); +#else + remaining.push_back( + make_tuple(Edge(iB, edge.v2()), originals, overlaps)); +#endif + } + + // add mid-point to triangulation + const VertInd iMid = static_cast(vertices.size()); + const V2d& start = vertices[iA]; + const V2d& end = vertices[iB]; + addNewVertex( + V2d((start.x + end.x) / T(2), (start.y + end.y) / T(2)), noNeighbor); + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddVertexStart( + iMid, AddVertexType::FixedEdgeMidpoint); + } +#endif + + const std::vector flippedFixedEdges = + insertVertex_FlipFixedEdges(iMid); + +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(Edge(iMid, iB), originals, overlaps); + remaining.emplace_back(Edge(iA, iMid), originals, overlaps); +#else + remaining.push_back(make_tuple(Edge(iMid, iB), originals, overlaps)); + remaining.push_back(make_tuple(Edge(iA, iMid), originals, overlaps)); +#endif + + // re-introduce fixed edges that were flipped + // and make sure overlap count is preserved + for(std::vector::const_iterator it = flippedFixedEdges.begin(); + it != flippedFixedEdges.end(); + ++it) + { + const Edge& flippedFixedEdge = *it; + fixedEdges.erase(flippedFixedEdge); + + BoundaryOverlapCount prevOverlaps = 0; + const unordered_map::const_iterator + overlapsIt = overlapCount.find(flippedFixedEdge); + if(overlapsIt != overlapCount.end()) + { + prevOverlaps = overlapsIt->second; + overlapCount.erase(overlapsIt); + } + // override overlapping boundaries count when re-inserting an edge + EdgeVec prevOriginals(1, flippedFixedEdge); + const unordered_map::const_iterator originalsIt = + pieceToOriginals.find(flippedFixedEdge); + if(originalsIt != pieceToOriginals.end()) + { + prevOriginals = originalsIt->second; + } +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(flippedFixedEdge, prevOriginals, prevOverlaps); +#else + remaining.push_back( + make_tuple(flippedFixedEdge, prevOriginals, prevOverlaps)); +#endif + } +} + +template +void Triangulation::conformToEdge( + Edge edge, + EdgeVec originals, + BoundaryOverlapCount overlaps, + std::vector& remaining) +{ +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddEdgeStart(edge); + } +#endif + + // use iteration over recursion to avoid stack overflows + remaining.clear(); +#ifdef CDT_CXX11_IS_SUPPORTED + remaining.emplace_back(edge, originals, overlaps); +#else + remaining.push_back(make_tuple(edge, originals, overlaps)); +#endif + while(!remaining.empty()) + { + tie(edge, originals, overlaps) = remaining.back(); + remaining.pop_back(); + conformToEdgeIteration(edge, originals, overlaps, remaining); + } +} + +/*! + * Returns: + * - intersected triangle index + * - index of point on the left of the line + * - index of point on the right of the line + * If left point is right on the line: no triangle is intersected: + * - triangle index is no-neighbor (invalid) + * - index of point on the line + * - index of point on the right of the line + */ +template +tuple +Triangulation::intersectedTriangle( + const VertInd iA, + const V2d& a, + const V2d& b, + const T orientationTolerance) const +{ + const TriInd startTri = m_vertTris[iA]; + TriInd iT = startTri; + do + { + const Triangle t = triangles[iT]; + const Index i = vertexInd(t.vertices, iA); + const VertInd iP2 = t.vertices[ccw(i)]; + const T orientP2 = orient2D(vertices[iP2], a, b); + const PtLineLocation::Enum locP2 = classifyOrientation(orientP2); + if(locP2 == PtLineLocation::Right) + { + const VertInd iP1 = t.vertices[cw(i)]; + const T orientP1 = orient2D(vertices[iP1], a, b); + const PtLineLocation::Enum locP1 = classifyOrientation(orientP1); + if(locP1 == PtLineLocation::OnLine) + { + return make_tuple(noNeighbor, iP1, iP1); + } + if(locP1 == PtLineLocation::Left) + { + if(orientationTolerance) + { + T closestOrient; + VertInd iClosestP; + if(std::abs(orientP1) <= std::abs(orientP2)) + { + closestOrient = orientP1; + iClosestP = iP1; + } + else + { + closestOrient = orientP2; + iClosestP = iP2; + } + if(classifyOrientation( + closestOrient, orientationTolerance) == + PtLineLocation::OnLine) + { + return make_tuple(noNeighbor, iClosestP, iClosestP); + } + } + return make_tuple(iT, iP1, iP2); + } + } + iT = t.next(iA).first; + } while(iT != startTri); + + handleException(Error( + "Could not find vertex triangle intersected by an edge.", + CDT_SOURCE_LOCATION)); + return make_tuple(noNeighbor, noVertex, noVertex); +} + +template +void Triangulation::addSuperTriangle(const Box2d& box) +{ + m_nTargetVerts = nSuperTriangleVertices; + m_superGeomType = SuperGeometryType::SuperTriangle; + + const V2d center = { + (box.min.x + box.max.x) / T(2), (box.min.y + box.max.y) / T(2)}; + const T w = box.max.x - box.min.x; + const T h = box.max.y - box.min.y; + T r = std::max(w, h); // incircle radius upper bound + + // Note: make sure radius is big enough. Constants chosen experimentally. + // - for tiny bounding boxes: use 1.0 as the smallest radius + // - multiply radius by 2.0 for extra safety margin + r = std::max(T(2) * r, T(1)); + + // Note: for very large floating point numbers rounding can lead to wrong + // super-triangle coordinates. This is a very rare corner-case so the + // handling is very primitive. + { // note: '<=' means '==' but avoids the warning + while(center.y <= center.y - r) + r *= T(2); + } + + const T R = T(2) * r; // excircle radius + const T cos_30_deg = T(0.8660254037844386); // note: (std::sqrt(3.0) / 2.0) + const T shiftX = R * cos_30_deg; + const V2d posV1 = {center.x - shiftX, center.y - r}; + const V2d posV2 = {center.x + shiftX, center.y - r}; + const V2d posV3 = {center.x, center.y + R}; + addNewVertex(posV1, TriInd(0)); + addNewVertex(posV2, TriInd(0)); + addNewVertex(posV3, TriInd(0)); + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddSuperTriangle(); + } +#endif + + addTriangle( + Triangle(arr3(VertInd(0), VertInd(1), VertInd(2)), arr3(noNeighbor))); + + if(m_vertexInsertionOrder != VertexInsertionOrder::Auto) + { + m_nearPtLocator.initialize(vertices); + } +} + +template +void Triangulation::addNewVertex( + const V2d& pos, + const TriInd iT) +{ + vertices.push_back(pos); + m_vertTris.push_back(iT); +} + +template +std::vector +Triangulation::insertVertex_FlipFixedEdges( + const VertInd iV1) +{ + std::vector flippedFixedEdges; + + const V2d& v1 = vertices[iV1]; + const VertInd startVertex = m_nearPtLocator.nearPoint(v1, vertices); + array trisAt = walkingSearchTrianglesAt(iV1, startVertex); + std::stack triStack = + trisAt[1] == noNeighbor ? insertVertexInsideTriangle(iV1, trisAt[0]) + : insertVertexOnEdge(iV1, trisAt[0], trisAt[1]); + + TriInd iTopo, n1, n2, n3, n4; + VertInd iV2, iV3, iV4; + while(!triStack.empty()) + { + const TriInd iT = triStack.top(); + triStack.pop(); + + edgeFlipInfo(iT, iV1, iTopo, iV2, iV3, iV4, n1, n2, n3, n4); + if(iTopo != noNeighbor && isFlipNeeded(iV1, iV2, iV3, iV4)) + { + // if flipped edge is fixed, remember it + const Edge flippedEdge(iV2, iV4); + if(!fixedEdges.empty() && + fixedEdges.find(flippedEdge) != fixedEdges.end()) + { + flippedFixedEdges.push_back(flippedEdge); + } + + flipEdge(iT, iTopo, iV1, iV2, iV3, iV4, n1, n2, n3, n4); + triStack.push(iT); + triStack.push(iTopo); + } + } + + tryAddVertexToLocator(iV1); + return flippedFixedEdges; +} + +template +void Triangulation::insertVertex( + const VertInd iVert, + const VertInd walkStart) +{ +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onAddVertexStart(iVert, AddVertexType::UserInput); + } +#endif + + const array trisAt = walkingSearchTrianglesAt(iVert, walkStart); + std::stack triStack = + trisAt[1] == noNeighbor + ? insertVertexInsideTriangle(iVert, trisAt[0]) + : insertVertexOnEdge(iVert, trisAt[0], trisAt[1], true); + ensureDelaunayByEdgeFlips(iVert, triStack); +} + +template +void Triangulation::insertVertex(const VertInd iVert) +{ + const V2d& v = vertices[iVert]; + const VertInd walkStart = m_nearPtLocator.nearPoint(v, vertices); + insertVertex(iVert, walkStart); + tryAddVertexToLocator(iVert); +} + +template +void Triangulation::ensureDelaunayByEdgeFlips( + const VertInd iV1, + std::stack& triStack) +{ + TriInd iTopo, n1, n2, n3, n4; + VertInd iV2, iV3, iV4; + while(!triStack.empty()) + { + const TriInd iT = triStack.top(); + triStack.pop(); + + edgeFlipInfo(iT, iV1, iTopo, iV2, iV3, iV4, n1, n2, n3, n4); + if(iTopo != noNeighbor && isFlipNeeded(iV1, iV2, iV3, iV4)) + { + flipEdge(iT, iTopo, iV1, iV2, iV3, iV4, n1, n2, n3, n4); + triStack.push(iT); + triStack.push(iTopo); + } + } +} + +/* + * v4 original edge: (v1, v3) + * /|\ flip-candidate edge: (v, v2) + * / | \ + * n3 / | \ n4 + * / | \ + * new vertex--> v1 T | Topo v3 + * \ | / + * n1 \ | / n2 + * \ | / + * \|/ + * v2 + */ +template +void Triangulation::edgeFlipInfo( + const TriInd iT, + const VertInd iV1, + TriInd& iTopo, + VertInd& iV2, + VertInd& iV3, + VertInd& iV4, + TriInd& n1, + TriInd& n2, + TriInd& n3, + TriInd& n4) +{ + /* v[2] + / \ + n[2]/ \n[1] + /_____\ + v[0] n[0] v[1] */ + const Triangle& t = triangles[iT]; + if(t.vertices[0] == iV1) + { + iV2 = t.vertices[1]; + iV4 = t.vertices[2]; + n1 = t.neighbors[0]; + n3 = t.neighbors[2]; + iTopo = t.neighbors[1]; + } + else if(t.vertices[1] == iV1) + { + iV2 = t.vertices[2]; + iV4 = t.vertices[0]; + n1 = t.neighbors[1]; + n3 = t.neighbors[0]; + iTopo = t.neighbors[2]; + } + else + { + iV2 = t.vertices[0]; + iV4 = t.vertices[1]; + n1 = t.neighbors[2]; + n3 = t.neighbors[1]; + iTopo = t.neighbors[0]; + } + if(iTopo == noNeighbor) + return; + const Triangle& tOpo = triangles[iTopo]; + if(tOpo.neighbors[0] == iT) + { + iV3 = tOpo.vertices[2]; + n2 = tOpo.neighbors[1]; + n4 = tOpo.neighbors[2]; + } + else if(tOpo.neighbors[1] == iT) + { + iV3 = tOpo.vertices[0]; + n2 = tOpo.neighbors[2]; + n4 = tOpo.neighbors[0]; + } + else + { + iV3 = tOpo.vertices[1]; + n2 = tOpo.neighbors[0]; + n4 = tOpo.neighbors[1]; + } +} + +/*! + * Handles super-triangle vertices. + * Super-tri points are not infinitely far and influence the input points + * Three cases are possible: + * 1. If one of the opposed vertices is super-tri: no flip needed + * 2. One of the shared vertices is super-tri: + * check if on point is same side of line formed by non-super-tri + * vertices as the non-super-tri shared vertex + * 3. None of the vertices are super-tri: normal circumcircle test + */ +/* + * v4 original edge: (v2, v4) + * /|\ flip-candidate edge: (v1, v3) + * / | \ + * / | \ + * / | \ + * new vertex--> v1 | v3 + * \ | / + * \ | / + * \ | / + * \|/ + * v2 + */ +template +bool Triangulation::isFlipNeeded( + const VertInd iV1, + const VertInd iV2, + const VertInd iV3, + const VertInd iV4) const +{ + if(fixedEdges.count(Edge(iV2, iV4))) + return false; // flip not needed if the original edge is fixed + const V2d& v1 = vertices[iV1]; + const V2d& v2 = vertices[iV2]; + const V2d& v3 = vertices[iV3]; + const V2d& v4 = vertices[iV4]; + if(m_superGeomType == SuperGeometryType::SuperTriangle) + { + // If flip-candidate edge touches super-triangle in-circumference + // test has to be replaced with orient2d test against the line + // formed by two non-artificial vertices (that don't belong to + // super-triangle) + if(iV1 < 3) // flip-candidate edge touches super-triangle + { + // does original edge also touch super-triangle? + if(iV2 < 3) + return locatePointLine(v2, v3, v4) == + locatePointLine(v1, v3, v4); + if(iV4 < 3) + return locatePointLine(v4, v2, v3) == + locatePointLine(v1, v2, v3); + return false; // original edge does not touch super-triangle + } + if(iV3 < 3) // flip-candidate edge touches super-triangle + { + // does original edge also touch super-triangle? + if(iV2 < 3) + { + return locatePointLine(v2, v1, v4) == + locatePointLine(v3, v1, v4); + } + if(iV4 < 3) + { + return locatePointLine(v4, v2, v1) == + locatePointLine(v3, v2, v1); + } + return false; // original edge does not touch super-triangle + } + // flip-candidate edge does not touch super-triangle + if(iV2 < 3) + return locatePointLine(v2, v3, v4) == locatePointLine(v1, v3, v4); + if(iV4 < 3) + return locatePointLine(v4, v2, v3) == locatePointLine(v1, v2, v3); + } + return isInCircumcircle(v1, v2, v3, v4); +} + +/* Flip edge between T and Topo: + * + * v4 | - old edge + * /|\ ~ - new edge + * / | \ + * n3 / T' \ n4 + * / | \ + * / | \ + * T -> v1~~~~~~~~~v3 <- Topo + * \ | / + * \ | / + * n1 \Topo'/ n2 + * \ | / + * \|/ + * v2 + */ +template +void Triangulation::flipEdge( + const TriInd iT, + const TriInd iTopo) +{ +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onFlipEdge(iT, iTopo); + } +#endif + + Triangle& t = triangles[iT]; + Triangle& tOpo = triangles[iTopo]; + const array& triNs = t.neighbors; + const array& triOpoNs = tOpo.neighbors; + const array& triVs = t.vertices; + const array& triOpoVs = tOpo.vertices; + // find vertices and neighbors + Index i = opposedVertexInd(t.neighbors, iTopo); + const VertInd v1 = triVs[i]; + const VertInd v2 = triVs[ccw(i)]; + const TriInd n1 = triNs[i]; + const TriInd n3 = triNs[cw(i)]; + i = opposedVertexInd(tOpo.neighbors, iT); + const VertInd v3 = triOpoVs[i]; + const VertInd v4 = triOpoVs[ccw(i)]; + const TriInd n4 = triOpoNs[i]; + const TriInd n2 = triOpoNs[cw(i)]; + // change vertices and neighbors + t = Triangle(arr3(v4, v1, v3), arr3(n3, iTopo, n4)); + tOpo = Triangle(arr3(v2, v3, v1), arr3(n2, iT, n1)); + // adjust neighboring triangles and vertices + changeNeighbor(n1, iT, iTopo); + changeNeighbor(n4, iTopo, iT); + // only adjust adjacent triangles if triangulation is not finalized: + // can happen when called from outside on an already finalized + // triangulation + if(!isFinalized()) + { + setAdjacentTriangle(v4, iT); + setAdjacentTriangle(v2, iTopo); + } +} + +/* Flip edge between T and Topo: + * + * v4 | - old edge + * /|\ ~ - new edge + * / | \ + * n3 / T' \ n4 + * / | \ + * / | \ + * T -> v1 ~~~~~~~~ v3 <- Topo + * \ | / + * \ | / + * n1 \Topo'/ n2 + * \ | / + * \|/ + * v2 + */ +template +void Triangulation::flipEdge( + const TriInd iT, + const TriInd iTopo, + const VertInd v1, + const VertInd v2, + const VertInd v3, + const VertInd v4, + const TriInd n1, + const TriInd n2, + const TriInd n3, + const TriInd n4) +{ +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onFlipEdge(iT, iTopo); + } +#endif + + // change vertices and neighbors + triangles[iT] = Triangle(arr3(v4, v1, v3), arr3(n3, iTopo, n4)); + triangles[iTopo] = Triangle(arr3(v2, v3, v1), arr3(n2, iT, n1)); + // adjust neighboring triangles and vertices + changeNeighbor(n1, iT, iTopo); + changeNeighbor(n4, iTopo, iT); + // only adjust adjacent triangles if triangulation is not finalized: + // can happen when called from outside on an already finalized + // triangulation + if(!isFinalized()) + { + setAdjacentTriangle(v4, iT); + setAdjacentTriangle(v2, iTopo); + } +} + +/* Insert point into triangle: split into 3 triangles: + * - create 2 new triangles + * - re-use old triangle for the 3rd + * v3 + * / | \ + * / | \ <-- original triangle (t) + * / | \ + * n3 / | \ n2 + * /newT2|newT1\ + * / v \ + * / __/ \__ \ + * / __/ \__ \ + * / _/ t' \_ \ + * v1 ___________________ v2 + * n1 + */ +template +std::stack +Triangulation::insertVertexInsideTriangle( + VertInd v, + TriInd iT) +{ + const TriInd iNewT1 = addTriangle(); + const TriInd iNewT2 = addTriangle(); + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onInsertVertexInsideTriangle(iT, iNewT1, iNewT2); + } +#endif + + Triangle& t = triangles[iT]; + const array vv = t.vertices; + const array nn = t.neighbors; + const VertInd v1 = vv[0], v2 = vv[1], v3 = vv[2]; + const TriInd n1 = nn[0], n2 = nn[1], n3 = nn[2]; + // make two new triangles and convert current triangle to 3rd new + // triangle + triangles[iNewT1] = Triangle(arr3(v2, v3, v), arr3(n2, iNewT2, iT)); + triangles[iNewT2] = Triangle(arr3(v3, v1, v), arr3(n3, iT, iNewT1)); + t = Triangle(arr3(v1, v2, v), arr3(n1, iNewT1, iNewT2)); + // adjust adjacent triangles + setAdjacentTriangle(v, iT); + setAdjacentTriangle(v3, iNewT1); + // change triangle neighbor's neighbors to new triangles + changeNeighbor(n2, iT, iNewT1); + changeNeighbor(n3, iT, iNewT2); + // return newly added triangles + std::stack newTriangles; + newTriangles.push(iT); + newTriangles.push(iNewT1); + newTriangles.push(iNewT2); + return newTriangles; +} + +/* Inserting a point on the edge between two triangles + * T1 (top) v1 + * /|\ + * n1 / | \ n4 + * / | \ + * / T1' | Tnew1\ + * v2-------v-------v4 + * \ T2' | Tnew2/ + * \ | / + * n2 \ | / n3 + * \|/ + * T2 (bottom) v3 + */ +template +std::stack Triangulation::insertVertexOnEdge( + VertInd v, + TriInd iT1, + TriInd iT2, + const bool doHandleFixedSplitEdge) +{ + const TriInd iTnew1 = addTriangle(); + const TriInd iTnew2 = addTriangle(); + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler) + { + m_callbackHandler->onInsertVertexOnEdge(iT1, iT2, iTnew1, iTnew2); + } +#endif + + Triangle& t1 = triangles[iT1]; + Triangle& t2 = triangles[iT2]; + Index i = opposedVertexInd(t1.neighbors, iT2); + const VertInd v1 = t1.vertices[i]; + const VertInd v2 = t1.vertices[ccw(i)]; + const TriInd n1 = t1.neighbors[i]; + const TriInd n4 = t1.neighbors[cw(i)]; + i = opposedVertexInd(t2.neighbors, iT1); + const VertInd v3 = t2.vertices[i]; + const VertInd v4 = t2.vertices[ccw(i)]; + const TriInd n3 = t2.neighbors[i]; + const TriInd n2 = t2.neighbors[cw(i)]; + // add new triangles and change existing ones + t1 = Triangle(arr3(v, v1, v2), arr3(iTnew1, n1, iT2)); + t2 = Triangle(arr3(v, v2, v3), arr3(iT1, n2, iTnew2)); + triangles[iTnew1] = Triangle(arr3(v, v4, v1), arr3(iTnew2, n4, iT1)); + triangles[iTnew2] = Triangle(arr3(v, v3, v4), arr3(iT2, n3, iTnew1)); + // adjust adjacent triangles + setAdjacentTriangle(v, iT1); + setAdjacentTriangle(v4, iTnew1); + // adjust neighboring triangles and vertices + changeNeighbor(n4, iT1, iTnew1); + changeNeighbor(n3, iT2, iTnew2); + // properly handle the case when the split edge is a fixed edge + if(doHandleFixedSplitEdge) + { + const Edge sharedEdge(v2, v4); + if(fixedEdges.count(sharedEdge)) + splitFixedEdge(sharedEdge, v); + } + // return newly added triangles + std::stack newTriangles; + newTriangles.push(iT1); + newTriangles.push(iTnew2); + newTriangles.push(iT2); + newTriangles.push(iTnew1); + return newTriangles; +} + +template +array +Triangulation::trianglesAt(const V2d& pos) const +{ + array out = {noNeighbor, noNeighbor}; + for(TriInd i = TriInd(0); i < TriInd(triangles.size()); ++i) + { + const Triangle& t = triangles[i]; + const V2d& v1 = vertices[t.vertices[0]]; + const V2d& v2 = vertices[t.vertices[1]]; + const V2d& v3 = vertices[t.vertices[2]]; + const PtTriLocation::Enum loc = locatePointTriangle(pos, v1, v2, v3); + if(loc == PtTriLocation::Outside) + continue; + out[0] = i; + if(isOnEdge(loc)) + out[1] = t.neighbors[edgeNeighbor(loc)]; + return out; + } + handleException( + Error("No triangle was found at position", CDT_SOURCE_LOCATION)); + return out; +} + +template +TriInd Triangulation::walkTriangles( + const VertInd startVertex, + const V2d& pos) const +{ + // begin walk in search of triangle at pos + TriInd currTri = m_vertTris[startVertex]; + bool found = false; + detail::SplitMix64RandGen prng; + while(!found) + { + const Triangle& t = triangles[currTri]; + found = true; + // stochastic offset to randomize which edge we check first + const Index offset(prng() % 3); + for(Index i_(0); i_ < Index(3); ++i_) + { + const Index i((i_ + offset) % 3); + const V2d& vStart = vertices[t.vertices[i]]; + const V2d& vEnd = vertices[t.vertices[ccw(i)]]; + const PtLineLocation::Enum edgeCheck = + locatePointLine(pos, vStart, vEnd); + const TriInd iN = t.neighbors[i]; + if(edgeCheck == PtLineLocation::Right && iN != noNeighbor) + { + found = false; + currTri = iN; + break; + } + } + } + return currTri; +} + +template +array Triangulation::walkingSearchTrianglesAt( + const VertInd iV, + const VertInd startVertex) const +{ + const V2d v = vertices[iV]; + array out = {noNeighbor, noNeighbor}; + const TriInd iT = walkTriangles(startVertex, v); + // Finished walk, locate point in current triangle + const Triangle& t = triangles[iT]; + const V2d& v1 = vertices[t.vertices[0]]; + const V2d& v2 = vertices[t.vertices[1]]; + const V2d& v3 = vertices[t.vertices[2]]; + const PtTriLocation::Enum loc = locatePointTriangle(v, v1, v2, v3); + + if(loc == PtTriLocation::Outside) + { + handleException( + Error("No triangle was found at position", CDT_SOURCE_LOCATION)); + } + if(loc == PtTriLocation::OnVertex) + { + const VertInd iDupe = v1 == v ? t.vertices[0] + : v2 == v ? t.vertices[1] + : t.vertices[2]; + handleException(DuplicateVertexError( + VertInd(iV - m_nTargetVerts), + VertInd(iDupe - m_nTargetVerts), + CDT_SOURCE_LOCATION)); + } + + out[0] = iT; + if(isOnEdge(loc)) + out[1] = t.neighbors[edgeNeighbor(loc)]; + return out; +} + +template +void Triangulation::changeNeighbor( + const TriInd iT, + const TriInd oldNeighbor, + const TriInd newNeighbor) +{ + if(iT == noNeighbor) + return; + NeighborsArr3& nn = triangles[iT].neighbors; + assert( + nn[0] == oldNeighbor || nn[1] == oldNeighbor || nn[2] == oldNeighbor); + if(nn[0] == oldNeighbor) + nn[0] = newNeighbor; + else if(nn[1] == oldNeighbor) + nn[1] = newNeighbor; + else + nn[2] = newNeighbor; +} + +template +void Triangulation::changeNeighbor( + const TriInd iT, + const VertInd iVedge1, + const VertInd iVedge2, + const TriInd newNeighbor) +{ + assert(iT != noNeighbor); + Triangle& t = triangles[iT]; + t.neighbors[edgeNeighborInd(t.vertices, iVedge1, iVedge2)] = newNeighbor; +} + +template +void Triangulation::triangulatePseudoPolygon( + const std::vector& poly, + unordered_map& outerTris, + TriInd iT, + TriInd iN, + std::vector& trianglesToReuse, + std::vector& iterations) +{ + assert(poly.size() > 2); + // note: uses iteration instead of recursion to avoid stack overflows + iterations.clear(); + iterations.push_back(make_tuple( + IndexSizeType(0), + static_cast(poly.size() - 1), + iT, + iN, + Index(0))); + while(!iterations.empty()) + { + triangulatePseudoPolygonIteration( + poly, outerTris, trianglesToReuse, iterations); + } +} + +template +void Triangulation::triangulatePseudoPolygonIteration( + const std::vector& poly, + unordered_map& outerTris, + std::vector& trianglesToReuse, + std::vector& iterations) +{ + IndexSizeType iA, iB; + TriInd iT, iParent; + Index iInParent; + assert(!iterations.empty()); + tie(iA, iB, iT, iParent, iInParent) = iterations.back(); + iterations.pop_back(); + assert(iB - iA > 1 && iT != noNeighbor && iParent != noNeighbor); + Triangle& t = triangles[iT]; + // find Delaunay point + const IndexSizeType iC = findDelaunayPoint(poly, iA, iB); + + const VertInd a = poly[iA]; + const VertInd b = poly[iB]; + const VertInd c = poly[iC]; + + // split pseudo-polygon in two parts and triangulate them + // note: second part needs to be pushed on stack first to be processed first + + // second part: points after the Delaunay point + if(iB - iC > 1) + { + assert(!trianglesToReuse.empty()); + const TriInd iNext = trianglesToReuse.back(); + trianglesToReuse.pop_back(); + iterations.push_back(make_tuple(iC, iB, iNext, iT, Index(1))); + } + else // pseudo-poly is reduced to a single outer edge + { + const Edge outerEdge(b, c); + const TriInd outerTri = outerTris.at(outerEdge); + if(outerTri != noNeighbor) + { + assert(outerTri != iT); + t.neighbors[1] = outerTri; + changeNeighbor(outerTri, c, b, iT); + } + else + outerTris.at(outerEdge) = iT; + } + // first part: points before the Delaunay point + if(iC - iA > 1) + { // add next triangle and add another iteration + assert(!trianglesToReuse.empty()); + const TriInd iNext = trianglesToReuse.back(); + trianglesToReuse.pop_back(); + iterations.push_back(make_tuple(iA, iC, iNext, iT, Index(2))); + } + else + { // pseudo-poly is reduced to a single outer edge + const Edge outerEdge(c, a); + const TriInd outerTri = outerTris.at(outerEdge); + if(outerTri != noNeighbor) + { + assert(outerTri != iT); + t.neighbors[2] = outerTri; + changeNeighbor(outerTri, c, a, iT); + } + else + outerTris.at(outerEdge) = iT; + } + // Finalize triangle + // note: only when triangle is finalized to we add it as a neighbor to + // parent to maintain triangulation topology consistency + triangles[iParent].neighbors[iInParent] = iT; + t.neighbors[0] = iParent; + t.vertices = arr3(a, b, c); + setAdjacentTriangle(c, iT); +} + +template +IndexSizeType Triangulation::findDelaunayPoint( + const std::vector& poly, + const IndexSizeType iA, + const IndexSizeType iB) const +{ + assert(iB - iA > 1); + const V2d& a = vertices[poly[iA]]; + const V2d& b = vertices[poly[iB]]; + IndexSizeType out = iA + 1; + const V2d* c = &vertices[poly[out]]; // caching for better performance + for(IndexSizeType i = iA + 1; i < iB; ++i) + { + const V2d& v = vertices[poly[i]]; + if(isInCircumcircle(v, a, b, *c)) + { + out = i; + c = &v; + } + } + assert(out > iA && out < iB); // point is between ends + return out; +} + +template +void Triangulation::insertVertices( + const std::vector >& newVertices) +{ + return insertVertices( + newVertices.begin(), newVertices.end(), getX_V2d, getY_V2d); +} + +template +bool Triangulation::isFinalized() const +{ + return m_vertTris.empty() && !vertices.empty(); +} + +template +unordered_map +Triangulation::peelLayer( + std::stack seeds, + const LayerDepth layerDepth, + std::vector& triDepths) const +{ + unordered_map behindBoundary; + while(!seeds.empty()) + { + const TriInd iT = seeds.top(); + seeds.pop(); + triDepths[iT] = std::min(triDepths[iT], layerDepth); + behindBoundary.erase(iT); + const Triangle& t = triangles[iT]; + for(Index i(0); i < Index(3); ++i) + { + const Edge opEdge(t.vertices[ccw(i)], t.vertices[cw(i)]); + const TriInd iN = t.neighbors[opoNbr(i)]; + if(iN == noNeighbor || triDepths[iN] <= layerDepth) + continue; + if(fixedEdges.count(opEdge)) + { + const unordered_map::const_iterator cit = + overlapCount.find(opEdge); + const LayerDepth triDepth = cit == overlapCount.end() + ? layerDepth + 1 + : layerDepth + cit->second + 1; + behindBoundary[iN] = triDepth; + continue; + } + seeds.push(iN); + } + } + return behindBoundary; +} + +template +std::vector +Triangulation::calculateTriangleDepths() const +{ + std::vector triDepths( + triangles.size(), std::numeric_limits::max()); + std::stack seeds(TriDeque(1, m_vertTris[0])); + LayerDepth layerDepth = 0; + LayerDepth deepestSeedDepth = 0; + + unordered_map seedsByDepth; + do + { + const unordered_map& newSeeds = + peelLayer(seeds, layerDepth, triDepths); + + seedsByDepth.erase(layerDepth); + typedef unordered_map::const_iterator Iter; + for(Iter it = newSeeds.begin(); it != newSeeds.end(); ++it) + { + deepestSeedDepth = std::max(deepestSeedDepth, it->second); + seedsByDepth[it->second].insert(it->first); + } + const TriIndUSet& nextLayerSeeds = seedsByDepth[layerDepth + 1]; + seeds = std::stack( + TriDeque(nextLayerSeeds.begin(), nextLayerSeeds.end())); + ++layerDepth; + } while(!seeds.empty() || deepestSeedDepth > layerDepth); + + return triDepths; +} + +#ifdef CDT_ENABLE_CALLBACK_HANDLER +template +void Triangulation::setCallbackHandler( + ICallbackHandler* callbackHandler) +{ + m_callbackHandler = callbackHandler; +} +#endif + +template +void Triangulation::insertVertices_AsProvided( + VertInd superGeomVertCount) +{ + for(VertInd iV = superGeomVertCount; iV < vertices.size(); ++iV) + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler && m_callbackHandler->isAbortCalculation()) + { + return; + } +#endif + insertVertex(iV); + } +} + +template +void Triangulation::insertVertices_Randomized( + VertInd superGeomVertCount) +{ + std::size_t vertexCount = vertices.size() - superGeomVertCount; + std::vector ii(vertexCount); + detail::iota(ii.begin(), ii.end(), superGeomVertCount); + detail::random_shuffle(ii.begin(), ii.end()); + for(std::vector::iterator it = ii.begin(); it != ii.end(); ++it) + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler && m_callbackHandler->isAbortCalculation()) + { + return; + } +#endif + insertVertex(*it); + } +} + +namespace detail +{ + +// log2 implementation backwards compatible with pre c++11 +template +inline double log2_bc(T x) +{ +#ifdef CDT_CXX11_IS_SUPPORTED + return std::log2(x); +#else + static double log2_constant = std::log(2.0); + return std::log(static_cast(x)) / log2_constant; +#endif +} + +/// Since KD-tree bulk load builds a balanced tree the maximum length of a +/// queue can be pre-calculated: it is calculated as size of a completely +/// filled tree layer plus the number of the nodes on a completely filled +/// layer that have two children. +inline std::size_t maxQueueLengthBFSKDTree(const std::size_t vertexCount) +{ + const int filledLayerPow2 = + static_cast(std::floor(log2_bc(vertexCount)) - 1); + const std::size_t nodesInFilledTree = + static_cast(std::pow(2., filledLayerPow2 + 1) - 1); + const std::size_t nodesInLastFilledLayer = + static_cast(std::pow(2., filledLayerPow2)); + const std::size_t nodesInLastLayer = vertexCount - nodesInFilledTree; + return nodesInLastLayer >= nodesInLastFilledLayer + ? nodesInLastFilledLayer + nodesInLastLayer - + nodesInLastFilledLayer + : nodesInLastFilledLayer; +} + +template +class FixedCapacityQueue +{ +public: + FixedCapacityQueue(const std::size_t capacity) + : m_vec(capacity) + , m_front(m_vec.begin()) + , m_back(m_vec.begin()) + , m_size(0) + {} + bool empty() const + { + return m_size == 0; + } + const T& front() const + { + return *m_front; + } + void pop() + { + assert(m_size > 0); + ++m_front; + if(m_front == m_vec.end()) + m_front = m_vec.begin(); + --m_size; + } + void push(const T& t) + { + assert(m_size < m_vec.size()); + *m_back = t; + ++m_back; + if(m_back == m_vec.end()) + m_back = m_vec.begin(); + ++m_size; + } +#ifdef CDT_CXX11_IS_SUPPORTED + void push(const T&& t) + { + assert(m_size < m_vec.size()); + *m_back = t; + ++m_back; + if(m_back == m_vec.end()) + m_back = m_vec.begin(); + ++m_size; + } +#endif +private: + std::vector m_vec; + typename std::vector::iterator m_front; + typename std::vector::iterator m_back; + std::size_t m_size; +}; + +template +class less_than_x +{ + const std::vector >& m_vertices; + +public: + less_than_x(const std::vector >& vertices) + : m_vertices(vertices) + {} + bool operator()(const VertInd a, const VertInd b) const + { + return m_vertices[a].x < m_vertices[b].x; + } +}; + +template +class less_than_y +{ + const std::vector >& m_vertices; + +public: + less_than_y(const std::vector >& vertices) + : m_vertices(vertices) + {} + bool operator()(const VertInd a, const VertInd b) const + { + return m_vertices[a].y < m_vertices[b].y; + } +}; + +} // namespace detail + +template +void Triangulation::insertVertices_KDTreeBFS( + VertInd superGeomVertCount, + Box2d box) +{ + // calculate original indices + const VertInd vertexCount(vertices.size() - superGeomVertCount); + if(vertexCount <= VertInd(0)) + return; + std::vector ii(vertexCount); + detail::iota(ii.begin(), ii.end(), superGeomVertCount); + + typedef std::vector::iterator It; + detail::FixedCapacityQueue, V2d, VertInd> > queue( + detail::maxQueueLengthBFSKDTree(vertexCount)); + queue.push(make_tuple(ii.begin(), ii.end(), box.min, box.max, VertInd(0))); + + It first, last; + V2d newBoxMin, newBoxMax; + VertInd parent, mid; + + const detail::less_than_x cmpX(vertices); + const detail::less_than_y cmpY(vertices); + + while(!queue.empty()) + { +#ifdef CDT_ENABLE_CALLBACK_HANDLER + if(m_callbackHandler && m_callbackHandler->isAbortCalculation()) + { + return; + } +#endif + tie(first, last, box.min, box.max, parent) = queue.front(); + queue.pop(); + assert(first != last); + + const std::ptrdiff_t len = std::distance(first, last); + if(len == 1) + { + insertVertex(*first, parent); + continue; + } + const It midIt = first + len / 2; + if(box.max.x - box.min.x >= box.max.y - box.min.y) + { + detail::portable_nth_element(first, midIt, last, cmpX); + mid = *midIt; + const T split = vertices[mid].x; + newBoxMin.x = split; + newBoxMin.y = box.min.y; + newBoxMax.x = split; + newBoxMax.y = box.max.y; + } + else + { + detail::portable_nth_element(first, midIt, last, cmpY); + mid = *midIt; + const T split = vertices[mid].y; + newBoxMin.x = box.min.x; + newBoxMin.y = split; + newBoxMax.x = box.max.x; + newBoxMax.y = split; + } + insertVertex(mid, parent); + if(first != midIt) + { + queue.push(make_tuple(first, midIt, box.min, newBoxMax, mid)); + } + if(midIt + 1 != last) + { + queue.push(make_tuple(midIt + 1, last, newBoxMin, box.max, mid)); + } + } +} + +template +std::pair Triangulation::edgeTriangles( + const VertInd a, + const VertInd b) const +{ + const TriInd triStart = m_vertTris[a]; + assert(triStart != noNeighbor); + TriInd iT = triStart, iTNext = triStart; + VertInd iV = noVertex; + do + { + const Triangle& t = triangles[iT]; + tie(iTNext, iV) = t.next(a); + assert(iTNext != noNeighbor); + if(iV == b) + { + return std::make_pair(iT, iTNext); + } + iT = iTNext; + } while(iT != triStart); + return std::make_pair(noNeighbor, noNeighbor); +} + +template +bool Triangulation::hasEdge( + const VertInd a, + const VertInd b) const +{ + return edgeTriangles(a, b).first != invalidIndexSizeType; +} + +template +void Triangulation::setAdjacentTriangle( + const VertInd v, + const TriInd t) +{ + assert(t != noNeighbor); + m_vertTris[v] = t; + assert( + triangles[t].vertices[0] == v || triangles[t].vertices[1] == v || + triangles[t].vertices[2] == v); +} + +template +void Triangulation::pivotVertexTriangleCW(const VertInd v) +{ + assert(m_vertTris[v] != noNeighbor); + m_vertTris[v] = triangles[m_vertTris[v]].next(v).first; + assert(m_vertTris[v] != noNeighbor); + assert( + triangles[m_vertTris[v]].vertices[0] == v || + triangles[m_vertTris[v]].vertices[1] == v || + triangles[m_vertTris[v]].vertices[2] == v); +} + +template +void Triangulation::tryAddVertexToLocator(const VertInd v) +{ + if(!m_nearPtLocator.empty()) // only if locator is initialized already + m_nearPtLocator.addPoint(v, vertices); +} + +template +void Triangulation::tryInitNearestPointLocator() +{ + if(!vertices.empty() && m_nearPtLocator.empty()) + { + m_nearPtLocator.initialize(vertices); + } +} + +} // namespace CDT diff --git a/include/CDT/include/portable_nth_element.hpp b/include/CDT/include/portable_nth_element.hpp new file mode 100644 index 0000000..d560f29 --- /dev/null +++ b/include/CDT/include/portable_nth_element.hpp @@ -0,0 +1,313 @@ +// This code is copied from LLVM's libc++ +// https://github.com/llvm-mirror/libcxx/blob/4dde9ccef57d50e50620408a0b7a902f0aba803e/include/algorithm +// It is needed to provide portable nth_element on different platforms + +// -*- C++ -*- +//===-------------------------- algorithm ---------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef CDT_PORTABLE_NTH_ELEMENT +#define CDT_PORTABLE_NTH_ELEMENT + +#include +#include +#ifdef CDT_CXX11_IS_SUPPORTED +#include +#else +#include +#endif + +namespace CDT +{ +namespace detail +{ + +// sort + +// stable, 2-3 compares, 0-2 swaps + +template +unsigned +sort3(ForwardIterator x, ForwardIterator y, ForwardIterator z, Compare c) +{ + unsigned r = 0; + if(!c(*y, *x)) // if x <= y + { + if(!c(*z, *y)) // if y <= z + return r; // x <= y && y <= z + // x <= y && y > z + std::swap(*y, *z); // x <= z && y < z + r = 1; + if(c(*y, *x)) // if x > y + { + std::swap(*x, *y); // x < y && y <= z + r = 2; + } + return r; // x <= y && y < z + } + if(c(*z, *y)) // x > y, if y > z + { + std::swap(*x, *z); // x < y && y < z + r = 1; + return r; + } + std::swap(*x, *y); // x > y && y <= z + r = 1; // x < y && x <= z + if(c(*z, *y)) // if y > z + { + std::swap(*y, *z); // x <= y && y < z + r = 2; + } + return r; +} // x <= y && y <= z + +// Assumes size > 0 +template +void selection_sort( + BirdirectionalIterator first, + BirdirectionalIterator last, + Compare comp) +{ + BirdirectionalIterator lm1 = last; + for(--lm1; first != lm1; ++first) + { +#ifdef CDT_CXX11_IS_SUPPORTED + BirdirectionalIterator i = std::min_element< + BirdirectionalIterator, + typename std::add_lvalue_reference::type>( + first, last, comp); +#else + BirdirectionalIterator i = std::min_element< + BirdirectionalIterator, + typename boost::add_lvalue_reference::type>( + first, last, comp); +#endif + if(i != first) + std::swap(*first, *i); + } +} + +// nth_element + +template +void nth_element( + RandomAccessIterator first, + RandomAccessIterator nth, + RandomAccessIterator last, + Compare comp) +{ + // Compare is known to be a reference type + typedef typename std::iterator_traits::difference_type + difference_type; + const difference_type limit = 7; + while(true) + { + restart: + if(nth == last) + return; + difference_type len = last - first; + switch(len) + { + case 0: + case 1: + return; + case 2: + if(comp(*--last, *first)) + std::swap(*first, *last); + return; + case 3: { + RandomAccessIterator m = first; + detail::sort3(first, ++m, --last, comp); + return; + } + } + if(len <= limit) + { + detail::selection_sort(first, last, comp); + return; + } + // len > limit >= 3 + RandomAccessIterator m = first + len / 2; + RandomAccessIterator lm1 = last; + unsigned n_swaps = detail::sort3(first, m, --lm1, comp); + // *m is median + // partition [first, m) < *m and *m <= [m, last) + // (this inhibits tossing elements equivalent to m around + // unnecessarily) + RandomAccessIterator i = first; + RandomAccessIterator j = lm1; + // j points beyond range to be tested, *lm1 is known to be <= *m + // The search going up is known to be guarded but the search coming + // down isn't. Prime the downward search with a guard. + if(!comp(*i, *m)) // if *first == *m + { + // *first == *m, *first doesn't go in first part + // manually guard downward moving j against i + while(true) + { + if(i == --j) + { + // *first == *m, *m <= all other elements + // Parition instead into [first, i) == *first and + // *first < [i, last) + ++i; // first + 1 + j = last; + if(!comp(*first, *--j)) // we need a guard if + // *first == *(last-1) + { + while(true) + { + if(i == j) + return; // [first, last) all equivalent + // elements + if(comp(*first, *i)) + { + std::swap(*i, *j); + ++n_swaps; + ++i; + break; + } + ++i; + } + } + // [first, i) == *first and *first < [j, + // last) and j == last - 1 + if(i == j) + return; + while(true) + { + while(!comp(*first, *i)) + ++i; + while(comp(*first, *--j)) + ; + if(i >= j) + break; + std::swap(*i, *j); + ++n_swaps; + ++i; + } + // [first, i) == *first and *first < [i, + // last) The first part is sorted, + if(nth < i) + return; + // nth_element the secod part + // nth_element(i, nth, last, comp); + first = i; + goto restart; + } + if(comp(*j, *m)) + { + std::swap(*i, *j); + ++n_swaps; + break; // found guard for downward moving j, now use + // unguarded partition + } + } + } + ++i; + // j points beyond range to be tested, *lm1 is known to be <= *m + // if not yet partitioned... + if(i < j) + { + // known that *(i - 1) < *m + while(true) + { + // m still guards upward moving i + while(comp(*i, *m)) + ++i; + // It is now known that a guard exists for downward moving + // j + while(!comp(*--j, *m)) + ; + if(i >= j) + break; + std::swap(*i, *j); + ++n_swaps; + // It is known that m != j + // If m just moved, follow it + if(m == i) + m = j; + ++i; + } + } + // [first, i) < *m and *m <= [i, last) + if(i != m && comp(*m, *i)) + { + std::swap(*i, *m); + ++n_swaps; + } + // [first, i) < *i and *i <= [i+1, last) + if(nth == i) + return; + if(n_swaps == 0) + { + // We were given a perfectly partitioned sequence. Coincidence? + if(nth < i) + { + // Check for [first, i) already sorted + j = m = first; + while(++j != i) + { + if(comp(*j, *m)) + // not yet sorted, so sort + goto not_sorted; + m = j; + } + // [first, i) sorted + return; + } + else + { + // Check for [i, last) already sorted + j = m = i; + while(++j != last) + { + if(comp(*j, *m)) + // not yet sorted, so sort + goto not_sorted; + m = j; + } + // [i, last) sorted + return; + } + } + not_sorted: + // nth_element on range containing nth + if(nth < i) + { + // nth_element(first, nth, i, comp); + last = i; + } + else + { + // nth_element(i+1, nth, last, comp); + first = ++i; + } + } +} + +template +inline void portable_nth_element( + _RandomAccessIterator first, + _RandomAccessIterator nth, + _RandomAccessIterator last, + _Compare comp) +{ +#ifdef CDT_CXX11_IS_SUPPORTED + detail::nth_element::type>( + first, nth, last, comp); +#else + detail::nth_element::type>( + first, nth, last, comp); +#endif +} + +} // namespace detail +} // namespace CDT + +#endif // CDT_PORTABLE_NTH_ELEMENT diff --git a/include/CDT/include/predicates.h b/include/CDT/include/predicates.h new file mode 100644 index 0000000..bcdd3a2 --- /dev/null +++ b/include/CDT/include/predicates.h @@ -0,0 +1,915 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (c) 2019, William C. Lenthe * + * All rights reserved. * + * * + * Redistribution and use in source and binary forms, with or without * + * modification, are permitted provided that the following conditions are met: * + * * + * 1. Redistributions of source code must retain the above copyright notice, this * + * list of conditions and the following disclaimer. * + * * + * 2. Redistributions in binary form must reproduce the above copyright notice, * + * this list of conditions and the following disclaimer in the documentation * + * and/or other materials provided with the distribution. * + * * + * 3. Neither the name of the copyright holder nor the names of its * + * contributors may be used to endorse or promote products derived from * + * this software without specific prior written permission. * + * * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef PREDICATES_H_INCLUDED +#define PREDICATES_H_INCLUDED + +//@reference: https://www.cs.cmu.edu/~quake/robust.html + +namespace predicates { + //@brief: geometric predicates using arbitrary precision arithmetic + //@note : these are provided primarily for illustrative purposes and adaptive routines should be preferred + namespace exact { + //@brief : determine if the 2d point c is above, on, or below the line defined by a and b + //@param ax: X-coordinate of a + //@param ay: Y-coordinate of a + //@param bx: X-coordinate of b + //@param by: Y-coordinate of b + //@param cx: X-coordinate of c + //@param cy: Y-coordinate of c + //@return : determinant of {{ax - cx, ay - cy}, {bx - cx, by - cy}} + //@note : positive, 0, negative result for c above, on, or below the line defined by a -> b + template T orient2d(T const ax, T const ay, T const bx, T const by, T const cx, T const cy); + + //@brief : determine if the 2d point c is above, on, or below the line defined by a and b + //@param pa: pointer to a as {x, y} + //@param pb: pointer to b as {x, y} + //@param pc: pointer to c as {x, y} + //@return : determinant of {{ax - cx, ay - cy}, {bx - cx, by - cy}} + //@note : positive, 0, negative result for c above, on, or below the line defined by a -> b + template T orient2d(T const*const pa, T const*const pb, T const*const pc); + + //@brief : determine if the 2d point d is inside, on, or outside the circle defined by a, b, and c + //@param ax: X-coordinate of a + //@param ay: Y-coordinate of a + //@param bx: X-coordinate of b + //@param by: Y-coordinate of b + //@param cx: X-coordinate of c + //@param cy: Y-coordinate of c + //@param dx: X-coordinate of d + //@param dy: Y-coordinate of d + //@return : determinant of {{ax - dx, ay - dy, (ax - dx)^2 + (ay - dy)^2}, {bx - dx, by - dy, (bx - dx)^2 + (by - dy)^2}, {cx - dx, cy - dy, (cx - dx)^2 + (cy - dy)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T incircle(T const ax, T const ay, T const bx, T const by, T const cx, T const cy, T const dx, T const dy); + + //@brief : determine if the 2d point d is inside, on, or outside the circle defined by a, b, and c + //@param pa: pointer to a as {x, y} + //@param pb: pointer to b as {x, y} + //@param pc: pointer to c as {x, y} + //@param pc: pointer to d as {x, y} + //@return : determinant of {{ax - dx, ay - dy, (ax - dx)^2 + (ay - dy)^2}, {bx - dx, by - dy, (bx - dx)^2 + (by - dy)^2}, {cx - dx, cy - dy, (cx - dx)^2 + (cy - dy)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T incircle(T const*const pa, T const*const pb, T const*const pc, T const*const pd); + + //@brief : determine if the 3d point d is above, on, or below the plane defined by a, b, and c + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@return : determinant of {{ax - dx, ay - dy, az - dz}, {bx - dx, by - dy, bz - dz}, {cx - dx, cy - dy, cz - dz}} + //@note : positive, 0, negative result for c above, on, or below the plane defined by a, b, and c + template T orient3d(T const*const pa, T const*const pb, T const*const pc, T const*const pd); + + //@brief : determine if the 3d point e is inside, on, or outside the sphere defined by a, b, c, and d + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@param pe: pointer to e as {x, y, z} + //@return : determinant of {{ax - ex, ay - ey, az - ez, (ax - ex)^2 + (ay - ey)^2 + (az - ez)^2}, {bx - ex, by - ey, bz - ez, (bx - ex)^2 + (by - ey)^2 + (bz - ez)^2}, {cx - ex, cy - ey, cz - ez, (cx - ex)^2 + (cy - ey)^2 + (cz - ez)^2}, {dx - ex, dy - ey, dz - ez, (dx - ex)^2 + (dy - ey)^2 + (dz - ez)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T insphere(T const*const pa, T const*const pb, T const*const pc, T const*const pd, T const*const pe); + } + + //@brief: geometric predicates using normal floating point arithmetic but falling back to arbitrary precision when needed + //@note : these should have the same accuracy but are significantly faster when determinants are large + namespace adaptive { + //@brief : determine if the 2d point c is above, on, or below the line defined by a and b + //@param ax: X-coordinate of a + //@param ay: Y-coordinate of a + //@param bx: X-coordinate of b + //@param by: Y-coordinate of b + //@param cx: X-coordinate of c + //@param cy: Y-coordinate of c + //@return : determinant of {{ax - cx, ay - cy}, {bx - cx, by - cy}} + //@note : positive, 0, negative result for c above, on, or below the line defined by a -> b + template T orient2d(T const ax, T const ay, T const bx, T const by, T const cx, T const cy); + + //@brief : determine if the 2d point c is above, on, or below the line defined by a and b + //@param pa: pointer to a as {x, y} + //@param pb: pointer to b as {x, y} + //@param pc: pointer to c as {x, y} + //@return : determinant of {{ax - cx, ay - cy}, {bx - cx, by - cy}} + //@note : positive, 0, negative result for c above, on, or below the line defined by a -> b + template T orient2d(T const*const pa, T const*const pb, T const*const pc); + + //@brief : determine if the 2d point d is inside, on, or outside the circle defined by a, b, and c + //@param ax: X-coordinate of a + //@param ay: Y-coordinate of a + //@param bx: X-coordinate of b + //@param by: Y-coordinate of b + //@param cx: X-coordinate of c + //@param cy: Y-coordinate of c + //@param dx: X-coordinate of d + //@param dy: Y-coordinate of d + //@return : determinant of {{ax - dx, ay - dy, (ax - dx)^2 + (ay - dy)^2}, {bx - dx, by - dy, (bx - dx)^2 + (by - dy)^2}, {cx - dx, cy - dy, (cx - dx)^2 + (cy - dy)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T incircle(T const ax, T const ay, T const bx, T const by, T const cx, T const cy, T const dx, T const dy); + + //@brief : determine if the 2d point d is inside, on, or outside the circle defined by a, b, and c + //@param pa: pointer to a as {x, y} + //@param pb: pointer to b as {x, y} + //@param pc: pointer to c as {x, y} + //@param pc: pointer to d as {x, y} + //@return : determinant of {{ax - dx, ay - dy, (ax - dx)^2 + (ay - dy)^2}, {bx - dx, by - dy, (bx - dx)^2 + (by - dy)^2}, {cx - dx, cy - dy, (cx - dx)^2 + (cy - dy)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T incircle(T const*const pa, T const*const pb, T const*const pc, T const*const pd); + + //@brief : determine if the 3d point d is above, on, or below the plane defined by a, b, and c + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@return : determinant of {{ax - dx, ay - dy, az - dz}, {bx - dx, by - dy, bz - dz}, {cx - dx, cy - dy, cz - dz}} + //@note : positive, 0, negative result for c above, on, or below the plane defined by a, b, and c + template T orient3d(T const*const pa, T const*const pb, T const*const pc, T const*const pd); + + //@brief : determine if the 3d point e is inside, on, or outside the sphere defined by a, b, c, and d + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@param pe: pointer to e as {x, y, z} + //@return : determinant of {{ax - ex, ay - ey, az - ez, (ax - ex)^2 + (ay - ey)^2 + (az - ez)^2}, {bx - ex, by - ey, bz - ez, (bx - ex)^2 + (by - ey)^2 + (bz - ez)^2}, {cx - ex, cy - ey, cz - ez, (cx - ex)^2 + (cy - ey)^2 + (cz - ez)^2}, {dx - ex, dy - ey, dz - ez, (dx - ex)^2 + (dy - ey)^2 + (dz - ez)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T insphere(T const*const pa, T const*const pb, T const*const pc, T const*const pd, T const*const pe); + } +} + +#include //abs, fma +#include +#include //pair +#include //accumulate +#include //transform, copy_n, merge +#include //negate + +// a macro based static assert for pre c++11 +#define PREDICATES_PORTABLE_STATIC_ASSERT(condition, message) typedef char message[(condition) ? 1 : -1] + +// check if c++11 is supported +#if !defined(__cplusplus) && !defined(_MSC_VER) + PREDICATES_PORTABLE_STATIC_ASSERT(false, couldnt_parse_cxx_standard) +#endif +#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) + #define PREDICATES_CXX11_IS_SUPPORTED +#endif + +// choose to use c++11 features or their backports +#ifdef PREDICATES_CXX11_IS_SUPPORTED +#include +#include // is_same, enable_if +#undef PREDICATES_PORTABLE_STATIC_ASSERT +#define PREDICATES_TOKEN_TO_STRING1(x) #x +#define PREDICATES_TOKEN_TO_STRING(x) PREDICATES_TOKEN_TO_STRING1(x) +#define PREDICATES_PORTABLE_STATIC_ASSERT(condition, message) static_assert(condition, PREDICATES_TOKEN_TO_STRING(message)) +namespace predicates { +namespace stdx { + using std::array; + using std::copy_n; +} +#else +namespace predicates { +namespace stdx { + // array + template + class array { + T buff[N]; + public: + T& operator[](const size_t& i) { return buff[i]; } + const T& operator[](const size_t& i) const { return buff[i]; } + + T * data() { return buff; } + T const * data() const { return buff; } + + T * begin() { return buff; } + T const * cbegin() const { return buff; } + }; + // copy_n + template< class InputIt, class Size, class OutputIt> + OutputIt copy_n(InputIt first, Size count, OutputIt result) + { + if (count > 0) { + *result++ = *first; + for (Size i = 1; i < count; ++i) { + *result++ = *++first; + } + } + return result; + } +} +#endif // PREDICATES_CXX11_IS_SUPPORTED + +namespace detail { + template class ExpansionBase; + + //@brief: class to exactly represent the result of a sequence of arithmetic operations as an sequence of values that sum to the result + template + class Expansion : private ExpansionBase, public stdx::array { + private: + public: + size_t m_size; + template friend class ExpansionBase;//access for base class + template friend class Expansion;//access for expansions of different size + + Expansion() : m_size(0) {} + template Expansion& operator=(const Expansion& e) { + PREDICATES_PORTABLE_STATIC_ASSERT(M <= N, cannot_assign_a_larger_expansion_to_a_smaller_expansion); + stdx::copy_n(e.cbegin(), e.size(), stdx::array::begin()); + m_size = e.size(); + return *this; + } + + //vector like convenience functions + size_t size() const {return m_size;} + bool empty() const {return 0 == m_size;} + void push_back(const T v) {stdx::array::operator[](m_size++) = v;} + + public: + //estimates of expansion value + T mostSignificant() const {return empty() ? T(0) : stdx::array::operator[](m_size - 1);} + T estimate() const {return std::accumulate(stdx::array::cbegin(), stdx::array::cbegin() + size(), T(0));} + + template Expansion operator+(const Expansion& f) const { + Expansion h; + h.m_size = ExpansionBase::ExpansionSum(this->data(), this->size(), f.data(), f.size(), h.data()); + return h; + } + + void negate() {std::transform(stdx::array::cbegin(), stdx::array::cbegin() + size(), stdx::array::begin(), std::negate());} + Expansion operator-() const {Expansion e = *this; e.negate(); return e;} + template Expansion operator-(const Expansion& f) const {return operator+(-f);} + + Expansion operator*(const T b) const { + Expansion h; + h.m_size = ExpansionBase::ScaleExpansion(this->data(), this->size(), b, h.data()); + return h; + } + }; + +// See: https://stackoverflow.com/a/40765925/1597714 +// Standard defines: https://en.cppreference.com/w/cpp/numeric/math/fma +#if defined(__FMA__) || defined(__FMA4__) || defined(__AVX2__) || (defined(FP_FAST_FMA) && defined(FP_FAST_FMAF)) +#define PREDICATES_FAST_FMA 1 +#endif + + //@brief : helper function to sort by absolute value + //@param a: lhs item to compare + //@param b: rhs item to compare + //@return : true if |a| < |b| + //@note : defined since lambda functions aren't allow in c++03 + template bool absLess(const T& a, const T& b) {return std::abs(a) < std::abs(b);} + + template + class ExpansionBase { + private: + static const T Splitter; + + PREDICATES_PORTABLE_STATIC_ASSERT(std::numeric_limits::is_iec559, Requires_IEC_559_IEEE_754_floating_point_type); + PREDICATES_PORTABLE_STATIC_ASSERT(2 == std::numeric_limits::radix, Requires_base_2_floating_point_type); + + //combine result + roundoff error into expansion + static inline Expansion MakeExpansion(const T value, const T tail) { + Expansion e; + if(T(0) != tail) e.push_back(tail); + if(T(0) != value) e.push_back(value); + return e; + } + + protected: + //add 2 expansions + static size_t ExpansionSum(T const * const e, const size_t n, T const * const f, const size_t m, T * const h) { + std::merge(e, e + n, f, f + m, h, absLess); + if(m == 0) return n; + if(n == 0) return m; + size_t hIndex = 0; + T Q = h[0]; + T Qnew = h[1] + Q; + T hh = FastPlusTail(h[1], Q, Qnew); + Q = Qnew; + if(T(0) != hh) h[hIndex++] = hh; + for(size_t g = 2; g != n + m; ++g) { + Qnew = Q + h[g]; + hh = PlusTail(Q, h[g], Qnew); + Q = Qnew; + if(T(0) != hh) h[hIndex++] = hh; + } + if(T(0) != Q) h[hIndex++] = Q; + return hIndex; + } + + //scale an expansion by a constant + static size_t ScaleExpansion(T const * const e, const size_t n, const T b, T * const h) { + if(n == 0 || T(0) == b) return 0; + size_t hIndex = 0; + T Q = e[0] * b; + const std::pair bSplit = Split(b); + T hh = MultTailPreSplit(e[0], b, bSplit, Q); + if(T(0) != hh) h[hIndex++] = hh; + for(size_t eIndex = 1; eIndex < n; ++eIndex) { + T Ti = e[eIndex] * b; + T ti = MultTailPreSplit(e[eIndex], b, bSplit, Ti); + T Qi = Q + ti; + hh = PlusTail(Q, ti, Qi); + if(T(0) != hh) h[hIndex++] = hh; + Q = Ti + Qi; + hh = FastPlusTail(Ti, Qi, Q); + if(T(0) != hh) h[hIndex++] = hh; + } + if(T(0) != Q) h[hIndex++] = Q; + return hIndex; + } + + public: + //roundoff error of x = a + b + static inline T PlusTail(const T a, const T b, const T x) { + const T bVirtual = x - a; + const T aVirtual = x - bVirtual; + const T bRoundoff = b - bVirtual; + const T aRoundoff = a - aVirtual; + return aRoundoff + bRoundoff; + } + + //roundoff error of x = a + b if |a| > |b| + static inline T FastPlusTail(const T a, const T b, const T x) { + const T bVirtual = x - a; + return b - bVirtual; + } + + //roundoff error of x = a - b + static inline T MinusTail(const T a, const T b, const T x) { + const T bVirtual = a - x; + const T aVirtual = x + bVirtual; + const T bRoundoff = bVirtual - b; + const T aRoundoff = a - aVirtual; + return aRoundoff + bRoundoff; + } + + //split a into 2 nonoverlapping values + static inline std::pair Split(const T a) { + const T c = a * Splitter; + const T aBig = c - a; + const T aHi = c - aBig; + return std::pair(aHi, a - aHi); + } + + //roundoff error of x = a * b via dekkers product + static inline T DekkersProduct(const T /*a*/, const std::pair aSplit, const T /*b*/, const std::pair bSplit, const T p) { + T y = p - T(aSplit.first * bSplit.first); + y -= T(aSplit.second * bSplit.first); + y -= T(aSplit.first * bSplit.second); + return T(aSplit.second * bSplit.second) - y; + } + + //roundoff error of x = a * b +#if defined(PREDICATES_CXX11_IS_SUPPORTED) && defined(PREDICATES_FAST_FMA) + static T MultTail(const T a, const T b, const T p) {return std::fma(a, b, -p);} + static T MultTailPreSplit(const T a, const T b, const std::pair /*bSplit*/, const T p) {return std::fma(a, b, -p);} +#else + static T MultTail(const T a, const T b, const T p) {return DekkersProduct(a, Split(a), b, Split(b), p);} + static T MultTailPreSplit(const T a, const T b, const std::pair bSplit, const T p) {return DekkersProduct(a, Split(a), b, bSplit, p);} +#endif + //expand a + b + static inline Expansion Plus(const T a, const T b) { + const T x = a + b; + return MakeExpansion(x, PlusTail(a, b, x)); + } + + //expand a - b + static inline Expansion Minus(const T a, const T b) {return Plus(a, -b);} + + //expand a * b + static inline Expansion Mult(const T a, const T b) { + const T x = a * b; + return MakeExpansion(x, MultTail(a, b, x)); + } + + //expand the determinant of {{ax, ay}, {bx, by}} (unrolled Mult(ax, by) - Mult(ay, bx)) + static inline Expansion TwoTwoDiff(const T ax, const T by, const T ay, const T bx) { + const T axby1 = ax * by; + const T axby0 = MultTail(ax, by, axby1); + const T bxay1 = bx * ay; + const T bxay0 = MultTail(bx, ay, bxay1); + const T _i0 = axby0 - bxay0; + const T x0 = MinusTail(axby0, bxay0, _i0); + const T _j = axby1 + _i0; + const T _0 = PlusTail(axby1, _i0, _j); + const T _i1 = _0 - bxay1; + const T x1 = MinusTail(_0, bxay1, _i1); + const T x3 = _j + _i1; + const T x2 = PlusTail(_j, _i1, x3); + Expansion e; + if(T(0) != x0) e.push_back(x0); + if(T(0) != x1) e.push_back(x1); + if(T(0) != x2) e.push_back(x2); + if(T(0) != x3) e.push_back(x3); + return e; + } + + //TwoTwoDiff checking for zeros to avoid extra splitting + static inline Expansion TwoTwoDiffZeroCheck(const T ax, const T by, const T ay, const T bx) { + Expansion e; + if(T(0) == ax && T(0) == ay) return e; + else if(T(0) == ax) e = Mult(ay, bx); + else if(T(0) == ay) e = Mult(ax, by); + else e = TwoTwoDiff(ax, by, ay, bx); + return e; + } + + //(a * b) * c checking for zeros + static inline Expansion ThreeProd(const T a, const T b, const T c) {return (T(0) == a || T(0) == b || T(0) == c) ? Expansion() : Mult(a, b) * c;} + }; + + template const T ExpansionBase::Splitter = +#ifdef PREDICATES_CXX11_IS_SUPPORTED + static_cast(std::exp2(std::numeric_limits::digits/2 + 1)); +#else + static_cast(std::ldexp(T(1), std::numeric_limits::digits/2 + 1)); +#endif +} + + namespace exact { + template T orient2d(T const ax, T const ay, T const bx, T const by, T const cx, T const cy) + { + const detail::Expansion aterms = detail::ExpansionBase::TwoTwoDiff(ax, by, ax, cy); + const detail::Expansion bterms = detail::ExpansionBase::TwoTwoDiff(bx, cy, bx, ay); + const detail::Expansion cterms = detail::ExpansionBase::TwoTwoDiff(cx, ay, cx, by); + const detail::Expansion w = aterms + bterms + cterms; + return w.mostSignificant(); + } + + template T orient2d(T const*const pa, T const*const pb, T const*const pc) { + return orient2d(pa[0], pa[1], pb[0], pb[1], pc[0], pc[1]); + } + + template T incircle(T const ax, T const ay, T const bx, T const by, T const cx, T const cy, T const dx, T const dy) { + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(ax, by, bx, ay); + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(bx, cy, cx, by); + const detail::Expansion cd = detail::ExpansionBase::TwoTwoDiff(cx, dy, dx, cy); + const detail::Expansion da = detail::ExpansionBase::TwoTwoDiff(dx, ay, ax, dy); + const detail::Expansion ac = detail::ExpansionBase::TwoTwoDiff(ax, cy, cx, ay); + const detail::Expansion bd = detail::ExpansionBase::TwoTwoDiff(bx, dy, dx, by); + + const detail::Expansion abc = ab + bc - ac; + const detail::Expansion bcd = bc + cd - bd; + const detail::Expansion cda = cd + da + ac; + const detail::Expansion dab = da + ab + bd; + + const detail::Expansion adet = bcd * ax * ax + bcd * ay * ay; + const detail::Expansion bdet = cda * bx * -bx + cda * by * -by; + const detail::Expansion cdet = dab * cx * cx + dab * cy * cy; + const detail::Expansion ddet = abc * dx * -dx + abc * dy * -dy; + + const detail::Expansion deter = (adet + bdet) + (cdet + ddet); + return deter.mostSignificant(); + } + + template T incircle(T const*const pa, T const*const pb, T const*const pc, T const*const pd) { + return incircle(pa[0], pa[1], pb[0], pb[1], pc[0], pc[1], pd[0], pd[1]); + } + + //@brief : determine if the 3d point d is above, on, or below the plane defined by a, b, and c + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@return : determinant of {{ax - dx, ay - dy, az - dz}, {bx - dx, by - dy, bz - dz}, {cx - dx, cy - dy, cz - dz}} + //@note : positive, 0, negative result for c above, on, or below the plane defined by a, b, and c + template T orient3d(T const*const pa, T const*const pb, T const*const pc, T const*const pd) { + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(pa[0], pb[1], pb[0], pa[1]); + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(pb[0], pc[1], pc[0], pb[1]); + const detail::Expansion cd = detail::ExpansionBase::TwoTwoDiff(pc[0], pd[1], pd[0], pc[1]); + const detail::Expansion da = detail::ExpansionBase::TwoTwoDiff(pd[0], pa[1], pa[0], pd[1]); + const detail::Expansion ac = detail::ExpansionBase::TwoTwoDiff(pa[0], pc[1], pc[0], pa[1]); + const detail::Expansion bd = detail::ExpansionBase::TwoTwoDiff(pb[0], pd[1], pd[0], pb[1]); + + const detail::Expansion abc = ab + bc - ac; + const detail::Expansion bcd = bc + cd - bd; + const detail::Expansion cda = cd + da + ac; + const detail::Expansion dab = da + ab + bd; + + const detail::Expansion adet = bcd * pa[2]; + const detail::Expansion bdet = cda * -pb[2]; + const detail::Expansion cdet = dab * pc[2]; + const detail::Expansion ddet = abc * -pd[2]; + + const detail::Expansion deter = (adet + bdet) + (cdet + ddet); + return deter.mostSignificant(); + } + + //@brief : determine if the 3d point e is inside, on, or outside the sphere defined by a, b, c, and d + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@param pe: pointer to e as {x, y, z} + //@return : determinant of {{ax - ex, ay - ey, az - ez, (ax - ex)^2 + (ay - ey)^2 + (az - ez)^2}, {bx - ex, by - ey, bz - ez, (bx - ex)^2 + (by - ey)^2 + (bz - ez)^2}, {cx - ex, cy - ey, cz - ez, (cx - ex)^2 + (cy - ey)^2 + (cz - ez)^2}, {dx - ex, dy - ey, dz - ez, (dx - ex)^2 + (dy - ey)^2 + (dz - ez)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T insphere(T const*const pa, T const*const pb, T const*const pc, T const*const pd, T const*const pe) { + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(pa[0], pb[1], pb[0], pa[1]); + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(pb[0], pc[1], pc[0], pb[1]); + const detail::Expansion cd = detail::ExpansionBase::TwoTwoDiff(pc[0], pd[1], pd[0], pc[1]); + const detail::Expansion de = detail::ExpansionBase::TwoTwoDiff(pd[0], pe[1], pe[0], pd[1]); + const detail::Expansion ea = detail::ExpansionBase::TwoTwoDiff(pe[0], pa[1], pa[0], pe[1]); + const detail::Expansion ac = detail::ExpansionBase::TwoTwoDiff(pa[0], pc[1], pc[0], pa[1]); + const detail::Expansion bd = detail::ExpansionBase::TwoTwoDiff(pb[0], pd[1], pd[0], pb[1]); + const detail::Expansion ce = detail::ExpansionBase::TwoTwoDiff(pc[0], pe[1], pe[0], pc[1]); + const detail::Expansion da = detail::ExpansionBase::TwoTwoDiff(pd[0], pa[1], pa[0], pd[1]); + const detail::Expansion eb = detail::ExpansionBase::TwoTwoDiff(pe[0], pb[1], pb[0], pe[1]); + + const detail::Expansion abc = bc * pa[2] + ac * -pb[2] + ab * pc[2]; + const detail::Expansion bcd = cd * pb[2] + bd * -pc[2] + bc * pd[2]; + const detail::Expansion cde = de * pc[2] + ce * -pd[2] + cd * pe[2]; + const detail::Expansion dea = ea * pd[2] + da * -pe[2] + de * pa[2]; + const detail::Expansion eab = ab * pe[2] + eb * -pa[2] + ea * pb[2]; + const detail::Expansion abd = bd * pa[2] + da * pb[2] + ab * pd[2]; + const detail::Expansion bce = ce * pb[2] + eb * pc[2] + bc * pe[2]; + const detail::Expansion cda = da * pc[2] + ac * pd[2] + cd * pa[2]; + const detail::Expansion deb = eb * pd[2] + bd * pe[2] + de * pb[2]; + const detail::Expansion eac = ac * pe[2] + ce * pa[2] + ea * pc[2]; + + const detail::Expansion bcde = (cde + bce) - (deb + bcd); + const detail::Expansion cdea = (dea + cda) - (eac + cde); + const detail::Expansion deab = (eab + deb) - (abd + dea); + const detail::Expansion eabc = (abc + eac) - (bce + eab); + const detail::Expansion abcd = (bcd + abd) - (cda + abc); + + const detail::Expansion adet = bcde * pa[0] * pa[0] + bcde * pa[1] * pa[1] + bcde * pa[2] * pa[2]; + const detail::Expansion bdet = cdea * pb[0] * pb[0] + cdea * pb[1] * pb[1] + cdea * pb[2] * pb[2]; + const detail::Expansion cdet = deab * pc[0] * pc[0] + deab * pc[1] * pc[1] + deab * pc[2] * pc[2]; + const detail::Expansion ddet = eabc * pd[0] * pd[0] + eabc * pd[1] * pd[1] + eabc * pd[2] * pd[2]; + const detail::Expansion edet = abcd * pe[0] * pe[0] + abcd * pe[1] * pe[1] + abcd * pe[2] * pe[2]; + + const detail::Expansion deter = (adet + bdet) + ((cdet + ddet) + edet); + return deter.mostSignificant(); + } + } + + template + const T& Epsilon() + { + static const T epsilon = +#ifdef PREDICATES_CXX11_IS_SUPPORTED + static_cast(std::exp2(-std::numeric_limits::digits)); +#else + static_cast(std::ldexp(T(1), -std::numeric_limits::digits)); +#endif + return epsilon; + } + + template + class Constants { + public: + static const T epsilon, resulterrbound; + static const T ccwerrboundA, ccwerrboundB, ccwerrboundC; + static const T o3derrboundA, o3derrboundB, o3derrboundC; + static const T iccerrboundA, iccerrboundB, iccerrboundC; + static const T isperrboundA, isperrboundB, isperrboundC; + }; + + template const T Constants::epsilon = Epsilon(); + template const T Constants::resulterrbound = (T( 3) + T( 8) * Epsilon()) * Epsilon(); + template const T Constants::ccwerrboundA = (T( 3) + T( 16) * Epsilon()) * Epsilon(); + template const T Constants::ccwerrboundB = (T( 2) + T( 12) * Epsilon()) * Epsilon(); + template const T Constants::ccwerrboundC = (T( 9) + T( 64) * Epsilon()) * Epsilon() * Epsilon(); + template const T Constants::o3derrboundA = (T( 7) + T( 56) * Epsilon()) * Epsilon(); + template const T Constants::o3derrboundB = (T( 3) + T( 28) * Epsilon()) * Epsilon(); + template const T Constants::o3derrboundC = (T(26) + T( 288) * Epsilon()) * Epsilon() * Epsilon(); + template const T Constants::iccerrboundA = (T(10) + T( 96) * Epsilon()) * Epsilon(); + template const T Constants::iccerrboundB = (T( 4) + T( 48) * Epsilon()) * Epsilon(); + template const T Constants::iccerrboundC = (T(44) + T( 576) * Epsilon()) * Epsilon() * Epsilon(); + template const T Constants::isperrboundA = (T(16) + T( 224) * Epsilon()) * Epsilon(); + template const T Constants::isperrboundB = (T( 5) + T( 72) * Epsilon()) * Epsilon(); + template const T Constants::isperrboundC = (T(71) + T(1408) * Epsilon()) * Epsilon() * Epsilon(); + + namespace adaptive { + template T orient2d(T const ax, T const ay, T const bx, T const by, T const cx, T const cy) { + const T acx = ax - cx; + const T bcx = bx - cx; + const T acy = ay - cy; + const T bcy = by - cy; + const T detleft = acx * bcy; + const T detright = acy * bcx; + T det = detleft - detright; + if((detleft < 0) != (detright < 0)) return det; + if(T(0) == detleft || T(0) == detright) return det; + + const T detsum = std::abs(detleft + detright); + T errbound = Constants::ccwerrboundA * detsum; + if(std::abs(det) >= std::abs(errbound)) return det; + + const detail::Expansion B = detail::ExpansionBase::TwoTwoDiff(acx, bcy, acy, bcx); + det = B.estimate(); + errbound = Constants::ccwerrboundB * detsum; + if(std::abs(det) >= std::abs(errbound)) return det; + + const T acxtail = detail::ExpansionBase::MinusTail(ax, cx, acx); + const T bcxtail = detail::ExpansionBase::MinusTail(bx, cx, bcx); + const T acytail = detail::ExpansionBase::MinusTail(ay, cy, acy); + const T bcytail = detail::ExpansionBase::MinusTail(by, cy, bcy); + if(T(0) == acxtail && T(0) == bcxtail && T(0) == acytail && T(0) == bcytail) return det; + + errbound = Constants::ccwerrboundC * detsum + Constants::resulterrbound * std::abs(det); + det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail); + if(std::abs(det) >= std::abs(errbound)) return det; + + const detail::Expansion D = ((B + detail::ExpansionBase::TwoTwoDiff(acxtail, bcy, acytail, bcx)) + detail::ExpansionBase::TwoTwoDiff(acx, bcytail, acy, bcxtail)) + detail::ExpansionBase::TwoTwoDiff(acxtail, bcytail, acytail, bcxtail); + return D.mostSignificant(); + } + + template T orient2d(T const*const pa, T const*const pb, T const*const pc) { + return orient2d(pa[0], pa[1], pb[0], pb[1], pc[0], pc[1]); + } + + template T incircle(T const ax, T const ay, T const bx, T const by, T const cx, T const cy, T const dx, T const dy) { + const T adx = ax - dx; + const T bdx = bx - dx; + const T cdx = cx - dx; + const T ady = ay - dy; + const T bdy = by - dy; + const T cdy = cy - dy; + const T bdxcdy = bdx * cdy; + const T cdxbdy = cdx * bdy; + const T cdxady = cdx * ady; + const T adxcdy = adx * cdy; + const T adxbdy = adx * bdy; + const T bdxady = bdx * ady; + const T alift = adx * adx + ady * ady; + const T blift = bdx * bdx + bdy * bdy; + const T clift = cdx * cdx + cdy * cdy; + T det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady); + const T permanent = (std::abs(bdxcdy) + std::abs(cdxbdy)) * alift + + (std::abs(cdxady) + std::abs(adxcdy)) * blift + + (std::abs(adxbdy) + std::abs(bdxady)) * clift; + T errbound = Constants::iccerrboundA * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(bdx, cdy, cdx, bdy); + const detail::Expansion ca = detail::ExpansionBase::TwoTwoDiff(cdx, ady, adx, cdy); + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(adx, bdy, bdx, ady); + const detail::Expansion adet = bc * adx * adx + bc * ady * ady; + const detail::Expansion bdet = ca * bdx * bdx + ca * bdy * bdy; + const detail::Expansion cdet = ab * cdx * cdx + ab * cdy * cdy; + const detail::Expansion fin1 = adet + bdet + cdet; + det = fin1.estimate(); + errbound = Constants::iccerrboundB * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + + const T adxtail = detail::ExpansionBase::MinusTail(ax, dx, adx); + const T adytail = detail::ExpansionBase::MinusTail(ay, dy, ady); + const T bdxtail = detail::ExpansionBase::MinusTail(bx, dx, bdx); + const T bdytail = detail::ExpansionBase::MinusTail(by, dy, bdy); + const T cdxtail = detail::ExpansionBase::MinusTail(cx, dx, cdx); + const T cdytail = detail::ExpansionBase::MinusTail(cy, dy, cdy); + if(T(0) == adxtail && T(0) == bdxtail && T(0) == cdxtail && T(0) == adytail && T(0) == bdytail && T(0) == cdytail) return det; + + errbound = Constants::iccerrboundC * permanent + Constants::resulterrbound * std::abs(det); + det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) + + (bdx * cdy - bdy * cdx) * (adx * adxtail + ady * adytail) * T(2)) + + ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) + + (cdx * ady - cdy * adx) * (bdx * bdxtail + bdy * bdytail) * T(2)) + + ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) + + (adx * bdy - ady * bdx) * (cdx * cdxtail + cdy * cdytail) * T(2)); + if(std::abs(det) >= std::abs(errbound)) return det; + return exact::incircle(ax, ay, bx, by, cx, cy, dx, dy); + } + + template T incircle(T const*const pa, T const*const pb, T const*const pc, T const*const pd) { + return incircle(pa[0], pa[1], pb[0], pb[1], pc[0], pc[1], pd[0], pd[1]); + } + + //@brief : determine if the 3d point d is above, on, or below the plane defined by a, b, and c + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@return : determinant of {{ax - dx, ay - dy, az - dz}, {bx - dx, by - dy, bz - dz}, {cx - dx, cy - dy, cz - dz}} + //@note : positive, 0, negative result for c above, on, or below the plane defined by a, b, and c + template T orient3d(T const*const pa, T const*const pb, T const*const pc, T const*const pd) { + const T adx = pa[0] - pd[0]; + const T bdx = pb[0] - pd[0]; + const T cdx = pc[0] - pd[0]; + const T ady = pa[1] - pd[1]; + const T bdy = pb[1] - pd[1]; + const T cdy = pc[1] - pd[1]; + const T adz = pa[2] - pd[2]; + const T bdz = pb[2] - pd[2]; + const T cdz = pc[2] - pd[2]; + const T bdxcdy = bdx * cdy; + const T cdxbdy = cdx * bdy; + const T cdxady = cdx * ady; + const T adxcdy = adx * cdy; + const T adxbdy = adx * bdy; + const T bdxady = bdx * ady; + T det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady); + const T permanent = (std::abs(bdxcdy) + std::abs(cdxbdy)) * std::abs(adz) + (std::abs(cdxady) + std::abs(adxcdy)) * std::abs(bdz) + (std::abs(adxbdy) + std::abs(bdxady)) * std::abs(cdz); + T errbound = Constants::o3derrboundA * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(bdx, cdy, cdx, bdy); + const detail::Expansion ca = detail::ExpansionBase::TwoTwoDiff(cdx, ady, adx, cdy); + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(adx, bdy, bdx, ady); + const detail::Expansion fin1 = (bc * adz + ca * bdz) + ab * cdz; + det = fin1.estimate(); + errbound = Constants::o3derrboundB * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + + const T adxtail = detail::ExpansionBase::MinusTail(pa[0], pd[0], adx); + const T bdxtail = detail::ExpansionBase::MinusTail(pb[0], pd[0], bdx); + const T cdxtail = detail::ExpansionBase::MinusTail(pc[0], pd[0], cdx); + const T adytail = detail::ExpansionBase::MinusTail(pa[1], pd[1], ady); + const T bdytail = detail::ExpansionBase::MinusTail(pb[1], pd[1], bdy); + const T cdytail = detail::ExpansionBase::MinusTail(pc[1], pd[1], cdy); + const T adztail = detail::ExpansionBase::MinusTail(pa[2], pd[2], adz); + const T bdztail = detail::ExpansionBase::MinusTail(pb[2], pd[2], bdz); + const T cdztail = detail::ExpansionBase::MinusTail(pc[2], pd[2], cdz); + if(T(0) == adxtail && T(0) == adytail && T(0) == adztail && + T(0) == bdxtail && T(0) == bdytail && T(0) == bdztail && + T(0) == cdxtail && T(0) == cdytail && T(0) == cdztail) return det; + + errbound = Constants::o3derrboundC * permanent + Constants::resulterrbound * std::abs(det); + det += (adz * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx)) + + (bdz * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx)) + + (cdz * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx)); + if(std::abs(det) >= std::abs(errbound)) return det; + + const detail::Expansion bct = detail::ExpansionBase::TwoTwoDiffZeroCheck(bdxtail, cdy, bdytail, cdx) + detail::ExpansionBase::TwoTwoDiffZeroCheck(cdytail, bdx, cdxtail, bdy); + const detail::Expansion cat = detail::ExpansionBase::TwoTwoDiffZeroCheck(cdxtail, ady, cdytail, adx) + detail::ExpansionBase::TwoTwoDiffZeroCheck(adytail, cdx, adxtail, cdy); + const detail::Expansion abt = detail::ExpansionBase::TwoTwoDiffZeroCheck(adxtail, bdy, adytail, bdx) + detail::ExpansionBase::TwoTwoDiffZeroCheck(bdytail, adx, bdxtail, ady); + const detail::Expansion fin2 = fin1 + bct * adz + cat * bdz + abt * cdz + bc * adztail + ca * bdztail + ab * cdztail + + detail::ExpansionBase::ThreeProd( adxtail, bdytail, cdz) + detail::ExpansionBase::ThreeProd( adxtail, bdytail, cdztail) + + detail::ExpansionBase::ThreeProd(-adxtail, cdytail, bdz) + detail::ExpansionBase::ThreeProd(-adxtail, cdytail, bdztail) + + detail::ExpansionBase::ThreeProd( bdxtail, cdytail, adz) + detail::ExpansionBase::ThreeProd( bdxtail, cdytail, adztail) + + detail::ExpansionBase::ThreeProd(-bdxtail, adytail, cdz) + detail::ExpansionBase::ThreeProd(-bdxtail, adytail, cdztail) + + detail::ExpansionBase::ThreeProd( cdxtail, adytail, bdz) + detail::ExpansionBase::ThreeProd( cdxtail, adytail, bdztail) + + detail::ExpansionBase::ThreeProd(-cdxtail, bdytail, adz) + detail::ExpansionBase::ThreeProd(-cdxtail, bdytail, adztail) + + bct * adztail + cat * bdztail + abt * cdztail; + return fin2.mostSignificant(); + } + + //@brief : determine if the 3d point e is inside, on, or outside the sphere defined by a, b, c, and d + //@param pa: pointer to a as {x, y, z} + //@param pb: pointer to b as {x, y, z} + //@param pc: pointer to c as {x, y, z} + //@param pd: pointer to d as {x, y, z} + //@param pe: pointer to e as {x, y, z} + //@return : determinant of {{ax - ex, ay - ey, az - ez, (ax - ex)^2 + (ay - ey)^2 + (az - ez)^2}, {bx - ex, by - ey, bz - ez, (bx - ex)^2 + (by - ey)^2 + (bz - ez)^2}, {cx - ex, cy - ey, cz - ez, (cx - ex)^2 + (cy - ey)^2 + (cz - ez)^2}, {dx - ex, dy - ey, dz - ez, (dx - ex)^2 + (dy - ey)^2 + (dz - ez)^2}} + //@note : positive, 0, negative result for d inside, on, or outside the circle defined by a, b, and c + template T insphere(T const*const pa, T const*const pb, T const*const pc, T const*const pd, T const*const pe) { + T permanent; + const T aex = pa[0] - pe[0]; + const T bex = pb[0] - pe[0]; + const T cex = pc[0] - pe[0]; + const T dex = pd[0] - pe[0]; + const T aey = pa[1] - pe[1]; + const T bey = pb[1] - pe[1]; + const T cey = pc[1] - pe[1]; + const T dey = pd[1] - pe[1]; + const T aez = pa[2] - pe[2]; + const T bez = pb[2] - pe[2]; + const T cez = pc[2] - pe[2]; + const T dez = pd[2] - pe[2]; + { + const T aexbey = aex * bey; + const T bexaey = bex * aey; + const T bexcey = bex * cey; + const T cexbey = cex * bey; + const T cexdey = cex * dey; + const T dexcey = dex * cey; + const T dexaey = dex * aey; + const T aexdey = aex * dey; + const T aexcey = aex * cey; + const T cexaey = cex * aey; + const T bexdey = bex * dey; + const T dexbey = dex * bey; + const T ab = aexbey - bexaey; + const T bc = bexcey - cexbey; + const T cd = cexdey - dexcey; + const T da = dexaey - aexdey; + const T ac = aexcey - cexaey; + const T bd = bexdey - dexbey; + const T abc = aez * bc - bez * ac + cez * ab; + const T bcd = bez * cd - cez * bd + dez * bc; + const T cda = cez * da + dez * ac + aez * cd; + const T dab = dez * ab + aez * bd + bez * da; + const T alift = aex * aex + aey * aey + aez * aez; + const T blift = bex * bex + bey * bey + bez * bez; + const T clift = cex * cex + cey * cey + cez * cez; + const T dlift = dex * dex + dey * dey + dez * dez; + const T det = (dlift * abc - clift * dab) + (blift * cda - alift * bcd); + const T aezplus = std::abs(aez); + const T bezplus = std::abs(bez); + const T cezplus = std::abs(cez); + const T dezplus = std::abs(dez); + const T aexbeyplus = std::abs(aexbey); + const T bexaeyplus = std::abs(bexaey); + const T bexceyplus = std::abs(bexcey); + const T cexbeyplus = std::abs(cexbey); + const T cexdeyplus = std::abs(cexdey); + const T dexceyplus = std::abs(dexcey); + const T dexaeyplus = std::abs(dexaey); + const T aexdeyplus = std::abs(aexdey); + const T aexceyplus = std::abs(aexcey); + const T cexaeyplus = std::abs(cexaey); + const T bexdeyplus = std::abs(bexdey); + const T dexbeyplus = std::abs(dexbey); + permanent = ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift + + ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift + + ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift + + ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift; + const T errbound = Constants::isperrboundA * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + } + + const detail::Expansion ab = detail::ExpansionBase::TwoTwoDiff(aex, bey, bex, aey); + const detail::Expansion bc = detail::ExpansionBase::TwoTwoDiff(bex, cey, cex, bey); + const detail::Expansion cd = detail::ExpansionBase::TwoTwoDiff(cex, dey, dex, cey); + const detail::Expansion da = detail::ExpansionBase::TwoTwoDiff(dex, aey, aex, dey); + const detail::Expansion ac = detail::ExpansionBase::TwoTwoDiff(aex, cey, cex, aey); + const detail::Expansion bd = detail::ExpansionBase::TwoTwoDiff(bex, dey, dex, bey); + const detail::Expansion temp24a = bc * dez + (cd * bez + bd * -cez); + const detail::Expansion temp24b = cd * aez + (da * cez + ac * dez); + const detail::Expansion temp24c = da * bez + (ab * dez + bd * aez); + const detail::Expansion temp24d = ab * cez + (bc * aez + ac * -bez); + const detail::Expansion adet = temp24a * aex * -aex + temp24a * aey * -aey + temp24a * aez * -aez; + const detail::Expansion bdet = temp24b * bex * bex + temp24b * bey * bey + temp24b * bez * bez; + const detail::Expansion cdet = temp24c * cex * -cex + temp24c * cey * -cey + temp24c * cez * -cez; + const detail::Expansion ddet = temp24d * dex * dex + temp24d * dey * dey + temp24d * dez * dez; + const detail::Expansion fin1 = (adet + bdet) + (cdet + ddet); + T det = fin1.estimate(); + T errbound = Constants::isperrboundB * permanent; + if(std::abs(det) >= std::abs(errbound)) return det; + + const T aextail = detail::ExpansionBase::MinusTail(pa[0], pe[0], aex); + const T aeytail = detail::ExpansionBase::MinusTail(pa[1], pe[1], aey); + const T aeztail = detail::ExpansionBase::MinusTail(pa[2], pe[2], aez); + const T bextail = detail::ExpansionBase::MinusTail(pb[0], pe[0], bex); + const T beytail = detail::ExpansionBase::MinusTail(pb[1], pe[1], bey); + const T beztail = detail::ExpansionBase::MinusTail(pb[2], pe[2], bez); + const T cextail = detail::ExpansionBase::MinusTail(pc[0], pe[0], cex); + const T ceytail = detail::ExpansionBase::MinusTail(pc[1], pe[1], cey); + const T ceztail = detail::ExpansionBase::MinusTail(pc[2], pe[2], cez); + const T dextail = detail::ExpansionBase::MinusTail(pd[0], pe[0], dex); + const T deytail = detail::ExpansionBase::MinusTail(pd[1], pe[1], dey); + const T deztail = detail::ExpansionBase::MinusTail(pd[2], pe[2], dez); + if (T(0) == aextail && T(0) == aeytail && T(0) == aeztail && + T(0) == bextail && T(0) == beytail && T(0) == beztail && + T(0) == cextail && T(0) == ceytail && T(0) == ceztail && + T(0) == dextail && T(0) == deytail && T(0) == deztail) return det; + + errbound = Constants::isperrboundC * permanent + Constants::resulterrbound * std::abs(det); + const T abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail); + const T bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail); + const T cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail); + const T daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail); + const T aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail); + const T bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail); + const T ab3 = ab.mostSignificant(); + const T bc3 = bc.mostSignificant(); + const T cd3 = cd.mostSignificant(); + const T da3 = da.mostSignificant(); + const T ac3 = ac.mostSignificant(); + const T bd3 = bd.mostSignificant(); + det += ( ( (bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + + (dex * dex + dey * dey + dez * dez) * ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3)) ) + - ( (aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + + (cex * cex + cey * cey + cez * cez) * ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)) ) ) + + T(2) * ( ( (bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) + - ( (aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3))); + if(std::abs(det) >= std::abs(errbound)) return det; + return exact::insphere(pa, pb, pc, pd, pe); + } + } +} + +#endif diff --git a/include/CDT/include/remove_at.hpp b/include/CDT/include/remove_at.hpp new file mode 100644 index 0000000..8b960b5 --- /dev/null +++ b/include/CDT/include/remove_at.hpp @@ -0,0 +1,55 @@ +#ifndef REMOVE_AT_HPP +#define REMOVE_AT_HPP + +// check if c++11 is supported +#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) +#define REMOVE_AT_CXX11_IS_SUPPORTED +#elif !defined(__cplusplus) && !defined(_MSC_VER) +typedef char couldnt_parse_cxx_standard[-1]; +#endif + +#include +#include + +/*! + * Remove elements in the range [first; last) with indices from the sorted + * unique range [ii_first, ii_last) + */ +template +inline ForwardIt remove_at( + ForwardIt first, + ForwardIt last, + SortUniqIndsFwdIt ii_first, + SortUniqIndsFwdIt ii_last) +{ + if(ii_first == ii_last) // no indices-to-remove are given + return last; + typedef typename std::iterator_traits::difference_type diff_t; + typedef typename std::iterator_traits::value_type ind_t; + ForwardIt destination = first + static_cast(*ii_first); + while(ii_first != ii_last) + { + // advance to an index after a chunk of elements-to-keep + for(ind_t cur = *ii_first++; ii_first != ii_last; ++ii_first) + { + const ind_t nxt = *ii_first; + if(nxt - cur > 1) + break; + cur = nxt; + } + // move the chunk of elements-to-keep to new destination + const ForwardIt source_first = + first + static_cast(*(ii_first - 1)) + 1; + const ForwardIt source_last = + ii_first != ii_last ? first + static_cast(*ii_first) : last; +#ifdef REMOVE_AT_CXX11_IS_SUPPORTED + std::move(source_first, source_last, destination); +#else + std::copy(source_first, source_last, destination); // c++98 version +#endif + destination += source_last - source_first; + } + return destination; +} + +#endif // REMOVE_AT_HPP diff --git a/include/CDT/src/CDT.cpp b/include/CDT/src/CDT.cpp new file mode 100644 index 0000000..9cad8ca --- /dev/null +++ b/include/CDT/src/CDT.cpp @@ -0,0 +1,80 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +/** + * @file + * Explicit template instantiations for `float` and `double` coordinate types. + * + * Explicit instantiations are used when consuming as a compiled library. + * In almost all of the cases 'float' and 'double' are sufficient. + * Feel free to extend this with custom data types if needed. + */ + +#ifdef CDT_USE_AS_COMPILED_LIBRARY + +#include "CDT.hpp" +#include "CDTUtils.hpp" +#include "InitializeWithGrid.h" +#include "Triangulation.hpp" +#include "VerifyTopology.h" + +namespace CDT +{ + +template struct CDT_EXPORT V2d; +template struct CDT_EXPORT V2d; + +template struct CDT_EXPORT Box2d; +template struct CDT_EXPORT Box2d; + +template class CDT_EXPORT Triangulation; +template class CDT_EXPORT Triangulation; + +template CDT_EXPORT DuplicatesInfo +RemoveDuplicates(std::vector >&); +template CDT_EXPORT DuplicatesInfo +RemoveDuplicates(std::vector >&); + +template CDT_EXPORT DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector >&, + std::vector&); +template CDT_EXPORT DuplicatesInfo RemoveDuplicatesAndRemapEdges( + std::vector >&, + std::vector&); + +template CDT_EXPORT bool +verifyTopology(const CDT::Triangulation&); +template CDT_EXPORT bool +verifyTopology(const CDT::Triangulation&); + +template CDT_EXPORT void initializeWithRegularGrid( + float, + float, + float, + float, + std::size_t, + std::size_t, + Triangulation&); +template CDT_EXPORT void initializeWithRegularGrid( + double, + double, + double, + double, + std::size_t, + std::size_t, + Triangulation&); + +template +CDT_EXPORT float distance(const V2d& a, const V2d& b); +template +CDT_EXPORT double distance(const V2d& a, const V2d& b); + +template +CDT_EXPORT float distanceSquared(const V2d& a, const V2d& b); +template +CDT_EXPORT double distanceSquared(const V2d& a, const V2d& b); + +} // namespace CDT + +#endif diff --git a/include/CDT/tests/cdt.test.cpp b/include/CDT/tests/cdt.test.cpp new file mode 100644 index 0000000..fc27977 --- /dev/null +++ b/include/CDT/tests/cdt.test.cpp @@ -0,0 +1,1252 @@ +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace CDT; + +constexpr bool updateFiles = false; + +using CoordTypes = std::tuple; +template +using Vertices = std::vector >; + +#define ENHANCED_THROW(ExceptionType, message) \ + throw ExceptionType( \ + std::string(message) + " in " + __FILE__ + ':' + \ + std::to_string(__LINE__) + ':' + __func__) + +namespace CDT +{ + +bool operator<(const Edge& lhs, const Edge& rhs) +{ + return lhs.v1() != rhs.v1() ? lhs.v1() < rhs.v1() : lhs.v2() < rhs.v2(); +} + +bool operator<(const Triangle& lhs, const Triangle& rhs) +{ + for(Index i(0); i < Index(3); ++i) + { + if(lhs.vertices[i] == rhs.vertices[i]) + continue; + return lhs.vertices[i] < rhs.vertices[i]; + } + return false; +} + +} // namespace CDT + +namespace +{ + +template +EdgeUSet extractAllEdges(const CDT::Triangulation& cdt) +{ + EdgeUSet out; + for(const auto& t : cdt.triangles) + { + for(std::size_t i = 0; i < 3; ++i) + { + out.insert(Edge(t.vertices[i], t.vertices[(i + 1) % 3])); + } + } + return out; +} + +std::ostream& operator<<(std::ostream& o, const Edge& e) +{ + o << e.v1() << " " << e.v2() << '\n'; + return o; +} + +[[maybe_unused]] std::ostream& +operator<<(std::ostream& o, const std::vector& edges) +{ + for(const auto& e : edges) + o << e; + return o; +} + +[[maybe_unused]] std::vector sortedEdges(const EdgeUSet& edges) +{ + std::vector out(edges.begin(), edges.end()); + std::sort(out.begin(), out.end()); + return out; +} + +template +std::pair, std::vector > +readInputFromFile(const std::string& fileName) +{ + std::ifstream f(fileName); + if(!f.is_open()) + { + ENHANCED_THROW( + std::runtime_error, "Could not open file '" + fileName + '\''); + } + f.precision(std::numeric_limits::digits10 + 1); + IndexSizeType nVerts; + IndexSizeType nEdges; + f >> nVerts >> nEdges; + + // Read vertices + Vertices vv; + vv.reserve(nVerts); + for(std::size_t i = 0; i < nVerts; ++i) + { + T x, y; + f >> x >> y; + vv.emplace_back(x, y); + } + // Read edges + std::vector ee; + for(std::size_t i = 0; i < nEdges; ++i) + { + VertInd v1, v2; + f >> v1 >> v2; + ee.emplace_back(v1, v2); + } + return std::make_pair(vv, ee); +} + +template +void saveInputToFile( + const std::string& fileName, + const Vertices& vv, + const std::vector& ee) +{ + std::ofstream f(fileName); + if(!f.is_open()) + { + ENHANCED_THROW(std::runtime_error, "Could not open file"); + } + IndexSizeType nVerts; + IndexSizeType nEdges; + f << vv.size() << ' ' << ee.size() << '\n'; + for(const auto& v : vv) + { + f << v.x << ' ' << v.y << '\n'; + } + for(const auto& e : ee) + { + f << e.v1() << ' ' << e.v2() << '\n'; + } +} + +template +void inputFromFile( + CDT::Triangulation& cdt, + const std::string& filename) +{ + const auto [vv, ee] = readInputFromFile(filename); + cdt.insertVertices(vv); + cdt.insertEdges(ee); +} + +template +void saveToOff( + const std::string& filename, + const CDT::Triangulation& cdt) +{ + std::ofstream fout(filename); + if(!fout.is_open()) + { + ENHANCED_THROW( + std::runtime_error, "Save can't open file for writing OFF"); + } + fout.precision(std::numeric_limits::digits10 + 1); + fout << "OFF\n"; + fout << cdt.vertices.size() << ' ' << cdt.triangles.size() << " 0\n"; + // Write vertices + for(const auto& v : cdt.vertices) + { + fout << v.x << ' ' << v.y << ' ' << 0 << "\n"; + } + // Write faces + for(const auto& t : cdt.triangles) + { + fout << "3 " << t.vertices[0] << ' ' << t.vertices[1] << ' ' + << t.vertices[2] << "\n"; + } + fout.close(); +} + +} // namespace + +TEMPLATE_LIST_TEST_CASE("Triangulation Tests", "", CoordTypes) +{ + auto cdt = Triangulation(); + cdt.insertVertices(Vertices{{0, 0}, {1, 1}, {3, 1}, {3, 0}}); + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(cdt.vertices.size() == std::size_t(4 + 3)); + REQUIRE(cdt.fixedEdges.size() == std::size_t(0)); + REQUIRE(cdt.triangles.size() == std::size_t(9)); + SECTION("Edges have indices offsetted by 3 because of super-triangle") + { + const auto edges = extractAllEdges(cdt); + REQUIRE(edges.count(Edge(VertInd(1 + 3), VertInd(3 + 3)))); + } + SECTION( + "Erasing super-triangle affects indices in edges and triangle count") + { + cdt.eraseSuperTriangle(); + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(cdt.triangles.size() == std::size_t(2)); + const auto edges = extractAllEdges(cdt); + REQUIRE(edges.count(Edge(VertInd(1), VertInd(3)))); + } + SECTION("Adding a constraint edge") + { + const auto constraintEdge = Edge(VertInd(0), VertInd(2)); + cdt.insertEdges(std::vector{constraintEdge}); + cdt.eraseSuperTriangle(); + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(cdt.vertices.size() == std::size_t(4)); + REQUIRE(cdt.fixedEdges.size() == std::size_t(1)); + REQUIRE(cdt.triangles.size() == std::size_t(2)); + REQUIRE(cdt.fixedEdges.count(constraintEdge)); + const auto edges = extractAllEdges(cdt); + REQUIRE(edges.count(constraintEdge)); + } +} + +namespace +{ + +Triangle makeSmallestIndexFirst(const Triangle& t) +{ + const auto& vv = t.vertices; + const Index iStart = vv[0] < vv[1] ? Index(vv[0] < vv[2] ? 0 : 2) + : Index(vv[1] < vv[2] ? 1 : 2); + Triangle out; + for(Index i(0); i < Index(3); ++i) + { + const auto j = Index((iStart + i) % 3); + out.vertices[i] = t.vertices[j]; + out.neighbors[i] = t.neighbors[j]; + } + return out; +} + +// return mapping of index in a not sorted array to index in sorted array +template +auto sort_mapping(RandomIt cbegin, RandomIt cend) +{ + auto len = std::distance(cbegin, cend); + std::vector perm(len); + std::iota(perm.begin(), perm.end(), 0U); + std::sort(perm.begin(), perm.end(), [&](const size_t& a, const size_t& b) { + return *(cbegin + a) < *(cbegin + b); + }); + std::vector map(len); + for(size_t i = 0; i < perm.size(); ++i) + map[perm[i]] = i; + return map; +} + +/// Triangulation topology stored in a sorted way that makes it easy to perform +/// baseline comparisons +struct TriangulationTopo +{ + TriangleVec triangles; + EdgeVec fixedEdges; + std::map overlapCount; + std::map pieceToOriginals; + + TriangulationTopo() = default; + + template + TriangulationTopo(const Triangulation& cdt) + : triangles(cdt.triangles) + , fixedEdges(cdt.fixedEdges.begin(), cdt.fixedEdges.end()) + , overlapCount(cdt.overlapCount.begin(), cdt.overlapCount.end()) + , pieceToOriginals( + cdt.pieceToOriginals.begin(), + cdt.pieceToOriginals.end()) + { + for(auto& t : triangles) + { + t = makeSmallestIndexFirst(t); + } + std::sort(fixedEdges.begin(), fixedEdges.end()); + const auto sortMapping = + sort_mapping(triangles.begin(), triangles.end()); + std::sort(triangles.begin(), triangles.end()); + // remap neighbor indices according to new sorted order + for(auto& t : triangles) + { + for(auto& n : t.neighbors) + { + if(n != noNeighbor) + { + n = TriInd(sortMapping[n]); + } + } + } + } + + void read(std::istream& f) + { + if(!f.good()) + { + ENHANCED_THROW(std::runtime_error, "Could not open file"); + } + std::size_t size; + + triangles = TriangleVec(); + f >> size; + triangles.resize(size); + for(auto& t : triangles) + { + for(auto& v : t.vertices) + f >> v; + for(auto& n : t.neighbors) + f >> n; + } + + fixedEdges = EdgeVec(); + f >> size; + fixedEdges.reserve(size); + VertInd v1, v2; + for(IndexSizeType i = 0; i < size; ++i) + { + f >> v1 >> v2; + fixedEdges.emplace_back(v1, v2); + } + + overlapCount = std::map(); + BoundaryOverlapCount boc; + f >> size; + for(IndexSizeType i = 0; i < size; ++i) + { + f >> v1 >> v2 >> boc; + overlapCount[Edge(v1, v2)] = boc; + } + + pieceToOriginals = std::map(); + f >> size; + std::size_t edgeVecSize; + for(IndexSizeType i = 0; i < size; ++i) + { + f >> v1 >> v2 >> edgeVecSize; + const auto e = Edge(v1, v2); + auto edges = EdgeVec(); + edges.reserve(edgeVecSize); + for(IndexSizeType j = 0; j < edgeVecSize; ++j) + { + f >> v1 >> v2; + edges.emplace_back(v1, v2); + } + pieceToOriginals[e] = edges; + } + } + + void write(std::ostream& f) const + { + if(!f.good()) + { + ENHANCED_THROW(std::runtime_error, "Could not open file"); + } + f << triangles.size() << '\n'; + for(const auto& t : triangles) + { + const auto& vv = t.vertices; + const auto& nn = t.neighbors; + f << vv[0] << ' ' << vv[1] << ' ' << vv[2] << " " << nn[0] << ' ' + << nn[1] << ' ' << nn[2] << '\n'; + } + f << '\n' << fixedEdges.size() << '\n'; + for(const auto& e : fixedEdges) + { + f << e.v1() << ' ' << e.v2() << '\n'; + } + f << '\n' << overlapCount.size() << '\n'; + for(const auto& oc : overlapCount) + { + f << oc.first.v1() << ' ' << oc.first.v2() << " " << oc.second + << '\n'; + } + f << '\n' << pieceToOriginals.size() << '\n'; + for(const auto& pto : pieceToOriginals) + { + f << pto.first.v1() << ' ' << pto.first.v2() << '\n' + << " " << pto.second.size() << '\n'; + for(const auto& e : pto.second) + { + f << " " << e.v1() << ' ' << e.v2() << '\n'; + } + } + } + void writeToFile(const std::string& filename) const + { + std::ofstream f(filename); + if(!f.is_open()) + { + ENHANCED_THROW(std::runtime_error, "Can't open file for writing"); + } + write(f); + } +}; + +template +std::string topologyString(const CDT::Triangulation& cdt) +{ + std::ostringstream out; + TriangulationTopo(cdt).write(out); + return out.str(); +} + +template +void topologyToFile( + const std::string& filename, + const CDT::Triangulation& cdt) +{ + std::ofstream out(filename); + TriangulationTopo(cdt).write(out); +} + +std::string topologyString(const std::string& filename) +{ + std::ifstream ifs(filename); + return std::string(std::istreambuf_iterator(ifs), {}); +} + +} // namespace + +TEMPLATE_LIST_TEST_CASE( + "Test triangulation topology read/write", + "", + CoordTypes) +{ + const auto [vv, ee] = + readInputFromFile("inputs/corner cases.txt"); + auto cdt = Triangulation( + CDT::VertexInsertionOrder::Auto, + CDT::IntersectingConstraintEdges::TryResolve, + 0.); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + cdt.eraseSuperTriangle(); + const auto topo = TriangulationTopo(cdt); + std::ostringstream out_s; + topo.write(out_s); + std::istringstream in_s(out_s.str()); + TriangulationTopo topo2; + topo2.read(in_s); + std::ostringstream out_s2; + topo2.write(out_s2); + REQUIRE(out_s.str() == out_s2.str()); +} + +namespace +{ + +std::string to_string(const VertexInsertionOrder::Enum& vio) +{ + switch(vio) + { + case VertexInsertionOrder::AsProvided: + return "as-provided"; + case VertexInsertionOrder::Auto: + return "auto"; + } + ENHANCED_THROW(std::runtime_error, "Reached unreachable"); +} + +std::string to_string(const IntersectingConstraintEdges::Enum& ice) +{ + switch(ice) + { + case IntersectingConstraintEdges::DontCheck: + return "no-check"; + case IntersectingConstraintEdges::NotAllowed: + return "ignore"; + case IntersectingConstraintEdges::TryResolve: + return "resolve"; + } + ENHANCED_THROW(std::runtime_error, "Reached unreachable"); +} + +} // namespace + +TEMPLATE_LIST_TEST_CASE( + "Ground truth tests: constraint triangulation", + "", + CoordTypes) +{ + const auto inputFile = GENERATE( + as{}, + "Capital A.txt", + "cdt.txt", + "ditch.txt", + "double-hanging.txt", + "gh_issue.txt", + "guitar no box.txt", + "Hanging.txt", + "Hanging2.txt", + "island.txt", + "issue-142-double-hanging-edge.txt", + "issue-42-full-boundary-overlap.txt", + "issue-42-hole-overlaps-bondary.txt", + "issue-42-multiple-boundary-overlaps-conform-to-edge.txt", + "issue-42-multiple-boundary-overlaps.txt", + "issue-65-wrong-edges.txt", + "kidney.txt", + "Letter u.txt", + "OnEdge.txt", + "overlapping constraints.txt", + "overlapping constraints2.txt", + "points_on_constraint_edge.txt", + "ProblematicCase1.txt", + "regression_issue_38_wrong_hull_small.txt", + "square with crack.txt", + "test_data_small.txt", + "triple-hanging-flipped.txt", + "triple-hanging.txt", + "unit square.txt"); + + const auto typeSpecific = std::unordered_set{ + "guitar no box.txt", + "issue-42-full-boundary-overlap.txt", + "issue-42-multiple-boundary-overlaps-conform-to-edge.txt", + "issue-42-multiple-boundary-overlaps.txt", + "overlapping constraints.txt"}; + + const std::string typeString = + typeSpecific.count(inputFile) + ? sizeof(TestType) == sizeof(double) ? "f64_" : "f32_" + : ""; + + const auto order = + GENERATE(VertexInsertionOrder::AsProvided, VertexInsertionOrder::Auto); + const auto intersectingEdgesStrategy = GENERATE( + IntersectingConstraintEdges::NotAllowed, + IntersectingConstraintEdges::TryResolve); + const auto minDistToConstraintEdge = 0.; + + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + const DuplicatesInfo di = FindDuplicates( + vv.begin(), vv.end(), getX_V2d, getY_V2d); + INFO("Input file is '" + inputFile + "'"); + REQUIRE(di.duplicates.empty()); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(CDT::eachVertexHasNeighborTriangle(cdt)); + + // make true to update expected files (development purposes only) + const auto outputFileBase = "expected/" + + inputFile.substr(0, inputFile.size() - 4) + + "__" + typeString + to_string(order) + "_" + + to_string(intersectingEdgesStrategy); + SECTION("With super-triangle") + { + const auto outFile = outputFileBase + "_all.txt"; + INFO("Output file is '" + outFile + "'"); + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } + } + SECTION("Erase super-triangle") + { + const auto outFile = outputFileBase + "_super.txt"; + INFO("Output file is '" + outFile + "'"); + cdt.eraseSuperTriangle(); + if(updateFiles) + topologyToFile(outFile, cdt); + else + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } + SECTION("Erase outer triangles") + { + const auto outFile = outputFileBase + "_outer.txt"; + INFO("Output file is '" + outFile + "'"); + cdt.eraseOuterTriangles(); + if(updateFiles) + topologyToFile(outFile, cdt); + else + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } + SECTION("Auto detect holes and erase outer triangles") + { + const auto outFile = outputFileBase + "_auto.txt"; + INFO("Output file is '" + outFile + "'"); + cdt.eraseOuterTrianglesAndHoles(); + if(updateFiles) + topologyToFile(outFile, cdt); + else + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEMPLATE_LIST_TEST_CASE( + "Ground truth tests: conforming triangulation", + "", + CoordTypes) +{ + const auto inputFile = GENERATE( + as{}, + "Capital A.txt", + "cdt.txt", + "ditch.txt", + "double-hanging.txt", + "gh_issue.txt", + "guitar no box.txt", + "Hanging2.txt", + "issue-142-double-hanging-edge.txt", + "issue-42-multiple-boundary-overlaps.txt", + "points_on_constraint_edge.txt", + "ProblematicCase1.txt", + "triple-hanging-flipped.txt", + "triple-hanging.txt", + "unit square.txt"); + + const auto typeSpecific = std::unordered_set{ + "guitar no box.txt", + "issue-42-multiple-boundary-overlaps.txt", + }; + + const std::string typeString = + typeSpecific.count(inputFile) + ? sizeof(TestType) == sizeof(double) ? "f64_" : "f32_" + : ""; + + const auto order = VertexInsertionOrder::Auto; + const auto intersectingEdgesStrategy = + IntersectingConstraintEdges::NotAllowed; + const auto minDistToConstraintEdge = 0.; + + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + const DuplicatesInfo di = FindDuplicates( + vv.begin(), vv.end(), getX_V2d, getY_V2d); + INFO("Input file is '" + inputFile + "'"); + REQUIRE(di.duplicates.empty()); + cdt.insertVertices(vv); + cdt.conformToEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + + // make true to update expected files (development purposes only) + const auto outputFileBase = + "expected/" + inputFile.substr(0, inputFile.size() - 4) + + "__conforming_" + typeString + to_string(order) + "_" + + to_string(intersectingEdgesStrategy); + { + const auto outFile = outputFileBase + "_auto.txt"; + INFO("Output file is '" + outFile + "'"); + cdt.eraseOuterTrianglesAndHoles(); + if(updateFiles) + topologyToFile(outFile, cdt); + else + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEMPLATE_LIST_TEST_CASE("Ground truth tests: crossing edges", "", CoordTypes) +{ + const auto inputFile = GENERATE( + as{}, + "crossing-edges.txt", + "issue-148-crossing-edges.txt"); + + const auto order = VertexInsertionOrder::Auto; + const auto intersectingEdgesStrategy = + IntersectingConstraintEdges::TryResolve; + const auto minDistToConstraintEdge = 0.; + + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + const DuplicatesInfo di = FindDuplicates( + vv.begin(), vv.end(), getX_V2d, getY_V2d); + INFO("Input file is '" + inputFile + "'"); + REQUIRE(di.duplicates.empty()); + const auto triangulationType = + GENERATE(as{}, "", "conforming_"); + cdt.insertVertices(vv); + triangulationType == "" ? cdt.insertEdges(ee) : cdt.conformToEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(CDT::eachVertexHasNeighborTriangle(cdt)); + // make true to update expected files (development purposes only) + const auto outputFileBase = "expected/" + + inputFile.substr(0, inputFile.size() - 4) + + "__" + triangulationType + to_string(order) + + "_" + to_string(intersectingEdgesStrategy); + { + const auto outFile = outputFileBase + "_all.txt"; + INFO("Output file is '" + outFile + "'"); + if(updateFiles) + topologyToFile(outFile, cdt); + else + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEMPLATE_LIST_TEST_CASE("Inserting vertices in two batches", "", CoordTypes) +{ + const auto [vv, ee] = + readInputFromFile("inputs/Constrained Sweden.txt"); + auto cdt = Triangulation( + CDT::VertexInsertionOrder::Auto, + CDT::IntersectingConstraintEdges::TryResolve, + 0.); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + cdt.eraseOuterTrianglesAndHoles(); + + const auto halfSize = vv.size() / 2; + const auto vv_lo = Vertices(vv.begin(), vv.begin() + halfSize); + const auto vv_hi = Vertices(vv.begin() + halfSize, vv.end()); + auto cdtBatches = Triangulation( + CDT::VertexInsertionOrder::Auto, + CDT::IntersectingConstraintEdges::TryResolve, + 0.); + cdtBatches.insertVertices(vv_lo); + cdtBatches.insertVertices(vv_hi); + cdtBatches.insertEdges(ee); + cdtBatches.eraseOuterTrianglesAndHoles(); + + REQUIRE(topologyString(cdt) == topologyString(cdtBatches)); +} + +TEMPLATE_LIST_TEST_CASE("Benchmarks", "[benchmark][.]", CoordTypes) +{ + SECTION("Constrained Sweden") + { + Vertices vv; + std::vector ee; + tie(vv, ee) = + readInputFromFile("inputs/Constrained Sweden.txt"); + BENCHMARK("Constrained Sweden (vertices only): As Provided") + { + auto cdt = + Triangulation(VertexInsertionOrder::AsProvided); + cdt.insertVertices(vv); + }; + BENCHMARK("Constrained Sweden (vertices only): Auto") + { + auto cdt = Triangulation(VertexInsertionOrder::Auto); + cdt.insertVertices(vv); + }; + BENCHMARK("Constrained Sweden: As Provided") + { + auto cdt = + Triangulation(VertexInsertionOrder::AsProvided); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + }; + BENCHMARK("Constrained Sweden: Auto") + { + auto cdt = Triangulation(VertexInsertionOrder::Auto); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + }; + } +} + +TEST_CASE("Don't flip constraint edge when resolving intersection", "") +{ + const auto inputFile = + std::string("dont_flip_constraint_when_resolving_intersection.txt"); + const auto order = VertexInsertionOrder::AsProvided; + const auto intersectingEdgesStrategy = + IntersectingConstraintEdges::TryResolve; + const auto minDistToConstraintEdge = 1e-6; + const auto outFile = "expected/" + + inputFile.substr(0, inputFile.size() - 4) + "__f64_" + + to_string(order) + "_" + + to_string(intersectingEdgesStrategy) + "_all.txt"; + + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE( + "Regression: resolving edges intersection with a hanging edge in a " + "pseudo-polygon", + "") +{ + const auto inputFile = std::string("HangingIntersection.txt"); + const auto order = VertexInsertionOrder::Auto; + const auto intersectingEdgesStrategy = + IntersectingConstraintEdges::TryResolve; + const auto minDistToConstraintEdge = 1e-6; + const auto outFile = "expected/" + + inputFile.substr(0, inputFile.size() - 4) + "__f64_" + + to_string(order) + "_" + + to_string(intersectingEdgesStrategy) + "_all.txt"; + + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE("Regression: multiple hanging edges", "") +{ + const auto inputFile = std::string("HangingIntersection.txt"); + const auto order = VertexInsertionOrder::Auto; + const auto intersectingEdgesStrategy = + IntersectingConstraintEdges::TryResolve; + const auto minDistToConstraintEdge = 1e-6; + const auto outFile = "expected/" + + inputFile.substr(0, inputFile.size() - 4) + "__f64_" + + to_string(order) + "_" + + to_string(intersectingEdgesStrategy) + "_all.txt"; + + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + auto cdt = Triangulation( + order, intersectingEdgesStrategy, minDistToConstraintEdge); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); + + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE("Regression test", "") +{ + const auto inputFile = std::string("debug2.txt"); + const auto [vv, ee] = readInputFromFile("inputs/" + inputFile); + auto cdt = Triangulation(VertexInsertionOrder::Auto); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); +} + +TEST_CASE("Regression test issue #154 (1)", "") +{ + // Very large coordinate values lead to wrong super-triangle coordinates due + // to the floating-point rounding + auto cdt = Triangulation{}; + cdt.insertVertices({ + {0.0, 1e38}, + {1.0, 1e38}, + }); + REQUIRE(CDT::verifyTopology(cdt)); + const auto outFile = "expected/154_1.txt"; + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE("Regression test issue #154 (2)", "") +{ + // Explanation: There was an incorrect assumptions that there are no 'loops' + // in the pseudo-polygons, only 'hanging' edges. The loops are possible as + // shown by this test case. + auto cdt = Triangulation{}; + cdt.insertVertices({ + {2.0, -2.18933983E-5}, + {-0.0896810815, -2.18407786E-5}, + {-2.19008489E-5, -7.64692231E-6}, + {8.73939061E-5, 0.00568488613}, + {-0.00142463227, -0.00142461748}, + {-7.67273832E-6, 8.7602064E-5}, + {0.00569847599, -0.00142463227}, + {-2.18156383E-5, -7.6295637E-6}, + }); + REQUIRE(CDT::verifyTopology(cdt)); + cdt.insertEdges({ + {VertInd(0), VertInd(1)}, + }); + REQUIRE(CDT::verifyTopology(cdt)); + const auto outFile = "expected/154_2.txt"; + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE("Regression test issue #154 (3)", "") +{ + // Explanation: There was an incorrect assumptions that there are no 'loops' + // in the pseudo-polygons, only 'hanging' edges. The loops are possible as + // shown by this test case. + auto cdt = Triangulation{}; + cdt.insertVertices({ + {-2.0, 1.47656155}, + {-6.40527344, -40.4999084}, + {0.0, -7.96960115}, + {-2.00152564, 1.46877956}, + {-2.70361328, -7.99999619}, + {-2.70465064, -7.99901962}, + {-7.97778273, -19.3754253}, + {7.96885204, -5.37488127}, + {-7.97180128, -39.7499695}, + }); + cdt.insertEdges({ + {VertInd(0), VertInd(8)}, + }); + REQUIRE(CDT::verifyTopology(cdt)); + const auto outFile = "expected/154_3.txt"; + if(updateFiles) + topologyToFile(outFile, cdt); + else + { + REQUIRE(topologyString(cdt) == topologyString(outFile)); + } +} + +TEST_CASE("Regression test: hanging edge in pseudo-poly", "") +{ + auto [vv, ee] = readInputFromFile("inputs/hanging3.txt"); + auto cdt = Triangulation{}; + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(CDT::verifyTopology(cdt)); +} + +TEST_CASE("Regression test #174: super-triangle of tiny bounding box", "") +{ + auto cdt = Triangulation{}; + const auto vv = Vertices{ + {{45802.2779561576462583616375923, 169208.540894783218391239643097}, + {45802.2779561576317064464092255, 169208.540894783218391239643097}, + {45802.2779561576462583616375923, 169208.540894783247495070099831}}, + }; + REQUIRE_NOTHROW(cdt.insertVertices(vv)); + REQUIRE(CDT::verifyTopology(cdt)); + cdt.eraseSuperTriangle(); + REQUIRE(cdt.triangles.size() == std::size_t(1)); +} + +#ifdef CDT_ENABLE_CALLBACK_HANDLER + +TEST_CASE("Callbacks test: count number of callback calls") +{ + auto [vv, ee] = readInputFromFile("inputs/Capital A.txt"); + auto cdt = Triangulation(); + // REQUIRE(sizeof(cdt) == 368); + +// parameter names are used for documentation purposes, even if they are un-used +// in the interface's default implementation +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" + struct CallbackHandler final : public CDT::ICallbackHandler + { + void onAddSuperTriangle() override + { + ++nAddedTriangles; + nAddedVertices += 3; + } + + void onInsertVertexInsideTriangle( + const TriInd iRepurposedTri, + const TriInd iNewTri1, + const TriInd iNewTri2) override + { + ++nModifiedTriangles; + nAddedTriangles += 2; + } + + void onInsertVertexOnEdge( + const TriInd iRepurposedTri1, + const TriInd iRepurposedTri2, + const TriInd iNewTri1, + const TriInd iNewTri2) override + { + nModifiedTriangles += 2; + nAddedTriangles += 2; + } + + virtual void onFlipEdge(const TriInd, const TriInd) + { + nModifiedTriangles += 2; + } + + void onAddVertexStart( + const VertInd iV, + const AddVertexType::Enum vertexType) override + { + ++nAddedVertices; + } + + void onAddEdgeStart(const Edge& edge) override + { + ++nAddedEdges; + } + + void onReTriangulatePolygon(const std::vector& tris) override + { + nModifiedTriangles += tris.size(); + } + + std::size_t nAddedVertices = 0; + std::size_t nModifiedTriangles = 0; + std::size_t nAddedTriangles = 0; + std::size_t nAddedEdges = 0; + }; + +// parameter names are used for documentation purposes, even if they are +// un-used in the interface's default implementation +#pragma GCC diagnostic pop + + CallbackHandler callbackHandler; + cdt.setCallbackHandler(&callbackHandler); + + try + { + cdt.insertVertices(vv); + cdt.insertEdges(ee); + } + catch(...) + { + REQUIRE(false); + } + REQUIRE(CDT::verifyTopology(cdt)); + REQUIRE(callbackHandler.nAddedVertices == 32); + REQUIRE( + callbackHandler.nAddedVertices == + vv.size() + CDT::nSuperTriangleVertices); + REQUIRE(callbackHandler.nModifiedTriangles == 168); + REQUIRE(callbackHandler.nAddedTriangles == 59); + REQUIRE(callbackHandler.nAddedTriangles == vv.size() * 2 + 1); + REQUIRE(callbackHandler.nAddedEdges == ee.size()); +} + +TEST_CASE("Callbacks test: test aborting the calculation") +{ + auto [vv, ee] = readInputFromFile("inputs/Capital A.txt"); + SECTION("Aborting vertex insertion") + { + auto cdt = Triangulation(); + struct CallbackHandler final : public CDT::ICallbackHandler + { + void + onAddVertexStart(const VertInd, const AddVertexType::Enum) override + { + ++n; + } + bool isAbortCalculation() const override + { + return n >= 17; + } + int n = 0; + }; + CallbackHandler callbackHandler; + cdt.setCallbackHandler(&callbackHandler); + + cdt.insertVertices(vv); + REQUIRE(callbackHandler.n == 17); + } + SECTION("Aborting constraint edge insertion") + { + struct CallbackHandler final : public CDT::ICallbackHandler + { + void onAddEdgeStart(const Edge& /*edge*/) override + { + ++n; + } + bool isAbortCalculation() const override + { + return n >= 17; + } + int n = 0; + }; + + SECTION("Constraint triangulation") + { + auto cdt = Triangulation(); + CallbackHandler callbackHandler; + cdt.setCallbackHandler(&callbackHandler); + cdt.insertVertices(vv); + cdt.insertEdges(ee); + REQUIRE(callbackHandler.n == 17); + } + SECTION("Conforming triangulation") + { + auto cdt = Triangulation(); + CallbackHandler callbackHandler; + cdt.setCallbackHandler(&callbackHandler); + cdt.insertVertices(vv); + cdt.conformToEdges(ee); + REQUIRE(callbackHandler.n == 17); + } + } +} + +#endif + +TEST_CASE("KDtree regression (#200)") +{ + const auto target = V2d(153.63, -30.09); + const auto points = std::vector >{ + V2d(168.67, -122.39), // approx distance to target: 93.52 + V2d(-25.12, 109.06), // approx distance to target: 226.53 + V2d(178.36, 40.75), // approx distance to target: 75.03 + V2d(161.07, 86.2), // approx distance to target: 116.53 + }; + + auto tree = KDTree::KDTree( + V2d(-180, -180), V2d(180, 180)); + double min_distance = std::numeric_limits::max(); + for(VertInd i(0); i < points.size(); ++i) + { + tree.insert(i, points); + min_distance = std::min(min_distance, distance(target, points[i])); + } + + const auto [matchVec, matchIdx] = tree.nearest(target, points); + REQUIRE(min_distance == distance(target, points[matchIdx])); +} + +TEST_CASE("KDtree nearest point query", "[KDTree]") +{ + using Coord = double; + using Point = V2d; + + std::vector points = { + {0.0, 0.0}, {1.0, 1.0}, {2.0, 2.0}, {3.0, 3.0}}; + + KDTree::KDTree tree; + for(VertInd i(0); i < points.size(); ++i) + tree.insert(i, points); + + SECTION("Exact match") + { + auto result = tree.nearest(Point{1.0, 1.0}, points); + REQUIRE(result.second == 1); + REQUIRE(result.first == Point{1.0, 1.0}); + } + + SECTION("Nearest to midpoint") + { + auto result = tree.nearest(Point{1.4, 1.4}, points); + REQUIRE(result.second == 1); // Closest to point {1.0, 1.0} + } + + SECTION("Nearest at the edge") + { + auto result = tree.nearest(Point{3.1, 3.1}, points); + REQUIRE(result.second == 3); // Closest to point {3.0, 3.0} + } +} + +TEST_CASE("KDTree nearest stress test", "[KDTree]") +{ + constexpr size_t NumPoints = 100; + constexpr size_t NumQueries = 1000; + + std::vector > points; + points.reserve(NumPoints); + + std::mt19937 rng(42); // deterministic + std::uniform_real_distribution dist(-1000.0, 1000.0); + + for(size_t i = 0; i < NumPoints; ++i) + points.emplace_back(dist(rng), dist(rng)); + + KDTree::KDTree tree; + for(VertInd i(0); i < points.size(); ++i) + tree.insert(i, points); + + for(size_t q = 0; q < NumQueries; ++q) + { + const V2d target(dist(rng), dist(rng)); + const auto nearestIdx = tree.nearest(target, points).second; + + auto minDistSq = std::numeric_limits::max(); + VertInd expectedIdx = 0; + + for(VertInd i(0); i < points.size(); ++i) + { + const auto distSq = distanceSquared(points[i], target); + if(distSq < minDistSq) + { + minDistSq = distSq; + expectedIdx = i; + } + } + REQUIRE(nearestIdx == expectedIdx); + } +} + +TEST_CASE("Regression test #204: inserting vertex on fixed edge", "") +{ + auto cdt = Triangulation{}; + + REQUIRE_NOTHROW(cdt.insertVertices( + Vertices{ + { + {0., 0.}, + {2., 0.}, + }, + })); + cdt.insertEdges(std::vector{{0, 1}}); + + REQUIRE_NOTHROW(cdt.insertVertices( + Vertices{ + { + {1., 0.}, + {1., 2.}, + }, + })); + cdt.insertEdges( + std::vector{ + {2, 3}, + }); + + REQUIRE(CDT::verifyTopology(cdt)); + cdt.eraseSuperTriangle(); + REQUIRE(cdt.triangles.size() == std::size_t(2)); + REQUIRE(cdt.fixedEdges.size() == std::size_t(3)); + REQUIRE(cdt.fixedEdges.count(Edge(0, 2))); + REQUIRE(cdt.fixedEdges.count(Edge(1, 2))); + REQUIRE(cdt.fixedEdges.count(Edge(2, 3))); + + REQUIRE(cdt.pieceToOriginals.at(Edge(0, 2)).size() == 1); + REQUIRE(cdt.pieceToOriginals.at(Edge(1, 2)).size() == 1); + REQUIRE(cdt.pieceToOriginals.at(Edge(0, 2))[0] == Edge(0, 1)); + REQUIRE(cdt.pieceToOriginals.at(Edge(1, 2))[0] == Edge(0, 1)); +} \ No newline at end of file diff --git a/include/CDT/tests/expected/154_1.txt b/include/CDT/tests/expected/154_1.txt new file mode 100644 index 0000000..8e0477d --- /dev/null +++ b/include/CDT/tests/expected/154_1.txt @@ -0,0 +1,12 @@ +5 +0 1 3 4294967295 3 1 +0 3 2 0 4 4294967295 +1 2 4 4294967295 4 3 +1 4 3 2 4 0 +2 3 4 1 3 2 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/154_2.txt b/include/CDT/tests/expected/154_2.txt new file mode 100644 index 0000000..ee89ad4 --- /dev/null +++ b/include/CDT/tests/expected/154_2.txt @@ -0,0 +1,25 @@ +17 +0 1 4 4294967295 4 1 +0 4 2 0 6 4294967295 +1 2 3 4294967295 7 3 +1 3 9 2 8 5 +1 7 4 5 14 0 +1 9 7 3 14 4 +2 4 6 1 13 7 +2 6 3 6 10 2 +3 4 9 9 14 3 +3 5 4 12 13 8 +3 6 8 7 15 11 +3 8 10 10 16 12 +3 10 5 11 16 9 +4 5 6 9 15 6 +4 7 9 4 5 8 +5 8 6 16 10 13 +5 10 8 12 11 15 + +1 +3 4 + +0 + +0 diff --git a/include/CDT/tests/expected/154_3.txt b/include/CDT/tests/expected/154_3.txt new file mode 100644 index 0000000..7a38d03 --- /dev/null +++ b/include/CDT/tests/expected/154_3.txt @@ -0,0 +1,27 @@ +19 +0 1 4 4294967295 6 2 +0 3 2 3 7 4294967295 +0 4 11 0 13 4 +0 9 3 4 11 1 +0 11 9 2 17 3 +1 2 10 4294967295 7 6 +1 10 4 5 14 0 +2 3 10 1 8 5 +3 5 10 10 14 7 +3 6 11 11 17 12 +3 8 5 12 16 8 +3 9 6 3 17 9 +3 11 8 9 18 10 +4 5 11 14 15 2 +4 10 5 6 8 13 +5 7 11 16 18 13 +5 8 7 10 18 15 +6 9 11 11 4 9 +7 8 11 16 12 15 + +1 +3 11 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_ignore_all.txt b/include/CDT/tests/expected/Capital A__as-provided_ignore_all.txt new file mode 100644 index 0000000..8e35c6c --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_ignore_all.txt @@ -0,0 +1,95 @@ +59 +0 1 31 4294967295 8 3 +0 3 7 3 13 2 +0 7 2 1 9 4294967295 +0 31 3 0 14 1 +1 2 12 4294967295 10 5 +1 12 13 4 38 6 +1 13 14 5 40 7 +1 14 27 6 43 8 +1 27 31 7 57 0 +2 7 8 2 25 10 +2 8 12 9 26 4 +3 4 5 14 15 12 +3 5 6 11 18 13 +3 6 7 12 23 1 +3 31 4 3 17 11 +4 24 5 16 19 11 +4 25 24 17 55 15 +4 31 25 14 57 16 +5 23 6 19 22 12 +5 24 23 15 55 18 +6 21 28 21 50 23 +6 22 21 22 52 20 +6 23 22 18 53 21 +6 28 7 20 24 13 +7 28 30 23 58 25 +7 30 8 24 28 9 +8 9 12 27 30 10 +8 29 9 28 35 26 +8 30 29 25 58 27 +9 10 11 31 36 30 +9 11 12 29 38 26 +9 17 10 32 37 29 +9 18 17 33 48 31 +9 19 18 34 45 32 +9 20 19 35 46 33 +9 29 20 27 51 34 +10 16 11 37 39 29 +10 17 16 31 48 36 +11 13 12 39 5 30 +11 16 13 36 40 38 +13 16 14 39 42 6 +14 15 26 42 47 43 +14 16 15 40 44 41 +14 26 27 41 56 7 +15 16 18 42 48 45 +15 18 19 44 33 46 +15 19 20 45 34 47 +15 20 26 46 49 41 +16 17 18 37 32 44 +20 21 26 50 52 47 +20 28 21 51 20 49 +20 29 28 35 58 50 +21 22 26 21 54 49 +22 23 25 22 55 54 +22 25 26 53 56 52 +23 24 25 19 16 53 +25 27 26 57 43 54 +25 31 27 17 8 56 +28 29 30 51 28 24 + +29 +3 4 +3 31 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 31 +28 29 +28 30 +29 30 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_ignore_auto.txt b/include/CDT/tests/expected/Capital A__as-provided_ignore_auto.txt new file mode 100644 index 0000000..4b384f5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_ignore_auto.txt @@ -0,0 +1,65 @@ +29 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 4294967295 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 4294967295 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 4294967295 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_ignore_outer.txt b/include/CDT/tests/expected/Capital A__as-provided_ignore_outer.txt new file mode 100644 index 0000000..f02b34e --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_ignore_outer.txt @@ -0,0 +1,66 @@ +30 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 29 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 29 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 29 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 +25 26 27 26 13 10 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_ignore_super.txt b/include/CDT/tests/expected/Capital A__as-provided_ignore_super.txt new file mode 100644 index 0000000..376c054 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_ignore_super.txt @@ -0,0 +1,84 @@ +48 +0 1 2 3 4 1 +0 2 3 0 7 2 +0 3 4 1 12 4294967295 +0 28 1 4294967295 6 0 +1 21 2 5 8 0 +1 22 21 6 44 4 +1 28 22 3 46 5 +2 20 3 8 11 1 +2 21 20 4 44 7 +3 18 25 10 39 12 +3 19 18 11 41 9 +3 20 19 7 42 10 +3 25 4 9 13 2 +4 25 27 12 47 14 +4 27 5 13 17 4294967295 +5 6 9 16 19 4294967295 +5 26 6 17 24 15 +5 27 26 14 47 16 +6 7 8 20 25 19 +6 8 9 18 27 15 +6 14 7 21 26 18 +6 15 14 22 37 20 +6 16 15 23 34 21 +6 17 16 24 35 22 +6 26 17 16 40 23 +7 13 8 26 28 18 +7 14 13 20 37 25 +8 10 9 28 4294967295 19 +8 13 10 25 29 27 +10 13 11 28 31 4294967295 +11 12 23 31 36 32 +11 13 12 29 33 30 +11 23 24 30 45 4294967295 +12 13 15 31 37 34 +12 15 16 33 22 35 +12 16 17 34 23 36 +12 17 23 35 38 30 +13 14 15 26 21 33 +17 18 23 39 41 36 +17 25 18 40 9 38 +17 26 25 24 47 39 +18 19 23 10 43 38 +19 20 22 11 44 43 +19 22 23 42 45 41 +20 21 22 8 5 42 +22 24 23 46 32 43 +22 28 24 6 4294967295 45 +25 26 27 40 17 13 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_resolve_all.txt b/include/CDT/tests/expected/Capital A__as-provided_resolve_all.txt new file mode 100644 index 0000000..8e35c6c --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_resolve_all.txt @@ -0,0 +1,95 @@ +59 +0 1 31 4294967295 8 3 +0 3 7 3 13 2 +0 7 2 1 9 4294967295 +0 31 3 0 14 1 +1 2 12 4294967295 10 5 +1 12 13 4 38 6 +1 13 14 5 40 7 +1 14 27 6 43 8 +1 27 31 7 57 0 +2 7 8 2 25 10 +2 8 12 9 26 4 +3 4 5 14 15 12 +3 5 6 11 18 13 +3 6 7 12 23 1 +3 31 4 3 17 11 +4 24 5 16 19 11 +4 25 24 17 55 15 +4 31 25 14 57 16 +5 23 6 19 22 12 +5 24 23 15 55 18 +6 21 28 21 50 23 +6 22 21 22 52 20 +6 23 22 18 53 21 +6 28 7 20 24 13 +7 28 30 23 58 25 +7 30 8 24 28 9 +8 9 12 27 30 10 +8 29 9 28 35 26 +8 30 29 25 58 27 +9 10 11 31 36 30 +9 11 12 29 38 26 +9 17 10 32 37 29 +9 18 17 33 48 31 +9 19 18 34 45 32 +9 20 19 35 46 33 +9 29 20 27 51 34 +10 16 11 37 39 29 +10 17 16 31 48 36 +11 13 12 39 5 30 +11 16 13 36 40 38 +13 16 14 39 42 6 +14 15 26 42 47 43 +14 16 15 40 44 41 +14 26 27 41 56 7 +15 16 18 42 48 45 +15 18 19 44 33 46 +15 19 20 45 34 47 +15 20 26 46 49 41 +16 17 18 37 32 44 +20 21 26 50 52 47 +20 28 21 51 20 49 +20 29 28 35 58 50 +21 22 26 21 54 49 +22 23 25 22 55 54 +22 25 26 53 56 52 +23 24 25 19 16 53 +25 27 26 57 43 54 +25 31 27 17 8 56 +28 29 30 51 28 24 + +29 +3 4 +3 31 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 31 +28 29 +28 30 +29 30 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_resolve_auto.txt b/include/CDT/tests/expected/Capital A__as-provided_resolve_auto.txt new file mode 100644 index 0000000..4b384f5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_resolve_auto.txt @@ -0,0 +1,65 @@ +29 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 4294967295 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 4294967295 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 4294967295 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_resolve_outer.txt b/include/CDT/tests/expected/Capital A__as-provided_resolve_outer.txt new file mode 100644 index 0000000..f02b34e --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_resolve_outer.txt @@ -0,0 +1,66 @@ +30 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 29 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 29 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 29 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 +25 26 27 26 13 10 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__as-provided_resolve_super.txt b/include/CDT/tests/expected/Capital A__as-provided_resolve_super.txt new file mode 100644 index 0000000..376c054 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__as-provided_resolve_super.txt @@ -0,0 +1,84 @@ +48 +0 1 2 3 4 1 +0 2 3 0 7 2 +0 3 4 1 12 4294967295 +0 28 1 4294967295 6 0 +1 21 2 5 8 0 +1 22 21 6 44 4 +1 28 22 3 46 5 +2 20 3 8 11 1 +2 21 20 4 44 7 +3 18 25 10 39 12 +3 19 18 11 41 9 +3 20 19 7 42 10 +3 25 4 9 13 2 +4 25 27 12 47 14 +4 27 5 13 17 4294967295 +5 6 9 16 19 4294967295 +5 26 6 17 24 15 +5 27 26 14 47 16 +6 7 8 20 25 19 +6 8 9 18 27 15 +6 14 7 21 26 18 +6 15 14 22 37 20 +6 16 15 23 34 21 +6 17 16 24 35 22 +6 26 17 16 40 23 +7 13 8 26 28 18 +7 14 13 20 37 25 +8 10 9 28 4294967295 19 +8 13 10 25 29 27 +10 13 11 28 31 4294967295 +11 12 23 31 36 32 +11 13 12 29 33 30 +11 23 24 30 45 4294967295 +12 13 15 31 37 34 +12 15 16 33 22 35 +12 16 17 34 23 36 +12 17 23 35 38 30 +13 14 15 26 21 33 +17 18 23 39 41 36 +17 25 18 40 9 38 +17 26 25 24 47 39 +18 19 23 10 43 38 +19 20 22 11 44 43 +19 22 23 42 45 41 +20 21 22 8 5 42 +22 24 23 46 32 43 +22 28 24 6 4294967295 45 +25 26 27 40 17 13 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_ignore_all.txt b/include/CDT/tests/expected/Capital A__auto_ignore_all.txt new file mode 100644 index 0000000..b770ef5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_ignore_all.txt @@ -0,0 +1,95 @@ +59 +0 1 13 4294967295 7 2 +0 3 2 5 8 4294967295 +0 13 14 0 40 3 +0 14 27 2 43 4 +0 27 31 3 57 5 +0 31 3 4 14 1 +1 2 12 4294967295 10 7 +1 12 13 6 38 0 +2 3 7 1 13 9 +2 7 8 8 25 10 +2 8 12 9 26 6 +3 4 5 14 15 12 +3 5 6 11 18 13 +3 6 7 12 23 8 +3 31 4 5 17 11 +4 24 5 16 19 11 +4 25 24 17 55 15 +4 31 25 14 57 16 +5 23 6 19 22 12 +5 24 23 15 55 18 +6 21 28 21 50 23 +6 22 21 22 52 20 +6 23 22 18 53 21 +6 28 7 20 24 13 +7 28 30 23 58 25 +7 30 8 24 28 9 +8 9 12 27 30 10 +8 29 9 28 35 26 +8 30 29 25 58 27 +9 10 11 31 36 30 +9 11 12 29 38 26 +9 17 10 32 37 29 +9 18 17 33 48 31 +9 19 18 34 45 32 +9 20 19 35 46 33 +9 29 20 27 51 34 +10 16 11 37 39 29 +10 17 16 31 48 36 +11 13 12 39 7 30 +11 16 13 36 40 38 +13 16 14 39 42 2 +14 15 26 42 47 43 +14 16 15 40 44 41 +14 26 27 41 56 3 +15 16 18 42 48 45 +15 18 19 44 33 46 +15 19 20 45 34 47 +15 20 26 46 49 41 +16 17 18 37 32 44 +20 21 26 50 52 47 +20 28 21 51 20 49 +20 29 28 35 58 50 +21 22 26 21 54 49 +22 23 25 22 55 54 +22 25 26 53 56 52 +23 24 25 19 16 53 +25 27 26 57 43 54 +25 31 27 17 4 56 +28 29 30 51 28 24 + +29 +3 4 +3 31 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 31 +28 29 +28 30 +29 30 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_ignore_auto.txt b/include/CDT/tests/expected/Capital A__auto_ignore_auto.txt new file mode 100644 index 0000000..4b384f5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_ignore_auto.txt @@ -0,0 +1,65 @@ +29 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 4294967295 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 4294967295 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 4294967295 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_ignore_outer.txt b/include/CDT/tests/expected/Capital A__auto_ignore_outer.txt new file mode 100644 index 0000000..f02b34e --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_ignore_outer.txt @@ -0,0 +1,66 @@ +30 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 29 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 29 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 29 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 +25 26 27 26 13 10 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_ignore_super.txt b/include/CDT/tests/expected/Capital A__auto_ignore_super.txt new file mode 100644 index 0000000..376c054 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_ignore_super.txt @@ -0,0 +1,84 @@ +48 +0 1 2 3 4 1 +0 2 3 0 7 2 +0 3 4 1 12 4294967295 +0 28 1 4294967295 6 0 +1 21 2 5 8 0 +1 22 21 6 44 4 +1 28 22 3 46 5 +2 20 3 8 11 1 +2 21 20 4 44 7 +3 18 25 10 39 12 +3 19 18 11 41 9 +3 20 19 7 42 10 +3 25 4 9 13 2 +4 25 27 12 47 14 +4 27 5 13 17 4294967295 +5 6 9 16 19 4294967295 +5 26 6 17 24 15 +5 27 26 14 47 16 +6 7 8 20 25 19 +6 8 9 18 27 15 +6 14 7 21 26 18 +6 15 14 22 37 20 +6 16 15 23 34 21 +6 17 16 24 35 22 +6 26 17 16 40 23 +7 13 8 26 28 18 +7 14 13 20 37 25 +8 10 9 28 4294967295 19 +8 13 10 25 29 27 +10 13 11 28 31 4294967295 +11 12 23 31 36 32 +11 13 12 29 33 30 +11 23 24 30 45 4294967295 +12 13 15 31 37 34 +12 15 16 33 22 35 +12 16 17 34 23 36 +12 17 23 35 38 30 +13 14 15 26 21 33 +17 18 23 39 41 36 +17 25 18 40 9 38 +17 26 25 24 47 39 +18 19 23 10 43 38 +19 20 22 11 44 43 +19 22 23 42 45 41 +20 21 22 8 5 42 +22 24 23 46 32 43 +22 28 24 6 4294967295 45 +25 26 27 40 17 13 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_resolve_all.txt b/include/CDT/tests/expected/Capital A__auto_resolve_all.txt new file mode 100644 index 0000000..b770ef5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_resolve_all.txt @@ -0,0 +1,95 @@ +59 +0 1 13 4294967295 7 2 +0 3 2 5 8 4294967295 +0 13 14 0 40 3 +0 14 27 2 43 4 +0 27 31 3 57 5 +0 31 3 4 14 1 +1 2 12 4294967295 10 7 +1 12 13 6 38 0 +2 3 7 1 13 9 +2 7 8 8 25 10 +2 8 12 9 26 6 +3 4 5 14 15 12 +3 5 6 11 18 13 +3 6 7 12 23 8 +3 31 4 5 17 11 +4 24 5 16 19 11 +4 25 24 17 55 15 +4 31 25 14 57 16 +5 23 6 19 22 12 +5 24 23 15 55 18 +6 21 28 21 50 23 +6 22 21 22 52 20 +6 23 22 18 53 21 +6 28 7 20 24 13 +7 28 30 23 58 25 +7 30 8 24 28 9 +8 9 12 27 30 10 +8 29 9 28 35 26 +8 30 29 25 58 27 +9 10 11 31 36 30 +9 11 12 29 38 26 +9 17 10 32 37 29 +9 18 17 33 48 31 +9 19 18 34 45 32 +9 20 19 35 46 33 +9 29 20 27 51 34 +10 16 11 37 39 29 +10 17 16 31 48 36 +11 13 12 39 7 30 +11 16 13 36 40 38 +13 16 14 39 42 2 +14 15 26 42 47 43 +14 16 15 40 44 41 +14 26 27 41 56 3 +15 16 18 42 48 45 +15 18 19 44 33 46 +15 19 20 45 34 47 +15 20 26 46 49 41 +16 17 18 37 32 44 +20 21 26 50 52 47 +20 28 21 51 20 49 +20 29 28 35 58 50 +21 22 26 21 54 49 +22 23 25 22 55 54 +22 25 26 53 56 52 +23 24 25 19 16 53 +25 27 26 57 43 54 +25 31 27 17 4 56 +28 29 30 51 28 24 + +29 +3 4 +3 31 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 31 +28 29 +28 30 +29 30 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_resolve_auto.txt b/include/CDT/tests/expected/Capital A__auto_resolve_auto.txt new file mode 100644 index 0000000..4b384f5 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_resolve_auto.txt @@ -0,0 +1,65 @@ +29 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 4294967295 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 4294967295 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 4294967295 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_resolve_outer.txt b/include/CDT/tests/expected/Capital A__auto_resolve_outer.txt new file mode 100644 index 0000000..f02b34e --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_resolve_outer.txt @@ -0,0 +1,66 @@ +30 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 4 6 10 4294967295 +4 25 27 9 29 11 +4 27 5 10 13 4294967295 +5 26 6 13 18 4294967295 +5 27 26 11 29 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 29 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 +25 26 27 26 13 10 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__auto_resolve_super.txt b/include/CDT/tests/expected/Capital A__auto_resolve_super.txt new file mode 100644 index 0000000..376c054 --- /dev/null +++ b/include/CDT/tests/expected/Capital A__auto_resolve_super.txt @@ -0,0 +1,84 @@ +48 +0 1 2 3 4 1 +0 2 3 0 7 2 +0 3 4 1 12 4294967295 +0 28 1 4294967295 6 0 +1 21 2 5 8 0 +1 22 21 6 44 4 +1 28 22 3 46 5 +2 20 3 8 11 1 +2 21 20 4 44 7 +3 18 25 10 39 12 +3 19 18 11 41 9 +3 20 19 7 42 10 +3 25 4 9 13 2 +4 25 27 12 47 14 +4 27 5 13 17 4294967295 +5 6 9 16 19 4294967295 +5 26 6 17 24 15 +5 27 26 14 47 16 +6 7 8 20 25 19 +6 8 9 18 27 15 +6 14 7 21 26 18 +6 15 14 22 37 20 +6 16 15 23 34 21 +6 17 16 24 35 22 +6 26 17 16 40 23 +7 13 8 26 28 18 +7 14 13 20 37 25 +8 10 9 28 4294967295 19 +8 13 10 25 29 27 +10 13 11 28 31 4294967295 +11 12 23 31 36 32 +11 13 12 29 33 30 +11 23 24 30 45 4294967295 +12 13 15 31 37 34 +12 15 16 33 22 35 +12 16 17 34 23 36 +12 17 23 35 38 30 +13 14 15 26 21 33 +17 18 23 39 41 36 +17 25 18 40 9 38 +17 26 25 24 47 39 +18 19 23 10 43 38 +19 20 22 11 44 43 +19 22 23 42 45 41 +20 21 22 8 5 42 +22 24 23 46 32 43 +22 28 24 6 4294967295 45 +25 26 27 40 17 13 + +29 +0 1 +0 28 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 27 +26 27 + +0 + +0 diff --git a/include/CDT/tests/expected/Capital A__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/Capital A__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..8edb7ae --- /dev/null +++ b/include/CDT/tests/expected/Capital A__conforming_auto_ignore_auto.txt @@ -0,0 +1,81 @@ +31 +0 28 1 4294967295 3 4294967295 +1 21 2 2 5 4294967295 +1 22 21 3 4294967295 1 +1 28 22 0 28 2 +2 20 3 5 8 4294967295 +2 21 20 1 4294967295 4 +3 18 25 7 25 9 +3 19 18 8 4294967295 6 +3 20 19 4 4294967295 7 +3 25 29 6 29 4294967295 +4 27 5 11 13 4294967295 +4 29 27 4294967295 30 10 +5 26 6 13 18 4294967295 +5 27 26 10 4294967295 12 +6 14 7 15 20 4294967295 +6 15 14 16 4294967295 14 +6 16 15 17 4294967295 15 +6 17 16 18 4294967295 16 +6 26 17 12 26 17 +7 13 8 20 22 4294967295 +7 14 13 14 4294967295 19 +8 10 9 22 4294967295 4294967295 +8 13 10 19 23 21 +10 13 11 22 24 4294967295 +11 13 12 23 4294967295 4294967295 +17 25 18 26 6 4294967295 +17 26 25 18 4294967295 25 +22 24 23 28 4294967295 4294967295 +22 28 24 3 4294967295 27 +25 30 29 4294967295 30 9 +27 29 30 11 29 4294967295 + +31 +0 1 +0 28 +1 2 +2 3 +3 29 +4 5 +4 29 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +25 30 +26 27 +27 30 + +0 + +4 +3 29 + 1 + 3 4 +4 29 + 1 + 3 4 +25 30 + 1 + 25 27 +27 30 + 1 + 25 27 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_ignore_all.txt b/include/CDT/tests/expected/Hanging2__as-provided_ignore_all.txt new file mode 100644 index 0000000..7e2724c --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_ignore_all.txt @@ -0,0 +1,43 @@ +27 +0 1 11 4294967295 5 3 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 11 4 0 15 2 +1 2 12 4294967295 7 5 +1 12 11 4 24 0 +2 3 13 1 12 7 +2 13 12 6 25 4 +3 4 5 2 14 9 +3 5 7 8 16 10 +3 7 12 9 20 11 +3 12 15 10 25 13 +3 14 13 13 26 6 +3 15 14 11 26 12 +4 6 5 15 16 8 +4 11 6 3 19 14 +5 6 7 14 18 9 +6 8 9 19 21 18 +6 9 7 17 20 16 +6 11 8 15 22 17 +7 9 12 18 23 10 +8 10 9 22 23 17 +8 11 10 19 24 21 +9 10 12 21 24 20 +10 11 12 22 5 23 +12 13 15 7 26 11 +13 14 15 12 13 25 + +9 +3 4 +3 12 +4 5 +5 6 +6 8 +8 9 +9 10 +10 11 +11 12 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_ignore_auto.txt b/include/CDT/tests/expected/Hanging2__as-provided_ignore_auto.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_ignore_auto.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_ignore_outer.txt b/include/CDT/tests/expected/Hanging2__as-provided_ignore_outer.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_ignore_outer.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_ignore_super.txt b/include/CDT/tests/expected/Hanging2__as-provided_ignore_super.txt new file mode 100644 index 0000000..1df7ea0 --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_ignore_super.txt @@ -0,0 +1,35 @@ +19 +0 1 2 4294967295 6 1 +0 2 4 0 8 2 +0 4 9 1 12 3 +0 9 12 2 17 5 +0 11 10 5 18 4294967295 +0 12 11 3 18 4 +1 3 2 7 8 0 +1 8 3 4294967295 11 6 +2 3 4 6 10 1 +3 5 6 11 13 10 +3 6 4 9 12 8 +3 8 5 7 14 9 +4 6 9 10 15 2 +5 7 6 14 15 9 +5 8 7 11 16 13 +6 7 9 13 16 12 +7 8 9 14 4294967295 15 +9 10 12 4294967295 18 3 +10 11 12 4 5 17 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_resolve_all.txt b/include/CDT/tests/expected/Hanging2__as-provided_resolve_all.txt new file mode 100644 index 0000000..7e2724c --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_resolve_all.txt @@ -0,0 +1,43 @@ +27 +0 1 11 4294967295 5 3 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 11 4 0 15 2 +1 2 12 4294967295 7 5 +1 12 11 4 24 0 +2 3 13 1 12 7 +2 13 12 6 25 4 +3 4 5 2 14 9 +3 5 7 8 16 10 +3 7 12 9 20 11 +3 12 15 10 25 13 +3 14 13 13 26 6 +3 15 14 11 26 12 +4 6 5 15 16 8 +4 11 6 3 19 14 +5 6 7 14 18 9 +6 8 9 19 21 18 +6 9 7 17 20 16 +6 11 8 15 22 17 +7 9 12 18 23 10 +8 10 9 22 23 17 +8 11 10 19 24 21 +9 10 12 21 24 20 +10 11 12 22 5 23 +12 13 15 7 26 11 +13 14 15 12 13 25 + +9 +3 4 +3 12 +4 5 +5 6 +6 8 +8 9 +9 10 +10 11 +11 12 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_resolve_auto.txt b/include/CDT/tests/expected/Hanging2__as-provided_resolve_auto.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_resolve_auto.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_resolve_outer.txt b/include/CDT/tests/expected/Hanging2__as-provided_resolve_outer.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_resolve_outer.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__as-provided_resolve_super.txt b/include/CDT/tests/expected/Hanging2__as-provided_resolve_super.txt new file mode 100644 index 0000000..1df7ea0 --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__as-provided_resolve_super.txt @@ -0,0 +1,35 @@ +19 +0 1 2 4294967295 6 1 +0 2 4 0 8 2 +0 4 9 1 12 3 +0 9 12 2 17 5 +0 11 10 5 18 4294967295 +0 12 11 3 18 4 +1 3 2 7 8 0 +1 8 3 4294967295 11 6 +2 3 4 6 10 1 +3 5 6 11 13 10 +3 6 4 9 12 8 +3 8 5 7 14 9 +4 6 9 10 15 2 +5 7 6 14 15 9 +5 8 7 11 16 13 +6 7 9 13 16 12 +7 8 9 14 4294967295 15 +9 10 12 4294967295 18 3 +10 11 12 4 5 17 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_ignore_all.txt b/include/CDT/tests/expected/Hanging2__auto_ignore_all.txt new file mode 100644 index 0000000..7e2724c --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_ignore_all.txt @@ -0,0 +1,43 @@ +27 +0 1 11 4294967295 5 3 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 11 4 0 15 2 +1 2 12 4294967295 7 5 +1 12 11 4 24 0 +2 3 13 1 12 7 +2 13 12 6 25 4 +3 4 5 2 14 9 +3 5 7 8 16 10 +3 7 12 9 20 11 +3 12 15 10 25 13 +3 14 13 13 26 6 +3 15 14 11 26 12 +4 6 5 15 16 8 +4 11 6 3 19 14 +5 6 7 14 18 9 +6 8 9 19 21 18 +6 9 7 17 20 16 +6 11 8 15 22 17 +7 9 12 18 23 10 +8 10 9 22 23 17 +8 11 10 19 24 21 +9 10 12 21 24 20 +10 11 12 22 5 23 +12 13 15 7 26 11 +13 14 15 12 13 25 + +9 +3 4 +3 12 +4 5 +5 6 +6 8 +8 9 +9 10 +10 11 +11 12 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_ignore_auto.txt b/include/CDT/tests/expected/Hanging2__auto_ignore_auto.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_ignore_auto.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_ignore_outer.txt b/include/CDT/tests/expected/Hanging2__auto_ignore_outer.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_ignore_outer.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_ignore_super.txt b/include/CDT/tests/expected/Hanging2__auto_ignore_super.txt new file mode 100644 index 0000000..1df7ea0 --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_ignore_super.txt @@ -0,0 +1,35 @@ +19 +0 1 2 4294967295 6 1 +0 2 4 0 8 2 +0 4 9 1 12 3 +0 9 12 2 17 5 +0 11 10 5 18 4294967295 +0 12 11 3 18 4 +1 3 2 7 8 0 +1 8 3 4294967295 11 6 +2 3 4 6 10 1 +3 5 6 11 13 10 +3 6 4 9 12 8 +3 8 5 7 14 9 +4 6 9 10 15 2 +5 7 6 14 15 9 +5 8 7 11 16 13 +6 7 9 13 16 12 +7 8 9 14 4294967295 15 +9 10 12 4294967295 18 3 +10 11 12 4 5 17 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_resolve_all.txt b/include/CDT/tests/expected/Hanging2__auto_resolve_all.txt new file mode 100644 index 0000000..7e2724c --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_resolve_all.txt @@ -0,0 +1,43 @@ +27 +0 1 11 4294967295 5 3 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 11 4 0 15 2 +1 2 12 4294967295 7 5 +1 12 11 4 24 0 +2 3 13 1 12 7 +2 13 12 6 25 4 +3 4 5 2 14 9 +3 5 7 8 16 10 +3 7 12 9 20 11 +3 12 15 10 25 13 +3 14 13 13 26 6 +3 15 14 11 26 12 +4 6 5 15 16 8 +4 11 6 3 19 14 +5 6 7 14 18 9 +6 8 9 19 21 18 +6 9 7 17 20 16 +6 11 8 15 22 17 +7 9 12 18 23 10 +8 10 9 22 23 17 +8 11 10 19 24 21 +9 10 12 21 24 20 +10 11 12 22 5 23 +12 13 15 7 26 11 +13 14 15 12 13 25 + +9 +3 4 +3 12 +4 5 +5 6 +6 8 +8 9 +9 10 +10 11 +11 12 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_resolve_auto.txt b/include/CDT/tests/expected/Hanging2__auto_resolve_auto.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_resolve_auto.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_resolve_outer.txt b/include/CDT/tests/expected/Hanging2__auto_resolve_outer.txt new file mode 100644 index 0000000..53b478b --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_resolve_outer.txt @@ -0,0 +1,25 @@ +9 +0 1 2 4294967295 4294967295 1 +0 2 4 0 3 2 +0 4 9 1 6 4294967295 +2 3 4 4294967295 5 1 +3 5 6 4294967295 4294967295 5 +3 6 4 4 6 3 +4 6 9 5 7 2 +6 7 9 4294967295 8 6 +7 8 9 4294967295 4294967295 7 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__auto_resolve_super.txt b/include/CDT/tests/expected/Hanging2__auto_resolve_super.txt new file mode 100644 index 0000000..1df7ea0 --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__auto_resolve_super.txt @@ -0,0 +1,35 @@ +19 +0 1 2 4294967295 6 1 +0 2 4 0 8 2 +0 4 9 1 12 3 +0 9 12 2 17 5 +0 11 10 5 18 4294967295 +0 12 11 3 18 4 +1 3 2 7 8 0 +1 8 3 4294967295 11 6 +2 3 4 6 10 1 +3 5 6 11 13 10 +3 6 4 9 12 8 +3 8 5 7 14 9 +4 6 9 10 15 2 +5 7 6 14 15 9 +5 8 7 11 16 13 +6 7 9 13 16 12 +7 8 9 14 4294967295 15 +9 10 12 4294967295 18 3 +10 11 12 4 5 17 + +9 +0 1 +0 9 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging2__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/Hanging2__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..240ff92 --- /dev/null +++ b/include/CDT/tests/expected/Hanging2__conforming_auto_ignore_auto.txt @@ -0,0 +1,74 @@ +17 +0 1 2 4294967295 4294967295 1 +0 2 16 0 2 4294967295 +2 13 16 4294967295 15 1 +3 4 18 7 8 6 +3 5 6 4294967295 4294967295 5 +3 6 20 4 11 7 +3 18 13 3 16 4294967295 +3 20 4 5 9 3 +4 15 18 9 4294967295 3 +4 20 15 7 4294967295 8 +6 7 19 4294967295 12 11 +6 19 20 10 4294967295 5 +7 9 19 13 4294967295 10 +7 14 9 4294967295 14 12 +8 9 14 4294967295 13 4294967295 +13 17 16 16 4294967295 2 +13 18 17 6 4294967295 15 + +17 +0 1 +0 16 +1 2 +2 13 +3 5 +3 13 +5 6 +6 7 +7 14 +8 9 +8 14 +9 19 +15 18 +15 20 +16 17 +17 18 +19 20 + +0 + +11 +0 16 + 1 + 0 9 +2 13 + 1 + 2 3 +3 13 + 1 + 2 3 +7 14 + 1 + 7 8 +8 14 + 1 + 7 8 +9 19 + 1 + 0 9 +15 18 + 1 + 0 9 +15 20 + 1 + 0 9 +16 17 + 1 + 0 9 +17 18 + 1 + 0 9 +19 20 + 1 + 0 9 diff --git a/include/CDT/tests/expected/HangingIntersection__f64_auto_resolve_all.txt b/include/CDT/tests/expected/HangingIntersection__f64_auto_resolve_all.txt new file mode 100644 index 0000000..9a2c4cc --- /dev/null +++ b/include/CDT/tests/expected/HangingIntersection__f64_auto_resolve_all.txt @@ -0,0 +1,40 @@ +17 +0 1 6 4294967295 5 3 +0 3 2 2 7 4294967295 +0 4 3 3 9 1 +0 6 4 0 12 2 +1 2 8 4294967295 8 6 +1 7 6 6 14 0 +1 8 7 4 15 5 +2 3 9 1 10 8 +2 9 8 7 16 4 +3 4 10 2 12 11 +3 5 9 11 13 7 +3 10 5 9 13 10 +4 6 10 3 14 9 +5 10 9 11 16 10 +6 7 10 5 15 12 +7 8 10 6 16 14 +8 9 10 8 13 15 + +4 +3 10 +6 10 +7 10 +8 10 + +0 + +4 +3 10 + 1 + 3 7 +6 10 + 1 + 6 8 +7 10 + 1 + 3 7 +8 10 + 1 + 6 8 diff --git a/include/CDT/tests/expected/Hanging__as-provided_ignore_all.txt b/include/CDT/tests/expected/Hanging__as-provided_ignore_all.txt new file mode 100644 index 0000000..19e0efb --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_ignore_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 6 4 +0 3 2 2 7 4294967295 +0 4 3 3 9 1 +0 6 4 4 12 2 +0 7 6 0 12 3 +1 2 8 4294967295 8 6 +1 8 7 5 14 0 +2 3 9 1 10 8 +2 9 8 7 14 5 +3 4 7 2 12 11 +3 5 9 11 13 7 +3 7 5 9 13 10 +4 6 7 3 4 9 +5 7 9 11 14 10 +7 8 9 6 8 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_ignore_auto.txt b/include/CDT/tests/expected/Hanging__as-provided_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_ignore_outer.txt b/include/CDT/tests/expected/Hanging__as-provided_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_ignore_super.txt b/include/CDT/tests/expected/Hanging__as-provided_ignore_super.txt new file mode 100644 index 0000000..72e18e5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_ignore_super.txt @@ -0,0 +1,14 @@ +6 +0 1 4 4294967295 3 2 +0 2 6 2 4 4294967295 +0 4 2 0 4 1 +1 3 4 4294967295 4294967295 0 +2 4 6 2 5 1 +4 5 6 4294967295 4294967295 4 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_resolve_all.txt b/include/CDT/tests/expected/Hanging__as-provided_resolve_all.txt new file mode 100644 index 0000000..19e0efb --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_resolve_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 6 4 +0 3 2 2 7 4294967295 +0 4 3 3 9 1 +0 6 4 4 12 2 +0 7 6 0 12 3 +1 2 8 4294967295 8 6 +1 8 7 5 14 0 +2 3 9 1 10 8 +2 9 8 7 14 5 +3 4 7 2 12 11 +3 5 9 11 13 7 +3 7 5 9 13 10 +4 6 7 3 4 9 +5 7 9 11 14 10 +7 8 9 6 8 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_resolve_auto.txt b/include/CDT/tests/expected/Hanging__as-provided_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_resolve_outer.txt b/include/CDT/tests/expected/Hanging__as-provided_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__as-provided_resolve_super.txt b/include/CDT/tests/expected/Hanging__as-provided_resolve_super.txt new file mode 100644 index 0000000..72e18e5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__as-provided_resolve_super.txt @@ -0,0 +1,14 @@ +6 +0 1 4 4294967295 3 2 +0 2 6 2 4 4294967295 +0 4 2 0 4 1 +1 3 4 4294967295 4294967295 0 +2 4 6 2 5 1 +4 5 6 4294967295 4294967295 4 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_ignore_all.txt b/include/CDT/tests/expected/Hanging__auto_ignore_all.txt new file mode 100644 index 0000000..c894e6d --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_ignore_all.txt @@ -0,0 +1,23 @@ +15 +0 1 6 4294967295 5 3 +0 3 2 2 7 4294967295 +0 4 3 3 9 1 +0 6 4 0 12 2 +1 2 8 4294967295 8 6 +1 7 6 6 12 0 +1 8 7 4 14 5 +2 3 9 1 10 8 +2 9 8 7 14 4 +3 4 7 2 12 11 +3 5 9 11 13 7 +3 7 5 9 13 10 +4 6 7 3 5 9 +5 7 9 11 14 10 +7 8 9 6 8 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_ignore_auto.txt b/include/CDT/tests/expected/Hanging__auto_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_ignore_outer.txt b/include/CDT/tests/expected/Hanging__auto_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_ignore_super.txt b/include/CDT/tests/expected/Hanging__auto_ignore_super.txt new file mode 100644 index 0000000..72e18e5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_ignore_super.txt @@ -0,0 +1,14 @@ +6 +0 1 4 4294967295 3 2 +0 2 6 2 4 4294967295 +0 4 2 0 4 1 +1 3 4 4294967295 4294967295 0 +2 4 6 2 5 1 +4 5 6 4294967295 4294967295 4 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_resolve_all.txt b/include/CDT/tests/expected/Hanging__auto_resolve_all.txt new file mode 100644 index 0000000..c894e6d --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_resolve_all.txt @@ -0,0 +1,23 @@ +15 +0 1 6 4294967295 5 3 +0 3 2 2 7 4294967295 +0 4 3 3 9 1 +0 6 4 0 12 2 +1 2 8 4294967295 8 6 +1 7 6 6 12 0 +1 8 7 4 14 5 +2 3 9 1 10 8 +2 9 8 7 14 4 +3 4 7 2 12 11 +3 5 9 11 13 7 +3 7 5 9 13 10 +4 6 7 3 5 9 +5 7 9 11 14 10 +7 8 9 6 8 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_resolve_auto.txt b/include/CDT/tests/expected/Hanging__auto_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_resolve_outer.txt b/include/CDT/tests/expected/Hanging__auto_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Hanging__auto_resolve_super.txt b/include/CDT/tests/expected/Hanging__auto_resolve_super.txt new file mode 100644 index 0000000..72e18e5 --- /dev/null +++ b/include/CDT/tests/expected/Hanging__auto_resolve_super.txt @@ -0,0 +1,14 @@ +6 +0 1 4 4294967295 3 2 +0 2 6 2 4 4294967295 +0 4 2 0 4 1 +1 3 4 4294967295 4294967295 0 +2 4 6 2 5 1 +4 5 6 4294967295 4294967295 4 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_ignore_all.txt b/include/CDT/tests/expected/Letter u__as-provided_ignore_all.txt new file mode 100644 index 0000000..187a7da --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_ignore_all.txt @@ -0,0 +1,32 @@ +17 +0 1 4 4294967295 5 2 +0 3 10 2 11 3 +0 4 3 0 9 1 +0 10 2 1 8 4294967295 +1 2 9 4294967295 8 7 +1 5 4 6 12 0 +1 8 5 7 14 5 +1 9 8 4 15 6 +2 10 9 3 16 4 +3 4 6 2 12 10 +3 6 7 9 13 11 +3 7 10 10 16 1 +4 5 6 5 13 9 +5 7 6 14 10 12 +5 8 7 6 15 13 +7 8 9 14 7 16 +7 9 10 15 8 11 + +8 +3 4 +3 10 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_ignore_auto.txt b/include/CDT/tests/expected/Letter u__as-provided_ignore_auto.txt new file mode 100644 index 0000000..710ce2d --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_ignore_auto.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 3 1 +0 3 4 0 4294967295 2 +0 4 7 1 5 4294967295 +1 2 3 4294967295 4294967295 0 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_ignore_outer.txt b/include/CDT/tests/expected/Letter u__as-provided_ignore_outer.txt new file mode 100644 index 0000000..710ce2d --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_ignore_outer.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 3 1 +0 3 4 0 4294967295 2 +0 4 7 1 5 4294967295 +1 2 3 4294967295 4294967295 0 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_ignore_super.txt b/include/CDT/tests/expected/Letter u__as-provided_ignore_super.txt new file mode 100644 index 0000000..d59d300 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_ignore_super.txt @@ -0,0 +1,23 @@ +8 +0 1 3 4294967295 3 1 +0 3 4 0 4 2 +0 4 7 1 7 4294967295 +1 2 3 4294967295 4 0 +2 4 3 5 1 3 +2 5 4 4294967295 6 4 +4 5 6 5 4294967295 7 +4 6 7 6 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_resolve_all.txt b/include/CDT/tests/expected/Letter u__as-provided_resolve_all.txt new file mode 100644 index 0000000..187a7da --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_resolve_all.txt @@ -0,0 +1,32 @@ +17 +0 1 4 4294967295 5 2 +0 3 10 2 11 3 +0 4 3 0 9 1 +0 10 2 1 8 4294967295 +1 2 9 4294967295 8 7 +1 5 4 6 12 0 +1 8 5 7 14 5 +1 9 8 4 15 6 +2 10 9 3 16 4 +3 4 6 2 12 10 +3 6 7 9 13 11 +3 7 10 10 16 1 +4 5 6 5 13 9 +5 7 6 14 10 12 +5 8 7 6 15 13 +7 8 9 14 7 16 +7 9 10 15 8 11 + +8 +3 4 +3 10 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_resolve_auto.txt b/include/CDT/tests/expected/Letter u__as-provided_resolve_auto.txt new file mode 100644 index 0000000..710ce2d --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_resolve_auto.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 3 1 +0 3 4 0 4294967295 2 +0 4 7 1 5 4294967295 +1 2 3 4294967295 4294967295 0 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_resolve_outer.txt b/include/CDT/tests/expected/Letter u__as-provided_resolve_outer.txt new file mode 100644 index 0000000..710ce2d --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_resolve_outer.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 3 1 +0 3 4 0 4294967295 2 +0 4 7 1 5 4294967295 +1 2 3 4294967295 4294967295 0 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__as-provided_resolve_super.txt b/include/CDT/tests/expected/Letter u__as-provided_resolve_super.txt new file mode 100644 index 0000000..d59d300 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__as-provided_resolve_super.txt @@ -0,0 +1,23 @@ +8 +0 1 3 4294967295 3 1 +0 3 4 0 4 2 +0 4 7 1 7 4294967295 +1 2 3 4294967295 4 0 +2 4 3 5 1 3 +2 5 4 4294967295 6 4 +4 5 6 5 4294967295 7 +4 6 7 6 4294967295 2 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_ignore_all.txt b/include/CDT/tests/expected/Letter u__auto_ignore_all.txt new file mode 100644 index 0000000..7fe8e1f --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_ignore_all.txt @@ -0,0 +1,32 @@ +17 +0 1 3 4294967295 4 1 +0 3 10 0 10 2 +0 10 2 1 8 4294967295 +1 2 9 4294967295 8 7 +1 4 3 5 9 0 +1 5 4 6 11 4 +1 8 5 7 12 5 +1 9 8 3 15 6 +2 10 9 2 16 3 +3 4 6 4 11 10 +3 6 10 9 13 1 +4 5 6 5 12 9 +5 8 6 6 14 11 +6 7 10 14 16 10 +6 8 7 12 15 13 +7 8 9 14 7 16 +7 9 10 15 8 13 + +8 +3 4 +3 10 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_ignore_auto.txt b/include/CDT/tests/expected/Letter u__auto_ignore_auto.txt new file mode 100644 index 0000000..3c73e41 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_ignore_auto.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 2 1 +0 3 7 0 3 4294967295 +1 2 3 4294967295 4294967295 0 +3 4 7 4294967295 5 1 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 3 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_ignore_outer.txt b/include/CDT/tests/expected/Letter u__auto_ignore_outer.txt new file mode 100644 index 0000000..3c73e41 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_ignore_outer.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 2 1 +0 3 7 0 3 4294967295 +1 2 3 4294967295 4294967295 0 +3 4 7 4294967295 5 1 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 3 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_ignore_super.txt b/include/CDT/tests/expected/Letter u__auto_ignore_super.txt new file mode 100644 index 0000000..ecc6694 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_ignore_super.txt @@ -0,0 +1,23 @@ +8 +0 1 3 4294967295 2 1 +0 3 7 0 4 4294967295 +1 2 3 4294967295 3 0 +2 5 3 4294967295 5 2 +3 4 7 5 7 1 +3 5 4 3 6 4 +4 5 6 5 4294967295 7 +4 6 7 6 4294967295 4 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_resolve_all.txt b/include/CDT/tests/expected/Letter u__auto_resolve_all.txt new file mode 100644 index 0000000..7fe8e1f --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_resolve_all.txt @@ -0,0 +1,32 @@ +17 +0 1 3 4294967295 4 1 +0 3 10 0 10 2 +0 10 2 1 8 4294967295 +1 2 9 4294967295 8 7 +1 4 3 5 9 0 +1 5 4 6 11 4 +1 8 5 7 12 5 +1 9 8 3 15 6 +2 10 9 2 16 3 +3 4 6 4 11 10 +3 6 10 9 13 1 +4 5 6 5 12 9 +5 8 6 6 14 11 +6 7 10 14 16 10 +6 8 7 12 15 13 +7 8 9 14 7 16 +7 9 10 15 8 13 + +8 +3 4 +3 10 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_resolve_auto.txt b/include/CDT/tests/expected/Letter u__auto_resolve_auto.txt new file mode 100644 index 0000000..3c73e41 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_resolve_auto.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 2 1 +0 3 7 0 3 4294967295 +1 2 3 4294967295 4294967295 0 +3 4 7 4294967295 5 1 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 3 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_resolve_outer.txt b/include/CDT/tests/expected/Letter u__auto_resolve_outer.txt new file mode 100644 index 0000000..3c73e41 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_resolve_outer.txt @@ -0,0 +1,21 @@ +6 +0 1 3 4294967295 2 1 +0 3 7 0 3 4294967295 +1 2 3 4294967295 4294967295 0 +3 4 7 4294967295 5 1 +4 5 6 4294967295 4294967295 5 +4 6 7 4 4294967295 3 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/Letter u__auto_resolve_super.txt b/include/CDT/tests/expected/Letter u__auto_resolve_super.txt new file mode 100644 index 0000000..ecc6694 --- /dev/null +++ b/include/CDT/tests/expected/Letter u__auto_resolve_super.txt @@ -0,0 +1,23 @@ +8 +0 1 3 4294967295 2 1 +0 3 7 0 4 4294967295 +1 2 3 4294967295 3 0 +2 5 3 4294967295 5 2 +3 4 7 5 7 1 +3 5 4 3 6 4 +4 5 6 5 4294967295 7 +4 6 7 6 4294967295 4 + +8 +0 1 +0 7 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_ignore_all.txt b/include/CDT/tests/expected/OnEdge__as-provided_ignore_all.txt new file mode 100644 index 0000000..213be1e --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_ignore_all.txt @@ -0,0 +1,48 @@ +41 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 16 4 +3 4 14 2 10 8 +3 14 6 7 20 1 +4 5 13 5 16 13 +4 7 14 14 20 7 +4 8 15 12 21 14 +4 9 8 15 18 11 +4 13 18 9 36 15 +4 15 7 11 17 10 +4 18 9 13 24 12 +5 6 13 6 22 9 +6 7 15 20 14 21 +6 8 9 21 12 19 +6 9 22 18 23 22 +6 14 7 8 10 17 +6 15 8 17 11 18 +6 22 13 19 37 16 +9 10 22 24 25 19 +9 18 10 15 26 23 +10 11 22 27 31 23 +10 18 19 24 38 27 +10 19 11 26 29 25 +11 16 21 30 35 31 +11 19 20 27 39 30 +11 20 16 29 32 28 +11 21 22 28 40 25 +12 16 20 35 30 34 +12 17 21 34 40 35 +12 20 17 32 39 33 +12 21 16 33 28 32 +13 17 18 37 38 13 +13 22 17 22 40 36 +17 19 18 39 26 36 +17 20 19 34 29 38 +17 22 21 37 31 33 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_ignore_auto.txt b/include/CDT/tests/expected/OnEdge__as-provided_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_ignore_outer.txt b/include/CDT/tests/expected/OnEdge__as-provided_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_ignore_super.txt b/include/CDT/tests/expected/OnEdge__as-provided_ignore_super.txt new file mode 100644 index 0000000..c1e4d51 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_ignore_super.txt @@ -0,0 +1,41 @@ +34 +0 1 11 4294967295 3 1 +0 11 3 0 13 4294967295 +1 2 10 4294967295 9 6 +1 4 11 7 13 0 +1 5 12 5 14 7 +1 6 5 8 11 4 +1 10 15 2 29 8 +1 12 4 4 10 3 +1 15 6 6 17 5 +2 3 10 4294967295 15 2 +3 4 12 13 7 14 +3 5 6 14 5 12 +3 6 19 11 16 15 +3 11 4 1 3 10 +3 12 5 10 4 11 +3 19 10 12 30 9 +6 7 19 17 18 12 +6 15 7 8 19 16 +7 8 19 20 24 16 +7 15 16 17 31 20 +7 16 8 19 22 18 +8 13 18 23 28 24 +8 16 17 20 32 23 +8 17 13 22 25 21 +8 18 19 21 33 18 +9 13 17 28 23 27 +9 14 18 27 33 28 +9 17 14 25 32 26 +9 18 13 26 21 25 +10 14 15 30 31 6 +10 19 14 15 33 29 +14 16 15 32 19 29 +14 17 16 27 22 31 +14 19 18 30 24 26 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_resolve_all.txt b/include/CDT/tests/expected/OnEdge__as-provided_resolve_all.txt new file mode 100644 index 0000000..213be1e --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_resolve_all.txt @@ -0,0 +1,48 @@ +41 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 16 4 +3 4 14 2 10 8 +3 14 6 7 20 1 +4 5 13 5 16 13 +4 7 14 14 20 7 +4 8 15 12 21 14 +4 9 8 15 18 11 +4 13 18 9 36 15 +4 15 7 11 17 10 +4 18 9 13 24 12 +5 6 13 6 22 9 +6 7 15 20 14 21 +6 8 9 21 12 19 +6 9 22 18 23 22 +6 14 7 8 10 17 +6 15 8 17 11 18 +6 22 13 19 37 16 +9 10 22 24 25 19 +9 18 10 15 26 23 +10 11 22 27 31 23 +10 18 19 24 38 27 +10 19 11 26 29 25 +11 16 21 30 35 31 +11 19 20 27 39 30 +11 20 16 29 32 28 +11 21 22 28 40 25 +12 16 20 35 30 34 +12 17 21 34 40 35 +12 20 17 32 39 33 +12 21 16 33 28 32 +13 17 18 37 38 13 +13 22 17 22 40 36 +17 19 18 39 26 36 +17 20 19 34 29 38 +17 22 21 37 31 33 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_resolve_auto.txt b/include/CDT/tests/expected/OnEdge__as-provided_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_resolve_outer.txt b/include/CDT/tests/expected/OnEdge__as-provided_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__as-provided_resolve_super.txt b/include/CDT/tests/expected/OnEdge__as-provided_resolve_super.txt new file mode 100644 index 0000000..c1e4d51 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__as-provided_resolve_super.txt @@ -0,0 +1,41 @@ +34 +0 1 11 4294967295 3 1 +0 11 3 0 13 4294967295 +1 2 10 4294967295 9 6 +1 4 11 7 13 0 +1 5 12 5 14 7 +1 6 5 8 11 4 +1 10 15 2 29 8 +1 12 4 4 10 3 +1 15 6 6 17 5 +2 3 10 4294967295 15 2 +3 4 12 13 7 14 +3 5 6 14 5 12 +3 6 19 11 16 15 +3 11 4 1 3 10 +3 12 5 10 4 11 +3 19 10 12 30 9 +6 7 19 17 18 12 +6 15 7 8 19 16 +7 8 19 20 24 16 +7 15 16 17 31 20 +7 16 8 19 22 18 +8 13 18 23 28 24 +8 16 17 20 32 23 +8 17 13 22 25 21 +8 18 19 21 33 18 +9 13 17 28 23 27 +9 14 18 27 33 28 +9 17 14 25 32 26 +9 18 13 26 21 25 +10 14 15 30 31 6 +10 19 14 15 33 29 +14 16 15 32 19 29 +14 17 16 27 22 31 +14 19 18 30 24 26 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_ignore_all.txt b/include/CDT/tests/expected/OnEdge__auto_ignore_all.txt new file mode 100644 index 0000000..baaa662 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_ignore_all.txt @@ -0,0 +1,48 @@ +41 +0 1 3 4294967295 4 1 +0 3 6 0 8 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 9 4 +2 6 5 2 16 3 +3 4 14 4 10 8 +3 14 6 7 20 1 +4 5 13 5 16 13 +4 7 14 14 20 7 +4 8 15 12 21 14 +4 9 8 15 18 11 +4 13 18 9 36 15 +4 15 7 11 17 10 +4 18 9 13 24 12 +5 6 13 6 22 9 +6 7 15 20 14 21 +6 8 9 21 12 19 +6 9 22 18 23 22 +6 14 7 8 10 17 +6 15 8 17 11 18 +6 22 13 19 37 16 +9 10 22 24 25 19 +9 18 10 15 26 23 +10 11 22 27 31 23 +10 18 19 24 38 27 +10 19 11 26 29 25 +11 16 21 30 35 31 +11 19 20 27 39 30 +11 20 16 29 32 28 +11 21 22 28 40 25 +12 16 20 35 30 34 +12 17 21 34 40 35 +12 20 17 32 39 33 +12 21 16 33 28 32 +13 17 18 37 38 13 +13 22 17 22 40 36 +17 19 18 39 26 36 +17 20 19 34 29 38 +17 22 21 37 31 33 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_ignore_auto.txt b/include/CDT/tests/expected/OnEdge__auto_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_ignore_outer.txt b/include/CDT/tests/expected/OnEdge__auto_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_ignore_super.txt b/include/CDT/tests/expected/OnEdge__auto_ignore_super.txt new file mode 100644 index 0000000..c1e4d51 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_ignore_super.txt @@ -0,0 +1,41 @@ +34 +0 1 11 4294967295 3 1 +0 11 3 0 13 4294967295 +1 2 10 4294967295 9 6 +1 4 11 7 13 0 +1 5 12 5 14 7 +1 6 5 8 11 4 +1 10 15 2 29 8 +1 12 4 4 10 3 +1 15 6 6 17 5 +2 3 10 4294967295 15 2 +3 4 12 13 7 14 +3 5 6 14 5 12 +3 6 19 11 16 15 +3 11 4 1 3 10 +3 12 5 10 4 11 +3 19 10 12 30 9 +6 7 19 17 18 12 +6 15 7 8 19 16 +7 8 19 20 24 16 +7 15 16 17 31 20 +7 16 8 19 22 18 +8 13 18 23 28 24 +8 16 17 20 32 23 +8 17 13 22 25 21 +8 18 19 21 33 18 +9 13 17 28 23 27 +9 14 18 27 33 28 +9 17 14 25 32 26 +9 18 13 26 21 25 +10 14 15 30 31 6 +10 19 14 15 33 29 +14 16 15 32 19 29 +14 17 16 27 22 31 +14 19 18 30 24 26 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_resolve_all.txt b/include/CDT/tests/expected/OnEdge__auto_resolve_all.txt new file mode 100644 index 0000000..baaa662 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_resolve_all.txt @@ -0,0 +1,48 @@ +41 +0 1 3 4294967295 4 1 +0 3 6 0 8 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 9 4 +2 6 5 2 16 3 +3 4 14 4 10 8 +3 14 6 7 20 1 +4 5 13 5 16 13 +4 7 14 14 20 7 +4 8 15 12 21 14 +4 9 8 15 18 11 +4 13 18 9 36 15 +4 15 7 11 17 10 +4 18 9 13 24 12 +5 6 13 6 22 9 +6 7 15 20 14 21 +6 8 9 21 12 19 +6 9 22 18 23 22 +6 14 7 8 10 17 +6 15 8 17 11 18 +6 22 13 19 37 16 +9 10 22 24 25 19 +9 18 10 15 26 23 +10 11 22 27 31 23 +10 18 19 24 38 27 +10 19 11 26 29 25 +11 16 21 30 35 31 +11 19 20 27 39 30 +11 20 16 29 32 28 +11 21 22 28 40 25 +12 16 20 35 30 34 +12 17 21 34 40 35 +12 20 17 32 39 33 +12 21 16 33 28 32 +13 17 18 37 38 13 +13 22 17 22 40 36 +17 19 18 39 26 36 +17 20 19 34 29 38 +17 22 21 37 31 33 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_resolve_auto.txt b/include/CDT/tests/expected/OnEdge__auto_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_resolve_outer.txt b/include/CDT/tests/expected/OnEdge__auto_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/OnEdge__auto_resolve_super.txt b/include/CDT/tests/expected/OnEdge__auto_resolve_super.txt new file mode 100644 index 0000000..c1e4d51 --- /dev/null +++ b/include/CDT/tests/expected/OnEdge__auto_resolve_super.txt @@ -0,0 +1,41 @@ +34 +0 1 11 4294967295 3 1 +0 11 3 0 13 4294967295 +1 2 10 4294967295 9 6 +1 4 11 7 13 0 +1 5 12 5 14 7 +1 6 5 8 11 4 +1 10 15 2 29 8 +1 12 4 4 10 3 +1 15 6 6 17 5 +2 3 10 4294967295 15 2 +3 4 12 13 7 14 +3 5 6 14 5 12 +3 6 19 11 16 15 +3 11 4 1 3 10 +3 12 5 10 4 11 +3 19 10 12 30 9 +6 7 19 17 18 12 +6 15 7 8 19 16 +7 8 19 20 24 16 +7 15 16 17 31 20 +7 16 8 19 22 18 +8 13 18 23 28 24 +8 16 17 20 32 23 +8 17 13 22 25 21 +8 18 19 21 33 18 +9 13 17 28 23 27 +9 14 18 27 33 28 +9 17 14 25 32 26 +9 18 13 26 21 25 +10 14 15 30 31 6 +10 19 14 15 33 29 +14 16 15 32 19 29 +14 17 16 27 22 31 +14 19 18 30 24 26 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_all.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_all.txt new file mode 100644 index 0000000..1921ca2 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 10 4294967295 5 2 +0 3 2 2 6 4294967295 +0 10 3 0 12 1 +1 2 7 4294967295 8 4 +1 7 8 3 15 5 +1 8 10 4 16 0 +2 3 4 1 9 7 +2 4 6 6 13 8 +2 6 7 7 14 3 +3 5 4 10 13 6 +3 7 5 11 14 9 +3 9 7 12 15 10 +3 10 9 2 16 11 +4 5 6 9 14 7 +5 7 6 10 8 13 +7 9 8 11 16 4 +8 9 10 15 12 5 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_auto.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_outer.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_super.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_super.txt new file mode 100644 index 0000000..e2bf733 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_ignore_super.txt @@ -0,0 +1,16 @@ +8 +0 2 1 1 4 4294967295 +0 4 2 2 5 0 +0 6 4 3 6 1 +0 7 6 4294967295 7 2 +1 2 3 0 5 4294967295 +2 4 3 1 4294967295 4 +4 6 5 2 7 4294967295 +5 6 7 6 3 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_all.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_all.txt new file mode 100644 index 0000000..1921ca2 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 10 4294967295 5 2 +0 3 2 2 6 4294967295 +0 10 3 0 12 1 +1 2 7 4294967295 8 4 +1 7 8 3 15 5 +1 8 10 4 16 0 +2 3 4 1 9 7 +2 4 6 6 13 8 +2 6 7 7 14 3 +3 5 4 10 13 6 +3 7 5 11 14 9 +3 9 7 12 15 10 +3 10 9 2 16 11 +4 5 6 9 14 7 +5 7 6 10 8 13 +7 9 8 11 16 4 +8 9 10 15 12 5 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_auto.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_outer.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_super.txt b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_super.txt new file mode 100644 index 0000000..e2bf733 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__as-provided_resolve_super.txt @@ -0,0 +1,16 @@ +8 +0 2 1 1 4 4294967295 +0 4 2 2 5 0 +0 6 4 3 6 1 +0 7 6 4294967295 7 2 +1 2 3 0 5 4294967295 +2 4 3 1 4294967295 4 +4 6 5 2 7 4294967295 +5 6 7 6 3 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_ignore_all.txt b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_all.txt new file mode 100644 index 0000000..1e31f90 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 5 2 +0 3 2 4 6 4294967295 +0 7 8 0 15 3 +0 8 10 2 16 4 +0 10 3 3 12 1 +1 2 7 4294967295 8 0 +2 3 4 1 9 7 +2 4 6 6 13 8 +2 6 7 7 14 5 +3 5 4 10 13 6 +3 7 5 11 14 9 +3 9 7 12 15 10 +3 10 9 4 16 11 +4 5 6 9 14 7 +5 7 6 10 8 13 +7 9 8 11 16 2 +8 9 10 15 12 3 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_ignore_auto.txt b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_ignore_outer.txt b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_ignore_super.txt b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_super.txt new file mode 100644 index 0000000..e2bf733 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_ignore_super.txt @@ -0,0 +1,16 @@ +8 +0 2 1 1 4 4294967295 +0 4 2 2 5 0 +0 6 4 3 6 1 +0 7 6 4294967295 7 2 +1 2 3 0 5 4294967295 +2 4 3 1 4294967295 4 +4 6 5 2 7 4294967295 +5 6 7 6 3 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_resolve_all.txt b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_all.txt new file mode 100644 index 0000000..1e31f90 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 5 2 +0 3 2 4 6 4294967295 +0 7 8 0 15 3 +0 8 10 2 16 4 +0 10 3 3 12 1 +1 2 7 4294967295 8 0 +2 3 4 1 9 7 +2 4 6 6 13 8 +2 6 7 7 14 5 +3 5 4 10 13 6 +3 7 5 11 14 9 +3 9 7 12 15 10 +3 10 9 4 16 11 +4 5 6 9 14 7 +5 7 6 10 8 13 +7 9 8 11 16 2 +8 9 10 15 12 3 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_resolve_auto.txt b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_resolve_outer.txt b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__auto_resolve_super.txt b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_super.txt new file mode 100644 index 0000000..e2bf733 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__auto_resolve_super.txt @@ -0,0 +1,16 @@ +8 +0 2 1 1 4 4294967295 +0 4 2 2 5 0 +0 6 4 3 6 1 +0 7 6 4294967295 7 2 +1 2 3 0 5 4294967295 +2 4 3 1 4294967295 4 +4 6 5 2 7 4294967295 +5 6 7 6 3 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/ProblematicCase1__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/ProblematicCase1__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..05e9935 --- /dev/null +++ b/include/CDT/tests/expected/ProblematicCase1__conforming_auto_ignore_auto.txt @@ -0,0 +1,31 @@ +0 + +6 +0 9 +4 11 +8 10 +8 12 +9 10 +11 12 + +0 + +6 +0 9 + 1 + 0 4 +4 11 + 1 + 0 4 +8 10 + 1 + 0 4 +8 12 + 1 + 0 4 +9 10 + 1 + 0 4 +11 12 + 1 + 0 4 diff --git a/include/CDT/tests/expected/cdt__as-provided_ignore_all.txt b/include/CDT/tests/expected/cdt__as-provided_ignore_all.txt new file mode 100644 index 0000000..40dc852 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_ignore_all.txt @@ -0,0 +1,311 @@ +203 +0 1 59 4294967295 12 10 +0 10 2 2 22 4294967295 +0 11 10 3 38 1 +0 12 11 4 40 2 +0 13 12 5 42 3 +0 14 13 6 44 4 +0 15 14 7 46 5 +0 16 15 8 48 6 +0 17 16 9 50 7 +0 18 17 10 52 8 +0 59 18 0 56 9 +1 2 65 4294967295 23 14 +1 63 59 13 142 0 +1 64 63 14 146 12 +1 65 64 11 147 13 +2 3 51 16 26 23 +2 4 3 17 24 15 +2 5 4 18 27 16 +2 6 5 19 29 17 +2 7 6 20 31 18 +2 8 7 21 32 19 +2 9 8 22 34 20 +2 10 9 1 36 21 +2 51 65 15 108 11 +3 4 41 16 28 25 +3 41 42 24 92 26 +3 42 51 25 93 15 +4 5 40 17 30 28 +4 40 41 27 92 24 +5 6 39 18 31 30 +5 39 40 29 90 27 +6 7 39 19 33 29 +7 8 38 20 35 33 +7 38 39 32 90 31 +8 9 37 21 37 35 +8 37 38 34 89 32 +9 10 36 22 39 37 +9 36 37 36 87 34 +10 11 35 2 41 39 +10 35 36 38 86 36 +11 12 34 3 43 41 +11 34 35 40 82 38 +12 13 33 4 45 43 +12 33 34 42 77 40 +13 14 32 5 47 45 +13 32 33 44 76 42 +14 15 31 6 49 47 +14 31 32 46 81 44 +15 16 30 7 51 49 +15 30 31 48 80 46 +16 17 29 8 53 51 +16 29 30 50 80 48 +17 18 28 9 55 53 +17 28 29 52 79 50 +18 19 27 56 57 55 +18 27 28 54 75 52 +18 59 19 10 58 54 +19 20 27 59 62 54 +19 59 70 56 141 60 +19 69 20 60 63 57 +19 70 69 58 157 59 +20 21 26 63 65 62 +20 26 27 61 74 57 +20 69 21 59 66 61 +21 22 23 66 67 65 +21 23 26 64 68 61 +21 69 22 63 67 64 +22 69 23 66 69 64 +23 24 26 69 70 65 +23 69 24 67 71 68 +24 25 26 71 72 68 +24 69 25 69 73 70 +25 68 26 73 74 70 +25 69 68 71 153 72 +26 68 27 72 78 62 +27 32 28 76 79 55 +27 33 32 77 45 75 +27 34 33 78 43 76 +27 68 34 74 85 77 +28 32 29 75 81 53 +29 31 30 81 49 51 +29 32 31 79 47 80 +34 43 35 83 86 41 +34 44 43 84 94 82 +34 45 44 85 96 83 +34 68 45 78 100 84 +35 43 36 82 88 39 +36 42 37 88 89 37 +36 43 42 86 93 87 +37 42 38 87 91 35 +38 40 39 91 30 33 +38 42 40 89 92 90 +40 42 41 91 25 28 +42 43 51 88 95 26 +43 44 50 83 96 95 +43 50 51 94 107 93 +44 45 50 84 99 94 +45 46 47 100 102 98 +45 47 49 97 103 99 +45 49 50 98 106 96 +45 68 46 85 101 97 +46 68 87 100 156 102 +46 87 47 101 104 97 +47 48 49 104 105 98 +47 87 48 102 105 103 +48 87 49 104 106 103 +49 87 50 105 107 99 +50 87 51 106 111 95 +51 66 65 109 148 23 +51 67 66 110 121 108 +51 86 67 111 152 109 +51 87 86 107 187 110 +52 53 54 115 116 113 +52 54 67 112 121 114 +52 67 82 113 149 115 +52 82 53 114 118 112 +53 80 54 117 123 112 +53 81 80 118 176 116 +53 82 81 115 177 117 +54 55 66 120 126 121 +54 56 55 122 124 119 +54 66 67 119 109 113 +54 79 56 123 131 120 +54 80 79 116 174 122 +55 56 60 120 128 125 +55 60 61 124 143 126 +55 61 66 125 145 119 +56 57 58 129 132 128 +56 58 60 127 140 124 +56 77 57 130 139 127 +56 78 77 131 171 129 +56 79 78 122 173 130 +57 70 58 133 141 127 +57 71 70 134 158 132 +57 72 71 135 160 133 +57 73 72 136 162 134 +57 74 73 137 164 135 +57 75 74 138 165 136 +57 76 75 139 167 137 +57 77 76 129 169 138 +58 59 60 141 142 128 +58 70 59 132 58 140 +59 63 60 12 144 140 +60 62 61 144 145 125 +60 63 62 142 146 143 +61 62 66 143 148 126 +62 63 64 144 13 147 +62 64 65 146 14 148 +62 65 66 147 108 145 +67 83 82 150 179 114 +67 84 83 151 181 149 +67 85 84 152 183 150 +67 86 85 110 185 151 +68 69 100 73 157 154 +68 100 101 153 201 155 +68 101 102 154 202 156 +68 102 87 155 187 101 +69 70 100 60 159 153 +70 71 99 133 161 159 +70 99 100 158 201 157 +71 72 98 134 163 161 +71 98 99 160 200 158 +72 73 97 135 164 163 +72 97 98 162 199 160 +73 74 97 136 166 162 +74 75 96 137 168 166 +74 96 97 165 198 164 +75 76 95 138 170 168 +75 95 96 167 197 165 +76 77 94 139 172 170 +76 94 95 169 196 167 +77 78 93 130 173 172 +77 93 94 171 195 169 +78 79 93 131 175 171 +79 80 92 123 176 175 +79 92 93 174 194 173 +80 81 92 117 178 174 +81 82 91 118 180 178 +81 91 92 177 193 176 +82 83 90 149 182 180 +82 90 91 179 192 177 +83 84 89 150 184 182 +83 89 90 181 191 179 +84 85 88 151 186 184 +84 88 89 183 189 181 +85 86 103 152 188 186 +85 103 88 185 190 183 +86 87 102 111 156 188 +86 102 103 187 202 185 +88 101 89 190 191 184 +88 103 101 186 202 189 +89 101 90 189 192 182 +90 101 91 191 193 180 +91 101 92 192 194 178 +92 101 93 193 195 175 +93 101 94 194 196 172 +94 101 95 195 197 170 +95 101 96 196 198 168 +96 101 97 197 199 166 +97 101 98 198 200 163 +98 101 99 199 201 161 +99 101 100 200 154 159 +101 103 102 190 188 155 + +101 +3 4 +3 51 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +52 53 +52 67 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +68 69 +68 87 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +88 89 +88 103 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_ignore_auto.txt b/include/CDT/tests/expected/cdt__as-provided_ignore_auto.txt new file mode 100644 index 0000000..ec86d78 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_ignore_auto.txt @@ -0,0 +1,205 @@ +97 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 4294967295 63 +65 98 99 62 4294967295 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 4294967295 65 +68 69 95 4294967295 71 69 +68 95 96 68 4294967295 66 +69 70 94 4294967295 72 71 +69 94 95 70 4294967295 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 4294967295 72 +72 73 92 4294967295 78 76 +72 92 93 75 4294967295 73 +73 74 91 4294967295 80 78 +73 91 92 77 4294967295 75 +74 75 90 4294967295 81 80 +74 90 91 79 4294967295 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 4294967295 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 4294967295 84 +79 80 87 4294967295 90 88 +79 87 88 87 4294967295 85 +80 81 86 4294967295 92 90 +80 86 87 89 4294967295 87 +81 82 85 4294967295 94 92 +81 85 86 91 4294967295 89 +82 83 100 4294967295 96 94 +82 100 85 93 4294967295 91 +83 84 99 4294967295 64 96 +83 99 100 95 4294967295 93 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_ignore_outer.txt b/include/CDT/tests/expected/cdt__as-provided_ignore_outer.txt new file mode 100644 index 0000000..317173d --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_ignore_outer.txt @@ -0,0 +1,219 @@ +111 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 109 63 +65 98 99 62 110 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 109 65 +68 69 95 4294967295 71 69 +68 95 96 68 108 66 +69 70 94 4294967295 72 71 +69 94 95 70 107 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 106 72 +72 73 92 4294967295 78 76 +72 92 93 75 105 73 +73 74 91 4294967295 80 78 +73 91 92 77 104 75 +74 75 90 4294967295 81 80 +74 90 91 79 103 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 102 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 101 84 +79 80 87 4294967295 90 88 +79 87 88 87 100 85 +80 81 86 4294967295 92 90 +80 86 87 89 99 87 +81 82 85 4294967295 94 92 +81 85 86 91 97 89 +82 83 100 4294967295 96 94 +82 100 85 93 98 91 +83 84 99 4294967295 64 96 +83 99 100 95 110 93 +85 98 86 98 99 92 +85 100 98 94 110 97 +86 98 87 97 100 90 +87 98 88 99 101 88 +88 98 89 100 102 86 +89 98 90 101 103 83 +90 98 91 102 104 80 +91 98 92 103 105 78 +92 98 93 104 106 76 +93 98 94 105 107 74 +94 98 95 106 108 71 +95 98 96 107 109 69 +96 98 97 108 62 67 +98 100 99 98 96 63 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_ignore_super.txt b/include/CDT/tests/expected/cdt__as-provided_ignore_super.txt new file mode 100644 index 0000000..437a134 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_ignore_super.txt @@ -0,0 +1,287 @@ +179 +0 1 38 4294967295 4 1 +0 38 39 0 68 2 +0 39 48 1 69 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 68 0 +2 3 36 4294967295 7 6 +2 36 37 5 66 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 66 7 +5 6 34 4294967295 13 11 +5 34 35 10 65 8 +6 7 33 4294967295 15 13 +6 33 34 12 63 10 +7 8 32 4294967295 17 15 +7 32 33 14 62 12 +8 9 31 4294967295 19 17 +8 31 32 16 58 14 +9 10 30 4294967295 21 19 +9 30 31 18 53 16 +10 11 29 4294967295 23 21 +10 29 30 20 52 18 +11 12 28 4294967295 25 23 +11 28 29 22 57 20 +12 13 27 4294967295 27 25 +12 27 28 24 56 22 +13 14 26 4294967295 29 27 +13 26 27 26 56 24 +14 15 25 4294967295 31 29 +14 25 26 28 55 26 +15 16 24 32 33 31 +15 24 25 30 51 28 +15 56 16 4294967295 34 30 +16 17 24 35 38 30 +16 56 67 32 117 36 +16 66 17 36 39 33 +16 67 66 34 133 35 +17 18 23 39 41 38 +17 23 24 37 50 33 +17 66 18 35 42 37 +18 19 20 42 43 41 +18 20 23 40 44 37 +18 66 19 39 43 40 +19 66 20 42 45 40 +20 21 23 45 46 41 +20 66 21 43 47 44 +21 22 23 47 48 44 +21 66 22 45 49 46 +22 65 23 49 50 46 +22 66 65 47 129 48 +23 65 24 48 54 38 +24 29 25 52 55 31 +24 30 29 53 21 51 +24 31 30 54 19 52 +24 65 31 50 61 53 +25 29 26 51 57 29 +26 28 27 57 25 27 +26 29 28 55 23 56 +31 40 32 59 62 17 +31 41 40 60 70 58 +31 42 41 61 72 59 +31 65 42 54 76 60 +32 40 33 58 64 15 +33 39 34 64 65 13 +33 40 39 62 69 63 +34 39 35 63 67 11 +35 37 36 67 6 9 +35 39 37 65 68 66 +37 39 38 67 1 4 +39 40 48 64 71 2 +40 41 47 59 72 71 +40 47 48 70 83 69 +41 42 47 60 75 70 +42 43 44 76 78 74 +42 44 46 73 79 75 +42 46 47 74 82 72 +42 65 43 61 77 73 +43 65 84 76 132 78 +43 84 44 77 80 73 +44 45 46 80 81 74 +44 84 45 78 81 79 +45 84 46 80 82 79 +46 84 47 81 83 75 +47 84 48 82 87 71 +48 63 62 85 124 4294967295 +48 64 63 86 97 84 +48 83 64 87 128 85 +48 84 83 83 163 86 +49 50 51 91 92 89 +49 51 64 88 97 90 +49 64 79 89 125 91 +49 79 50 90 94 88 +50 77 51 93 99 88 +50 78 77 94 152 92 +50 79 78 91 153 93 +51 52 63 96 102 97 +51 53 52 98 100 95 +51 63 64 95 85 89 +51 76 53 99 107 96 +51 77 76 92 150 98 +52 53 57 96 104 101 +52 57 58 100 119 102 +52 58 63 101 121 95 +53 54 55 105 108 104 +53 55 57 103 116 100 +53 74 54 106 115 103 +53 75 74 107 147 105 +53 76 75 98 149 106 +54 67 55 109 117 103 +54 68 67 110 134 108 +54 69 68 111 136 109 +54 70 69 112 138 110 +54 71 70 113 140 111 +54 72 71 114 141 112 +54 73 72 115 143 113 +54 74 73 105 145 114 +55 56 57 117 118 104 +55 67 56 108 34 116 +56 60 57 4294967295 120 116 +57 59 58 120 121 101 +57 60 59 118 122 119 +58 59 63 119 124 102 +59 60 61 120 4294967295 123 +59 61 62 122 4294967295 124 +59 62 63 123 84 121 +64 80 79 126 155 90 +64 81 80 127 157 125 +64 82 81 128 159 126 +64 83 82 86 161 127 +65 66 97 49 133 130 +65 97 98 129 177 131 +65 98 99 130 178 132 +65 99 84 131 163 77 +66 67 97 36 135 129 +67 68 96 109 137 135 +67 96 97 134 177 133 +68 69 95 110 139 137 +68 95 96 136 176 134 +69 70 94 111 140 139 +69 94 95 138 175 136 +70 71 94 112 142 138 +71 72 93 113 144 142 +71 93 94 141 174 140 +72 73 92 114 146 144 +72 92 93 143 173 141 +73 74 91 115 148 146 +73 91 92 145 172 143 +74 75 90 106 149 148 +74 90 91 147 171 145 +75 76 90 107 151 147 +76 77 89 99 152 151 +76 89 90 150 170 149 +77 78 89 93 154 150 +78 79 88 94 156 154 +78 88 89 153 169 152 +79 80 87 125 158 156 +79 87 88 155 168 153 +80 81 86 126 160 158 +80 86 87 157 167 155 +81 82 85 127 162 160 +81 85 86 159 165 157 +82 83 100 128 164 162 +82 100 85 161 166 159 +83 84 99 87 132 164 +83 99 100 163 178 161 +85 98 86 166 167 160 +85 100 98 162 178 165 +86 98 87 165 168 158 +87 98 88 167 169 156 +88 98 89 168 170 154 +89 98 90 169 171 151 +90 98 91 170 172 148 +91 98 92 171 173 146 +92 98 93 172 174 144 +93 98 94 173 175 142 +94 98 95 174 176 139 +95 98 96 175 177 137 +96 98 97 176 130 135 +98 100 99 166 164 131 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_resolve_all.txt b/include/CDT/tests/expected/cdt__as-provided_resolve_all.txt new file mode 100644 index 0000000..40dc852 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_resolve_all.txt @@ -0,0 +1,311 @@ +203 +0 1 59 4294967295 12 10 +0 10 2 2 22 4294967295 +0 11 10 3 38 1 +0 12 11 4 40 2 +0 13 12 5 42 3 +0 14 13 6 44 4 +0 15 14 7 46 5 +0 16 15 8 48 6 +0 17 16 9 50 7 +0 18 17 10 52 8 +0 59 18 0 56 9 +1 2 65 4294967295 23 14 +1 63 59 13 142 0 +1 64 63 14 146 12 +1 65 64 11 147 13 +2 3 51 16 26 23 +2 4 3 17 24 15 +2 5 4 18 27 16 +2 6 5 19 29 17 +2 7 6 20 31 18 +2 8 7 21 32 19 +2 9 8 22 34 20 +2 10 9 1 36 21 +2 51 65 15 108 11 +3 4 41 16 28 25 +3 41 42 24 92 26 +3 42 51 25 93 15 +4 5 40 17 30 28 +4 40 41 27 92 24 +5 6 39 18 31 30 +5 39 40 29 90 27 +6 7 39 19 33 29 +7 8 38 20 35 33 +7 38 39 32 90 31 +8 9 37 21 37 35 +8 37 38 34 89 32 +9 10 36 22 39 37 +9 36 37 36 87 34 +10 11 35 2 41 39 +10 35 36 38 86 36 +11 12 34 3 43 41 +11 34 35 40 82 38 +12 13 33 4 45 43 +12 33 34 42 77 40 +13 14 32 5 47 45 +13 32 33 44 76 42 +14 15 31 6 49 47 +14 31 32 46 81 44 +15 16 30 7 51 49 +15 30 31 48 80 46 +16 17 29 8 53 51 +16 29 30 50 80 48 +17 18 28 9 55 53 +17 28 29 52 79 50 +18 19 27 56 57 55 +18 27 28 54 75 52 +18 59 19 10 58 54 +19 20 27 59 62 54 +19 59 70 56 141 60 +19 69 20 60 63 57 +19 70 69 58 157 59 +20 21 26 63 65 62 +20 26 27 61 74 57 +20 69 21 59 66 61 +21 22 23 66 67 65 +21 23 26 64 68 61 +21 69 22 63 67 64 +22 69 23 66 69 64 +23 24 26 69 70 65 +23 69 24 67 71 68 +24 25 26 71 72 68 +24 69 25 69 73 70 +25 68 26 73 74 70 +25 69 68 71 153 72 +26 68 27 72 78 62 +27 32 28 76 79 55 +27 33 32 77 45 75 +27 34 33 78 43 76 +27 68 34 74 85 77 +28 32 29 75 81 53 +29 31 30 81 49 51 +29 32 31 79 47 80 +34 43 35 83 86 41 +34 44 43 84 94 82 +34 45 44 85 96 83 +34 68 45 78 100 84 +35 43 36 82 88 39 +36 42 37 88 89 37 +36 43 42 86 93 87 +37 42 38 87 91 35 +38 40 39 91 30 33 +38 42 40 89 92 90 +40 42 41 91 25 28 +42 43 51 88 95 26 +43 44 50 83 96 95 +43 50 51 94 107 93 +44 45 50 84 99 94 +45 46 47 100 102 98 +45 47 49 97 103 99 +45 49 50 98 106 96 +45 68 46 85 101 97 +46 68 87 100 156 102 +46 87 47 101 104 97 +47 48 49 104 105 98 +47 87 48 102 105 103 +48 87 49 104 106 103 +49 87 50 105 107 99 +50 87 51 106 111 95 +51 66 65 109 148 23 +51 67 66 110 121 108 +51 86 67 111 152 109 +51 87 86 107 187 110 +52 53 54 115 116 113 +52 54 67 112 121 114 +52 67 82 113 149 115 +52 82 53 114 118 112 +53 80 54 117 123 112 +53 81 80 118 176 116 +53 82 81 115 177 117 +54 55 66 120 126 121 +54 56 55 122 124 119 +54 66 67 119 109 113 +54 79 56 123 131 120 +54 80 79 116 174 122 +55 56 60 120 128 125 +55 60 61 124 143 126 +55 61 66 125 145 119 +56 57 58 129 132 128 +56 58 60 127 140 124 +56 77 57 130 139 127 +56 78 77 131 171 129 +56 79 78 122 173 130 +57 70 58 133 141 127 +57 71 70 134 158 132 +57 72 71 135 160 133 +57 73 72 136 162 134 +57 74 73 137 164 135 +57 75 74 138 165 136 +57 76 75 139 167 137 +57 77 76 129 169 138 +58 59 60 141 142 128 +58 70 59 132 58 140 +59 63 60 12 144 140 +60 62 61 144 145 125 +60 63 62 142 146 143 +61 62 66 143 148 126 +62 63 64 144 13 147 +62 64 65 146 14 148 +62 65 66 147 108 145 +67 83 82 150 179 114 +67 84 83 151 181 149 +67 85 84 152 183 150 +67 86 85 110 185 151 +68 69 100 73 157 154 +68 100 101 153 201 155 +68 101 102 154 202 156 +68 102 87 155 187 101 +69 70 100 60 159 153 +70 71 99 133 161 159 +70 99 100 158 201 157 +71 72 98 134 163 161 +71 98 99 160 200 158 +72 73 97 135 164 163 +72 97 98 162 199 160 +73 74 97 136 166 162 +74 75 96 137 168 166 +74 96 97 165 198 164 +75 76 95 138 170 168 +75 95 96 167 197 165 +76 77 94 139 172 170 +76 94 95 169 196 167 +77 78 93 130 173 172 +77 93 94 171 195 169 +78 79 93 131 175 171 +79 80 92 123 176 175 +79 92 93 174 194 173 +80 81 92 117 178 174 +81 82 91 118 180 178 +81 91 92 177 193 176 +82 83 90 149 182 180 +82 90 91 179 192 177 +83 84 89 150 184 182 +83 89 90 181 191 179 +84 85 88 151 186 184 +84 88 89 183 189 181 +85 86 103 152 188 186 +85 103 88 185 190 183 +86 87 102 111 156 188 +86 102 103 187 202 185 +88 101 89 190 191 184 +88 103 101 186 202 189 +89 101 90 189 192 182 +90 101 91 191 193 180 +91 101 92 192 194 178 +92 101 93 193 195 175 +93 101 94 194 196 172 +94 101 95 195 197 170 +95 101 96 196 198 168 +96 101 97 197 199 166 +97 101 98 198 200 163 +98 101 99 199 201 161 +99 101 100 200 154 159 +101 103 102 190 188 155 + +101 +3 4 +3 51 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +52 53 +52 67 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +68 69 +68 87 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +88 89 +88 103 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_resolve_auto.txt b/include/CDT/tests/expected/cdt__as-provided_resolve_auto.txt new file mode 100644 index 0000000..ec86d78 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_resolve_auto.txt @@ -0,0 +1,205 @@ +97 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 4294967295 63 +65 98 99 62 4294967295 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 4294967295 65 +68 69 95 4294967295 71 69 +68 95 96 68 4294967295 66 +69 70 94 4294967295 72 71 +69 94 95 70 4294967295 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 4294967295 72 +72 73 92 4294967295 78 76 +72 92 93 75 4294967295 73 +73 74 91 4294967295 80 78 +73 91 92 77 4294967295 75 +74 75 90 4294967295 81 80 +74 90 91 79 4294967295 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 4294967295 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 4294967295 84 +79 80 87 4294967295 90 88 +79 87 88 87 4294967295 85 +80 81 86 4294967295 92 90 +80 86 87 89 4294967295 87 +81 82 85 4294967295 94 92 +81 85 86 91 4294967295 89 +82 83 100 4294967295 96 94 +82 100 85 93 4294967295 91 +83 84 99 4294967295 64 96 +83 99 100 95 4294967295 93 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_resolve_outer.txt b/include/CDT/tests/expected/cdt__as-provided_resolve_outer.txt new file mode 100644 index 0000000..317173d --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_resolve_outer.txt @@ -0,0 +1,219 @@ +111 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 109 63 +65 98 99 62 110 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 109 65 +68 69 95 4294967295 71 69 +68 95 96 68 108 66 +69 70 94 4294967295 72 71 +69 94 95 70 107 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 106 72 +72 73 92 4294967295 78 76 +72 92 93 75 105 73 +73 74 91 4294967295 80 78 +73 91 92 77 104 75 +74 75 90 4294967295 81 80 +74 90 91 79 103 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 102 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 101 84 +79 80 87 4294967295 90 88 +79 87 88 87 100 85 +80 81 86 4294967295 92 90 +80 86 87 89 99 87 +81 82 85 4294967295 94 92 +81 85 86 91 97 89 +82 83 100 4294967295 96 94 +82 100 85 93 98 91 +83 84 99 4294967295 64 96 +83 99 100 95 110 93 +85 98 86 98 99 92 +85 100 98 94 110 97 +86 98 87 97 100 90 +87 98 88 99 101 88 +88 98 89 100 102 86 +89 98 90 101 103 83 +90 98 91 102 104 80 +91 98 92 103 105 78 +92 98 93 104 106 76 +93 98 94 105 107 74 +94 98 95 106 108 71 +95 98 96 107 109 69 +96 98 97 108 62 67 +98 100 99 98 96 63 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__as-provided_resolve_super.txt b/include/CDT/tests/expected/cdt__as-provided_resolve_super.txt new file mode 100644 index 0000000..437a134 --- /dev/null +++ b/include/CDT/tests/expected/cdt__as-provided_resolve_super.txt @@ -0,0 +1,287 @@ +179 +0 1 38 4294967295 4 1 +0 38 39 0 68 2 +0 39 48 1 69 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 68 0 +2 3 36 4294967295 7 6 +2 36 37 5 66 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 66 7 +5 6 34 4294967295 13 11 +5 34 35 10 65 8 +6 7 33 4294967295 15 13 +6 33 34 12 63 10 +7 8 32 4294967295 17 15 +7 32 33 14 62 12 +8 9 31 4294967295 19 17 +8 31 32 16 58 14 +9 10 30 4294967295 21 19 +9 30 31 18 53 16 +10 11 29 4294967295 23 21 +10 29 30 20 52 18 +11 12 28 4294967295 25 23 +11 28 29 22 57 20 +12 13 27 4294967295 27 25 +12 27 28 24 56 22 +13 14 26 4294967295 29 27 +13 26 27 26 56 24 +14 15 25 4294967295 31 29 +14 25 26 28 55 26 +15 16 24 32 33 31 +15 24 25 30 51 28 +15 56 16 4294967295 34 30 +16 17 24 35 38 30 +16 56 67 32 117 36 +16 66 17 36 39 33 +16 67 66 34 133 35 +17 18 23 39 41 38 +17 23 24 37 50 33 +17 66 18 35 42 37 +18 19 20 42 43 41 +18 20 23 40 44 37 +18 66 19 39 43 40 +19 66 20 42 45 40 +20 21 23 45 46 41 +20 66 21 43 47 44 +21 22 23 47 48 44 +21 66 22 45 49 46 +22 65 23 49 50 46 +22 66 65 47 129 48 +23 65 24 48 54 38 +24 29 25 52 55 31 +24 30 29 53 21 51 +24 31 30 54 19 52 +24 65 31 50 61 53 +25 29 26 51 57 29 +26 28 27 57 25 27 +26 29 28 55 23 56 +31 40 32 59 62 17 +31 41 40 60 70 58 +31 42 41 61 72 59 +31 65 42 54 76 60 +32 40 33 58 64 15 +33 39 34 64 65 13 +33 40 39 62 69 63 +34 39 35 63 67 11 +35 37 36 67 6 9 +35 39 37 65 68 66 +37 39 38 67 1 4 +39 40 48 64 71 2 +40 41 47 59 72 71 +40 47 48 70 83 69 +41 42 47 60 75 70 +42 43 44 76 78 74 +42 44 46 73 79 75 +42 46 47 74 82 72 +42 65 43 61 77 73 +43 65 84 76 132 78 +43 84 44 77 80 73 +44 45 46 80 81 74 +44 84 45 78 81 79 +45 84 46 80 82 79 +46 84 47 81 83 75 +47 84 48 82 87 71 +48 63 62 85 124 4294967295 +48 64 63 86 97 84 +48 83 64 87 128 85 +48 84 83 83 163 86 +49 50 51 91 92 89 +49 51 64 88 97 90 +49 64 79 89 125 91 +49 79 50 90 94 88 +50 77 51 93 99 88 +50 78 77 94 152 92 +50 79 78 91 153 93 +51 52 63 96 102 97 +51 53 52 98 100 95 +51 63 64 95 85 89 +51 76 53 99 107 96 +51 77 76 92 150 98 +52 53 57 96 104 101 +52 57 58 100 119 102 +52 58 63 101 121 95 +53 54 55 105 108 104 +53 55 57 103 116 100 +53 74 54 106 115 103 +53 75 74 107 147 105 +53 76 75 98 149 106 +54 67 55 109 117 103 +54 68 67 110 134 108 +54 69 68 111 136 109 +54 70 69 112 138 110 +54 71 70 113 140 111 +54 72 71 114 141 112 +54 73 72 115 143 113 +54 74 73 105 145 114 +55 56 57 117 118 104 +55 67 56 108 34 116 +56 60 57 4294967295 120 116 +57 59 58 120 121 101 +57 60 59 118 122 119 +58 59 63 119 124 102 +59 60 61 120 4294967295 123 +59 61 62 122 4294967295 124 +59 62 63 123 84 121 +64 80 79 126 155 90 +64 81 80 127 157 125 +64 82 81 128 159 126 +64 83 82 86 161 127 +65 66 97 49 133 130 +65 97 98 129 177 131 +65 98 99 130 178 132 +65 99 84 131 163 77 +66 67 97 36 135 129 +67 68 96 109 137 135 +67 96 97 134 177 133 +68 69 95 110 139 137 +68 95 96 136 176 134 +69 70 94 111 140 139 +69 94 95 138 175 136 +70 71 94 112 142 138 +71 72 93 113 144 142 +71 93 94 141 174 140 +72 73 92 114 146 144 +72 92 93 143 173 141 +73 74 91 115 148 146 +73 91 92 145 172 143 +74 75 90 106 149 148 +74 90 91 147 171 145 +75 76 90 107 151 147 +76 77 89 99 152 151 +76 89 90 150 170 149 +77 78 89 93 154 150 +78 79 88 94 156 154 +78 88 89 153 169 152 +79 80 87 125 158 156 +79 87 88 155 168 153 +80 81 86 126 160 158 +80 86 87 157 167 155 +81 82 85 127 162 160 +81 85 86 159 165 157 +82 83 100 128 164 162 +82 100 85 161 166 159 +83 84 99 87 132 164 +83 99 100 163 178 161 +85 98 86 166 167 160 +85 100 98 162 178 165 +86 98 87 165 168 158 +87 98 88 167 169 156 +88 98 89 168 170 154 +89 98 90 169 171 151 +90 98 91 170 172 148 +91 98 92 171 173 146 +92 98 93 172 174 144 +93 98 94 173 175 142 +94 98 95 174 176 139 +95 98 96 175 177 137 +96 98 97 176 130 135 +98 100 99 166 164 131 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_ignore_all.txt b/include/CDT/tests/expected/cdt__auto_ignore_all.txt new file mode 100644 index 0000000..c13e9e0 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_ignore_all.txt @@ -0,0 +1,311 @@ +203 +0 1 59 4294967295 15 13 +0 7 2 2 22 4294967295 +0 8 7 3 32 1 +0 9 8 4 34 2 +0 10 9 5 36 3 +0 11 10 6 38 4 +0 12 11 7 40 5 +0 13 12 8 42 6 +0 14 13 9 44 7 +0 15 14 10 46 8 +0 16 15 11 48 9 +0 17 16 12 50 10 +0 18 17 13 52 11 +0 59 18 0 56 12 +1 2 65 4294967295 23 17 +1 63 59 16 142 0 +1 64 63 17 146 15 +1 65 64 14 147 16 +2 3 51 19 26 23 +2 4 3 20 24 18 +2 5 4 21 27 19 +2 6 5 22 29 20 +2 7 6 1 31 21 +2 51 65 18 108 14 +3 4 41 19 28 25 +3 41 42 24 92 26 +3 42 51 25 93 18 +4 5 40 20 30 28 +4 40 41 27 92 24 +5 6 39 21 31 30 +5 39 40 29 90 27 +6 7 39 22 33 29 +7 8 38 2 35 33 +7 38 39 32 90 31 +8 9 37 3 37 35 +8 37 38 34 89 32 +9 10 36 4 39 37 +9 36 37 36 87 34 +10 11 35 5 41 39 +10 35 36 38 86 36 +11 12 34 6 43 41 +11 34 35 40 82 38 +12 13 33 7 45 43 +12 33 34 42 77 40 +13 14 32 8 47 45 +13 32 33 44 76 42 +14 15 31 9 49 47 +14 31 32 46 81 44 +15 16 30 10 51 49 +15 30 31 48 80 46 +16 17 29 11 53 51 +16 29 30 50 80 48 +17 18 28 12 55 53 +17 28 29 52 79 50 +18 19 27 56 57 55 +18 27 28 54 75 52 +18 59 19 13 58 54 +19 20 27 59 62 54 +19 59 70 56 141 60 +19 69 20 60 63 57 +19 70 69 58 157 59 +20 21 26 63 65 62 +20 26 27 61 74 57 +20 69 21 59 66 61 +21 22 23 66 67 65 +21 23 26 64 68 61 +21 69 22 63 67 64 +22 69 23 66 69 64 +23 24 26 69 70 65 +23 69 24 67 71 68 +24 25 26 71 72 68 +24 69 25 69 73 70 +25 68 26 73 74 70 +25 69 68 71 153 72 +26 68 27 72 78 62 +27 32 28 76 79 55 +27 33 32 77 45 75 +27 34 33 78 43 76 +27 68 34 74 85 77 +28 32 29 75 81 53 +29 31 30 81 49 51 +29 32 31 79 47 80 +34 43 35 83 86 41 +34 44 43 84 94 82 +34 45 44 85 96 83 +34 68 45 78 100 84 +35 43 36 82 88 39 +36 42 37 88 89 37 +36 43 42 86 93 87 +37 42 38 87 91 35 +38 40 39 91 30 33 +38 42 40 89 92 90 +40 42 41 91 25 28 +42 43 51 88 95 26 +43 44 50 83 96 95 +43 50 51 94 107 93 +44 45 50 84 99 94 +45 46 47 100 102 98 +45 47 49 97 103 99 +45 49 50 98 106 96 +45 68 46 85 101 97 +46 68 87 100 156 102 +46 87 47 101 104 97 +47 48 49 104 105 98 +47 87 48 102 105 103 +48 87 49 104 106 103 +49 87 50 105 107 99 +50 87 51 106 111 95 +51 66 65 109 148 23 +51 67 66 110 121 108 +51 86 67 111 152 109 +51 87 86 107 187 110 +52 53 54 115 116 113 +52 54 67 112 121 114 +52 67 82 113 149 115 +52 82 53 114 118 112 +53 80 54 117 123 112 +53 81 80 118 176 116 +53 82 81 115 177 117 +54 55 66 120 126 121 +54 56 55 122 124 119 +54 66 67 119 109 113 +54 79 56 123 131 120 +54 80 79 116 174 122 +55 56 60 120 128 125 +55 60 61 124 143 126 +55 61 66 125 145 119 +56 57 58 129 132 128 +56 58 60 127 140 124 +56 77 57 130 139 127 +56 78 77 131 171 129 +56 79 78 122 173 130 +57 70 58 133 141 127 +57 71 70 134 158 132 +57 72 71 135 160 133 +57 73 72 136 162 134 +57 74 73 137 164 135 +57 75 74 138 165 136 +57 76 75 139 167 137 +57 77 76 129 169 138 +58 59 60 141 142 128 +58 70 59 132 58 140 +59 63 60 15 144 140 +60 62 61 144 145 125 +60 63 62 142 146 143 +61 62 66 143 148 126 +62 63 64 144 16 147 +62 64 65 146 17 148 +62 65 66 147 108 145 +67 83 82 150 179 114 +67 84 83 151 181 149 +67 85 84 152 183 150 +67 86 85 110 185 151 +68 69 100 73 157 154 +68 100 101 153 201 155 +68 101 102 154 202 156 +68 102 87 155 187 101 +69 70 100 60 159 153 +70 71 99 133 161 159 +70 99 100 158 201 157 +71 72 98 134 163 161 +71 98 99 160 200 158 +72 73 97 135 164 163 +72 97 98 162 199 160 +73 74 97 136 166 162 +74 75 96 137 168 166 +74 96 97 165 198 164 +75 76 95 138 170 168 +75 95 96 167 197 165 +76 77 94 139 172 170 +76 94 95 169 196 167 +77 78 93 130 173 172 +77 93 94 171 195 169 +78 79 93 131 175 171 +79 80 92 123 176 175 +79 92 93 174 194 173 +80 81 92 117 178 174 +81 82 91 118 180 178 +81 91 92 177 193 176 +82 83 90 149 182 180 +82 90 91 179 192 177 +83 84 89 150 184 182 +83 89 90 181 191 179 +84 85 88 151 186 184 +84 88 89 183 189 181 +85 86 103 152 188 186 +85 103 88 185 190 183 +86 87 102 111 156 188 +86 102 103 187 202 185 +88 101 89 190 191 184 +88 103 101 186 202 189 +89 101 90 189 192 182 +90 101 91 191 193 180 +91 101 92 192 194 178 +92 101 93 193 195 175 +93 101 94 194 196 172 +94 101 95 195 197 170 +95 101 96 196 198 168 +96 101 97 197 199 166 +97 101 98 198 200 163 +98 101 99 199 201 161 +99 101 100 200 154 159 +101 103 102 190 188 155 + +101 +3 4 +3 51 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +52 53 +52 67 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +68 69 +68 87 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +88 89 +88 103 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_ignore_auto.txt b/include/CDT/tests/expected/cdt__auto_ignore_auto.txt new file mode 100644 index 0000000..ec86d78 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_ignore_auto.txt @@ -0,0 +1,205 @@ +97 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 4294967295 63 +65 98 99 62 4294967295 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 4294967295 65 +68 69 95 4294967295 71 69 +68 95 96 68 4294967295 66 +69 70 94 4294967295 72 71 +69 94 95 70 4294967295 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 4294967295 72 +72 73 92 4294967295 78 76 +72 92 93 75 4294967295 73 +73 74 91 4294967295 80 78 +73 91 92 77 4294967295 75 +74 75 90 4294967295 81 80 +74 90 91 79 4294967295 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 4294967295 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 4294967295 84 +79 80 87 4294967295 90 88 +79 87 88 87 4294967295 85 +80 81 86 4294967295 92 90 +80 86 87 89 4294967295 87 +81 82 85 4294967295 94 92 +81 85 86 91 4294967295 89 +82 83 100 4294967295 96 94 +82 100 85 93 4294967295 91 +83 84 99 4294967295 64 96 +83 99 100 95 4294967295 93 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_ignore_outer.txt b/include/CDT/tests/expected/cdt__auto_ignore_outer.txt new file mode 100644 index 0000000..317173d --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_ignore_outer.txt @@ -0,0 +1,219 @@ +111 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 109 63 +65 98 99 62 110 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 109 65 +68 69 95 4294967295 71 69 +68 95 96 68 108 66 +69 70 94 4294967295 72 71 +69 94 95 70 107 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 106 72 +72 73 92 4294967295 78 76 +72 92 93 75 105 73 +73 74 91 4294967295 80 78 +73 91 92 77 104 75 +74 75 90 4294967295 81 80 +74 90 91 79 103 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 102 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 101 84 +79 80 87 4294967295 90 88 +79 87 88 87 100 85 +80 81 86 4294967295 92 90 +80 86 87 89 99 87 +81 82 85 4294967295 94 92 +81 85 86 91 97 89 +82 83 100 4294967295 96 94 +82 100 85 93 98 91 +83 84 99 4294967295 64 96 +83 99 100 95 110 93 +85 98 86 98 99 92 +85 100 98 94 110 97 +86 98 87 97 100 90 +87 98 88 99 101 88 +88 98 89 100 102 86 +89 98 90 101 103 83 +90 98 91 102 104 80 +91 98 92 103 105 78 +92 98 93 104 106 76 +93 98 94 105 107 74 +94 98 95 106 108 71 +95 98 96 107 109 69 +96 98 97 108 62 67 +98 100 99 98 96 63 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_ignore_super.txt b/include/CDT/tests/expected/cdt__auto_ignore_super.txt new file mode 100644 index 0000000..437a134 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_ignore_super.txt @@ -0,0 +1,287 @@ +179 +0 1 38 4294967295 4 1 +0 38 39 0 68 2 +0 39 48 1 69 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 68 0 +2 3 36 4294967295 7 6 +2 36 37 5 66 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 66 7 +5 6 34 4294967295 13 11 +5 34 35 10 65 8 +6 7 33 4294967295 15 13 +6 33 34 12 63 10 +7 8 32 4294967295 17 15 +7 32 33 14 62 12 +8 9 31 4294967295 19 17 +8 31 32 16 58 14 +9 10 30 4294967295 21 19 +9 30 31 18 53 16 +10 11 29 4294967295 23 21 +10 29 30 20 52 18 +11 12 28 4294967295 25 23 +11 28 29 22 57 20 +12 13 27 4294967295 27 25 +12 27 28 24 56 22 +13 14 26 4294967295 29 27 +13 26 27 26 56 24 +14 15 25 4294967295 31 29 +14 25 26 28 55 26 +15 16 24 32 33 31 +15 24 25 30 51 28 +15 56 16 4294967295 34 30 +16 17 24 35 38 30 +16 56 67 32 117 36 +16 66 17 36 39 33 +16 67 66 34 133 35 +17 18 23 39 41 38 +17 23 24 37 50 33 +17 66 18 35 42 37 +18 19 20 42 43 41 +18 20 23 40 44 37 +18 66 19 39 43 40 +19 66 20 42 45 40 +20 21 23 45 46 41 +20 66 21 43 47 44 +21 22 23 47 48 44 +21 66 22 45 49 46 +22 65 23 49 50 46 +22 66 65 47 129 48 +23 65 24 48 54 38 +24 29 25 52 55 31 +24 30 29 53 21 51 +24 31 30 54 19 52 +24 65 31 50 61 53 +25 29 26 51 57 29 +26 28 27 57 25 27 +26 29 28 55 23 56 +31 40 32 59 62 17 +31 41 40 60 70 58 +31 42 41 61 72 59 +31 65 42 54 76 60 +32 40 33 58 64 15 +33 39 34 64 65 13 +33 40 39 62 69 63 +34 39 35 63 67 11 +35 37 36 67 6 9 +35 39 37 65 68 66 +37 39 38 67 1 4 +39 40 48 64 71 2 +40 41 47 59 72 71 +40 47 48 70 83 69 +41 42 47 60 75 70 +42 43 44 76 78 74 +42 44 46 73 79 75 +42 46 47 74 82 72 +42 65 43 61 77 73 +43 65 84 76 132 78 +43 84 44 77 80 73 +44 45 46 80 81 74 +44 84 45 78 81 79 +45 84 46 80 82 79 +46 84 47 81 83 75 +47 84 48 82 87 71 +48 63 62 85 124 4294967295 +48 64 63 86 97 84 +48 83 64 87 128 85 +48 84 83 83 163 86 +49 50 51 91 92 89 +49 51 64 88 97 90 +49 64 79 89 125 91 +49 79 50 90 94 88 +50 77 51 93 99 88 +50 78 77 94 152 92 +50 79 78 91 153 93 +51 52 63 96 102 97 +51 53 52 98 100 95 +51 63 64 95 85 89 +51 76 53 99 107 96 +51 77 76 92 150 98 +52 53 57 96 104 101 +52 57 58 100 119 102 +52 58 63 101 121 95 +53 54 55 105 108 104 +53 55 57 103 116 100 +53 74 54 106 115 103 +53 75 74 107 147 105 +53 76 75 98 149 106 +54 67 55 109 117 103 +54 68 67 110 134 108 +54 69 68 111 136 109 +54 70 69 112 138 110 +54 71 70 113 140 111 +54 72 71 114 141 112 +54 73 72 115 143 113 +54 74 73 105 145 114 +55 56 57 117 118 104 +55 67 56 108 34 116 +56 60 57 4294967295 120 116 +57 59 58 120 121 101 +57 60 59 118 122 119 +58 59 63 119 124 102 +59 60 61 120 4294967295 123 +59 61 62 122 4294967295 124 +59 62 63 123 84 121 +64 80 79 126 155 90 +64 81 80 127 157 125 +64 82 81 128 159 126 +64 83 82 86 161 127 +65 66 97 49 133 130 +65 97 98 129 177 131 +65 98 99 130 178 132 +65 99 84 131 163 77 +66 67 97 36 135 129 +67 68 96 109 137 135 +67 96 97 134 177 133 +68 69 95 110 139 137 +68 95 96 136 176 134 +69 70 94 111 140 139 +69 94 95 138 175 136 +70 71 94 112 142 138 +71 72 93 113 144 142 +71 93 94 141 174 140 +72 73 92 114 146 144 +72 92 93 143 173 141 +73 74 91 115 148 146 +73 91 92 145 172 143 +74 75 90 106 149 148 +74 90 91 147 171 145 +75 76 90 107 151 147 +76 77 89 99 152 151 +76 89 90 150 170 149 +77 78 89 93 154 150 +78 79 88 94 156 154 +78 88 89 153 169 152 +79 80 87 125 158 156 +79 87 88 155 168 153 +80 81 86 126 160 158 +80 86 87 157 167 155 +81 82 85 127 162 160 +81 85 86 159 165 157 +82 83 100 128 164 162 +82 100 85 161 166 159 +83 84 99 87 132 164 +83 99 100 163 178 161 +85 98 86 166 167 160 +85 100 98 162 178 165 +86 98 87 165 168 158 +87 98 88 167 169 156 +88 98 89 168 170 154 +89 98 90 169 171 151 +90 98 91 170 172 148 +91 98 92 171 173 146 +92 98 93 172 174 144 +93 98 94 173 175 142 +94 98 95 174 176 139 +95 98 96 175 177 137 +96 98 97 176 130 135 +98 100 99 166 164 131 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_resolve_all.txt b/include/CDT/tests/expected/cdt__auto_resolve_all.txt new file mode 100644 index 0000000..c13e9e0 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_resolve_all.txt @@ -0,0 +1,311 @@ +203 +0 1 59 4294967295 15 13 +0 7 2 2 22 4294967295 +0 8 7 3 32 1 +0 9 8 4 34 2 +0 10 9 5 36 3 +0 11 10 6 38 4 +0 12 11 7 40 5 +0 13 12 8 42 6 +0 14 13 9 44 7 +0 15 14 10 46 8 +0 16 15 11 48 9 +0 17 16 12 50 10 +0 18 17 13 52 11 +0 59 18 0 56 12 +1 2 65 4294967295 23 17 +1 63 59 16 142 0 +1 64 63 17 146 15 +1 65 64 14 147 16 +2 3 51 19 26 23 +2 4 3 20 24 18 +2 5 4 21 27 19 +2 6 5 22 29 20 +2 7 6 1 31 21 +2 51 65 18 108 14 +3 4 41 19 28 25 +3 41 42 24 92 26 +3 42 51 25 93 18 +4 5 40 20 30 28 +4 40 41 27 92 24 +5 6 39 21 31 30 +5 39 40 29 90 27 +6 7 39 22 33 29 +7 8 38 2 35 33 +7 38 39 32 90 31 +8 9 37 3 37 35 +8 37 38 34 89 32 +9 10 36 4 39 37 +9 36 37 36 87 34 +10 11 35 5 41 39 +10 35 36 38 86 36 +11 12 34 6 43 41 +11 34 35 40 82 38 +12 13 33 7 45 43 +12 33 34 42 77 40 +13 14 32 8 47 45 +13 32 33 44 76 42 +14 15 31 9 49 47 +14 31 32 46 81 44 +15 16 30 10 51 49 +15 30 31 48 80 46 +16 17 29 11 53 51 +16 29 30 50 80 48 +17 18 28 12 55 53 +17 28 29 52 79 50 +18 19 27 56 57 55 +18 27 28 54 75 52 +18 59 19 13 58 54 +19 20 27 59 62 54 +19 59 70 56 141 60 +19 69 20 60 63 57 +19 70 69 58 157 59 +20 21 26 63 65 62 +20 26 27 61 74 57 +20 69 21 59 66 61 +21 22 23 66 67 65 +21 23 26 64 68 61 +21 69 22 63 67 64 +22 69 23 66 69 64 +23 24 26 69 70 65 +23 69 24 67 71 68 +24 25 26 71 72 68 +24 69 25 69 73 70 +25 68 26 73 74 70 +25 69 68 71 153 72 +26 68 27 72 78 62 +27 32 28 76 79 55 +27 33 32 77 45 75 +27 34 33 78 43 76 +27 68 34 74 85 77 +28 32 29 75 81 53 +29 31 30 81 49 51 +29 32 31 79 47 80 +34 43 35 83 86 41 +34 44 43 84 94 82 +34 45 44 85 96 83 +34 68 45 78 100 84 +35 43 36 82 88 39 +36 42 37 88 89 37 +36 43 42 86 93 87 +37 42 38 87 91 35 +38 40 39 91 30 33 +38 42 40 89 92 90 +40 42 41 91 25 28 +42 43 51 88 95 26 +43 44 50 83 96 95 +43 50 51 94 107 93 +44 45 50 84 99 94 +45 46 47 100 102 98 +45 47 49 97 103 99 +45 49 50 98 106 96 +45 68 46 85 101 97 +46 68 87 100 156 102 +46 87 47 101 104 97 +47 48 49 104 105 98 +47 87 48 102 105 103 +48 87 49 104 106 103 +49 87 50 105 107 99 +50 87 51 106 111 95 +51 66 65 109 148 23 +51 67 66 110 121 108 +51 86 67 111 152 109 +51 87 86 107 187 110 +52 53 54 115 116 113 +52 54 67 112 121 114 +52 67 82 113 149 115 +52 82 53 114 118 112 +53 80 54 117 123 112 +53 81 80 118 176 116 +53 82 81 115 177 117 +54 55 66 120 126 121 +54 56 55 122 124 119 +54 66 67 119 109 113 +54 79 56 123 131 120 +54 80 79 116 174 122 +55 56 60 120 128 125 +55 60 61 124 143 126 +55 61 66 125 145 119 +56 57 58 129 132 128 +56 58 60 127 140 124 +56 77 57 130 139 127 +56 78 77 131 171 129 +56 79 78 122 173 130 +57 70 58 133 141 127 +57 71 70 134 158 132 +57 72 71 135 160 133 +57 73 72 136 162 134 +57 74 73 137 164 135 +57 75 74 138 165 136 +57 76 75 139 167 137 +57 77 76 129 169 138 +58 59 60 141 142 128 +58 70 59 132 58 140 +59 63 60 15 144 140 +60 62 61 144 145 125 +60 63 62 142 146 143 +61 62 66 143 148 126 +62 63 64 144 16 147 +62 64 65 146 17 148 +62 65 66 147 108 145 +67 83 82 150 179 114 +67 84 83 151 181 149 +67 85 84 152 183 150 +67 86 85 110 185 151 +68 69 100 73 157 154 +68 100 101 153 201 155 +68 101 102 154 202 156 +68 102 87 155 187 101 +69 70 100 60 159 153 +70 71 99 133 161 159 +70 99 100 158 201 157 +71 72 98 134 163 161 +71 98 99 160 200 158 +72 73 97 135 164 163 +72 97 98 162 199 160 +73 74 97 136 166 162 +74 75 96 137 168 166 +74 96 97 165 198 164 +75 76 95 138 170 168 +75 95 96 167 197 165 +76 77 94 139 172 170 +76 94 95 169 196 167 +77 78 93 130 173 172 +77 93 94 171 195 169 +78 79 93 131 175 171 +79 80 92 123 176 175 +79 92 93 174 194 173 +80 81 92 117 178 174 +81 82 91 118 180 178 +81 91 92 177 193 176 +82 83 90 149 182 180 +82 90 91 179 192 177 +83 84 89 150 184 182 +83 89 90 181 191 179 +84 85 88 151 186 184 +84 88 89 183 189 181 +85 86 103 152 188 186 +85 103 88 185 190 183 +86 87 102 111 156 188 +86 102 103 187 202 185 +88 101 89 190 191 184 +88 103 101 186 202 189 +89 101 90 189 192 182 +90 101 91 191 193 180 +91 101 92 192 194 178 +92 101 93 193 195 175 +93 101 94 194 196 172 +94 101 95 195 197 170 +95 101 96 196 198 168 +96 101 97 197 199 166 +97 101 98 198 200 163 +98 101 99 199 201 161 +99 101 100 200 154 159 +101 103 102 190 188 155 + +101 +3 4 +3 51 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +52 53 +52 67 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +68 69 +68 87 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +88 89 +88 103 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_resolve_auto.txt b/include/CDT/tests/expected/cdt__auto_resolve_auto.txt new file mode 100644 index 0000000..ec86d78 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_resolve_auto.txt @@ -0,0 +1,205 @@ +97 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 4294967295 63 +65 98 99 62 4294967295 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 4294967295 65 +68 69 95 4294967295 71 69 +68 95 96 68 4294967295 66 +69 70 94 4294967295 72 71 +69 94 95 70 4294967295 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 4294967295 72 +72 73 92 4294967295 78 76 +72 92 93 75 4294967295 73 +73 74 91 4294967295 80 78 +73 91 92 77 4294967295 75 +74 75 90 4294967295 81 80 +74 90 91 79 4294967295 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 4294967295 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 4294967295 84 +79 80 87 4294967295 90 88 +79 87 88 87 4294967295 85 +80 81 86 4294967295 92 90 +80 86 87 89 4294967295 87 +81 82 85 4294967295 94 92 +81 85 86 91 4294967295 89 +82 83 100 4294967295 96 94 +82 100 85 93 4294967295 91 +83 84 99 4294967295 64 96 +83 99 100 95 4294967295 93 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_resolve_outer.txt b/include/CDT/tests/expected/cdt__auto_resolve_outer.txt new file mode 100644 index 0000000..317173d --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_resolve_outer.txt @@ -0,0 +1,219 @@ +111 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 66 97 4294967295 65 62 +65 97 98 61 109 63 +65 98 99 62 110 64 +65 99 84 63 95 4294967295 +66 67 97 4294967295 67 61 +67 68 96 4294967295 69 67 +67 96 97 66 109 65 +68 69 95 4294967295 71 69 +68 95 96 68 108 66 +69 70 94 4294967295 72 71 +69 94 95 70 107 68 +70 71 94 4294967295 74 70 +71 72 93 4294967295 76 74 +71 93 94 73 106 72 +72 73 92 4294967295 78 76 +72 92 93 75 105 73 +73 74 91 4294967295 80 78 +73 91 92 77 104 75 +74 75 90 4294967295 81 80 +74 90 91 79 103 77 +75 76 90 4294967295 83 79 +76 77 89 4294967295 84 83 +76 89 90 82 102 81 +77 78 89 4294967295 86 82 +78 79 88 4294967295 88 86 +78 88 89 85 101 84 +79 80 87 4294967295 90 88 +79 87 88 87 100 85 +80 81 86 4294967295 92 90 +80 86 87 89 99 87 +81 82 85 4294967295 94 92 +81 85 86 91 97 89 +82 83 100 4294967295 96 94 +82 100 85 93 98 91 +83 84 99 4294967295 64 96 +83 99 100 95 110 93 +85 98 86 98 99 92 +85 100 98 94 110 97 +86 98 87 97 100 90 +87 98 88 99 101 88 +88 98 89 100 102 86 +89 98 90 101 103 83 +90 98 91 102 104 80 +91 98 92 103 105 78 +92 98 93 104 106 76 +93 98 94 105 107 74 +94 98 95 106 108 71 +95 98 96 107 109 69 +96 98 97 108 62 67 +98 100 99 98 96 63 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__auto_resolve_super.txt b/include/CDT/tests/expected/cdt__auto_resolve_super.txt new file mode 100644 index 0000000..437a134 --- /dev/null +++ b/include/CDT/tests/expected/cdt__auto_resolve_super.txt @@ -0,0 +1,287 @@ +179 +0 1 38 4294967295 4 1 +0 38 39 0 68 2 +0 39 48 1 69 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 68 0 +2 3 36 4294967295 7 6 +2 36 37 5 66 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 66 7 +5 6 34 4294967295 13 11 +5 34 35 10 65 8 +6 7 33 4294967295 15 13 +6 33 34 12 63 10 +7 8 32 4294967295 17 15 +7 32 33 14 62 12 +8 9 31 4294967295 19 17 +8 31 32 16 58 14 +9 10 30 4294967295 21 19 +9 30 31 18 53 16 +10 11 29 4294967295 23 21 +10 29 30 20 52 18 +11 12 28 4294967295 25 23 +11 28 29 22 57 20 +12 13 27 4294967295 27 25 +12 27 28 24 56 22 +13 14 26 4294967295 29 27 +13 26 27 26 56 24 +14 15 25 4294967295 31 29 +14 25 26 28 55 26 +15 16 24 32 33 31 +15 24 25 30 51 28 +15 56 16 4294967295 34 30 +16 17 24 35 38 30 +16 56 67 32 117 36 +16 66 17 36 39 33 +16 67 66 34 133 35 +17 18 23 39 41 38 +17 23 24 37 50 33 +17 66 18 35 42 37 +18 19 20 42 43 41 +18 20 23 40 44 37 +18 66 19 39 43 40 +19 66 20 42 45 40 +20 21 23 45 46 41 +20 66 21 43 47 44 +21 22 23 47 48 44 +21 66 22 45 49 46 +22 65 23 49 50 46 +22 66 65 47 129 48 +23 65 24 48 54 38 +24 29 25 52 55 31 +24 30 29 53 21 51 +24 31 30 54 19 52 +24 65 31 50 61 53 +25 29 26 51 57 29 +26 28 27 57 25 27 +26 29 28 55 23 56 +31 40 32 59 62 17 +31 41 40 60 70 58 +31 42 41 61 72 59 +31 65 42 54 76 60 +32 40 33 58 64 15 +33 39 34 64 65 13 +33 40 39 62 69 63 +34 39 35 63 67 11 +35 37 36 67 6 9 +35 39 37 65 68 66 +37 39 38 67 1 4 +39 40 48 64 71 2 +40 41 47 59 72 71 +40 47 48 70 83 69 +41 42 47 60 75 70 +42 43 44 76 78 74 +42 44 46 73 79 75 +42 46 47 74 82 72 +42 65 43 61 77 73 +43 65 84 76 132 78 +43 84 44 77 80 73 +44 45 46 80 81 74 +44 84 45 78 81 79 +45 84 46 80 82 79 +46 84 47 81 83 75 +47 84 48 82 87 71 +48 63 62 85 124 4294967295 +48 64 63 86 97 84 +48 83 64 87 128 85 +48 84 83 83 163 86 +49 50 51 91 92 89 +49 51 64 88 97 90 +49 64 79 89 125 91 +49 79 50 90 94 88 +50 77 51 93 99 88 +50 78 77 94 152 92 +50 79 78 91 153 93 +51 52 63 96 102 97 +51 53 52 98 100 95 +51 63 64 95 85 89 +51 76 53 99 107 96 +51 77 76 92 150 98 +52 53 57 96 104 101 +52 57 58 100 119 102 +52 58 63 101 121 95 +53 54 55 105 108 104 +53 55 57 103 116 100 +53 74 54 106 115 103 +53 75 74 107 147 105 +53 76 75 98 149 106 +54 67 55 109 117 103 +54 68 67 110 134 108 +54 69 68 111 136 109 +54 70 69 112 138 110 +54 71 70 113 140 111 +54 72 71 114 141 112 +54 73 72 115 143 113 +54 74 73 105 145 114 +55 56 57 117 118 104 +55 67 56 108 34 116 +56 60 57 4294967295 120 116 +57 59 58 120 121 101 +57 60 59 118 122 119 +58 59 63 119 124 102 +59 60 61 120 4294967295 123 +59 61 62 122 4294967295 124 +59 62 63 123 84 121 +64 80 79 126 155 90 +64 81 80 127 157 125 +64 82 81 128 159 126 +64 83 82 86 161 127 +65 66 97 49 133 130 +65 97 98 129 177 131 +65 98 99 130 178 132 +65 99 84 131 163 77 +66 67 97 36 135 129 +67 68 96 109 137 135 +67 96 97 134 177 133 +68 69 95 110 139 137 +68 95 96 136 176 134 +69 70 94 111 140 139 +69 94 95 138 175 136 +70 71 94 112 142 138 +71 72 93 113 144 142 +71 93 94 141 174 140 +72 73 92 114 146 144 +72 92 93 143 173 141 +73 74 91 115 148 146 +73 91 92 145 172 143 +74 75 90 106 149 148 +74 90 91 147 171 145 +75 76 90 107 151 147 +76 77 89 99 152 151 +76 89 90 150 170 149 +77 78 89 93 154 150 +78 79 88 94 156 154 +78 88 89 153 169 152 +79 80 87 125 158 156 +79 87 88 155 168 153 +80 81 86 126 160 158 +80 86 87 157 167 155 +81 82 85 127 162 160 +81 85 86 159 165 157 +82 83 100 128 164 162 +82 100 85 161 166 159 +83 84 99 87 132 164 +83 99 100 163 178 161 +85 98 86 166 167 160 +85 100 98 162 178 165 +86 98 87 165 168 158 +87 98 88 167 169 156 +88 98 89 168 170 154 +89 98 90 169 171 151 +90 98 91 170 172 148 +91 98 92 171 173 146 +92 98 93 172 174 144 +93 98 94 173 175 142 +94 98 95 174 176 139 +95 98 96 175 177 137 +96 98 97 176 130 135 +98 100 99 166 164 131 + +101 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 66 +65 84 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 + +0 + +0 diff --git a/include/CDT/tests/expected/cdt__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/cdt__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..5bbd286 --- /dev/null +++ b/include/CDT/tests/expected/cdt__conforming_auto_ignore_auto.txt @@ -0,0 +1,237 @@ +101 +0 1 38 4294967295 4 1 +0 38 39 0 4294967295 2 +0 39 48 1 39 4294967295 +1 2 37 4294967295 6 4 +1 37 38 3 4294967295 0 +2 3 36 4294967295 7 6 +2 36 37 5 4294967295 3 +3 4 36 4294967295 9 5 +4 5 35 4294967295 11 9 +4 35 36 8 4294967295 7 +5 6 34 4294967295 13 11 +5 34 35 10 4294967295 8 +6 7 33 4294967295 15 13 +6 33 34 12 4294967295 10 +7 8 32 4294967295 17 15 +7 32 33 14 4294967295 12 +8 9 31 4294967295 19 17 +8 31 32 16 4294967295 14 +9 10 30 4294967295 21 19 +9 30 31 18 4294967295 16 +10 11 29 4294967295 23 21 +10 29 30 20 4294967295 18 +11 12 28 4294967295 25 23 +11 28 29 22 4294967295 20 +12 13 27 4294967295 27 25 +12 27 28 24 4294967295 22 +13 14 26 4294967295 29 27 +13 26 27 26 4294967295 24 +14 15 25 4294967295 31 29 +14 25 26 28 4294967295 26 +15 16 24 4294967295 32 31 +15 24 25 30 4294967295 28 +16 17 24 4294967295 34 30 +17 18 23 4294967295 36 34 +17 23 24 33 4294967295 32 +18 19 20 4294967295 4294967295 36 +18 20 23 35 37 33 +20 21 23 4294967295 38 36 +21 22 23 4294967295 4294967295 37 +39 40 48 4294967295 41 2 +40 41 47 4294967295 42 41 +40 47 48 40 4294967295 39 +41 42 47 4294967295 45 40 +42 43 44 4294967295 4294967295 44 +42 44 46 43 46 45 +42 46 47 44 4294967295 42 +44 45 46 4294967295 4294967295 44 +49 50 51 4294967295 4294967295 48 +49 51 64 47 50 4294967295 +51 52 63 4294967295 53 50 +51 63 64 49 4294967295 48 +52 53 57 4294967295 55 52 +52 57 58 51 4294967295 53 +52 58 63 52 57 49 +53 54 55 4294967295 4294967295 55 +53 55 57 54 56 51 +55 56 57 4294967295 4294967295 55 +58 59 63 4294967295 60 53 +59 60 61 4294967295 4294967295 59 +59 61 62 58 4294967295 60 +59 62 63 59 4294967295 57 +65 98 104 63 4294967295 64 +65 101 103 4294967295 99 63 +65 103 98 62 4294967295 61 +65 104 102 61 100 4294967295 +66 67 97 4294967295 68 66 +66 97 101 65 99 4294967295 +67 68 96 4294967295 70 68 +67 96 97 67 4294967295 65 +68 69 95 4294967295 72 70 +68 95 96 69 4294967295 67 +69 70 94 4294967295 73 72 +69 94 95 71 4294967295 69 +70 71 94 4294967295 75 71 +71 72 93 4294967295 77 75 +71 93 94 74 4294967295 73 +72 73 92 4294967295 79 77 +72 92 93 76 4294967295 74 +73 74 91 4294967295 81 79 +73 91 92 78 4294967295 76 +74 75 90 4294967295 82 81 +74 90 91 80 4294967295 78 +75 76 90 4294967295 84 80 +76 77 89 4294967295 85 84 +76 89 90 83 4294967295 82 +77 78 89 4294967295 87 83 +78 79 88 4294967295 89 87 +78 88 89 86 4294967295 85 +79 80 87 4294967295 91 89 +79 87 88 88 4294967295 86 +80 81 86 4294967295 93 91 +80 86 87 90 4294967295 88 +81 82 85 4294967295 95 93 +81 85 86 92 4294967295 90 +82 83 100 4294967295 97 95 +82 100 85 94 4294967295 92 +83 84 99 4294967295 98 97 +83 99 100 96 4294967295 94 +84 102 99 4294967295 100 96 +97 103 101 4294967295 62 66 +99 102 104 98 64 4294967295 + +105 +0 1 +0 48 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +49 50 +49 64 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +65 101 +65 102 +66 67 +66 101 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 102 +85 86 +85 100 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 103 +98 103 +98 104 +99 100 +99 104 + +0 + +8 +65 101 + 1 + 65 66 +65 102 + 1 + 65 84 +66 101 + 1 + 65 66 +84 102 + 1 + 65 84 +97 103 + 1 + 97 98 +98 103 + 1 + 97 98 +98 104 + 1 + 98 99 +99 104 + 1 + 98 99 diff --git a/include/CDT/tests/expected/corner cases__as-provided_resolve_all.txt b/include/CDT/tests/expected/corner cases__as-provided_resolve_all.txt new file mode 100644 index 0000000..2b14d24 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__as-provided_resolve_all.txt @@ -0,0 +1,108 @@ +33 +0 1 13 4294967295 7 5 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 20 2 +0 12 7 5 23 3 +0 13 12 0 30 4 +1 2 14 4294967295 12 7 +1 14 13 6 31 0 +2 3 4 1 14 9 +2 4 5 8 15 10 +2 5 10 9 17 11 +2 10 11 10 27 12 +2 11 14 11 29 6 +3 6 15 2 20 14 +3 15 4 13 15 8 +4 15 5 14 18 9 +5 8 9 19 22 17 +5 9 10 16 26 10 +5 15 16 15 24 19 +5 16 8 18 21 16 +6 7 15 3 24 13 +7 8 16 22 19 24 +7 9 8 23 16 21 +7 12 9 4 25 22 +7 16 15 21 18 20 +9 12 17 23 30 26 +9 17 10 25 27 17 +10 17 11 26 28 11 +11 17 18 27 32 29 +11 18 14 28 31 12 +12 13 17 5 32 25 +13 14 18 7 29 32 +13 18 17 31 28 30 + +15 +3 15 +4 15 +5 16 +6 15 +7 16 +8 9 +8 16 +9 17 +10 17 +11 18 +12 17 +13 18 +14 18 +15 16 +17 18 + +4 +3 15 1 +8 9 1 +8 16 1 +15 16 1 + +15 +3 15 + 2 + 3 14 + 3 9 +4 15 + 1 + 4 6 +5 16 + 1 + 5 7 +6 15 + 1 + 4 6 +7 16 + 1 + 5 7 +8 9 + 2 + 3 14 + 3 9 +8 16 + 2 + 3 14 + 3 9 +9 17 + 1 + 3 14 +10 17 + 1 + 10 12 +11 18 + 1 + 11 13 +12 17 + 1 + 10 12 +13 18 + 1 + 11 13 +14 18 + 1 + 3 14 +15 16 + 2 + 3 14 + 3 9 +17 18 + 1 + 3 14 diff --git a/include/CDT/tests/expected/corner cases__as-provided_resolve_auto.txt b/include/CDT/tests/expected/corner cases__as-provided_resolve_auto.txt new file mode 100644 index 0000000..10f14c9 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__as-provided_resolve_auto.txt @@ -0,0 +1,75 @@ +0 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/corner cases__as-provided_resolve_outer.txt b/include/CDT/tests/expected/corner cases__as-provided_resolve_outer.txt new file mode 100644 index 0000000..10f14c9 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__as-provided_resolve_outer.txt @@ -0,0 +1,75 @@ +0 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/corner cases__as-provided_resolve_super.txt b/include/CDT/tests/expected/corner cases__as-provided_resolve_super.txt new file mode 100644 index 0000000..f09f7c3 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__as-provided_resolve_super.txt @@ -0,0 +1,95 @@ +20 +0 3 12 4294967295 7 1 +0 12 1 0 2 4294967295 +1 12 2 1 5 4294967295 +2 5 6 6 9 4 +2 6 7 3 13 4294967295 +2 12 13 2 11 6 +2 13 5 5 8 3 +3 4 12 4294967295 11 0 +4 5 13 9 6 11 +4 6 5 10 3 8 +4 9 6 4294967295 12 9 +4 13 12 8 5 7 +6 9 14 10 17 13 +6 14 7 12 14 4 +7 14 8 13 15 4294967295 +8 14 15 14 19 16 +8 15 11 15 18 4294967295 +9 10 14 4294967295 19 12 +10 11 15 4294967295 16 19 +10 15 14 18 15 17 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/corner cases__auto_resolve_all.txt b/include/CDT/tests/expected/corner cases__auto_resolve_all.txt new file mode 100644 index 0000000..691b836 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__auto_resolve_all.txt @@ -0,0 +1,108 @@ +33 +0 1 13 4294967295 7 5 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 20 2 +0 12 7 5 22 3 +0 13 12 0 30 4 +1 2 14 4294967295 12 7 +1 14 13 6 31 0 +2 3 4 1 14 9 +2 4 5 8 15 10 +2 5 10 9 17 11 +2 10 11 10 27 12 +2 11 14 11 29 6 +3 6 15 2 20 14 +3 15 4 13 15 8 +4 15 5 14 18 9 +5 8 9 19 24 17 +5 9 10 16 26 10 +5 15 16 15 23 19 +5 16 8 18 21 16 +6 7 15 3 23 13 +7 8 16 22 19 23 +7 12 8 4 24 21 +7 16 15 21 18 20 +8 12 9 22 25 16 +9 12 17 24 30 26 +9 17 10 25 27 17 +10 17 11 26 28 11 +11 17 18 27 32 29 +11 18 14 28 31 12 +12 13 17 5 32 25 +13 14 18 7 29 32 +13 18 17 31 28 30 + +15 +3 15 +4 15 +5 16 +6 15 +7 16 +8 9 +8 16 +9 17 +10 17 +11 18 +12 17 +13 18 +14 18 +15 16 +17 18 + +4 +3 15 1 +8 9 1 +8 16 1 +15 16 1 + +15 +3 15 + 2 + 3 14 + 3 9 +4 15 + 1 + 4 6 +5 16 + 1 + 5 7 +6 15 + 1 + 4 6 +7 16 + 1 + 5 7 +8 9 + 2 + 3 14 + 3 9 +8 16 + 2 + 3 14 + 3 9 +9 17 + 1 + 3 14 +10 17 + 1 + 10 12 +11 18 + 1 + 11 13 +12 17 + 1 + 10 12 +13 18 + 1 + 11 13 +14 18 + 1 + 3 14 +15 16 + 2 + 3 14 + 3 9 +17 18 + 1 + 3 14 diff --git a/include/CDT/tests/expected/corner cases__auto_resolve_auto.txt b/include/CDT/tests/expected/corner cases__auto_resolve_auto.txt new file mode 100644 index 0000000..10f14c9 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__auto_resolve_auto.txt @@ -0,0 +1,75 @@ +0 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/corner cases__auto_resolve_outer.txt b/include/CDT/tests/expected/corner cases__auto_resolve_outer.txt new file mode 100644 index 0000000..10f14c9 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__auto_resolve_outer.txt @@ -0,0 +1,75 @@ +0 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/corner cases__auto_resolve_super.txt b/include/CDT/tests/expected/corner cases__auto_resolve_super.txt new file mode 100644 index 0000000..97c6bc5 --- /dev/null +++ b/include/CDT/tests/expected/corner cases__auto_resolve_super.txt @@ -0,0 +1,95 @@ +20 +0 3 12 4294967295 7 1 +0 12 1 0 2 4294967295 +1 12 2 1 5 4294967295 +2 5 6 6 11 4 +2 6 7 3 13 4294967295 +2 12 13 2 10 6 +2 13 5 5 8 3 +3 4 12 4294967295 10 0 +4 5 13 9 6 10 +4 9 5 4294967295 11 8 +4 13 12 8 5 7 +5 9 6 9 12 3 +6 9 14 11 17 13 +6 14 7 12 14 4 +7 14 8 13 15 4294967295 +8 14 15 14 19 16 +8 15 11 15 18 4294967295 +9 10 14 4294967295 19 12 +10 11 15 4294967295 16 19 +10 15 14 18 15 17 + +15 +0 12 +1 12 +2 13 +3 12 +4 13 +5 6 +5 13 +6 14 +7 14 +8 15 +9 14 +10 15 +11 15 +12 13 +14 15 + +4 +0 12 1 +5 6 1 +5 13 1 +12 13 1 + +15 +0 12 + 2 + 0 11 + 0 6 +1 12 + 1 + 1 3 +2 13 + 1 + 2 4 +3 12 + 1 + 1 3 +4 13 + 1 + 2 4 +5 6 + 2 + 0 11 + 0 6 +5 13 + 2 + 0 11 + 0 6 +6 14 + 1 + 0 11 +7 14 + 1 + 7 9 +8 15 + 1 + 8 10 +9 14 + 1 + 7 9 +10 15 + 1 + 8 10 +11 15 + 1 + 0 11 +12 13 + 2 + 0 11 + 0 6 +14 15 + 1 + 0 11 diff --git a/include/CDT/tests/expected/crossing-edges__auto_resolve_all.txt b/include/CDT/tests/expected/crossing-edges__auto_resolve_all.txt new file mode 100644 index 0000000..cb65b04 --- /dev/null +++ b/include/CDT/tests/expected/crossing-edges__auto_resolve_all.txt @@ -0,0 +1,34 @@ +11 +0 1 3 4294967295 4 1 +0 3 6 0 8 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 9 4 +2 6 5 2 10 3 +3 4 7 4 9 8 +3 7 6 7 10 1 +4 5 7 5 10 7 +5 6 7 6 8 9 + +4 +3 7 +4 7 +5 7 +6 7 + +0 + +4 +3 7 + 1 + 3 5 +4 7 + 1 + 4 6 +5 7 + 1 + 3 5 +6 7 + 1 + 4 6 diff --git a/include/CDT/tests/expected/crossing-edges__conforming_auto_resolve_all.txt b/include/CDT/tests/expected/crossing-edges__conforming_auto_resolve_all.txt new file mode 100644 index 0000000..cb65b04 --- /dev/null +++ b/include/CDT/tests/expected/crossing-edges__conforming_auto_resolve_all.txt @@ -0,0 +1,34 @@ +11 +0 1 3 4294967295 4 1 +0 3 6 0 8 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 9 4 +2 6 5 2 10 3 +3 4 7 4 9 8 +3 7 6 7 10 1 +4 5 7 5 10 7 +5 6 7 6 8 9 + +4 +3 7 +4 7 +5 7 +6 7 + +0 + +4 +3 7 + 1 + 3 5 +4 7 + 1 + 4 6 +5 7 + 1 + 3 5 +6 7 + 1 + 4 6 diff --git a/include/CDT/tests/expected/ditch__as-provided_ignore_all.txt b/include/CDT/tests/expected/ditch__as-provided_ignore_all.txt new file mode 100644 index 0000000..a69b279 --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_ignore_all.txt @@ -0,0 +1,42 @@ +23 +0 1 12 4294967295 5 3 +0 8 11 3 18 2 +0 11 2 1 9 4294967295 +0 12 8 0 19 1 +1 2 7 4294967295 10 8 +1 3 12 6 11 0 +1 4 3 7 11 5 +1 6 4 8 13 6 +1 7 6 4 16 7 +2 11 13 2 22 10 +2 13 7 9 16 4 +3 4 12 6 12 5 +4 5 12 13 15 11 +4 6 5 7 14 12 +5 6 13 13 16 15 +5 13 12 14 21 12 +6 7 13 8 10 14 +8 9 10 19 20 18 +8 10 11 17 22 1 +8 12 9 3 20 17 +9 12 10 19 21 17 +10 12 13 20 15 22 +10 13 11 21 9 18 + +12 +3 4 +3 12 +4 5 +5 6 +6 7 +7 13 +8 9 +8 12 +9 10 +10 11 +11 13 +12 13 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_ignore_auto.txt b/include/CDT/tests/expected/ditch__as-provided_ignore_auto.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_ignore_auto.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_ignore_outer.txt b/include/CDT/tests/expected/ditch__as-provided_ignore_outer.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_ignore_outer.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_ignore_super.txt b/include/CDT/tests/expected/ditch__as-provided_ignore_super.txt new file mode 100644 index 0000000..b7720b6 --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_ignore_super.txt @@ -0,0 +1,31 @@ +12 +0 1 9 4294967295 1 4294967295 +1 2 9 2 4 0 +1 3 2 4294967295 3 1 +2 3 10 2 5 4 +2 10 9 3 10 1 +3 4 10 4294967295 4294967295 3 +5 6 7 8 9 7 +5 7 8 6 11 4294967295 +5 9 6 4294967295 9 6 +6 9 7 8 10 6 +7 9 10 9 4 11 +7 10 8 10 4294967295 7 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_resolve_all.txt b/include/CDT/tests/expected/ditch__as-provided_resolve_all.txt new file mode 100644 index 0000000..a69b279 --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_resolve_all.txt @@ -0,0 +1,42 @@ +23 +0 1 12 4294967295 5 3 +0 8 11 3 18 2 +0 11 2 1 9 4294967295 +0 12 8 0 19 1 +1 2 7 4294967295 10 8 +1 3 12 6 11 0 +1 4 3 7 11 5 +1 6 4 8 13 6 +1 7 6 4 16 7 +2 11 13 2 22 10 +2 13 7 9 16 4 +3 4 12 6 12 5 +4 5 12 13 15 11 +4 6 5 7 14 12 +5 6 13 13 16 15 +5 13 12 14 21 12 +6 7 13 8 10 14 +8 9 10 19 20 18 +8 10 11 17 22 1 +8 12 9 3 20 17 +9 12 10 19 21 17 +10 12 13 20 15 22 +10 13 11 21 9 18 + +12 +3 4 +3 12 +4 5 +5 6 +6 7 +7 13 +8 9 +8 12 +9 10 +10 11 +11 13 +12 13 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_resolve_auto.txt b/include/CDT/tests/expected/ditch__as-provided_resolve_auto.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_resolve_auto.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_resolve_outer.txt b/include/CDT/tests/expected/ditch__as-provided_resolve_outer.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_resolve_outer.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__as-provided_resolve_super.txt b/include/CDT/tests/expected/ditch__as-provided_resolve_super.txt new file mode 100644 index 0000000..b7720b6 --- /dev/null +++ b/include/CDT/tests/expected/ditch__as-provided_resolve_super.txt @@ -0,0 +1,31 @@ +12 +0 1 9 4294967295 1 4294967295 +1 2 9 2 4 0 +1 3 2 4294967295 3 1 +2 3 10 2 5 4 +2 10 9 3 10 1 +3 4 10 4294967295 4294967295 3 +5 6 7 8 9 7 +5 7 8 6 11 4294967295 +5 9 6 4294967295 9 6 +6 9 7 8 10 6 +7 9 10 9 4 11 +7 10 8 10 4294967295 7 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_ignore_all.txt b/include/CDT/tests/expected/ditch__auto_ignore_all.txt new file mode 100644 index 0000000..a69b279 --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_ignore_all.txt @@ -0,0 +1,42 @@ +23 +0 1 12 4294967295 5 3 +0 8 11 3 18 2 +0 11 2 1 9 4294967295 +0 12 8 0 19 1 +1 2 7 4294967295 10 8 +1 3 12 6 11 0 +1 4 3 7 11 5 +1 6 4 8 13 6 +1 7 6 4 16 7 +2 11 13 2 22 10 +2 13 7 9 16 4 +3 4 12 6 12 5 +4 5 12 13 15 11 +4 6 5 7 14 12 +5 6 13 13 16 15 +5 13 12 14 21 12 +6 7 13 8 10 14 +8 9 10 19 20 18 +8 10 11 17 22 1 +8 12 9 3 20 17 +9 12 10 19 21 17 +10 12 13 20 15 22 +10 13 11 21 9 18 + +12 +3 4 +3 12 +4 5 +5 6 +6 7 +7 13 +8 9 +8 12 +9 10 +10 11 +11 13 +12 13 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_ignore_auto.txt b/include/CDT/tests/expected/ditch__auto_ignore_auto.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_ignore_auto.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_ignore_outer.txt b/include/CDT/tests/expected/ditch__auto_ignore_outer.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_ignore_outer.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_ignore_super.txt b/include/CDT/tests/expected/ditch__auto_ignore_super.txt new file mode 100644 index 0000000..b7720b6 --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_ignore_super.txt @@ -0,0 +1,31 @@ +12 +0 1 9 4294967295 1 4294967295 +1 2 9 2 4 0 +1 3 2 4294967295 3 1 +2 3 10 2 5 4 +2 10 9 3 10 1 +3 4 10 4294967295 4294967295 3 +5 6 7 8 9 7 +5 7 8 6 11 4294967295 +5 9 6 4294967295 9 6 +6 9 7 8 10 6 +7 9 10 9 4 11 +7 10 8 10 4294967295 7 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_resolve_all.txt b/include/CDT/tests/expected/ditch__auto_resolve_all.txt new file mode 100644 index 0000000..a69b279 --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_resolve_all.txt @@ -0,0 +1,42 @@ +23 +0 1 12 4294967295 5 3 +0 8 11 3 18 2 +0 11 2 1 9 4294967295 +0 12 8 0 19 1 +1 2 7 4294967295 10 8 +1 3 12 6 11 0 +1 4 3 7 11 5 +1 6 4 8 13 6 +1 7 6 4 16 7 +2 11 13 2 22 10 +2 13 7 9 16 4 +3 4 12 6 12 5 +4 5 12 13 15 11 +4 6 5 7 14 12 +5 6 13 13 16 15 +5 13 12 14 21 12 +6 7 13 8 10 14 +8 9 10 19 20 18 +8 10 11 17 22 1 +8 12 9 3 20 17 +9 12 10 19 21 17 +10 12 13 20 15 22 +10 13 11 21 9 18 + +12 +3 4 +3 12 +4 5 +5 6 +6 7 +7 13 +8 9 +8 12 +9 10 +10 11 +11 13 +12 13 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_resolve_auto.txt b/include/CDT/tests/expected/ditch__auto_resolve_auto.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_resolve_auto.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_resolve_outer.txt b/include/CDT/tests/expected/ditch__auto_resolve_outer.txt new file mode 100644 index 0000000..7e423ea --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_resolve_outer.txt @@ -0,0 +1,28 @@ +9 +0 1 9 4294967295 1 4294967295 +1 2 9 4294967295 3 0 +2 3 10 4294967295 4 3 +2 10 9 2 7 1 +3 4 10 4294967295 4294967295 2 +5 9 6 4294967295 6 4294967295 +6 9 7 5 7 4294967295 +7 9 10 6 3 8 +7 10 8 7 4294967295 4294967295 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__auto_resolve_super.txt b/include/CDT/tests/expected/ditch__auto_resolve_super.txt new file mode 100644 index 0000000..b7720b6 --- /dev/null +++ b/include/CDT/tests/expected/ditch__auto_resolve_super.txt @@ -0,0 +1,31 @@ +12 +0 1 9 4294967295 1 4294967295 +1 2 9 2 4 0 +1 3 2 4294967295 3 1 +2 3 10 2 5 4 +2 10 9 3 10 1 +3 4 10 4294967295 4294967295 3 +5 6 7 8 9 7 +5 7 8 6 11 4294967295 +5 9 6 4294967295 9 6 +6 9 7 8 10 6 +7 9 10 9 4 11 +7 10 8 10 4294967295 7 + +12 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 10 + +0 + +0 diff --git a/include/CDT/tests/expected/ditch__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/ditch__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..2b064d1 --- /dev/null +++ b/include/CDT/tests/expected/ditch__conforming_auto_ignore_auto.txt @@ -0,0 +1,49 @@ +15 +0 1 9 4294967295 2 4294967295 +1 2 12 4294967295 4 2 +1 12 9 1 8 0 +2 3 11 4294967295 6 4 +2 11 12 3 11 1 +3 4 13 4294967295 7 6 +3 13 11 5 12 3 +4 10 13 4294967295 14 5 +5 9 12 4294967295 2 9 +5 12 6 8 11 4294967295 +6 11 7 11 12 4294967295 +6 12 11 9 4 10 +7 11 13 10 6 13 +7 13 8 12 14 4294967295 +8 13 10 13 7 4294967295 + +15 +0 1 +0 9 +1 2 +2 3 +3 4 +4 10 +5 6 +5 9 +6 7 +7 8 +8 10 +9 12 +10 13 +11 12 +11 13 + +0 + +4 +9 12 + 1 + 9 10 +10 13 + 1 + 9 10 +11 12 + 1 + 9 10 +11 13 + 1 + 9 10 diff --git a/include/CDT/tests/expected/dont_flip_constraint_when_resolving_intersection__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/dont_flip_constraint_when_resolving_intersection__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..0c0a8cc --- /dev/null +++ b/include/CDT/tests/expected/dont_flip_constraint_when_resolving_intersection__f64_as-provided_resolve_all.txt @@ -0,0 +1,39 @@ +15 +0 1 7 4294967295 7 3 +0 3 8 2 9 4 +0 6 3 3 10 1 +0 7 6 0 14 2 +0 8 2 1 8 4294967295 +1 2 4 4294967295 8 6 +1 4 5 5 12 7 +1 5 7 6 13 0 +2 8 4 4 9 5 +3 4 8 11 8 1 +3 6 9 2 14 11 +3 9 4 10 12 9 +4 9 5 11 13 6 +5 9 7 12 14 7 +6 7 9 3 13 10 + +5 +3 4 +3 9 +4 9 +5 9 +6 9 + +0 + +4 +3 9 + 1 + 3 5 +4 9 + 1 + 4 6 +5 9 + 1 + 3 5 +6 9 + 1 + 4 6 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_ignore_all.txt b/include/CDT/tests/expected/double-hanging__as-provided_ignore_all.txt new file mode 100644 index 0000000..f4265ff --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_ignore_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 9 1 12 7 +2 9 7 6 14 5 +3 4 6 2 3 10 +3 5 8 11 13 12 +3 6 7 8 4 11 +3 7 5 10 13 9 +3 8 9 9 14 6 +5 7 8 11 14 9 +7 9 8 7 12 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_ignore_auto.txt b/include/CDT/tests/expected/double-hanging__as-provided_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_ignore_outer.txt b/include/CDT/tests/expected/double-hanging__as-provided_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_ignore_super.txt b/include/CDT/tests/expected/double-hanging__as-provided_ignore_super.txt new file mode 100644 index 0000000..a31d19b --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_ignore_super.txt @@ -0,0 +1,15 @@ +7 +0 1 3 4294967295 4294967295 2 +0 2 5 3 5 4 +0 3 4 0 4294967295 3 +0 4 2 2 5 1 +0 5 6 1 6 4294967295 +2 4 5 3 6 1 +4 6 5 4294967295 4 5 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_resolve_all.txt b/include/CDT/tests/expected/double-hanging__as-provided_resolve_all.txt new file mode 100644 index 0000000..f4265ff --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_resolve_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 9 1 12 7 +2 9 7 6 14 5 +3 4 6 2 3 10 +3 5 8 11 13 12 +3 6 7 8 4 11 +3 7 5 10 13 9 +3 8 9 9 14 6 +5 7 8 11 14 9 +7 9 8 7 12 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_resolve_auto.txt b/include/CDT/tests/expected/double-hanging__as-provided_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_resolve_outer.txt b/include/CDT/tests/expected/double-hanging__as-provided_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__as-provided_resolve_super.txt b/include/CDT/tests/expected/double-hanging__as-provided_resolve_super.txt new file mode 100644 index 0000000..a31d19b --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__as-provided_resolve_super.txt @@ -0,0 +1,15 @@ +7 +0 1 3 4294967295 4294967295 2 +0 2 5 3 5 4 +0 3 4 0 4294967295 3 +0 4 2 2 5 1 +0 5 6 1 6 4294967295 +2 4 5 3 6 1 +4 6 5 4294967295 4 5 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_ignore_all.txt b/include/CDT/tests/expected/double-hanging__auto_ignore_all.txt new file mode 100644 index 0000000..f4265ff --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_ignore_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 9 1 12 7 +2 9 7 6 14 5 +3 4 6 2 3 10 +3 5 8 11 13 12 +3 6 7 8 4 11 +3 7 5 10 13 9 +3 8 9 9 14 6 +5 7 8 11 14 9 +7 9 8 7 12 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_ignore_auto.txt b/include/CDT/tests/expected/double-hanging__auto_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_ignore_outer.txt b/include/CDT/tests/expected/double-hanging__auto_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_ignore_super.txt b/include/CDT/tests/expected/double-hanging__auto_ignore_super.txt new file mode 100644 index 0000000..a31d19b --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_ignore_super.txt @@ -0,0 +1,15 @@ +7 +0 1 3 4294967295 4294967295 2 +0 2 5 3 5 4 +0 3 4 0 4294967295 3 +0 4 2 2 5 1 +0 5 6 1 6 4294967295 +2 4 5 3 6 1 +4 6 5 4294967295 4 5 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_resolve_all.txt b/include/CDT/tests/expected/double-hanging__auto_resolve_all.txt new file mode 100644 index 0000000..f4265ff --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_resolve_all.txt @@ -0,0 +1,23 @@ +15 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 9 1 12 7 +2 9 7 6 14 5 +3 4 6 2 3 10 +3 5 8 11 13 12 +3 6 7 8 4 11 +3 7 5 10 13 9 +3 8 9 9 14 6 +5 7 8 11 14 9 +7 9 8 7 12 13 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_resolve_auto.txt b/include/CDT/tests/expected/double-hanging__auto_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_resolve_outer.txt b/include/CDT/tests/expected/double-hanging__auto_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__auto_resolve_super.txt b/include/CDT/tests/expected/double-hanging__auto_resolve_super.txt new file mode 100644 index 0000000..a31d19b --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__auto_resolve_super.txt @@ -0,0 +1,15 @@ +7 +0 1 3 4294967295 4294967295 2 +0 2 5 3 5 4 +0 3 4 0 4294967295 3 +0 4 2 2 5 1 +0 5 6 1 6 4294967295 +2 4 5 3 6 1 +4 6 5 4294967295 4 5 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/double-hanging__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/double-hanging__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..b720665 --- /dev/null +++ b/include/CDT/tests/expected/double-hanging__conforming_auto_ignore_auto.txt @@ -0,0 +1,31 @@ +0 + +6 +0 8 +4 10 +7 9 +7 11 +8 9 +10 11 + +0 + +6 +0 8 + 1 + 0 4 +4 10 + 1 + 0 4 +7 9 + 1 + 0 4 +7 11 + 1 + 0 4 +8 9 + 1 + 0 4 +10 11 + 1 + 0 4 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_ignore_all.txt b/include/CDT/tests/expected/gh_issue__as-provided_ignore_all.txt new file mode 100644 index 0000000..e10109a --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_ignore_all.txt @@ -0,0 +1,242 @@ +157 +0 1 11 4294967295 8 1 +0 11 15 0 38 2 +0 15 16 1 43 3 +0 16 2 2 10 4294967295 +1 2 5 4294967295 9 5 +1 5 7 4 28 6 +1 7 9 5 30 7 +1 9 10 6 31 8 +1 10 11 7 33 0 +2 4 5 12 21 4 +2 16 41 3 47 11 +2 41 42 10 99 12 +2 42 4 11 23 9 +3 4 72 14 27 17 +3 8 4 15 22 13 +3 9 8 16 30 14 +3 25 9 20 32 15 +3 72 75 13 152 18 +3 75 76 17 125 19 +3 76 80 18 154 20 +3 80 25 19 65 16 +4 6 5 22 28 9 +4 8 6 14 29 21 +4 42 67 12 104 24 +4 67 69 23 147 25 +4 69 70 24 148 26 +4 70 71 25 150 27 +4 71 72 26 151 13 +5 6 7 21 29 5 +6 8 7 22 30 28 +7 8 9 29 15 6 +9 24 10 32 37 7 +9 25 24 16 61 31 +10 13 11 34 39 8 +10 18 13 35 42 33 +10 19 18 36 48 34 +10 20 19 37 50 35 +10 24 20 31 53 36 +11 12 15 39 41 1 +11 13 12 33 40 38 +12 13 14 39 42 41 +12 14 15 40 43 38 +13 18 14 34 45 40 +14 16 15 44 2 41 +14 17 16 45 46 43 +14 18 17 42 48 44 +16 17 40 44 49 47 +16 40 41 46 98 10 +17 18 19 45 35 49 +17 19 40 48 52 46 +19 20 21 36 53 51 +19 21 22 50 54 52 +19 22 40 51 56 49 +20 24 21 37 55 50 +21 23 22 55 56 51 +21 24 23 53 57 54 +22 23 40 54 60 52 +23 24 28 55 63 58 +23 28 29 57 70 59 +23 29 39 58 73 60 +23 39 40 59 95 56 +24 25 26 32 64 62 +24 26 27 61 66 63 +24 27 28 62 68 57 +25 79 26 65 67 61 +25 80 79 20 156 64 +26 78 27 67 69 62 +26 79 78 64 155 66 +27 33 28 69 72 63 +27 78 33 66 81 68 +28 30 29 71 73 58 +28 32 30 72 75 70 +28 33 32 68 79 71 +29 30 39 70 76 59 +30 31 38 75 78 76 +30 32 31 71 77 74 +30 38 39 74 93 73 +31 32 37 75 79 78 +31 37 38 77 91 74 +32 33 37 72 80 77 +33 34 37 81 83 79 +33 78 34 69 85 80 +34 35 36 84 86 83 +34 36 37 82 88 80 +34 77 35 85 87 82 +34 78 77 81 155 84 +35 76 36 87 90 82 +35 77 76 84 154 86 +36 49 37 89 92 83 +36 50 49 90 118 88 +36 76 50 86 119 89 +37 47 38 92 94 78 +37 49 47 88 112 91 +38 46 39 94 97 76 +38 47 46 91 109 93 +39 44 40 96 98 60 +39 45 44 97 105 95 +39 46 45 93 108 96 +40 44 41 95 100 47 +41 43 42 100 101 11 +41 44 43 98 105 99 +42 43 61 99 107 102 +42 61 62 101 141 103 +42 62 66 102 143 104 +42 66 67 103 146 23 +43 44 45 100 96 106 +43 45 59 105 108 107 +43 59 61 106 139 101 +45 46 59 97 110 106 +46 47 58 94 111 110 +46 58 59 109 137 108 +47 48 58 112 117 109 +47 49 48 92 113 111 +48 49 51 112 118 114 +48 51 55 113 120 115 +48 55 56 114 128 116 +48 56 57 115 133 117 +48 57 58 116 135 111 +49 50 51 89 119 113 +50 76 51 90 121 118 +51 52 55 121 123 114 +51 76 52 119 125 120 +52 53 54 124 126 123 +52 54 55 122 128 120 +52 75 53 125 127 122 +52 76 75 121 18 124 +53 74 54 127 132 122 +53 75 74 124 153 126 +54 56 55 129 115 123 +54 65 56 130 134 128 +54 68 65 131 145 129 +54 69 68 132 147 130 +54 74 69 126 149 131 +56 64 57 134 136 116 +56 65 64 129 144 133 +57 63 58 136 138 117 +57 64 63 133 144 135 +58 60 59 138 139 110 +58 63 60 135 140 137 +59 60 61 137 140 107 +60 63 61 138 141 139 +61 63 62 140 142 102 +62 63 65 141 144 143 +62 65 66 142 145 103 +63 64 65 136 134 142 +65 68 66 130 146 143 +66 68 67 145 147 104 +67 68 69 146 131 24 +69 73 70 149 150 25 +69 74 73 132 153 148 +70 73 71 148 151 26 +71 73 72 150 152 27 +72 73 75 151 153 17 +73 74 75 149 127 152 +76 77 80 87 156 19 +77 78 79 85 67 156 +77 79 80 155 65 154 + +78 +3 4 +3 80 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_ignore_auto.txt b/include/CDT/tests/expected/gh_issue__as-provided_ignore_auto.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_ignore_auto.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_ignore_outer.txt b/include/CDT/tests/expected/gh_issue__as-provided_ignore_outer.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_ignore_outer.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_ignore_super.txt b/include/CDT/tests/expected/gh_issue__as-provided_ignore_super.txt new file mode 100644 index 0000000..3244dd6 --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_ignore_super.txt @@ -0,0 +1,229 @@ +144 +0 1 69 1 14 4 +0 5 1 2 9 0 +0 6 5 3 17 1 +0 22 6 7 19 2 +0 69 72 0 139 5 +0 72 73 4 112 6 +0 73 77 5 141 7 +0 77 22 6 52 3 +1 3 2 9 15 4294967295 +1 5 3 1 16 8 +1 39 64 4294967295 91 11 +1 64 66 10 134 12 +1 66 67 11 135 13 +1 67 68 12 137 14 +1 68 69 13 138 0 +2 3 4 8 16 4294967295 +3 5 4 9 17 15 +4 5 6 16 2 4294967295 +6 21 7 19 24 4294967295 +6 22 21 3 48 18 +7 10 8 21 26 4294967295 +7 15 10 22 29 20 +7 16 15 23 35 21 +7 17 16 24 37 22 +7 21 17 18 40 23 +8 9 12 26 28 4294967295 +8 10 9 20 27 25 +9 10 11 26 29 28 +9 11 12 27 30 25 +10 15 11 21 32 27 +11 13 12 31 4294967295 28 +11 14 13 32 33 30 +11 15 14 29 35 31 +13 14 37 31 36 34 +13 37 38 33 85 4294967295 +14 15 16 32 22 36 +14 16 37 35 39 33 +16 17 18 23 40 38 +16 18 19 37 41 39 +16 19 37 38 43 36 +17 21 18 24 42 37 +18 20 19 42 43 38 +18 21 20 40 44 41 +19 20 37 41 47 39 +20 21 25 42 50 45 +20 25 26 44 57 46 +20 26 36 45 60 47 +20 36 37 46 82 43 +21 22 23 19 51 49 +21 23 24 48 53 50 +21 24 25 49 55 44 +22 76 23 52 54 48 +22 77 76 7 143 51 +23 75 24 54 56 49 +23 76 75 51 142 53 +24 30 25 56 59 50 +24 75 30 53 68 55 +25 27 26 58 60 45 +25 29 27 59 62 57 +25 30 29 55 66 58 +26 27 36 57 63 46 +27 28 35 62 65 63 +27 29 28 58 64 61 +27 35 36 61 80 60 +28 29 34 62 66 65 +28 34 35 64 78 61 +29 30 34 59 67 64 +30 31 34 68 70 66 +30 75 31 56 72 67 +31 32 33 71 73 70 +31 33 34 69 75 67 +31 74 32 72 74 69 +31 75 74 68 142 71 +32 73 33 74 77 69 +32 74 73 71 141 73 +33 46 34 76 79 70 +33 47 46 77 105 75 +33 73 47 73 106 76 +34 44 35 79 81 65 +34 46 44 75 99 78 +35 43 36 81 84 63 +35 44 43 78 96 80 +36 41 37 83 85 47 +36 42 41 84 92 82 +36 43 42 80 95 83 +37 41 38 82 87 34 +38 40 39 87 88 4294967295 +38 41 40 85 92 86 +39 40 58 86 94 89 +39 58 59 88 128 90 +39 59 63 89 130 91 +39 63 64 90 133 10 +40 41 42 87 83 93 +40 42 56 92 95 94 +40 56 58 93 126 88 +42 43 56 84 97 93 +43 44 55 81 98 97 +43 55 56 96 124 95 +44 45 55 99 104 96 +44 46 45 79 100 98 +45 46 48 99 105 101 +45 48 52 100 107 102 +45 52 53 101 115 103 +45 53 54 102 120 104 +45 54 55 103 122 98 +46 47 48 76 106 100 +47 73 48 77 108 105 +48 49 52 108 110 101 +48 73 49 106 112 107 +49 50 51 111 113 110 +49 51 52 109 115 107 +49 72 50 112 114 109 +49 73 72 108 5 111 +50 71 51 114 119 109 +50 72 71 111 140 113 +51 53 52 116 102 110 +51 62 53 117 121 115 +51 65 62 118 132 116 +51 66 65 119 134 117 +51 71 66 113 136 118 +53 61 54 121 123 103 +53 62 61 116 131 120 +54 60 55 123 125 104 +54 61 60 120 131 122 +55 57 56 125 126 97 +55 60 57 122 127 124 +56 57 58 124 127 94 +57 60 58 125 128 126 +58 60 59 127 129 89 +59 60 62 128 131 130 +59 62 63 129 132 90 +60 61 62 123 121 129 +62 65 63 117 133 130 +63 65 64 132 134 91 +64 65 66 133 118 11 +66 70 67 136 137 12 +66 71 70 119 140 135 +67 70 68 135 138 13 +68 70 69 137 139 14 +69 70 72 138 140 4 +70 71 72 136 114 139 +73 74 77 74 143 6 +74 75 76 72 54 143 +74 76 77 142 52 141 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_resolve_all.txt b/include/CDT/tests/expected/gh_issue__as-provided_resolve_all.txt new file mode 100644 index 0000000..e10109a --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_resolve_all.txt @@ -0,0 +1,242 @@ +157 +0 1 11 4294967295 8 1 +0 11 15 0 38 2 +0 15 16 1 43 3 +0 16 2 2 10 4294967295 +1 2 5 4294967295 9 5 +1 5 7 4 28 6 +1 7 9 5 30 7 +1 9 10 6 31 8 +1 10 11 7 33 0 +2 4 5 12 21 4 +2 16 41 3 47 11 +2 41 42 10 99 12 +2 42 4 11 23 9 +3 4 72 14 27 17 +3 8 4 15 22 13 +3 9 8 16 30 14 +3 25 9 20 32 15 +3 72 75 13 152 18 +3 75 76 17 125 19 +3 76 80 18 154 20 +3 80 25 19 65 16 +4 6 5 22 28 9 +4 8 6 14 29 21 +4 42 67 12 104 24 +4 67 69 23 147 25 +4 69 70 24 148 26 +4 70 71 25 150 27 +4 71 72 26 151 13 +5 6 7 21 29 5 +6 8 7 22 30 28 +7 8 9 29 15 6 +9 24 10 32 37 7 +9 25 24 16 61 31 +10 13 11 34 39 8 +10 18 13 35 42 33 +10 19 18 36 48 34 +10 20 19 37 50 35 +10 24 20 31 53 36 +11 12 15 39 41 1 +11 13 12 33 40 38 +12 13 14 39 42 41 +12 14 15 40 43 38 +13 18 14 34 45 40 +14 16 15 44 2 41 +14 17 16 45 46 43 +14 18 17 42 48 44 +16 17 40 44 49 47 +16 40 41 46 98 10 +17 18 19 45 35 49 +17 19 40 48 52 46 +19 20 21 36 53 51 +19 21 22 50 54 52 +19 22 40 51 56 49 +20 24 21 37 55 50 +21 23 22 55 56 51 +21 24 23 53 57 54 +22 23 40 54 60 52 +23 24 28 55 63 58 +23 28 29 57 70 59 +23 29 39 58 73 60 +23 39 40 59 95 56 +24 25 26 32 64 62 +24 26 27 61 66 63 +24 27 28 62 68 57 +25 79 26 65 67 61 +25 80 79 20 156 64 +26 78 27 67 69 62 +26 79 78 64 155 66 +27 33 28 69 72 63 +27 78 33 66 81 68 +28 30 29 71 73 58 +28 32 30 72 75 70 +28 33 32 68 79 71 +29 30 39 70 76 59 +30 31 38 75 78 76 +30 32 31 71 77 74 +30 38 39 74 93 73 +31 32 37 75 79 78 +31 37 38 77 91 74 +32 33 37 72 80 77 +33 34 37 81 83 79 +33 78 34 69 85 80 +34 35 36 84 86 83 +34 36 37 82 88 80 +34 77 35 85 87 82 +34 78 77 81 155 84 +35 76 36 87 90 82 +35 77 76 84 154 86 +36 49 37 89 92 83 +36 50 49 90 118 88 +36 76 50 86 119 89 +37 47 38 92 94 78 +37 49 47 88 112 91 +38 46 39 94 97 76 +38 47 46 91 109 93 +39 44 40 96 98 60 +39 45 44 97 105 95 +39 46 45 93 108 96 +40 44 41 95 100 47 +41 43 42 100 101 11 +41 44 43 98 105 99 +42 43 61 99 107 102 +42 61 62 101 141 103 +42 62 66 102 143 104 +42 66 67 103 146 23 +43 44 45 100 96 106 +43 45 59 105 108 107 +43 59 61 106 139 101 +45 46 59 97 110 106 +46 47 58 94 111 110 +46 58 59 109 137 108 +47 48 58 112 117 109 +47 49 48 92 113 111 +48 49 51 112 118 114 +48 51 55 113 120 115 +48 55 56 114 128 116 +48 56 57 115 133 117 +48 57 58 116 135 111 +49 50 51 89 119 113 +50 76 51 90 121 118 +51 52 55 121 123 114 +51 76 52 119 125 120 +52 53 54 124 126 123 +52 54 55 122 128 120 +52 75 53 125 127 122 +52 76 75 121 18 124 +53 74 54 127 132 122 +53 75 74 124 153 126 +54 56 55 129 115 123 +54 65 56 130 134 128 +54 68 65 131 145 129 +54 69 68 132 147 130 +54 74 69 126 149 131 +56 64 57 134 136 116 +56 65 64 129 144 133 +57 63 58 136 138 117 +57 64 63 133 144 135 +58 60 59 138 139 110 +58 63 60 135 140 137 +59 60 61 137 140 107 +60 63 61 138 141 139 +61 63 62 140 142 102 +62 63 65 141 144 143 +62 65 66 142 145 103 +63 64 65 136 134 142 +65 68 66 130 146 143 +66 68 67 145 147 104 +67 68 69 146 131 24 +69 73 70 149 150 25 +69 74 73 132 153 148 +70 73 71 148 151 26 +71 73 72 150 152 27 +72 73 75 151 153 17 +73 74 75 149 127 152 +76 77 80 87 156 19 +77 78 79 85 67 156 +77 79 80 155 65 154 + +78 +3 4 +3 80 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_resolve_auto.txt b/include/CDT/tests/expected/gh_issue__as-provided_resolve_auto.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_resolve_auto.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_resolve_outer.txt b/include/CDT/tests/expected/gh_issue__as-provided_resolve_outer.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_resolve_outer.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__as-provided_resolve_super.txt b/include/CDT/tests/expected/gh_issue__as-provided_resolve_super.txt new file mode 100644 index 0000000..3244dd6 --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__as-provided_resolve_super.txt @@ -0,0 +1,229 @@ +144 +0 1 69 1 14 4 +0 5 1 2 9 0 +0 6 5 3 17 1 +0 22 6 7 19 2 +0 69 72 0 139 5 +0 72 73 4 112 6 +0 73 77 5 141 7 +0 77 22 6 52 3 +1 3 2 9 15 4294967295 +1 5 3 1 16 8 +1 39 64 4294967295 91 11 +1 64 66 10 134 12 +1 66 67 11 135 13 +1 67 68 12 137 14 +1 68 69 13 138 0 +2 3 4 8 16 4294967295 +3 5 4 9 17 15 +4 5 6 16 2 4294967295 +6 21 7 19 24 4294967295 +6 22 21 3 48 18 +7 10 8 21 26 4294967295 +7 15 10 22 29 20 +7 16 15 23 35 21 +7 17 16 24 37 22 +7 21 17 18 40 23 +8 9 12 26 28 4294967295 +8 10 9 20 27 25 +9 10 11 26 29 28 +9 11 12 27 30 25 +10 15 11 21 32 27 +11 13 12 31 4294967295 28 +11 14 13 32 33 30 +11 15 14 29 35 31 +13 14 37 31 36 34 +13 37 38 33 85 4294967295 +14 15 16 32 22 36 +14 16 37 35 39 33 +16 17 18 23 40 38 +16 18 19 37 41 39 +16 19 37 38 43 36 +17 21 18 24 42 37 +18 20 19 42 43 38 +18 21 20 40 44 41 +19 20 37 41 47 39 +20 21 25 42 50 45 +20 25 26 44 57 46 +20 26 36 45 60 47 +20 36 37 46 82 43 +21 22 23 19 51 49 +21 23 24 48 53 50 +21 24 25 49 55 44 +22 76 23 52 54 48 +22 77 76 7 143 51 +23 75 24 54 56 49 +23 76 75 51 142 53 +24 30 25 56 59 50 +24 75 30 53 68 55 +25 27 26 58 60 45 +25 29 27 59 62 57 +25 30 29 55 66 58 +26 27 36 57 63 46 +27 28 35 62 65 63 +27 29 28 58 64 61 +27 35 36 61 80 60 +28 29 34 62 66 65 +28 34 35 64 78 61 +29 30 34 59 67 64 +30 31 34 68 70 66 +30 75 31 56 72 67 +31 32 33 71 73 70 +31 33 34 69 75 67 +31 74 32 72 74 69 +31 75 74 68 142 71 +32 73 33 74 77 69 +32 74 73 71 141 73 +33 46 34 76 79 70 +33 47 46 77 105 75 +33 73 47 73 106 76 +34 44 35 79 81 65 +34 46 44 75 99 78 +35 43 36 81 84 63 +35 44 43 78 96 80 +36 41 37 83 85 47 +36 42 41 84 92 82 +36 43 42 80 95 83 +37 41 38 82 87 34 +38 40 39 87 88 4294967295 +38 41 40 85 92 86 +39 40 58 86 94 89 +39 58 59 88 128 90 +39 59 63 89 130 91 +39 63 64 90 133 10 +40 41 42 87 83 93 +40 42 56 92 95 94 +40 56 58 93 126 88 +42 43 56 84 97 93 +43 44 55 81 98 97 +43 55 56 96 124 95 +44 45 55 99 104 96 +44 46 45 79 100 98 +45 46 48 99 105 101 +45 48 52 100 107 102 +45 52 53 101 115 103 +45 53 54 102 120 104 +45 54 55 103 122 98 +46 47 48 76 106 100 +47 73 48 77 108 105 +48 49 52 108 110 101 +48 73 49 106 112 107 +49 50 51 111 113 110 +49 51 52 109 115 107 +49 72 50 112 114 109 +49 73 72 108 5 111 +50 71 51 114 119 109 +50 72 71 111 140 113 +51 53 52 116 102 110 +51 62 53 117 121 115 +51 65 62 118 132 116 +51 66 65 119 134 117 +51 71 66 113 136 118 +53 61 54 121 123 103 +53 62 61 116 131 120 +54 60 55 123 125 104 +54 61 60 120 131 122 +55 57 56 125 126 97 +55 60 57 122 127 124 +56 57 58 124 127 94 +57 60 58 125 128 126 +58 60 59 127 129 89 +59 60 62 128 131 130 +59 62 63 129 132 90 +60 61 62 123 121 129 +62 65 63 117 133 130 +63 65 64 132 134 91 +64 65 66 133 118 11 +66 70 67 136 137 12 +66 71 70 119 140 135 +67 70 68 135 138 13 +68 70 69 137 139 14 +69 70 72 138 140 4 +70 71 72 136 114 139 +73 74 77 74 143 6 +74 75 76 72 54 143 +74 76 77 142 52 141 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_ignore_all.txt b/include/CDT/tests/expected/gh_issue__auto_ignore_all.txt new file mode 100644 index 0000000..1e79f2e --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_ignore_all.txt @@ -0,0 +1,242 @@ +157 +0 1 7 4294967295 7 1 +0 7 9 0 30 2 +0 9 10 1 31 3 +0 10 11 2 33 4 +0 11 15 3 38 5 +0 15 2 4 9 4294967295 +1 2 5 4294967295 8 7 +1 5 7 6 28 0 +2 4 5 12 21 6 +2 15 16 5 43 10 +2 16 41 9 47 11 +2 41 42 10 99 12 +2 42 4 11 23 8 +3 4 72 14 27 17 +3 8 4 15 22 13 +3 9 8 16 30 14 +3 25 9 20 32 15 +3 72 75 13 152 18 +3 75 76 17 125 19 +3 76 80 18 154 20 +3 80 25 19 65 16 +4 6 5 22 28 8 +4 8 6 14 29 21 +4 42 67 12 104 24 +4 67 69 23 147 25 +4 69 70 24 148 26 +4 70 71 25 150 27 +4 71 72 26 151 13 +5 6 7 21 29 7 +6 8 7 22 30 28 +7 8 9 29 15 1 +9 24 10 32 37 2 +9 25 24 16 61 31 +10 13 11 34 39 3 +10 18 13 35 42 33 +10 19 18 36 48 34 +10 20 19 37 50 35 +10 24 20 31 53 36 +11 12 15 39 41 4 +11 13 12 33 40 38 +12 13 14 39 42 41 +12 14 15 40 43 38 +13 18 14 34 45 40 +14 16 15 44 9 41 +14 17 16 45 46 43 +14 18 17 42 48 44 +16 17 40 44 49 47 +16 40 41 46 98 10 +17 18 19 45 35 49 +17 19 40 48 52 46 +19 20 21 36 53 51 +19 21 22 50 54 52 +19 22 40 51 56 49 +20 24 21 37 55 50 +21 23 22 55 56 51 +21 24 23 53 57 54 +22 23 40 54 60 52 +23 24 28 55 63 58 +23 28 29 57 70 59 +23 29 39 58 73 60 +23 39 40 59 95 56 +24 25 26 32 64 62 +24 26 27 61 66 63 +24 27 28 62 68 57 +25 79 26 65 67 61 +25 80 79 20 156 64 +26 78 27 67 69 62 +26 79 78 64 155 66 +27 33 28 69 72 63 +27 78 33 66 81 68 +28 30 29 71 73 58 +28 32 30 72 75 70 +28 33 32 68 79 71 +29 30 39 70 76 59 +30 31 38 75 78 76 +30 32 31 71 77 74 +30 38 39 74 93 73 +31 32 37 75 79 78 +31 37 38 77 91 74 +32 33 37 72 80 77 +33 34 37 81 83 79 +33 78 34 69 85 80 +34 35 36 84 86 83 +34 36 37 82 88 80 +34 77 35 85 87 82 +34 78 77 81 155 84 +35 76 36 87 90 82 +35 77 76 84 154 86 +36 49 37 89 92 83 +36 50 49 90 118 88 +36 76 50 86 119 89 +37 47 38 92 94 78 +37 49 47 88 112 91 +38 46 39 94 97 76 +38 47 46 91 109 93 +39 44 40 96 98 60 +39 45 44 97 105 95 +39 46 45 93 108 96 +40 44 41 95 100 47 +41 43 42 100 101 11 +41 44 43 98 105 99 +42 43 61 99 107 102 +42 61 62 101 141 103 +42 62 66 102 143 104 +42 66 67 103 146 23 +43 44 45 100 96 106 +43 45 59 105 108 107 +43 59 61 106 139 101 +45 46 59 97 110 106 +46 47 58 94 111 110 +46 58 59 109 137 108 +47 48 58 112 117 109 +47 49 48 92 113 111 +48 49 51 112 118 114 +48 51 55 113 120 115 +48 55 56 114 128 116 +48 56 57 115 133 117 +48 57 58 116 135 111 +49 50 51 89 119 113 +50 76 51 90 121 118 +51 52 55 121 123 114 +51 76 52 119 125 120 +52 53 54 124 126 123 +52 54 55 122 128 120 +52 75 53 125 127 122 +52 76 75 121 18 124 +53 74 54 127 132 122 +53 75 74 124 153 126 +54 56 55 129 115 123 +54 65 56 130 134 128 +54 68 65 131 145 129 +54 69 68 132 147 130 +54 74 69 126 149 131 +56 64 57 134 136 116 +56 65 64 129 144 133 +57 63 58 136 138 117 +57 64 63 133 144 135 +58 60 59 138 139 110 +58 63 60 135 140 137 +59 60 61 137 140 107 +60 63 61 138 141 139 +61 63 62 140 142 102 +62 63 65 141 144 143 +62 65 66 142 145 103 +63 64 65 136 134 142 +65 68 66 130 146 143 +66 68 67 145 147 104 +67 68 69 146 131 24 +69 73 70 149 150 25 +69 74 73 132 153 148 +70 73 71 148 151 26 +71 73 72 150 152 27 +72 73 75 151 153 17 +73 74 75 149 127 152 +76 77 80 87 156 19 +77 78 79 85 67 156 +77 79 80 155 65 154 + +78 +3 4 +3 80 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_ignore_auto.txt b/include/CDT/tests/expected/gh_issue__auto_ignore_auto.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_ignore_auto.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_ignore_outer.txt b/include/CDT/tests/expected/gh_issue__auto_ignore_outer.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_ignore_outer.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_ignore_super.txt b/include/CDT/tests/expected/gh_issue__auto_ignore_super.txt new file mode 100644 index 0000000..3244dd6 --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_ignore_super.txt @@ -0,0 +1,229 @@ +144 +0 1 69 1 14 4 +0 5 1 2 9 0 +0 6 5 3 17 1 +0 22 6 7 19 2 +0 69 72 0 139 5 +0 72 73 4 112 6 +0 73 77 5 141 7 +0 77 22 6 52 3 +1 3 2 9 15 4294967295 +1 5 3 1 16 8 +1 39 64 4294967295 91 11 +1 64 66 10 134 12 +1 66 67 11 135 13 +1 67 68 12 137 14 +1 68 69 13 138 0 +2 3 4 8 16 4294967295 +3 5 4 9 17 15 +4 5 6 16 2 4294967295 +6 21 7 19 24 4294967295 +6 22 21 3 48 18 +7 10 8 21 26 4294967295 +7 15 10 22 29 20 +7 16 15 23 35 21 +7 17 16 24 37 22 +7 21 17 18 40 23 +8 9 12 26 28 4294967295 +8 10 9 20 27 25 +9 10 11 26 29 28 +9 11 12 27 30 25 +10 15 11 21 32 27 +11 13 12 31 4294967295 28 +11 14 13 32 33 30 +11 15 14 29 35 31 +13 14 37 31 36 34 +13 37 38 33 85 4294967295 +14 15 16 32 22 36 +14 16 37 35 39 33 +16 17 18 23 40 38 +16 18 19 37 41 39 +16 19 37 38 43 36 +17 21 18 24 42 37 +18 20 19 42 43 38 +18 21 20 40 44 41 +19 20 37 41 47 39 +20 21 25 42 50 45 +20 25 26 44 57 46 +20 26 36 45 60 47 +20 36 37 46 82 43 +21 22 23 19 51 49 +21 23 24 48 53 50 +21 24 25 49 55 44 +22 76 23 52 54 48 +22 77 76 7 143 51 +23 75 24 54 56 49 +23 76 75 51 142 53 +24 30 25 56 59 50 +24 75 30 53 68 55 +25 27 26 58 60 45 +25 29 27 59 62 57 +25 30 29 55 66 58 +26 27 36 57 63 46 +27 28 35 62 65 63 +27 29 28 58 64 61 +27 35 36 61 80 60 +28 29 34 62 66 65 +28 34 35 64 78 61 +29 30 34 59 67 64 +30 31 34 68 70 66 +30 75 31 56 72 67 +31 32 33 71 73 70 +31 33 34 69 75 67 +31 74 32 72 74 69 +31 75 74 68 142 71 +32 73 33 74 77 69 +32 74 73 71 141 73 +33 46 34 76 79 70 +33 47 46 77 105 75 +33 73 47 73 106 76 +34 44 35 79 81 65 +34 46 44 75 99 78 +35 43 36 81 84 63 +35 44 43 78 96 80 +36 41 37 83 85 47 +36 42 41 84 92 82 +36 43 42 80 95 83 +37 41 38 82 87 34 +38 40 39 87 88 4294967295 +38 41 40 85 92 86 +39 40 58 86 94 89 +39 58 59 88 128 90 +39 59 63 89 130 91 +39 63 64 90 133 10 +40 41 42 87 83 93 +40 42 56 92 95 94 +40 56 58 93 126 88 +42 43 56 84 97 93 +43 44 55 81 98 97 +43 55 56 96 124 95 +44 45 55 99 104 96 +44 46 45 79 100 98 +45 46 48 99 105 101 +45 48 52 100 107 102 +45 52 53 101 115 103 +45 53 54 102 120 104 +45 54 55 103 122 98 +46 47 48 76 106 100 +47 73 48 77 108 105 +48 49 52 108 110 101 +48 73 49 106 112 107 +49 50 51 111 113 110 +49 51 52 109 115 107 +49 72 50 112 114 109 +49 73 72 108 5 111 +50 71 51 114 119 109 +50 72 71 111 140 113 +51 53 52 116 102 110 +51 62 53 117 121 115 +51 65 62 118 132 116 +51 66 65 119 134 117 +51 71 66 113 136 118 +53 61 54 121 123 103 +53 62 61 116 131 120 +54 60 55 123 125 104 +54 61 60 120 131 122 +55 57 56 125 126 97 +55 60 57 122 127 124 +56 57 58 124 127 94 +57 60 58 125 128 126 +58 60 59 127 129 89 +59 60 62 128 131 130 +59 62 63 129 132 90 +60 61 62 123 121 129 +62 65 63 117 133 130 +63 65 64 132 134 91 +64 65 66 133 118 11 +66 70 67 136 137 12 +66 71 70 119 140 135 +67 70 68 135 138 13 +68 70 69 137 139 14 +69 70 72 138 140 4 +70 71 72 136 114 139 +73 74 77 74 143 6 +74 75 76 72 54 143 +74 76 77 142 52 141 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_resolve_all.txt b/include/CDT/tests/expected/gh_issue__auto_resolve_all.txt new file mode 100644 index 0000000..1e79f2e --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_resolve_all.txt @@ -0,0 +1,242 @@ +157 +0 1 7 4294967295 7 1 +0 7 9 0 30 2 +0 9 10 1 31 3 +0 10 11 2 33 4 +0 11 15 3 38 5 +0 15 2 4 9 4294967295 +1 2 5 4294967295 8 7 +1 5 7 6 28 0 +2 4 5 12 21 6 +2 15 16 5 43 10 +2 16 41 9 47 11 +2 41 42 10 99 12 +2 42 4 11 23 8 +3 4 72 14 27 17 +3 8 4 15 22 13 +3 9 8 16 30 14 +3 25 9 20 32 15 +3 72 75 13 152 18 +3 75 76 17 125 19 +3 76 80 18 154 20 +3 80 25 19 65 16 +4 6 5 22 28 8 +4 8 6 14 29 21 +4 42 67 12 104 24 +4 67 69 23 147 25 +4 69 70 24 148 26 +4 70 71 25 150 27 +4 71 72 26 151 13 +5 6 7 21 29 7 +6 8 7 22 30 28 +7 8 9 29 15 1 +9 24 10 32 37 2 +9 25 24 16 61 31 +10 13 11 34 39 3 +10 18 13 35 42 33 +10 19 18 36 48 34 +10 20 19 37 50 35 +10 24 20 31 53 36 +11 12 15 39 41 4 +11 13 12 33 40 38 +12 13 14 39 42 41 +12 14 15 40 43 38 +13 18 14 34 45 40 +14 16 15 44 9 41 +14 17 16 45 46 43 +14 18 17 42 48 44 +16 17 40 44 49 47 +16 40 41 46 98 10 +17 18 19 45 35 49 +17 19 40 48 52 46 +19 20 21 36 53 51 +19 21 22 50 54 52 +19 22 40 51 56 49 +20 24 21 37 55 50 +21 23 22 55 56 51 +21 24 23 53 57 54 +22 23 40 54 60 52 +23 24 28 55 63 58 +23 28 29 57 70 59 +23 29 39 58 73 60 +23 39 40 59 95 56 +24 25 26 32 64 62 +24 26 27 61 66 63 +24 27 28 62 68 57 +25 79 26 65 67 61 +25 80 79 20 156 64 +26 78 27 67 69 62 +26 79 78 64 155 66 +27 33 28 69 72 63 +27 78 33 66 81 68 +28 30 29 71 73 58 +28 32 30 72 75 70 +28 33 32 68 79 71 +29 30 39 70 76 59 +30 31 38 75 78 76 +30 32 31 71 77 74 +30 38 39 74 93 73 +31 32 37 75 79 78 +31 37 38 77 91 74 +32 33 37 72 80 77 +33 34 37 81 83 79 +33 78 34 69 85 80 +34 35 36 84 86 83 +34 36 37 82 88 80 +34 77 35 85 87 82 +34 78 77 81 155 84 +35 76 36 87 90 82 +35 77 76 84 154 86 +36 49 37 89 92 83 +36 50 49 90 118 88 +36 76 50 86 119 89 +37 47 38 92 94 78 +37 49 47 88 112 91 +38 46 39 94 97 76 +38 47 46 91 109 93 +39 44 40 96 98 60 +39 45 44 97 105 95 +39 46 45 93 108 96 +40 44 41 95 100 47 +41 43 42 100 101 11 +41 44 43 98 105 99 +42 43 61 99 107 102 +42 61 62 101 141 103 +42 62 66 102 143 104 +42 66 67 103 146 23 +43 44 45 100 96 106 +43 45 59 105 108 107 +43 59 61 106 139 101 +45 46 59 97 110 106 +46 47 58 94 111 110 +46 58 59 109 137 108 +47 48 58 112 117 109 +47 49 48 92 113 111 +48 49 51 112 118 114 +48 51 55 113 120 115 +48 55 56 114 128 116 +48 56 57 115 133 117 +48 57 58 116 135 111 +49 50 51 89 119 113 +50 76 51 90 121 118 +51 52 55 121 123 114 +51 76 52 119 125 120 +52 53 54 124 126 123 +52 54 55 122 128 120 +52 75 53 125 127 122 +52 76 75 121 18 124 +53 74 54 127 132 122 +53 75 74 124 153 126 +54 56 55 129 115 123 +54 65 56 130 134 128 +54 68 65 131 145 129 +54 69 68 132 147 130 +54 74 69 126 149 131 +56 64 57 134 136 116 +56 65 64 129 144 133 +57 63 58 136 138 117 +57 64 63 133 144 135 +58 60 59 138 139 110 +58 63 60 135 140 137 +59 60 61 137 140 107 +60 63 61 138 141 139 +61 63 62 140 142 102 +62 63 65 141 144 143 +62 65 66 142 145 103 +63 64 65 136 134 142 +65 68 66 130 146 143 +66 68 67 145 147 104 +67 68 69 146 131 24 +69 73 70 149 150 25 +69 74 73 132 153 148 +70 73 71 148 151 26 +71 73 72 150 152 27 +72 73 75 151 153 17 +73 74 75 149 127 152 +76 77 80 87 156 19 +77 78 79 85 67 156 +77 79 80 155 65 154 + +78 +3 4 +3 80 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_resolve_auto.txt b/include/CDT/tests/expected/gh_issue__auto_resolve_auto.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_resolve_auto.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_resolve_outer.txt b/include/CDT/tests/expected/gh_issue__auto_resolve_outer.txt new file mode 100644 index 0000000..b3fccae --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_resolve_outer.txt @@ -0,0 +1,161 @@ +76 +0 5 1 1 5 4294967295 +0 6 5 2 4294967295 0 +0 22 6 3 8 1 +0 77 22 4294967295 23 2 +1 3 2 5 4294967295 4294967295 +1 5 3 0 6 4 +3 5 4 5 4294967295 4294967295 +6 21 7 8 13 4294967295 +6 22 21 2 4294967295 7 +7 10 8 10 14 4294967295 +7 15 10 11 15 9 +7 16 15 12 4294967295 10 +7 17 16 13 4294967295 11 +7 21 17 7 19 12 +8 10 9 9 4294967295 4294967295 +10 15 11 10 18 4294967295 +11 13 12 17 4294967295 4294967295 +11 14 13 18 4294967295 16 +11 15 14 15 4294967295 17 +17 21 18 13 21 4294967295 +18 20 19 21 4294967295 4294967295 +18 21 20 19 4294967295 20 +22 76 23 23 25 4294967295 +22 77 76 3 4294967295 22 +23 75 24 25 27 4294967295 +23 76 75 22 4294967295 24 +24 30 25 27 30 4294967295 +24 75 30 24 32 26 +25 27 26 29 4294967295 4294967295 +25 29 27 30 31 28 +25 30 29 26 4294967295 29 +27 29 28 29 4294967295 4294967295 +30 75 31 27 34 4294967295 +31 74 32 34 36 4294967295 +31 75 74 32 4294967295 33 +32 73 33 36 39 4294967295 +32 74 73 33 4294967295 35 +33 46 34 38 41 4294967295 +33 47 46 39 4294967295 37 +33 73 47 35 51 38 +34 44 35 41 43 4294967295 +34 46 44 37 50 40 +35 43 36 43 46 4294967295 +35 44 43 40 4294967295 42 +36 41 37 45 47 4294967295 +36 42 41 46 4294967295 44 +36 43 42 42 4294967295 45 +37 41 38 44 49 4294967295 +38 40 39 49 4294967295 4294967295 +38 41 40 47 4294967295 48 +44 46 45 41 4294967295 4294967295 +47 73 48 39 52 4294967295 +48 73 49 51 54 4294967295 +49 72 50 54 56 4294967295 +49 73 72 52 4294967295 53 +50 71 51 56 61 4294967295 +50 72 71 53 4294967295 55 +51 53 52 58 4294967295 4294967295 +51 62 53 59 63 57 +51 65 62 60 70 58 +51 66 65 61 4294967295 59 +51 71 66 55 73 60 +53 61 54 63 65 4294967295 +53 62 61 58 4294967295 62 +54 60 55 65 67 4294967295 +54 61 60 62 4294967295 64 +55 57 56 67 4294967295 4294967295 +55 60 57 64 68 66 +57 60 58 67 69 4294967295 +58 60 59 68 4294967295 4294967295 +62 65 63 59 71 4294967295 +63 65 64 70 4294967295 4294967295 +66 70 67 73 74 4294967295 +66 71 70 61 4294967295 72 +67 70 68 72 75 4294967295 +68 70 69 74 4294967295 4294967295 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__auto_resolve_super.txt b/include/CDT/tests/expected/gh_issue__auto_resolve_super.txt new file mode 100644 index 0000000..3244dd6 --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__auto_resolve_super.txt @@ -0,0 +1,229 @@ +144 +0 1 69 1 14 4 +0 5 1 2 9 0 +0 6 5 3 17 1 +0 22 6 7 19 2 +0 69 72 0 139 5 +0 72 73 4 112 6 +0 73 77 5 141 7 +0 77 22 6 52 3 +1 3 2 9 15 4294967295 +1 5 3 1 16 8 +1 39 64 4294967295 91 11 +1 64 66 10 134 12 +1 66 67 11 135 13 +1 67 68 12 137 14 +1 68 69 13 138 0 +2 3 4 8 16 4294967295 +3 5 4 9 17 15 +4 5 6 16 2 4294967295 +6 21 7 19 24 4294967295 +6 22 21 3 48 18 +7 10 8 21 26 4294967295 +7 15 10 22 29 20 +7 16 15 23 35 21 +7 17 16 24 37 22 +7 21 17 18 40 23 +8 9 12 26 28 4294967295 +8 10 9 20 27 25 +9 10 11 26 29 28 +9 11 12 27 30 25 +10 15 11 21 32 27 +11 13 12 31 4294967295 28 +11 14 13 32 33 30 +11 15 14 29 35 31 +13 14 37 31 36 34 +13 37 38 33 85 4294967295 +14 15 16 32 22 36 +14 16 37 35 39 33 +16 17 18 23 40 38 +16 18 19 37 41 39 +16 19 37 38 43 36 +17 21 18 24 42 37 +18 20 19 42 43 38 +18 21 20 40 44 41 +19 20 37 41 47 39 +20 21 25 42 50 45 +20 25 26 44 57 46 +20 26 36 45 60 47 +20 36 37 46 82 43 +21 22 23 19 51 49 +21 23 24 48 53 50 +21 24 25 49 55 44 +22 76 23 52 54 48 +22 77 76 7 143 51 +23 75 24 54 56 49 +23 76 75 51 142 53 +24 30 25 56 59 50 +24 75 30 53 68 55 +25 27 26 58 60 45 +25 29 27 59 62 57 +25 30 29 55 66 58 +26 27 36 57 63 46 +27 28 35 62 65 63 +27 29 28 58 64 61 +27 35 36 61 80 60 +28 29 34 62 66 65 +28 34 35 64 78 61 +29 30 34 59 67 64 +30 31 34 68 70 66 +30 75 31 56 72 67 +31 32 33 71 73 70 +31 33 34 69 75 67 +31 74 32 72 74 69 +31 75 74 68 142 71 +32 73 33 74 77 69 +32 74 73 71 141 73 +33 46 34 76 79 70 +33 47 46 77 105 75 +33 73 47 73 106 76 +34 44 35 79 81 65 +34 46 44 75 99 78 +35 43 36 81 84 63 +35 44 43 78 96 80 +36 41 37 83 85 47 +36 42 41 84 92 82 +36 43 42 80 95 83 +37 41 38 82 87 34 +38 40 39 87 88 4294967295 +38 41 40 85 92 86 +39 40 58 86 94 89 +39 58 59 88 128 90 +39 59 63 89 130 91 +39 63 64 90 133 10 +40 41 42 87 83 93 +40 42 56 92 95 94 +40 56 58 93 126 88 +42 43 56 84 97 93 +43 44 55 81 98 97 +43 55 56 96 124 95 +44 45 55 99 104 96 +44 46 45 79 100 98 +45 46 48 99 105 101 +45 48 52 100 107 102 +45 52 53 101 115 103 +45 53 54 102 120 104 +45 54 55 103 122 98 +46 47 48 76 106 100 +47 73 48 77 108 105 +48 49 52 108 110 101 +48 73 49 106 112 107 +49 50 51 111 113 110 +49 51 52 109 115 107 +49 72 50 112 114 109 +49 73 72 108 5 111 +50 71 51 114 119 109 +50 72 71 111 140 113 +51 53 52 116 102 110 +51 62 53 117 121 115 +51 65 62 118 132 116 +51 66 65 119 134 117 +51 71 66 113 136 118 +53 61 54 121 123 103 +53 62 61 116 131 120 +54 60 55 123 125 104 +54 61 60 120 131 122 +55 57 56 125 126 97 +55 60 57 122 127 124 +56 57 58 124 127 94 +57 60 58 125 128 126 +58 60 59 127 129 89 +59 60 62 128 131 130 +59 62 63 129 132 90 +60 61 62 123 121 129 +62 65 63 117 133 130 +63 65 64 132 134 91 +64 65 66 133 118 11 +66 70 67 136 137 12 +66 71 70 119 140 135 +67 70 68 135 138 13 +68 70 69 137 139 14 +69 70 72 138 140 4 +70 71 72 136 114 139 +73 74 77 74 143 6 +74 75 76 72 54 143 +74 76 77 142 52 141 + +78 +0 1 +0 77 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 + +0 + +0 diff --git a/include/CDT/tests/expected/gh_issue__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/gh_issue__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..4c62659 --- /dev/null +++ b/include/CDT/tests/expected/gh_issue__conforming_auto_ignore_auto.txt @@ -0,0 +1,182 @@ +79 +0 6 79 1 10 4294967295 +0 22 6 2 9 0 +0 77 22 4294967295 25 1 +1 3 2 4 4294967295 4294967295 +1 5 3 5 6 3 +1 78 5 4294967295 7 4 +3 5 4 4 4294967295 4294967295 +5 78 6 5 10 4294967295 +6 21 7 9 15 4294967295 +6 22 21 1 4294967295 8 +6 78 79 7 4294967295 0 +7 10 8 12 16 4294967295 +7 15 10 13 17 11 +7 16 15 14 4294967295 12 +7 17 16 15 4294967295 13 +7 21 17 8 21 14 +8 10 9 11 4294967295 4294967295 +10 15 11 12 20 4294967295 +11 13 12 19 4294967295 4294967295 +11 14 13 20 4294967295 18 +11 15 14 17 4294967295 19 +17 21 18 15 23 4294967295 +18 20 19 23 4294967295 4294967295 +18 21 20 21 4294967295 22 +22 76 23 25 27 4294967295 +22 77 76 2 4294967295 24 +23 75 24 27 29 4294967295 +23 76 75 24 4294967295 26 +24 30 25 29 32 4294967295 +24 75 30 26 34 28 +25 27 26 31 4294967295 4294967295 +25 29 27 32 33 30 +25 30 29 28 4294967295 31 +27 29 28 31 4294967295 4294967295 +30 75 31 29 36 4294967295 +31 74 32 36 38 4294967295 +31 75 74 34 4294967295 35 +32 73 33 38 41 4294967295 +32 74 73 35 4294967295 37 +33 46 34 40 42 4294967295 +33 47 46 41 4294967295 39 +33 73 47 37 54 40 +34 46 80 39 53 4294967295 +35 43 36 44 48 4294967295 +35 44 43 45 4294967295 43 +35 80 44 4294967295 52 44 +36 41 37 47 49 4294967295 +36 42 41 48 4294967295 46 +36 43 42 43 4294967295 47 +37 41 38 46 51 4294967295 +38 40 39 51 4294967295 4294967295 +38 41 40 49 4294967295 50 +44 80 45 45 53 4294967295 +45 80 46 52 42 4294967295 +47 73 48 41 55 4294967295 +48 73 49 54 57 4294967295 +49 72 50 57 59 4294967295 +49 73 72 55 4294967295 56 +50 71 51 59 64 4294967295 +50 72 71 56 4294967295 58 +51 53 52 61 4294967295 4294967295 +51 62 53 62 66 60 +51 65 62 63 73 61 +51 66 65 64 4294967295 62 +51 71 66 58 76 63 +53 61 54 66 68 4294967295 +53 62 61 61 4294967295 65 +54 60 55 68 70 4294967295 +54 61 60 65 4294967295 67 +55 57 56 70 4294967295 4294967295 +55 60 57 67 71 69 +57 60 58 70 72 4294967295 +58 60 59 71 4294967295 4294967295 +62 65 63 62 74 4294967295 +63 65 64 73 4294967295 4294967295 +66 70 67 76 77 4294967295 +66 71 70 64 4294967295 75 +67 70 68 75 78 4294967295 +68 70 69 77 4294967295 4294967295 + +81 +0 77 +0 79 +1 2 +1 78 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 80 +35 36 +35 80 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +78 79 + +0 + +5 +0 79 + 1 + 0 1 +1 78 + 1 + 0 1 +34 80 + 1 + 34 35 +35 80 + 1 + 34 35 +78 79 + 1 + 0 1 diff --git a/include/CDT/tests/expected/guitar no box__conforming_f32_auto_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__conforming_f32_auto_ignore_auto.txt new file mode 100644 index 0000000..8250acb --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__conforming_f32_auto_ignore_auto.txt @@ -0,0 +1,331 @@ +152 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 149 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 150 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 138 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 142 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 144 45 +30 130 128 50 145 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 148 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 72 70 +44 111 112 69 4294967295 66 +45 109 110 73 4294967295 72 +45 110 111 71 4294967295 69 +45 144 109 4294967295 137 71 +46 47 108 4294967295 77 75 +46 108 145 74 4294967295 76 +46 145 144 75 137 4294967295 +47 48 108 4294967295 83 74 +48 49 50 4294967295 4294967295 79 +48 50 89 78 88 80 +48 89 90 79 4294967295 81 +48 90 97 80 122 82 +48 97 98 81 4294967295 83 +48 98 108 82 130 77 +50 51 73 4294967295 92 85 +50 73 74 84 4294967295 86 +50 74 81 85 110 87 +50 81 82 86 4294967295 88 +50 82 89 87 116 79 +51 52 58 4294967295 93 90 +51 58 65 89 98 91 +51 65 66 90 4294967295 92 +51 66 73 91 105 84 +52 53 58 4294967295 94 89 +53 54 58 4294967295 96 93 +54 55 57 4294967295 97 96 +54 57 58 95 4294967295 94 +55 56 57 4294967295 4294967295 95 +58 59 65 4294967295 101 90 +59 60 63 4294967295 103 100 +59 63 64 99 4294967295 101 +59 64 65 100 4294967295 98 +60 61 62 4294967295 4294967295 103 +60 62 63 102 4294967295 99 +66 67 72 4294967295 106 105 +66 72 73 104 4294967295 92 +67 68 72 4294967295 108 104 +68 69 71 4294967295 109 108 +68 71 72 107 4294967295 106 +69 70 71 4294967295 4294967295 107 +74 75 81 4294967295 112 86 +75 76 80 4294967295 114 112 +75 80 81 111 4294967295 110 +76 77 79 4294967295 115 114 +76 79 80 113 4294967295 111 +77 78 79 4294967295 4294967295 113 +82 83 89 4294967295 119 88 +83 84 87 4294967295 120 118 +83 87 88 117 4294967295 119 +83 88 89 118 4294967295 116 +84 85 87 4294967295 121 117 +85 86 87 4294967295 4294967295 120 +90 91 97 4294967295 125 81 +91 92 95 4294967295 127 124 +91 95 96 123 4294967295 125 +91 96 97 124 4294967295 122 +92 93 94 4294967295 4294967295 127 +92 94 95 126 4294967295 123 +98 99 104 4294967295 131 129 +98 104 105 128 4294967295 130 +98 105 108 129 135 83 +99 100 104 4294967295 134 128 +100 101 102 4294967295 4294967295 133 +100 102 103 132 4294967295 134 +100 103 104 133 4294967295 131 +105 106 108 4294967295 136 130 +106 107 108 4294967295 4294967295 135 +109 144 145 73 76 4294967295 +119 120 136 4294967295 141 28 +120 121 122 4294967295 4294967295 140 +120 122 147 139 143 141 +120 147 136 140 4294967295 138 +122 123 125 4294967295 43 143 +122 125 147 142 4294967295 140 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 146 147 151 4294967295 +131 139 138 148 4294967295 146 +131 140 139 52 4294967295 147 +132 146 137 4294967295 151 18 +133 135 134 23 4294967295 4294967295 +137 146 138 149 146 4294967295 + +148 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 144 +46 47 +46 144 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 145 +109 110 +109 145 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 147 +126 127 +127 128 +128 129 +129 130 +130 131 +131 146 +132 133 +132 146 +133 134 +134 135 +135 136 +136 147 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +8 +45 144 + 1 + 45 46 +46 144 + 1 + 45 46 +108 145 + 1 + 108 109 +109 145 + 1 + 108 109 +125 147 + 1 + 125 136 +131 146 + 1 + 131 132 +132 146 + 1 + 131 132 +136 147 + 1 + 125 136 diff --git a/include/CDT/tests/expected/guitar no box__conforming_f64_auto_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__conforming_f64_auto_ignore_auto.txt new file mode 100644 index 0000000..7888a1f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__conforming_f64_auto_ignore_auto.txt @@ -0,0 +1,331 @@ +152 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 149 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 150 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 138 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 142 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 144 45 +30 130 128 50 145 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 148 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 72 70 +44 111 112 69 4294967295 66 +45 109 110 73 4294967295 72 +45 110 111 71 4294967295 69 +45 144 109 4294967295 137 71 +46 47 108 4294967295 77 75 +46 108 145 74 4294967295 76 +46 145 144 75 137 4294967295 +47 48 108 4294967295 83 74 +48 49 50 4294967295 4294967295 79 +48 50 89 78 88 80 +48 89 90 79 4294967295 81 +48 90 97 80 123 82 +48 97 98 81 4294967295 83 +48 98 108 82 130 77 +50 51 73 4294967295 92 85 +50 73 74 84 4294967295 86 +50 74 81 85 111 87 +50 81 82 86 4294967295 88 +50 82 89 87 117 79 +51 52 58 4294967295 93 90 +51 58 65 89 99 91 +51 65 66 90 4294967295 92 +51 66 73 91 104 84 +52 53 58 4294967295 94 89 +53 54 58 4294967295 96 93 +54 55 57 4294967295 97 96 +54 57 58 95 4294967295 94 +55 56 57 4294967295 4294967295 95 +58 59 64 4294967295 100 99 +58 64 65 98 4294967295 90 +59 60 64 4294967295 102 98 +60 61 63 4294967295 103 102 +60 63 64 101 4294967295 100 +61 62 63 4294967295 4294967295 101 +66 67 73 4294967295 106 92 +67 68 72 4294967295 108 106 +67 72 73 105 4294967295 104 +68 69 71 4294967295 109 108 +68 71 72 107 4294967295 105 +69 70 71 4294967295 4294967295 107 +74 75 80 4294967295 112 111 +74 80 81 110 4294967295 86 +75 76 80 4294967295 114 110 +76 77 79 4294967295 115 114 +76 79 80 113 4294967295 112 +77 78 79 4294967295 4294967295 113 +82 83 88 4294967295 118 117 +82 88 89 116 4294967295 88 +83 84 88 4294967295 120 116 +84 85 87 4294967295 121 120 +84 87 88 119 4294967295 118 +85 86 87 4294967295 4294967295 119 +90 91 96 4294967295 124 123 +90 96 97 122 4294967295 81 +91 92 96 4294967295 126 122 +92 93 95 4294967295 127 126 +92 95 96 125 4294967295 124 +93 94 95 4294967295 4294967295 125 +98 99 104 4294967295 131 129 +98 104 105 128 4294967295 130 +98 105 108 129 135 83 +99 100 104 4294967295 133 128 +100 101 103 4294967295 134 133 +100 103 104 132 4294967295 131 +101 102 103 4294967295 4294967295 132 +105 106 108 4294967295 136 130 +106 107 108 4294967295 4294967295 135 +109 144 145 73 76 4294967295 +119 120 136 4294967295 141 28 +120 121 122 4294967295 4294967295 140 +120 122 147 139 143 141 +120 147 136 140 4294967295 138 +122 123 125 4294967295 43 143 +122 125 147 142 4294967295 140 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 146 147 151 4294967295 +131 139 138 148 4294967295 146 +131 140 139 52 4294967295 147 +132 146 137 4294967295 151 18 +133 135 134 23 4294967295 4294967295 +137 146 138 149 146 4294967295 + +148 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 144 +46 47 +46 144 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 145 +109 110 +109 145 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 147 +126 127 +127 128 +128 129 +129 130 +130 131 +131 146 +132 133 +132 146 +133 134 +134 135 +135 136 +136 147 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +8 +45 144 + 1 + 45 46 +46 144 + 1 + 45 46 +108 145 + 1 + 108 109 +109 145 + 1 + 108 109 +125 147 + 1 + 125 136 +131 146 + 1 + 131 132 +132 146 + 1 + 131 132 +136 147 + 1 + 125 136 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_all.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_all.txt new file mode 100644 index 0000000..35bf9ae --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 13 11 +0 24 2 2 26 4294967295 +0 25 24 3 81 1 +0 26 25 4 83 2 +0 27 26 5 85 3 +0 28 27 6 86 4 +0 29 28 7 87 5 +0 30 29 8 88 6 +0 31 30 9 89 7 +0 40 31 10 92 8 +0 56 40 11 120 9 +0 57 56 0 163 10 +1 2 64 4294967295 27 16 +1 58 57 14 164 0 +1 59 58 15 166 13 +1 60 59 16 166 14 +1 64 60 12 168 15 +2 4 105 18 31 29 +2 5 4 19 37 17 +2 17 5 20 40 18 +2 18 17 21 68 19 +2 19 18 22 72 20 +2 20 19 23 73 21 +2 21 20 24 74 22 +2 22 21 25 76 23 +2 23 22 26 77 24 +2 24 23 1 79 25 +2 73 64 28 176 12 +2 96 73 29 192 27 +2 105 96 17 230 28 +3 4 119 31 38 36 +3 105 4 32 17 30 +3 109 105 33 245 31 +3 110 109 34 249 32 +3 111 110 35 249 33 +3 112 111 36 143 34 +3 119 112 30 252 35 +4 5 118 18 39 38 +4 118 119 37 252 30 +5 6 118 40 44 37 +5 17 6 19 43 39 +6 7 117 42 45 44 +6 16 7 43 46 41 +6 17 16 40 68 42 +6 117 118 41 251 39 +7 8 117 46 50 41 +7 16 8 42 49 45 +8 9 116 48 51 50 +8 15 9 49 53 47 +8 16 15 46 66 48 +8 116 117 47 254 45 +9 10 116 52 55 47 +9 11 10 53 54 51 +9 15 11 48 59 52 +10 11 115 52 60 55 +10 115 116 54 255 51 +11 12 146 57 61 60 +11 13 12 58 61 56 +11 14 13 59 62 57 +11 15 14 53 64 58 +11 146 115 56 133 54 +12 13 146 57 63 56 +13 14 140 58 65 63 +13 140 146 62 285 61 +14 15 135 59 67 65 +14 135 140 64 282 62 +15 16 136 49 70 67 +15 136 135 66 277 64 +16 17 18 43 20 69 +16 18 139 68 72 71 +16 138 136 71 283 66 +16 139 138 69 273 70 +18 19 139 21 73 69 +19 20 139 22 75 72 +20 21 122 23 76 75 +20 122 139 74 259 73 +21 22 122 24 78 74 +22 23 121 25 80 78 +22 121 122 77 258 76 +23 24 120 26 82 80 +23 120 121 79 256 77 +24 25 127 2 84 82 +24 127 120 81 257 79 +25 26 126 3 85 84 +25 126 127 83 265 81 +26 27 126 4 86 83 +27 28 126 5 87 85 +28 29 126 6 88 86 +29 30 126 7 90 87 +30 31 128 8 91 90 +30 128 126 89 266 88 +31 32 128 92 96 89 +31 40 32 9 95 91 +32 33 129 94 100 96 +32 39 33 95 99 93 +32 40 39 92 116 94 +32 129 128 93 267 91 +33 34 134 98 106 102 +33 38 34 99 105 97 +33 39 38 94 115 98 +33 131 129 101 269 93 +33 133 131 102 274 100 +33 134 133 97 275 101 +34 35 143 104 109 106 +34 37 35 105 108 103 +34 38 37 98 113 104 +34 143 134 103 281 97 +35 36 144 108 112 109 +35 37 36 104 110 107 +35 144 143 107 288 103 +36 37 44 108 114 111 +36 44 45 110 128 112 +36 45 144 111 131 107 +37 38 43 105 115 114 +37 43 44 113 126 110 +38 39 43 99 117 113 +39 40 42 95 118 117 +39 42 43 116 125 115 +40 41 42 119 121 116 +40 55 41 120 124 118 +40 56 55 10 162 119 +41 48 42 122 125 118 +41 49 48 123 137 121 +41 52 49 124 142 122 +41 55 52 119 151 123 +42 48 43 121 127 117 +43 47 44 127 128 114 +43 48 47 125 135 126 +44 47 45 126 130 111 +45 46 145 130 134 131 +45 47 46 128 132 129 +45 145 144 129 288 112 +46 47 115 130 136 133 +46 115 146 132 60 134 +46 146 145 133 285 129 +47 48 114 127 139 136 +47 114 115 135 255 132 +48 49 112 122 143 138 +48 112 113 137 250 139 +48 113 114 138 253 135 +49 50 111 141 144 143 +49 51 50 142 144 140 +49 52 51 123 145 141 +49 111 112 140 35 137 +50 51 111 141 150 140 +51 52 53 142 151 146 +51 53 92 145 157 147 +51 92 93 146 223 148 +51 93 100 147 224 149 +51 100 101 148 236 150 +51 101 111 149 240 144 +52 55 53 124 153 145 +53 54 76 153 161 154 +53 55 54 151 158 152 +53 76 77 152 197 155 +53 77 84 154 198 156 +53 84 85 155 210 157 +53 85 92 156 211 146 +54 55 61 153 162 159 +54 61 68 158 169 160 +54 68 69 159 183 161 +54 69 76 160 185 152 +55 56 61 120 163 158 +56 57 61 11 165 162 +57 58 60 13 166 165 +57 60 61 164 167 163 +58 59 60 14 15 164 +60 63 61 168 170 165 +60 64 63 16 174 167 +61 62 68 170 173 159 +61 63 62 167 171 169 +62 63 66 170 175 172 +62 66 67 171 179 173 +62 67 68 172 182 169 +63 64 65 168 176 175 +63 65 66 174 177 171 +64 73 65 27 178 174 +65 72 66 178 181 175 +65 73 72 176 189 177 +66 70 67 180 182 172 +66 71 70 181 186 179 +66 72 71 177 187 180 +67 70 68 179 183 173 +68 70 69 182 184 160 +69 70 75 183 186 185 +69 75 76 184 195 161 +70 71 75 180 188 184 +71 72 74 181 189 188 +71 74 75 187 193 186 +72 73 74 178 190 187 +73 80 74 191 194 189 +73 88 80 192 204 190 +73 96 88 28 217 191 +74 79 75 194 196 188 +74 80 79 190 201 193 +75 78 76 196 197 185 +75 79 78 193 199 195 +76 78 77 195 198 154 +77 78 84 197 200 155 +78 79 83 196 202 200 +78 83 84 199 208 198 +79 80 82 194 203 202 +79 82 83 201 207 199 +80 81 82 204 205 201 +80 88 81 191 206 203 +81 87 82 206 207 203 +81 88 87 204 215 205 +82 87 83 205 209 202 +83 86 84 209 210 200 +83 87 86 207 212 208 +84 86 85 208 211 156 +85 86 92 210 214 157 +86 87 90 209 215 213 +86 90 91 212 220 214 +86 91 92 213 221 211 +87 88 90 206 216 212 +88 89 90 217 218 215 +88 96 89 192 219 216 +89 95 90 219 220 216 +89 96 95 217 228 218 +90 95 91 218 222 213 +91 94 92 222 223 214 +91 95 94 220 225 221 +92 94 93 221 224 147 +93 94 100 223 227 148 +94 95 98 222 229 226 +94 98 99 225 233 227 +94 99 100 226 236 224 +95 96 97 219 230 229 +95 97 98 228 231 225 +96 105 97 29 232 228 +97 104 98 232 235 229 +97 105 104 230 242 231 +98 102 99 234 237 226 +98 103 102 235 241 233 +98 104 103 231 242 234 +99 101 100 237 149 227 +99 102 101 233 238 236 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 150 +102 103 107 234 244 238 +103 104 105 235 232 243 +103 105 106 242 245 244 +103 106 107 243 246 241 +105 109 106 32 246 243 +106 109 107 245 247 244 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 33 34 248 +112 117 113 251 254 138 +112 118 117 252 44 250 +112 119 118 36 38 251 +113 116 114 254 255 139 +113 117 116 250 50 253 +114 116 115 253 55 136 +120 124 121 257 258 80 +120 127 124 82 265 256 +121 124 122 256 260 78 +122 123 139 260 263 75 +122 124 123 258 261 259 +123 124 125 260 264 262 +123 125 128 261 266 263 +123 128 139 262 268 259 +124 126 125 265 266 261 +124 127 126 257 84 264 +125 126 128 264 90 262 +128 129 130 96 269 268 +128 130 139 267 273 263 +129 131 130 100 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 71 268 +131 133 132 101 275 270 +132 133 134 274 102 276 +132 134 135 275 279 277 +132 135 136 276 67 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 106 286 280 +135 141 140 279 284 65 +136 138 137 70 272 278 +140 141 145 282 287 285 +140 145 146 284 134 63 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 109 131 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_auto.txt new file mode 100644 index 0000000..bc5ce56 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 140 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 139 28 +120 121 122 4294967295 4294967295 138 +120 122 125 137 140 139 +120 125 136 138 4294967295 136 +122 123 125 4294967295 43 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_outer.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_outer.txt new file mode 100644 index 0000000..b2bb878 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 145 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 146 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 145 136 +118 121 119 136 140 31 +119 120 136 140 143 28 +119 121 120 138 141 139 +120 121 122 140 144 142 +120 122 125 141 146 143 +120 125 136 142 148 139 +121 123 122 145 146 141 +121 124 123 137 37 144 +122 123 125 144 43 142 +125 126 127 46 149 148 +125 127 136 147 153 143 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_super.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_super.txt new file mode 100644 index 0000000..2b20cee --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_ignore_super.txt @@ -0,0 +1,410 @@ +259 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 215 1 +0 107 106 4 219 2 +0 108 107 5 219 3 +0 109 108 6 113 4 +0 116 109 0 222 5 +1 2 115 4294967295 9 8 +1 115 116 7 222 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 221 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 224 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 225 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 255 31 +11 12 132 29 37 35 +11 132 137 34 252 32 +12 13 133 19 40 37 +12 133 132 36 247 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 253 36 +13 136 135 39 243 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 229 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 228 46 +20 21 117 4294967295 52 50 +20 117 118 49 226 47 +21 22 124 4294967295 54 52 +21 124 117 51 227 49 +22 23 123 4294967295 55 54 +22 123 124 53 235 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 236 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 237 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 239 63 +30 130 128 72 244 70 +30 131 130 67 245 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 251 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 258 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 258 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 255 99 +44 45 111 97 109 106 +44 111 112 105 225 102 +45 46 109 92 113 108 +45 109 110 107 220 109 +45 110 111 108 223 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 193 118 +48 90 97 117 194 119 +48 97 98 118 206 120 +48 98 108 119 210 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 167 125 +50 74 81 124 168 126 +50 81 82 125 180 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 139 130 +51 65 66 129 153 131 +51 66 73 130 155 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 144 137 +58 59 65 140 143 129 +58 60 59 137 141 139 +59 60 63 140 145 142 +59 63 64 141 149 143 +59 64 65 142 152 139 +60 61 62 138 146 145 +60 62 63 144 147 141 +61 70 62 4294967295 148 144 +62 69 63 148 151 145 +62 70 69 146 159 147 +63 67 64 150 152 142 +63 68 67 151 156 149 +63 69 68 147 157 150 +64 67 65 149 153 143 +65 67 66 152 154 130 +66 67 72 153 156 155 +66 72 73 154 165 131 +67 68 72 150 158 154 +68 69 71 151 159 158 +68 71 72 157 163 156 +69 70 71 148 160 157 +70 77 71 161 164 159 +70 85 77 162 174 160 +70 93 85 4294967295 187 161 +71 76 72 164 166 158 +71 77 76 160 171 163 +72 75 73 166 167 155 +72 76 75 163 169 165 +73 75 74 165 168 124 +74 75 81 167 170 125 +75 76 80 166 172 170 +75 80 81 169 178 168 +76 77 79 164 173 172 +76 79 80 171 177 169 +77 78 79 174 175 171 +77 85 78 161 176 173 +78 84 79 176 177 173 +78 85 84 174 185 175 +79 84 80 175 179 172 +80 83 81 179 180 170 +80 84 83 177 182 178 +81 83 82 178 181 126 +82 83 89 180 184 127 +83 84 87 179 185 183 +83 87 88 182 190 184 +83 88 89 183 191 181 +84 85 87 176 186 182 +85 86 87 187 188 185 +85 93 86 162 189 186 +86 92 87 189 190 186 +86 93 92 187 198 188 +87 92 88 188 192 183 +88 91 89 192 193 184 +88 92 91 190 195 191 +89 91 90 191 194 117 +90 91 97 193 197 118 +91 92 95 192 199 196 +91 95 96 195 203 197 +91 96 97 196 206 194 +92 93 94 189 200 199 +92 94 95 198 201 195 +93 102 94 4294967295 202 198 +94 101 95 202 205 199 +94 102 101 200 212 201 +95 99 96 204 207 196 +95 100 99 205 211 203 +95 101 100 201 212 204 +96 98 97 207 119 197 +96 99 98 203 208 206 +98 99 104 207 211 209 +98 104 105 208 217 210 +98 105 108 209 218 120 +99 100 104 204 214 208 +100 101 102 205 202 213 +100 102 103 212 215 214 +100 103 104 213 216 211 +102 106 103 2 216 213 +103 106 104 215 217 214 +104 106 105 216 218 209 +105 106 108 217 219 210 +106 107 108 3 4 218 +109 114 110 221 224 108 +109 115 114 222 14 220 +109 116 115 6 8 221 +110 113 111 224 225 109 +110 114 113 220 20 223 +111 113 112 223 25 106 +117 121 118 227 228 50 +117 124 121 52 235 226 +118 121 119 226 230 48 +119 120 136 230 233 45 +119 121 120 228 231 229 +120 121 122 230 234 232 +120 122 125 231 236 233 +120 125 136 232 238 229 +121 123 122 235 236 231 +121 124 123 227 54 234 +122 123 125 234 60 232 +125 126 127 66 239 238 +125 127 136 237 243 233 +126 128 127 70 240 237 +127 128 129 239 244 241 +127 129 134 240 248 242 +127 134 135 241 253 243 +127 135 136 242 41 238 +128 130 129 71 245 240 +129 130 131 244 72 246 +129 131 132 245 249 247 +129 132 133 246 37 248 +129 133 134 247 253 241 +131 138 132 250 252 246 +131 139 138 251 256 249 +131 140 139 76 256 250 +132 138 137 249 254 35 +133 135 134 40 242 248 +137 138 142 252 257 255 +137 142 143 254 104 33 +138 139 140 250 251 257 +138 140 142 256 258 254 +140 141 142 79 101 257 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_all.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_all.txt new file mode 100644 index 0000000..35bf9ae --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 13 11 +0 24 2 2 26 4294967295 +0 25 24 3 81 1 +0 26 25 4 83 2 +0 27 26 5 85 3 +0 28 27 6 86 4 +0 29 28 7 87 5 +0 30 29 8 88 6 +0 31 30 9 89 7 +0 40 31 10 92 8 +0 56 40 11 120 9 +0 57 56 0 163 10 +1 2 64 4294967295 27 16 +1 58 57 14 164 0 +1 59 58 15 166 13 +1 60 59 16 166 14 +1 64 60 12 168 15 +2 4 105 18 31 29 +2 5 4 19 37 17 +2 17 5 20 40 18 +2 18 17 21 68 19 +2 19 18 22 72 20 +2 20 19 23 73 21 +2 21 20 24 74 22 +2 22 21 25 76 23 +2 23 22 26 77 24 +2 24 23 1 79 25 +2 73 64 28 176 12 +2 96 73 29 192 27 +2 105 96 17 230 28 +3 4 119 31 38 36 +3 105 4 32 17 30 +3 109 105 33 245 31 +3 110 109 34 249 32 +3 111 110 35 249 33 +3 112 111 36 143 34 +3 119 112 30 252 35 +4 5 118 18 39 38 +4 118 119 37 252 30 +5 6 118 40 44 37 +5 17 6 19 43 39 +6 7 117 42 45 44 +6 16 7 43 46 41 +6 17 16 40 68 42 +6 117 118 41 251 39 +7 8 117 46 50 41 +7 16 8 42 49 45 +8 9 116 48 51 50 +8 15 9 49 53 47 +8 16 15 46 66 48 +8 116 117 47 254 45 +9 10 116 52 55 47 +9 11 10 53 54 51 +9 15 11 48 59 52 +10 11 115 52 60 55 +10 115 116 54 255 51 +11 12 146 57 61 60 +11 13 12 58 61 56 +11 14 13 59 62 57 +11 15 14 53 64 58 +11 146 115 56 133 54 +12 13 146 57 63 56 +13 14 140 58 65 63 +13 140 146 62 285 61 +14 15 135 59 67 65 +14 135 140 64 282 62 +15 16 136 49 70 67 +15 136 135 66 277 64 +16 17 18 43 20 69 +16 18 139 68 72 71 +16 138 136 71 283 66 +16 139 138 69 273 70 +18 19 139 21 73 69 +19 20 139 22 75 72 +20 21 122 23 76 75 +20 122 139 74 259 73 +21 22 122 24 78 74 +22 23 121 25 80 78 +22 121 122 77 258 76 +23 24 120 26 82 80 +23 120 121 79 256 77 +24 25 127 2 84 82 +24 127 120 81 257 79 +25 26 126 3 85 84 +25 126 127 83 265 81 +26 27 126 4 86 83 +27 28 126 5 87 85 +28 29 126 6 88 86 +29 30 126 7 90 87 +30 31 128 8 91 90 +30 128 126 89 266 88 +31 32 128 92 96 89 +31 40 32 9 95 91 +32 33 129 94 100 96 +32 39 33 95 99 93 +32 40 39 92 116 94 +32 129 128 93 267 91 +33 34 134 98 106 102 +33 38 34 99 105 97 +33 39 38 94 115 98 +33 131 129 101 269 93 +33 133 131 102 274 100 +33 134 133 97 275 101 +34 35 143 104 109 106 +34 37 35 105 108 103 +34 38 37 98 113 104 +34 143 134 103 281 97 +35 36 144 108 112 109 +35 37 36 104 110 107 +35 144 143 107 288 103 +36 37 44 108 114 111 +36 44 45 110 128 112 +36 45 144 111 131 107 +37 38 43 105 115 114 +37 43 44 113 126 110 +38 39 43 99 117 113 +39 40 42 95 118 117 +39 42 43 116 125 115 +40 41 42 119 121 116 +40 55 41 120 124 118 +40 56 55 10 162 119 +41 48 42 122 125 118 +41 49 48 123 137 121 +41 52 49 124 142 122 +41 55 52 119 151 123 +42 48 43 121 127 117 +43 47 44 127 128 114 +43 48 47 125 135 126 +44 47 45 126 130 111 +45 46 145 130 134 131 +45 47 46 128 132 129 +45 145 144 129 288 112 +46 47 115 130 136 133 +46 115 146 132 60 134 +46 146 145 133 285 129 +47 48 114 127 139 136 +47 114 115 135 255 132 +48 49 112 122 143 138 +48 112 113 137 250 139 +48 113 114 138 253 135 +49 50 111 141 144 143 +49 51 50 142 144 140 +49 52 51 123 145 141 +49 111 112 140 35 137 +50 51 111 141 150 140 +51 52 53 142 151 146 +51 53 92 145 157 147 +51 92 93 146 223 148 +51 93 100 147 224 149 +51 100 101 148 236 150 +51 101 111 149 240 144 +52 55 53 124 153 145 +53 54 76 153 161 154 +53 55 54 151 158 152 +53 76 77 152 197 155 +53 77 84 154 198 156 +53 84 85 155 210 157 +53 85 92 156 211 146 +54 55 61 153 162 159 +54 61 68 158 169 160 +54 68 69 159 183 161 +54 69 76 160 185 152 +55 56 61 120 163 158 +56 57 61 11 165 162 +57 58 60 13 166 165 +57 60 61 164 167 163 +58 59 60 14 15 164 +60 63 61 168 170 165 +60 64 63 16 174 167 +61 62 68 170 173 159 +61 63 62 167 171 169 +62 63 66 170 175 172 +62 66 67 171 179 173 +62 67 68 172 182 169 +63 64 65 168 176 175 +63 65 66 174 177 171 +64 73 65 27 178 174 +65 72 66 178 181 175 +65 73 72 176 189 177 +66 70 67 180 182 172 +66 71 70 181 186 179 +66 72 71 177 187 180 +67 70 68 179 183 173 +68 70 69 182 184 160 +69 70 75 183 186 185 +69 75 76 184 195 161 +70 71 75 180 188 184 +71 72 74 181 189 188 +71 74 75 187 193 186 +72 73 74 178 190 187 +73 80 74 191 194 189 +73 88 80 192 204 190 +73 96 88 28 217 191 +74 79 75 194 196 188 +74 80 79 190 201 193 +75 78 76 196 197 185 +75 79 78 193 199 195 +76 78 77 195 198 154 +77 78 84 197 200 155 +78 79 83 196 202 200 +78 83 84 199 208 198 +79 80 82 194 203 202 +79 82 83 201 207 199 +80 81 82 204 205 201 +80 88 81 191 206 203 +81 87 82 206 207 203 +81 88 87 204 215 205 +82 87 83 205 209 202 +83 86 84 209 210 200 +83 87 86 207 212 208 +84 86 85 208 211 156 +85 86 92 210 214 157 +86 87 90 209 215 213 +86 90 91 212 220 214 +86 91 92 213 221 211 +87 88 90 206 216 212 +88 89 90 217 218 215 +88 96 89 192 219 216 +89 95 90 219 220 216 +89 96 95 217 228 218 +90 95 91 218 222 213 +91 94 92 222 223 214 +91 95 94 220 225 221 +92 94 93 221 224 147 +93 94 100 223 227 148 +94 95 98 222 229 226 +94 98 99 225 233 227 +94 99 100 226 236 224 +95 96 97 219 230 229 +95 97 98 228 231 225 +96 105 97 29 232 228 +97 104 98 232 235 229 +97 105 104 230 242 231 +98 102 99 234 237 226 +98 103 102 235 241 233 +98 104 103 231 242 234 +99 101 100 237 149 227 +99 102 101 233 238 236 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 150 +102 103 107 234 244 238 +103 104 105 235 232 243 +103 105 106 242 245 244 +103 106 107 243 246 241 +105 109 106 32 246 243 +106 109 107 245 247 244 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 33 34 248 +112 117 113 251 254 138 +112 118 117 252 44 250 +112 119 118 36 38 251 +113 116 114 254 255 139 +113 117 116 250 50 253 +114 116 115 253 55 136 +120 124 121 257 258 80 +120 127 124 82 265 256 +121 124 122 256 260 78 +122 123 139 260 263 75 +122 124 123 258 261 259 +123 124 125 260 264 262 +123 125 128 261 266 263 +123 128 139 262 268 259 +124 126 125 265 266 261 +124 127 126 257 84 264 +125 126 128 264 90 262 +128 129 130 96 269 268 +128 130 139 267 273 263 +129 131 130 100 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 71 268 +131 133 132 101 275 270 +132 133 134 274 102 276 +132 134 135 275 279 277 +132 135 136 276 67 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 106 286 280 +135 141 140 279 284 65 +136 138 137 70 272 278 +140 141 145 282 287 285 +140 145 146 284 134 63 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 109 131 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_auto.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_auto.txt new file mode 100644 index 0000000..bc5ce56 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 140 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 139 28 +120 121 122 4294967295 4294967295 138 +120 122 125 137 140 139 +120 125 136 138 4294967295 136 +122 123 125 4294967295 43 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_outer.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_outer.txt new file mode 100644 index 0000000..b2bb878 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 145 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 146 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 145 136 +118 121 119 136 140 31 +119 120 136 140 143 28 +119 121 120 138 141 139 +120 121 122 140 144 142 +120 122 125 141 146 143 +120 125 136 142 148 139 +121 123 122 145 146 141 +121 124 123 137 37 144 +122 123 125 144 43 142 +125 126 127 46 149 148 +125 127 136 147 153 143 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_super.txt b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_super.txt new file mode 100644 index 0000000..2b20cee --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_as-provided_resolve_super.txt @@ -0,0 +1,410 @@ +259 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 215 1 +0 107 106 4 219 2 +0 108 107 5 219 3 +0 109 108 6 113 4 +0 116 109 0 222 5 +1 2 115 4294967295 9 8 +1 115 116 7 222 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 221 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 224 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 225 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 255 31 +11 12 132 29 37 35 +11 132 137 34 252 32 +12 13 133 19 40 37 +12 133 132 36 247 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 253 36 +13 136 135 39 243 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 229 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 228 46 +20 21 117 4294967295 52 50 +20 117 118 49 226 47 +21 22 124 4294967295 54 52 +21 124 117 51 227 49 +22 23 123 4294967295 55 54 +22 123 124 53 235 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 236 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 237 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 239 63 +30 130 128 72 244 70 +30 131 130 67 245 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 251 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 258 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 258 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 255 99 +44 45 111 97 109 106 +44 111 112 105 225 102 +45 46 109 92 113 108 +45 109 110 107 220 109 +45 110 111 108 223 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 193 118 +48 90 97 117 194 119 +48 97 98 118 206 120 +48 98 108 119 210 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 167 125 +50 74 81 124 168 126 +50 81 82 125 180 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 139 130 +51 65 66 129 153 131 +51 66 73 130 155 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 144 137 +58 59 65 140 143 129 +58 60 59 137 141 139 +59 60 63 140 145 142 +59 63 64 141 149 143 +59 64 65 142 152 139 +60 61 62 138 146 145 +60 62 63 144 147 141 +61 70 62 4294967295 148 144 +62 69 63 148 151 145 +62 70 69 146 159 147 +63 67 64 150 152 142 +63 68 67 151 156 149 +63 69 68 147 157 150 +64 67 65 149 153 143 +65 67 66 152 154 130 +66 67 72 153 156 155 +66 72 73 154 165 131 +67 68 72 150 158 154 +68 69 71 151 159 158 +68 71 72 157 163 156 +69 70 71 148 160 157 +70 77 71 161 164 159 +70 85 77 162 174 160 +70 93 85 4294967295 187 161 +71 76 72 164 166 158 +71 77 76 160 171 163 +72 75 73 166 167 155 +72 76 75 163 169 165 +73 75 74 165 168 124 +74 75 81 167 170 125 +75 76 80 166 172 170 +75 80 81 169 178 168 +76 77 79 164 173 172 +76 79 80 171 177 169 +77 78 79 174 175 171 +77 85 78 161 176 173 +78 84 79 176 177 173 +78 85 84 174 185 175 +79 84 80 175 179 172 +80 83 81 179 180 170 +80 84 83 177 182 178 +81 83 82 178 181 126 +82 83 89 180 184 127 +83 84 87 179 185 183 +83 87 88 182 190 184 +83 88 89 183 191 181 +84 85 87 176 186 182 +85 86 87 187 188 185 +85 93 86 162 189 186 +86 92 87 189 190 186 +86 93 92 187 198 188 +87 92 88 188 192 183 +88 91 89 192 193 184 +88 92 91 190 195 191 +89 91 90 191 194 117 +90 91 97 193 197 118 +91 92 95 192 199 196 +91 95 96 195 203 197 +91 96 97 196 206 194 +92 93 94 189 200 199 +92 94 95 198 201 195 +93 102 94 4294967295 202 198 +94 101 95 202 205 199 +94 102 101 200 212 201 +95 99 96 204 207 196 +95 100 99 205 211 203 +95 101 100 201 212 204 +96 98 97 207 119 197 +96 99 98 203 208 206 +98 99 104 207 211 209 +98 104 105 208 217 210 +98 105 108 209 218 120 +99 100 104 204 214 208 +100 101 102 205 202 213 +100 102 103 212 215 214 +100 103 104 213 216 211 +102 106 103 2 216 213 +103 106 104 215 217 214 +104 106 105 216 218 209 +105 106 108 217 219 210 +106 107 108 3 4 218 +109 114 110 221 224 108 +109 115 114 222 14 220 +109 116 115 6 8 221 +110 113 111 224 225 109 +110 114 113 220 20 223 +111 113 112 223 25 106 +117 121 118 227 228 50 +117 124 121 52 235 226 +118 121 119 226 230 48 +119 120 136 230 233 45 +119 121 120 228 231 229 +120 121 122 230 234 232 +120 122 125 231 236 233 +120 125 136 232 238 229 +121 123 122 235 236 231 +121 124 123 227 54 234 +122 123 125 234 60 232 +125 126 127 66 239 238 +125 127 136 237 243 233 +126 128 127 70 240 237 +127 128 129 239 244 241 +127 129 134 240 248 242 +127 134 135 241 253 243 +127 135 136 242 41 238 +128 130 129 71 245 240 +129 130 131 244 72 246 +129 131 132 245 249 247 +129 132 133 246 37 248 +129 133 134 247 253 241 +131 138 132 250 252 246 +131 139 138 251 256 249 +131 140 139 76 256 250 +132 138 137 249 254 35 +133 135 134 40 242 248 +137 138 142 252 257 255 +137 142 143 254 104 33 +138 139 140 250 251 257 +138 140 142 256 258 254 +140 141 142 79 101 257 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_ignore_all.txt b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_all.txt new file mode 100644 index 0000000..0bc849f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 16 14 +0 21 2 2 26 4294967295 +0 22 21 3 76 1 +0 23 22 4 77 2 +0 24 23 5 79 3 +0 25 24 6 81 4 +0 26 25 7 83 5 +0 27 26 8 85 6 +0 28 27 9 86 7 +0 29 28 10 87 8 +0 30 29 11 88 9 +0 31 30 12 89 10 +0 40 31 13 92 11 +0 56 40 14 120 12 +0 57 56 0 163 13 +1 2 64 4294967295 27 19 +1 58 57 17 164 0 +1 59 58 18 166 16 +1 60 59 19 166 17 +1 64 60 15 168 18 +2 4 105 21 31 29 +2 5 4 22 37 20 +2 17 5 23 40 21 +2 18 17 24 68 22 +2 19 18 25 72 23 +2 20 19 26 73 24 +2 21 20 1 74 25 +2 73 64 28 176 15 +2 96 73 29 192 27 +2 105 96 20 230 28 +3 4 119 31 38 36 +3 105 4 32 20 30 +3 109 105 33 245 31 +3 110 109 34 249 32 +3 111 110 35 249 33 +3 112 111 36 143 34 +3 119 112 30 252 35 +4 5 118 21 39 38 +4 118 119 37 252 30 +5 6 118 40 44 37 +5 17 6 22 43 39 +6 7 117 42 45 44 +6 16 7 43 46 41 +6 17 16 40 68 42 +6 117 118 41 251 39 +7 8 117 46 50 41 +7 16 8 42 49 45 +8 9 116 48 51 50 +8 15 9 49 53 47 +8 16 15 46 66 48 +8 116 117 47 254 45 +9 10 116 52 55 47 +9 11 10 53 54 51 +9 15 11 48 59 52 +10 11 115 52 60 55 +10 115 116 54 255 51 +11 12 146 57 61 60 +11 13 12 58 61 56 +11 14 13 59 62 57 +11 15 14 53 64 58 +11 146 115 56 133 54 +12 13 146 57 63 56 +13 14 140 58 65 63 +13 140 146 62 285 61 +14 15 135 59 67 65 +14 135 140 64 282 62 +15 16 136 49 70 67 +15 136 135 66 277 64 +16 17 18 43 23 69 +16 18 139 68 72 71 +16 138 136 71 283 66 +16 139 138 69 273 70 +18 19 139 24 73 69 +19 20 139 25 75 72 +20 21 122 26 76 75 +20 122 139 74 259 73 +21 22 122 2 78 74 +22 23 121 3 80 78 +22 121 122 77 258 76 +23 24 120 4 82 80 +23 120 121 79 256 77 +24 25 127 5 84 82 +24 127 120 81 257 79 +25 26 126 6 85 84 +25 126 127 83 265 81 +26 27 126 7 86 83 +27 28 126 8 87 85 +28 29 126 9 88 86 +29 30 126 10 90 87 +30 31 128 11 91 90 +30 128 126 89 266 88 +31 32 128 92 96 89 +31 40 32 12 95 91 +32 33 129 94 100 96 +32 39 33 95 99 93 +32 40 39 92 116 94 +32 129 128 93 267 91 +33 34 134 98 106 102 +33 38 34 99 105 97 +33 39 38 94 115 98 +33 131 129 101 269 93 +33 133 131 102 274 100 +33 134 133 97 275 101 +34 35 143 104 109 106 +34 37 35 105 108 103 +34 38 37 98 113 104 +34 143 134 103 281 97 +35 36 144 108 112 109 +35 37 36 104 110 107 +35 144 143 107 288 103 +36 37 44 108 114 111 +36 44 45 110 128 112 +36 45 144 111 131 107 +37 38 43 105 115 114 +37 43 44 113 126 110 +38 39 43 99 117 113 +39 40 42 95 118 117 +39 42 43 116 125 115 +40 41 42 119 121 116 +40 55 41 120 124 118 +40 56 55 13 162 119 +41 48 42 122 125 118 +41 49 48 123 137 121 +41 52 49 124 142 122 +41 55 52 119 151 123 +42 48 43 121 127 117 +43 47 44 127 128 114 +43 48 47 125 135 126 +44 47 45 126 130 111 +45 46 145 130 134 131 +45 47 46 128 132 129 +45 145 144 129 288 112 +46 47 115 130 136 133 +46 115 146 132 60 134 +46 146 145 133 285 129 +47 48 114 127 139 136 +47 114 115 135 255 132 +48 49 112 122 143 138 +48 112 113 137 250 139 +48 113 114 138 253 135 +49 50 111 141 144 143 +49 51 50 142 144 140 +49 52 51 123 145 141 +49 111 112 140 35 137 +50 51 111 141 150 140 +51 52 53 142 151 146 +51 53 92 145 157 147 +51 92 93 146 223 148 +51 93 100 147 224 149 +51 100 101 148 236 150 +51 101 111 149 240 144 +52 55 53 124 153 145 +53 54 76 153 161 154 +53 55 54 151 158 152 +53 76 77 152 197 155 +53 77 84 154 198 156 +53 84 85 155 210 157 +53 85 92 156 211 146 +54 55 61 153 162 159 +54 61 68 158 169 160 +54 68 69 159 183 161 +54 69 76 160 185 152 +55 56 61 120 163 158 +56 57 61 14 165 162 +57 58 60 16 166 165 +57 60 61 164 167 163 +58 59 60 17 18 164 +60 63 61 168 170 165 +60 64 63 19 174 167 +61 62 68 170 173 159 +61 63 62 167 171 169 +62 63 66 170 175 172 +62 66 67 171 179 173 +62 67 68 172 182 169 +63 64 65 168 176 175 +63 65 66 174 177 171 +64 73 65 27 178 174 +65 72 66 178 181 175 +65 73 72 176 189 177 +66 70 67 180 182 172 +66 71 70 181 186 179 +66 72 71 177 187 180 +67 70 68 179 183 173 +68 70 69 182 184 160 +69 70 75 183 186 185 +69 75 76 184 195 161 +70 71 75 180 188 184 +71 72 74 181 189 188 +71 74 75 187 193 186 +72 73 74 178 190 187 +73 80 74 191 194 189 +73 88 80 192 204 190 +73 96 88 28 217 191 +74 79 75 194 196 188 +74 80 79 190 201 193 +75 78 76 196 197 185 +75 79 78 193 199 195 +76 78 77 195 198 154 +77 78 84 197 200 155 +78 79 83 196 202 200 +78 83 84 199 208 198 +79 80 82 194 203 202 +79 82 83 201 207 199 +80 81 82 204 205 201 +80 88 81 191 206 203 +81 87 82 206 207 203 +81 88 87 204 215 205 +82 87 83 205 209 202 +83 86 84 209 210 200 +83 87 86 207 212 208 +84 86 85 208 211 156 +85 86 92 210 214 157 +86 87 90 209 215 213 +86 90 91 212 220 214 +86 91 92 213 221 211 +87 88 90 206 216 212 +88 89 90 217 218 215 +88 96 89 192 219 216 +89 95 90 219 220 216 +89 96 95 217 228 218 +90 95 91 218 222 213 +91 94 92 222 223 214 +91 95 94 220 225 221 +92 94 93 221 224 147 +93 94 100 223 227 148 +94 95 98 222 229 226 +94 98 99 225 233 227 +94 99 100 226 236 224 +95 96 97 219 230 229 +95 97 98 228 231 225 +96 105 97 29 232 228 +97 104 98 232 235 229 +97 105 104 230 242 231 +98 102 99 234 237 226 +98 103 102 235 241 233 +98 104 103 231 242 234 +99 101 100 237 149 227 +99 102 101 233 238 236 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 150 +102 103 107 234 244 238 +103 104 105 235 232 243 +103 105 106 242 245 244 +103 106 107 243 246 241 +105 109 106 32 246 243 +106 109 107 245 247 244 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 33 34 248 +112 117 113 251 254 138 +112 118 117 252 44 250 +112 119 118 36 38 251 +113 116 114 254 255 139 +113 117 116 250 50 253 +114 116 115 253 55 136 +120 124 121 257 258 80 +120 127 124 82 265 256 +121 124 122 256 260 78 +122 123 139 260 263 75 +122 124 123 258 261 259 +123 124 125 260 264 262 +123 125 128 261 266 263 +123 128 139 262 268 259 +124 126 125 265 266 261 +124 127 126 257 84 264 +125 126 128 264 90 262 +128 129 130 96 269 268 +128 130 139 267 273 263 +129 131 130 100 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 71 268 +131 133 132 101 275 270 +132 133 134 274 102 276 +132 134 135 275 279 277 +132 135 136 276 67 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 106 286 280 +135 141 140 279 284 65 +136 138 137 70 272 278 +140 141 145 282 287 285 +140 145 146 284 134 63 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 109 131 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_auto.txt new file mode 100644 index 0000000..bc5ce56 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 140 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 139 28 +120 121 122 4294967295 4294967295 138 +120 122 125 137 140 139 +120 125 136 138 4294967295 136 +122 123 125 4294967295 43 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_ignore_outer.txt b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_outer.txt new file mode 100644 index 0000000..b2bb878 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 145 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 146 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 145 136 +118 121 119 136 140 31 +119 120 136 140 143 28 +119 121 120 138 141 139 +120 121 122 140 144 142 +120 122 125 141 146 143 +120 125 136 142 148 139 +121 123 122 145 146 141 +121 124 123 137 37 144 +122 123 125 144 43 142 +125 126 127 46 149 148 +125 127 136 147 153 143 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_ignore_super.txt b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_super.txt new file mode 100644 index 0000000..2b20cee --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_ignore_super.txt @@ -0,0 +1,410 @@ +259 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 215 1 +0 107 106 4 219 2 +0 108 107 5 219 3 +0 109 108 6 113 4 +0 116 109 0 222 5 +1 2 115 4294967295 9 8 +1 115 116 7 222 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 221 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 224 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 225 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 255 31 +11 12 132 29 37 35 +11 132 137 34 252 32 +12 13 133 19 40 37 +12 133 132 36 247 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 253 36 +13 136 135 39 243 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 229 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 228 46 +20 21 117 4294967295 52 50 +20 117 118 49 226 47 +21 22 124 4294967295 54 52 +21 124 117 51 227 49 +22 23 123 4294967295 55 54 +22 123 124 53 235 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 236 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 237 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 239 63 +30 130 128 72 244 70 +30 131 130 67 245 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 251 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 258 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 258 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 255 99 +44 45 111 97 109 106 +44 111 112 105 225 102 +45 46 109 92 113 108 +45 109 110 107 220 109 +45 110 111 108 223 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 193 118 +48 90 97 117 194 119 +48 97 98 118 206 120 +48 98 108 119 210 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 167 125 +50 74 81 124 168 126 +50 81 82 125 180 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 139 130 +51 65 66 129 153 131 +51 66 73 130 155 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 144 137 +58 59 65 140 143 129 +58 60 59 137 141 139 +59 60 63 140 145 142 +59 63 64 141 149 143 +59 64 65 142 152 139 +60 61 62 138 146 145 +60 62 63 144 147 141 +61 70 62 4294967295 148 144 +62 69 63 148 151 145 +62 70 69 146 159 147 +63 67 64 150 152 142 +63 68 67 151 156 149 +63 69 68 147 157 150 +64 67 65 149 153 143 +65 67 66 152 154 130 +66 67 72 153 156 155 +66 72 73 154 165 131 +67 68 72 150 158 154 +68 69 71 151 159 158 +68 71 72 157 163 156 +69 70 71 148 160 157 +70 77 71 161 164 159 +70 85 77 162 174 160 +70 93 85 4294967295 187 161 +71 76 72 164 166 158 +71 77 76 160 171 163 +72 75 73 166 167 155 +72 76 75 163 169 165 +73 75 74 165 168 124 +74 75 81 167 170 125 +75 76 80 166 172 170 +75 80 81 169 178 168 +76 77 79 164 173 172 +76 79 80 171 177 169 +77 78 79 174 175 171 +77 85 78 161 176 173 +78 84 79 176 177 173 +78 85 84 174 185 175 +79 84 80 175 179 172 +80 83 81 179 180 170 +80 84 83 177 182 178 +81 83 82 178 181 126 +82 83 89 180 184 127 +83 84 87 179 185 183 +83 87 88 182 190 184 +83 88 89 183 191 181 +84 85 87 176 186 182 +85 86 87 187 188 185 +85 93 86 162 189 186 +86 92 87 189 190 186 +86 93 92 187 198 188 +87 92 88 188 192 183 +88 91 89 192 193 184 +88 92 91 190 195 191 +89 91 90 191 194 117 +90 91 97 193 197 118 +91 92 95 192 199 196 +91 95 96 195 203 197 +91 96 97 196 206 194 +92 93 94 189 200 199 +92 94 95 198 201 195 +93 102 94 4294967295 202 198 +94 101 95 202 205 199 +94 102 101 200 212 201 +95 99 96 204 207 196 +95 100 99 205 211 203 +95 101 100 201 212 204 +96 98 97 207 119 197 +96 99 98 203 208 206 +98 99 104 207 211 209 +98 104 105 208 217 210 +98 105 108 209 218 120 +99 100 104 204 214 208 +100 101 102 205 202 213 +100 102 103 212 215 214 +100 103 104 213 216 211 +102 106 103 2 216 213 +103 106 104 215 217 214 +104 106 105 216 218 209 +105 106 108 217 219 210 +106 107 108 3 4 218 +109 114 110 221 224 108 +109 115 114 222 14 220 +109 116 115 6 8 221 +110 113 111 224 225 109 +110 114 113 220 20 223 +111 113 112 223 25 106 +117 121 118 227 228 50 +117 124 121 52 235 226 +118 121 119 226 230 48 +119 120 136 230 233 45 +119 121 120 228 231 229 +120 121 122 230 234 232 +120 122 125 231 236 233 +120 125 136 232 238 229 +121 123 122 235 236 231 +121 124 123 227 54 234 +122 123 125 234 60 232 +125 126 127 66 239 238 +125 127 136 237 243 233 +126 128 127 70 240 237 +127 128 129 239 244 241 +127 129 134 240 248 242 +127 134 135 241 253 243 +127 135 136 242 41 238 +128 130 129 71 245 240 +129 130 131 244 72 246 +129 131 132 245 249 247 +129 132 133 246 37 248 +129 133 134 247 253 241 +131 138 132 250 252 246 +131 139 138 251 256 249 +131 140 139 76 256 250 +132 138 137 249 254 35 +133 135 134 40 242 248 +137 138 142 252 257 255 +137 142 143 254 104 33 +138 139 140 250 251 257 +138 140 142 256 258 254 +140 141 142 79 101 257 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_resolve_all.txt b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_all.txt new file mode 100644 index 0000000..0bc849f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 16 14 +0 21 2 2 26 4294967295 +0 22 21 3 76 1 +0 23 22 4 77 2 +0 24 23 5 79 3 +0 25 24 6 81 4 +0 26 25 7 83 5 +0 27 26 8 85 6 +0 28 27 9 86 7 +0 29 28 10 87 8 +0 30 29 11 88 9 +0 31 30 12 89 10 +0 40 31 13 92 11 +0 56 40 14 120 12 +0 57 56 0 163 13 +1 2 64 4294967295 27 19 +1 58 57 17 164 0 +1 59 58 18 166 16 +1 60 59 19 166 17 +1 64 60 15 168 18 +2 4 105 21 31 29 +2 5 4 22 37 20 +2 17 5 23 40 21 +2 18 17 24 68 22 +2 19 18 25 72 23 +2 20 19 26 73 24 +2 21 20 1 74 25 +2 73 64 28 176 15 +2 96 73 29 192 27 +2 105 96 20 230 28 +3 4 119 31 38 36 +3 105 4 32 20 30 +3 109 105 33 245 31 +3 110 109 34 249 32 +3 111 110 35 249 33 +3 112 111 36 143 34 +3 119 112 30 252 35 +4 5 118 21 39 38 +4 118 119 37 252 30 +5 6 118 40 44 37 +5 17 6 22 43 39 +6 7 117 42 45 44 +6 16 7 43 46 41 +6 17 16 40 68 42 +6 117 118 41 251 39 +7 8 117 46 50 41 +7 16 8 42 49 45 +8 9 116 48 51 50 +8 15 9 49 53 47 +8 16 15 46 66 48 +8 116 117 47 254 45 +9 10 116 52 55 47 +9 11 10 53 54 51 +9 15 11 48 59 52 +10 11 115 52 60 55 +10 115 116 54 255 51 +11 12 146 57 61 60 +11 13 12 58 61 56 +11 14 13 59 62 57 +11 15 14 53 64 58 +11 146 115 56 133 54 +12 13 146 57 63 56 +13 14 140 58 65 63 +13 140 146 62 285 61 +14 15 135 59 67 65 +14 135 140 64 282 62 +15 16 136 49 70 67 +15 136 135 66 277 64 +16 17 18 43 23 69 +16 18 139 68 72 71 +16 138 136 71 283 66 +16 139 138 69 273 70 +18 19 139 24 73 69 +19 20 139 25 75 72 +20 21 122 26 76 75 +20 122 139 74 259 73 +21 22 122 2 78 74 +22 23 121 3 80 78 +22 121 122 77 258 76 +23 24 120 4 82 80 +23 120 121 79 256 77 +24 25 127 5 84 82 +24 127 120 81 257 79 +25 26 126 6 85 84 +25 126 127 83 265 81 +26 27 126 7 86 83 +27 28 126 8 87 85 +28 29 126 9 88 86 +29 30 126 10 90 87 +30 31 128 11 91 90 +30 128 126 89 266 88 +31 32 128 92 96 89 +31 40 32 12 95 91 +32 33 129 94 100 96 +32 39 33 95 99 93 +32 40 39 92 116 94 +32 129 128 93 267 91 +33 34 134 98 106 102 +33 38 34 99 105 97 +33 39 38 94 115 98 +33 131 129 101 269 93 +33 133 131 102 274 100 +33 134 133 97 275 101 +34 35 143 104 109 106 +34 37 35 105 108 103 +34 38 37 98 113 104 +34 143 134 103 281 97 +35 36 144 108 112 109 +35 37 36 104 110 107 +35 144 143 107 288 103 +36 37 44 108 114 111 +36 44 45 110 128 112 +36 45 144 111 131 107 +37 38 43 105 115 114 +37 43 44 113 126 110 +38 39 43 99 117 113 +39 40 42 95 118 117 +39 42 43 116 125 115 +40 41 42 119 121 116 +40 55 41 120 124 118 +40 56 55 13 162 119 +41 48 42 122 125 118 +41 49 48 123 137 121 +41 52 49 124 142 122 +41 55 52 119 151 123 +42 48 43 121 127 117 +43 47 44 127 128 114 +43 48 47 125 135 126 +44 47 45 126 130 111 +45 46 145 130 134 131 +45 47 46 128 132 129 +45 145 144 129 288 112 +46 47 115 130 136 133 +46 115 146 132 60 134 +46 146 145 133 285 129 +47 48 114 127 139 136 +47 114 115 135 255 132 +48 49 112 122 143 138 +48 112 113 137 250 139 +48 113 114 138 253 135 +49 50 111 141 144 143 +49 51 50 142 144 140 +49 52 51 123 145 141 +49 111 112 140 35 137 +50 51 111 141 150 140 +51 52 53 142 151 146 +51 53 92 145 157 147 +51 92 93 146 223 148 +51 93 100 147 224 149 +51 100 101 148 236 150 +51 101 111 149 240 144 +52 55 53 124 153 145 +53 54 76 153 161 154 +53 55 54 151 158 152 +53 76 77 152 197 155 +53 77 84 154 198 156 +53 84 85 155 210 157 +53 85 92 156 211 146 +54 55 61 153 162 159 +54 61 68 158 169 160 +54 68 69 159 183 161 +54 69 76 160 185 152 +55 56 61 120 163 158 +56 57 61 14 165 162 +57 58 60 16 166 165 +57 60 61 164 167 163 +58 59 60 17 18 164 +60 63 61 168 170 165 +60 64 63 19 174 167 +61 62 68 170 173 159 +61 63 62 167 171 169 +62 63 66 170 175 172 +62 66 67 171 179 173 +62 67 68 172 182 169 +63 64 65 168 176 175 +63 65 66 174 177 171 +64 73 65 27 178 174 +65 72 66 178 181 175 +65 73 72 176 189 177 +66 70 67 180 182 172 +66 71 70 181 186 179 +66 72 71 177 187 180 +67 70 68 179 183 173 +68 70 69 182 184 160 +69 70 75 183 186 185 +69 75 76 184 195 161 +70 71 75 180 188 184 +71 72 74 181 189 188 +71 74 75 187 193 186 +72 73 74 178 190 187 +73 80 74 191 194 189 +73 88 80 192 204 190 +73 96 88 28 217 191 +74 79 75 194 196 188 +74 80 79 190 201 193 +75 78 76 196 197 185 +75 79 78 193 199 195 +76 78 77 195 198 154 +77 78 84 197 200 155 +78 79 83 196 202 200 +78 83 84 199 208 198 +79 80 82 194 203 202 +79 82 83 201 207 199 +80 81 82 204 205 201 +80 88 81 191 206 203 +81 87 82 206 207 203 +81 88 87 204 215 205 +82 87 83 205 209 202 +83 86 84 209 210 200 +83 87 86 207 212 208 +84 86 85 208 211 156 +85 86 92 210 214 157 +86 87 90 209 215 213 +86 90 91 212 220 214 +86 91 92 213 221 211 +87 88 90 206 216 212 +88 89 90 217 218 215 +88 96 89 192 219 216 +89 95 90 219 220 216 +89 96 95 217 228 218 +90 95 91 218 222 213 +91 94 92 222 223 214 +91 95 94 220 225 221 +92 94 93 221 224 147 +93 94 100 223 227 148 +94 95 98 222 229 226 +94 98 99 225 233 227 +94 99 100 226 236 224 +95 96 97 219 230 229 +95 97 98 228 231 225 +96 105 97 29 232 228 +97 104 98 232 235 229 +97 105 104 230 242 231 +98 102 99 234 237 226 +98 103 102 235 241 233 +98 104 103 231 242 234 +99 101 100 237 149 227 +99 102 101 233 238 236 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 150 +102 103 107 234 244 238 +103 104 105 235 232 243 +103 105 106 242 245 244 +103 106 107 243 246 241 +105 109 106 32 246 243 +106 109 107 245 247 244 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 33 34 248 +112 117 113 251 254 138 +112 118 117 252 44 250 +112 119 118 36 38 251 +113 116 114 254 255 139 +113 117 116 250 50 253 +114 116 115 253 55 136 +120 124 121 257 258 80 +120 127 124 82 265 256 +121 124 122 256 260 78 +122 123 139 260 263 75 +122 124 123 258 261 259 +123 124 125 260 264 262 +123 125 128 261 266 263 +123 128 139 262 268 259 +124 126 125 265 266 261 +124 127 126 257 84 264 +125 126 128 264 90 262 +128 129 130 96 269 268 +128 130 139 267 273 263 +129 131 130 100 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 71 268 +131 133 132 101 275 270 +132 133 134 274 102 276 +132 134 135 275 279 277 +132 135 136 276 67 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 106 286 280 +135 141 140 279 284 65 +136 138 137 70 272 278 +140 141 145 282 287 285 +140 145 146 284 134 63 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 109 131 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_resolve_auto.txt b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_auto.txt new file mode 100644 index 0000000..bc5ce56 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 140 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 139 28 +120 121 122 4294967295 4294967295 138 +120 122 125 137 140 139 +120 125 136 138 4294967295 136 +122 123 125 4294967295 43 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_resolve_outer.txt b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_outer.txt new file mode 100644 index 0000000..b2bb878 --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 145 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 146 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 121 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 109 86 +50 81 82 85 4294967295 87 +50 82 89 86 115 78 +51 52 58 4294967295 92 89 +51 58 65 88 97 90 +51 65 66 89 4294967295 91 +51 66 73 90 104 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 65 4294967295 100 89 +59 60 63 4294967295 102 99 +59 63 64 98 4294967295 100 +59 64 65 99 4294967295 97 +60 61 62 4294967295 4294967295 102 +60 62 63 101 4294967295 98 +66 67 72 4294967295 105 104 +66 72 73 103 4294967295 91 +67 68 72 4294967295 107 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 105 +69 70 71 4294967295 4294967295 106 +74 75 81 4294967295 111 85 +75 76 80 4294967295 113 111 +75 80 81 110 4294967295 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 110 +77 78 79 4294967295 4294967295 112 +82 83 89 4294967295 118 87 +83 84 87 4294967295 119 117 +83 87 88 116 4294967295 118 +83 88 89 117 4294967295 115 +84 85 87 4294967295 120 116 +85 86 87 4294967295 4294967295 119 +90 91 97 4294967295 124 80 +91 92 95 4294967295 126 123 +91 95 96 122 4294967295 124 +91 96 97 123 4294967295 121 +92 93 94 4294967295 4294967295 126 +92 94 95 125 4294967295 122 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 133 127 +100 101 102 4294967295 4294967295 132 +100 102 103 131 4294967295 133 +100 103 104 132 4294967295 130 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 145 136 +118 121 119 136 140 31 +119 120 136 140 143 28 +119 121 120 138 141 139 +120 121 122 140 144 142 +120 122 125 141 146 143 +120 125 136 142 148 139 +121 123 122 145 146 141 +121 124 123 137 37 144 +122 123 125 144 43 142 +125 126 127 46 149 148 +125 127 136 147 153 143 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f32_auto_resolve_super.txt b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_super.txt new file mode 100644 index 0000000..2b20cee --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f32_auto_resolve_super.txt @@ -0,0 +1,410 @@ +259 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 215 1 +0 107 106 4 219 2 +0 108 107 5 219 3 +0 109 108 6 113 4 +0 116 109 0 222 5 +1 2 115 4294967295 9 8 +1 115 116 7 222 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 221 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 224 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 225 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 255 31 +11 12 132 29 37 35 +11 132 137 34 252 32 +12 13 133 19 40 37 +12 133 132 36 247 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 253 36 +13 136 135 39 243 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 229 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 228 46 +20 21 117 4294967295 52 50 +20 117 118 49 226 47 +21 22 124 4294967295 54 52 +21 124 117 51 227 49 +22 23 123 4294967295 55 54 +22 123 124 53 235 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 236 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 237 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 239 63 +30 130 128 72 244 70 +30 131 130 67 245 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 251 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 258 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 258 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 255 99 +44 45 111 97 109 106 +44 111 112 105 225 102 +45 46 109 92 113 108 +45 109 110 107 220 109 +45 110 111 108 223 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 193 118 +48 90 97 117 194 119 +48 97 98 118 206 120 +48 98 108 119 210 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 167 125 +50 74 81 124 168 126 +50 81 82 125 180 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 139 130 +51 65 66 129 153 131 +51 66 73 130 155 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 144 137 +58 59 65 140 143 129 +58 60 59 137 141 139 +59 60 63 140 145 142 +59 63 64 141 149 143 +59 64 65 142 152 139 +60 61 62 138 146 145 +60 62 63 144 147 141 +61 70 62 4294967295 148 144 +62 69 63 148 151 145 +62 70 69 146 159 147 +63 67 64 150 152 142 +63 68 67 151 156 149 +63 69 68 147 157 150 +64 67 65 149 153 143 +65 67 66 152 154 130 +66 67 72 153 156 155 +66 72 73 154 165 131 +67 68 72 150 158 154 +68 69 71 151 159 158 +68 71 72 157 163 156 +69 70 71 148 160 157 +70 77 71 161 164 159 +70 85 77 162 174 160 +70 93 85 4294967295 187 161 +71 76 72 164 166 158 +71 77 76 160 171 163 +72 75 73 166 167 155 +72 76 75 163 169 165 +73 75 74 165 168 124 +74 75 81 167 170 125 +75 76 80 166 172 170 +75 80 81 169 178 168 +76 77 79 164 173 172 +76 79 80 171 177 169 +77 78 79 174 175 171 +77 85 78 161 176 173 +78 84 79 176 177 173 +78 85 84 174 185 175 +79 84 80 175 179 172 +80 83 81 179 180 170 +80 84 83 177 182 178 +81 83 82 178 181 126 +82 83 89 180 184 127 +83 84 87 179 185 183 +83 87 88 182 190 184 +83 88 89 183 191 181 +84 85 87 176 186 182 +85 86 87 187 188 185 +85 93 86 162 189 186 +86 92 87 189 190 186 +86 93 92 187 198 188 +87 92 88 188 192 183 +88 91 89 192 193 184 +88 92 91 190 195 191 +89 91 90 191 194 117 +90 91 97 193 197 118 +91 92 95 192 199 196 +91 95 96 195 203 197 +91 96 97 196 206 194 +92 93 94 189 200 199 +92 94 95 198 201 195 +93 102 94 4294967295 202 198 +94 101 95 202 205 199 +94 102 101 200 212 201 +95 99 96 204 207 196 +95 100 99 205 211 203 +95 101 100 201 212 204 +96 98 97 207 119 197 +96 99 98 203 208 206 +98 99 104 207 211 209 +98 104 105 208 217 210 +98 105 108 209 218 120 +99 100 104 204 214 208 +100 101 102 205 202 213 +100 102 103 212 215 214 +100 103 104 213 216 211 +102 106 103 2 216 213 +103 106 104 215 217 214 +104 106 105 216 218 209 +105 106 108 217 219 210 +106 107 108 3 4 218 +109 114 110 221 224 108 +109 115 114 222 14 220 +109 116 115 6 8 221 +110 113 111 224 225 109 +110 114 113 220 20 223 +111 113 112 223 25 106 +117 121 118 227 228 50 +117 124 121 52 235 226 +118 121 119 226 230 48 +119 120 136 230 233 45 +119 121 120 228 231 229 +120 121 122 230 234 232 +120 122 125 231 236 233 +120 125 136 232 238 229 +121 123 122 235 236 231 +121 124 123 227 54 234 +122 123 125 234 60 232 +125 126 127 66 239 238 +125 127 136 237 243 233 +126 128 127 70 240 237 +127 128 129 239 244 241 +127 129 134 240 248 242 +127 134 135 241 253 243 +127 135 136 242 41 238 +128 130 129 71 245 240 +129 130 131 244 72 246 +129 131 132 245 249 247 +129 132 133 246 37 248 +129 133 134 247 253 241 +131 138 132 250 252 246 +131 139 138 251 256 249 +131 140 139 76 256 250 +132 138 137 249 254 35 +133 135 134 40 242 248 +137 138 142 252 257 255 +137 142 143 254 104 33 +138 139 140 250 251 257 +138 140 142 256 258 254 +140 141 142 79 101 257 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_all.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_all.txt new file mode 100644 index 0000000..ffb846b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 13 11 +0 24 2 2 26 4294967295 +0 25 24 3 83 1 +0 26 25 4 85 2 +0 27 26 5 87 3 +0 28 27 6 88 4 +0 29 28 7 89 5 +0 30 29 8 90 6 +0 31 30 9 91 7 +0 40 31 10 94 8 +0 56 40 11 122 9 +0 57 56 0 165 10 +1 2 64 4294967295 27 16 +1 58 57 14 166 0 +1 59 58 15 168 13 +1 60 59 16 168 14 +1 64 60 12 170 15 +2 4 105 18 33 31 +2 5 4 19 39 17 +2 17 5 20 42 18 +2 18 17 21 70 19 +2 19 18 22 74 20 +2 20 19 23 75 21 +2 21 20 24 76 22 +2 22 21 25 78 23 +2 23 22 26 79 24 +2 24 23 1 81 25 +2 65 64 28 177 12 +2 81 65 29 179 27 +2 89 81 30 206 28 +2 97 89 31 220 29 +2 105 97 17 232 30 +3 4 119 33 40 38 +3 105 4 34 17 32 +3 109 105 35 245 33 +3 110 109 36 249 34 +3 111 110 37 249 35 +3 112 111 38 145 36 +3 119 112 32 252 37 +4 5 118 18 41 40 +4 118 119 39 252 32 +5 6 118 42 46 39 +5 17 6 19 45 41 +6 7 117 44 47 46 +6 16 7 45 48 43 +6 17 16 42 70 44 +6 117 118 43 251 41 +7 8 117 48 52 43 +7 16 8 44 51 47 +8 9 116 50 53 52 +8 15 9 51 55 49 +8 16 15 48 68 50 +8 116 117 49 254 47 +9 10 116 54 57 49 +9 11 10 55 56 53 +9 15 11 50 61 54 +10 11 115 54 62 57 +10 115 116 56 255 53 +11 12 146 59 63 62 +11 13 12 60 63 58 +11 14 13 61 64 59 +11 15 14 55 66 60 +11 146 115 58 135 56 +12 13 146 59 65 58 +13 14 140 60 67 65 +13 140 146 64 285 63 +14 15 135 61 69 67 +14 135 140 66 282 64 +15 16 136 51 72 69 +15 136 135 68 277 66 +16 17 18 45 20 71 +16 18 139 70 74 73 +16 138 136 73 283 68 +16 139 138 71 273 72 +18 19 139 21 75 71 +19 20 139 22 77 74 +20 21 122 23 78 77 +20 122 139 76 259 75 +21 22 122 24 80 76 +22 23 121 25 82 80 +22 121 122 79 258 78 +23 24 120 26 84 82 +23 120 121 81 256 79 +24 25 127 2 86 84 +24 127 120 83 257 81 +25 26 126 3 87 86 +25 126 127 85 264 83 +26 27 126 4 88 85 +27 28 126 5 89 87 +28 29 126 6 90 88 +29 30 126 7 92 89 +30 31 128 8 93 92 +30 128 126 91 265 90 +31 32 128 94 98 91 +31 40 32 9 97 93 +32 33 129 96 102 98 +32 39 33 97 101 95 +32 40 39 94 118 96 +32 129 128 95 267 93 +33 34 134 100 108 104 +33 38 34 101 107 99 +33 39 38 96 117 100 +33 131 129 103 269 95 +33 133 131 104 274 102 +33 134 133 99 275 103 +34 35 143 106 111 108 +34 37 35 107 110 105 +34 38 37 100 115 106 +34 143 134 105 281 99 +35 36 144 110 114 111 +35 37 36 106 112 109 +35 144 143 109 288 105 +36 37 44 110 116 113 +36 44 45 112 130 114 +36 45 144 113 133 109 +37 38 43 107 117 116 +37 43 44 115 128 112 +38 39 43 101 119 115 +39 40 42 97 120 119 +39 42 43 118 127 117 +40 41 42 121 123 118 +40 55 41 122 126 120 +40 56 55 10 164 121 +41 48 42 124 127 120 +41 49 48 125 139 123 +41 52 49 126 144 124 +41 55 52 121 153 125 +42 48 43 123 129 119 +43 47 44 129 130 116 +43 48 47 127 137 128 +44 47 45 128 132 113 +45 46 145 132 136 133 +45 47 46 130 134 131 +45 145 144 131 288 114 +46 47 115 132 138 135 +46 115 146 134 62 136 +46 146 145 135 285 131 +47 48 114 129 141 138 +47 114 115 137 255 134 +48 49 112 124 145 140 +48 112 113 139 250 141 +48 113 114 140 253 137 +49 50 111 143 146 145 +49 51 50 144 146 142 +49 52 51 125 147 143 +49 111 112 142 37 139 +50 51 111 143 152 142 +51 52 53 144 153 148 +51 53 92 147 159 149 +51 92 93 148 224 150 +51 93 100 149 226 151 +51 100 101 150 237 152 +51 101 111 151 240 146 +52 55 53 126 155 147 +53 54 76 155 163 156 +53 55 54 153 160 154 +53 76 77 154 198 157 +53 77 84 156 200 158 +53 84 85 157 211 159 +53 85 92 158 213 148 +54 55 61 155 164 161 +54 61 68 160 173 162 +54 68 69 161 184 163 +54 69 76 162 185 154 +55 56 61 122 165 160 +56 57 61 11 167 164 +57 58 60 13 168 167 +57 60 61 166 169 165 +58 59 60 14 15 166 +60 63 61 170 172 167 +60 64 63 16 175 169 +61 62 67 172 174 173 +61 63 62 169 174 171 +61 67 68 171 182 161 +62 63 67 172 176 171 +63 64 66 170 177 176 +63 66 67 175 180 174 +64 65 66 27 178 175 +65 72 66 179 181 177 +65 81 72 28 191 178 +66 71 67 181 183 176 +66 72 71 178 188 180 +67 70 68 183 184 173 +67 71 70 180 186 182 +68 70 69 182 185 162 +69 70 76 184 187 163 +70 71 75 183 189 187 +70 75 76 186 197 185 +71 72 74 181 190 189 +71 74 75 188 195 186 +72 73 74 191 192 188 +72 81 73 179 194 190 +73 79 74 193 196 190 +73 80 79 194 202 192 +73 81 80 191 204 193 +74 78 75 196 197 189 +74 79 78 192 201 195 +75 78 76 195 198 187 +76 78 77 197 199 156 +77 78 83 198 201 200 +77 83 84 199 210 157 +78 79 83 196 203 199 +79 80 82 193 204 203 +79 82 83 202 207 201 +80 81 82 194 205 202 +81 88 82 206 209 204 +81 89 88 29 217 205 +82 86 83 208 210 203 +82 87 86 209 214 207 +82 88 87 205 215 208 +83 86 84 207 211 200 +84 86 85 210 212 158 +85 86 91 211 214 213 +85 91 92 212 222 159 +86 87 91 208 216 212 +87 88 90 209 217 216 +87 90 91 215 221 214 +88 89 90 206 218 215 +89 95 90 219 221 217 +89 96 95 220 228 218 +89 97 96 30 230 219 +90 95 91 218 223 216 +91 94 92 223 224 213 +91 95 94 221 227 222 +92 94 93 222 225 149 +93 94 99 224 227 226 +93 99 100 225 235 150 +94 95 99 223 229 225 +95 96 98 219 230 229 +95 98 99 228 233 227 +96 97 98 220 231 228 +97 104 98 232 234 230 +97 105 104 31 244 231 +98 103 99 234 236 229 +98 104 103 231 242 233 +99 102 100 236 237 226 +99 103 102 233 241 235 +100 102 101 235 238 151 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 152 +102 103 107 236 243 238 +103 104 106 234 244 243 +103 106 107 242 246 241 +104 105 106 232 245 242 +105 109 106 34 246 244 +106 109 107 245 247 243 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 35 36 248 +112 117 113 251 254 140 +112 118 117 252 46 250 +112 119 118 38 40 251 +113 116 114 254 255 141 +113 117 116 250 52 253 +114 116 115 253 57 138 +120 124 121 257 258 82 +120 127 124 84 264 256 +121 124 122 256 260 80 +122 123 139 260 262 77 +122 124 123 258 261 259 +123 124 125 260 263 262 +123 125 139 261 266 259 +124 126 125 264 265 261 +124 127 126 257 86 263 +125 126 128 263 92 266 +125 128 139 265 268 262 +128 129 130 98 269 268 +128 130 139 267 273 266 +129 131 130 102 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 73 268 +131 133 132 103 275 270 +132 133 134 274 104 276 +132 134 135 275 279 277 +132 135 136 276 69 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 108 286 280 +135 141 140 279 284 67 +136 138 137 72 272 278 +140 141 145 282 287 285 +140 145 146 284 136 65 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 111 133 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_auto.txt new file mode 100644 index 0000000..e94af4b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 139 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 138 28 +120 121 122 4294967295 4294967295 138 +120 122 136 137 140 136 +122 123 125 4294967295 43 140 +122 125 136 139 4294967295 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_outer.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_outer.txt new file mode 100644 index 0000000..e453f8b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 144 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 145 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 144 136 +118 121 119 136 140 31 +119 120 136 140 142 28 +119 121 120 138 141 139 +120 121 122 140 143 142 +120 122 136 141 146 139 +121 123 122 144 145 141 +121 124 123 137 37 143 +122 123 125 143 43 146 +122 125 136 145 148 142 +125 126 127 46 149 148 +125 127 136 147 153 146 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_super.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_super.txt new file mode 100644 index 0000000..7e8c77f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_ignore_super.txt @@ -0,0 +1,408 @@ +257 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 213 1 +0 107 106 4 217 2 +0 108 107 5 217 3 +0 109 108 6 113 4 +0 116 109 0 220 5 +1 2 115 4294967295 9 8 +1 115 116 7 220 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 219 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 222 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 223 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 253 31 +11 12 132 29 37 35 +11 132 137 34 250 32 +12 13 133 19 40 37 +12 133 132 36 245 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 251 36 +13 136 135 39 241 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 227 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 226 46 +20 21 117 4294967295 52 50 +20 117 118 49 224 47 +21 22 124 4294967295 54 52 +21 124 117 51 225 49 +22 23 123 4294967295 55 54 +22 123 124 53 232 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 233 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 235 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 237 63 +30 130 128 72 242 70 +30 131 130 67 243 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 249 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 256 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 256 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 253 99 +44 45 111 97 109 106 +44 111 112 105 223 102 +45 46 109 92 113 108 +45 109 110 107 218 109 +45 110 111 108 221 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 192 118 +48 90 97 117 194 119 +48 97 98 118 205 120 +48 98 108 119 208 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 166 125 +50 74 81 124 168 126 +50 81 82 125 179 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 141 130 +51 65 66 129 152 131 +51 66 73 130 153 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 143 137 +58 59 64 140 142 141 +58 60 59 137 142 139 +58 64 65 139 150 129 +59 60 64 140 144 139 +60 61 63 138 145 144 +60 63 64 143 148 142 +61 62 63 4294967295 146 143 +62 69 63 147 149 145 +62 78 69 4294967295 159 146 +63 68 64 149 151 144 +63 69 68 146 156 148 +64 67 65 151 152 141 +64 68 67 148 154 150 +65 67 66 150 153 130 +66 67 73 152 155 131 +67 68 72 151 157 155 +67 72 73 154 165 153 +68 69 71 149 158 157 +68 71 72 156 163 154 +69 70 71 159 160 156 +69 78 70 147 162 158 +70 76 71 161 164 158 +70 77 76 162 170 160 +70 78 77 159 172 161 +71 75 72 164 165 157 +71 76 75 160 169 163 +72 75 73 163 166 155 +73 75 74 165 167 124 +74 75 80 166 169 168 +74 80 81 167 178 125 +75 76 80 164 171 167 +76 77 79 161 172 171 +76 79 80 170 175 169 +77 78 79 162 173 170 +78 85 79 174 177 172 +78 86 85 4294967295 185 173 +79 83 80 176 178 171 +79 84 83 177 182 175 +79 85 84 173 183 176 +80 83 81 175 179 168 +81 83 82 178 180 126 +82 83 88 179 182 181 +82 88 89 180 190 127 +83 84 88 176 184 180 +84 85 87 177 185 184 +84 87 88 183 189 182 +85 86 87 174 186 183 +86 92 87 187 189 185 +86 93 92 188 196 186 +86 94 93 4294967295 198 187 +87 92 88 186 191 184 +88 91 89 191 192 181 +88 92 91 189 195 190 +89 91 90 190 193 117 +90 91 96 192 195 194 +90 96 97 193 203 118 +91 92 96 191 197 193 +92 93 95 187 198 197 +92 95 96 196 201 195 +93 94 95 188 199 196 +94 101 95 200 202 198 +94 102 101 4294967295 212 199 +95 100 96 202 204 197 +95 101 100 199 210 201 +96 99 97 204 205 194 +96 100 99 201 209 203 +97 99 98 203 206 119 +98 99 104 205 209 207 +98 104 105 206 215 208 +98 105 108 207 216 120 +99 100 104 204 211 206 +100 101 103 202 212 211 +100 103 104 210 214 209 +101 102 103 200 213 210 +102 106 103 2 214 212 +103 106 104 213 215 211 +104 106 105 214 216 207 +105 106 108 215 217 208 +106 107 108 3 4 216 +109 114 110 219 222 108 +109 115 114 220 14 218 +109 116 115 6 8 219 +110 113 111 222 223 109 +110 114 113 218 20 221 +111 113 112 221 25 106 +117 121 118 225 226 50 +117 124 121 52 232 224 +118 121 119 224 228 48 +119 120 136 228 230 45 +119 121 120 226 229 227 +120 121 122 228 231 230 +120 122 136 229 234 227 +121 123 122 232 233 229 +121 124 123 225 54 231 +122 123 125 231 60 234 +122 125 136 233 236 230 +125 126 127 66 237 236 +125 127 136 235 241 234 +126 128 127 70 238 235 +127 128 129 237 242 239 +127 129 134 238 246 240 +127 134 135 239 251 241 +127 135 136 240 41 236 +128 130 129 71 243 238 +129 130 131 242 72 244 +129 131 132 243 247 245 +129 132 133 244 37 246 +129 133 134 245 251 239 +131 138 132 248 250 244 +131 139 138 249 254 247 +131 140 139 76 254 248 +132 138 137 247 252 35 +133 135 134 40 240 246 +137 138 142 250 255 253 +137 142 143 252 104 33 +138 139 140 248 249 255 +138 140 142 254 256 252 +140 141 142 79 101 255 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..ffb846b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 13 11 +0 24 2 2 26 4294967295 +0 25 24 3 83 1 +0 26 25 4 85 2 +0 27 26 5 87 3 +0 28 27 6 88 4 +0 29 28 7 89 5 +0 30 29 8 90 6 +0 31 30 9 91 7 +0 40 31 10 94 8 +0 56 40 11 122 9 +0 57 56 0 165 10 +1 2 64 4294967295 27 16 +1 58 57 14 166 0 +1 59 58 15 168 13 +1 60 59 16 168 14 +1 64 60 12 170 15 +2 4 105 18 33 31 +2 5 4 19 39 17 +2 17 5 20 42 18 +2 18 17 21 70 19 +2 19 18 22 74 20 +2 20 19 23 75 21 +2 21 20 24 76 22 +2 22 21 25 78 23 +2 23 22 26 79 24 +2 24 23 1 81 25 +2 65 64 28 177 12 +2 81 65 29 179 27 +2 89 81 30 206 28 +2 97 89 31 220 29 +2 105 97 17 232 30 +3 4 119 33 40 38 +3 105 4 34 17 32 +3 109 105 35 245 33 +3 110 109 36 249 34 +3 111 110 37 249 35 +3 112 111 38 145 36 +3 119 112 32 252 37 +4 5 118 18 41 40 +4 118 119 39 252 32 +5 6 118 42 46 39 +5 17 6 19 45 41 +6 7 117 44 47 46 +6 16 7 45 48 43 +6 17 16 42 70 44 +6 117 118 43 251 41 +7 8 117 48 52 43 +7 16 8 44 51 47 +8 9 116 50 53 52 +8 15 9 51 55 49 +8 16 15 48 68 50 +8 116 117 49 254 47 +9 10 116 54 57 49 +9 11 10 55 56 53 +9 15 11 50 61 54 +10 11 115 54 62 57 +10 115 116 56 255 53 +11 12 146 59 63 62 +11 13 12 60 63 58 +11 14 13 61 64 59 +11 15 14 55 66 60 +11 146 115 58 135 56 +12 13 146 59 65 58 +13 14 140 60 67 65 +13 140 146 64 285 63 +14 15 135 61 69 67 +14 135 140 66 282 64 +15 16 136 51 72 69 +15 136 135 68 277 66 +16 17 18 45 20 71 +16 18 139 70 74 73 +16 138 136 73 283 68 +16 139 138 71 273 72 +18 19 139 21 75 71 +19 20 139 22 77 74 +20 21 122 23 78 77 +20 122 139 76 259 75 +21 22 122 24 80 76 +22 23 121 25 82 80 +22 121 122 79 258 78 +23 24 120 26 84 82 +23 120 121 81 256 79 +24 25 127 2 86 84 +24 127 120 83 257 81 +25 26 126 3 87 86 +25 126 127 85 264 83 +26 27 126 4 88 85 +27 28 126 5 89 87 +28 29 126 6 90 88 +29 30 126 7 92 89 +30 31 128 8 93 92 +30 128 126 91 265 90 +31 32 128 94 98 91 +31 40 32 9 97 93 +32 33 129 96 102 98 +32 39 33 97 101 95 +32 40 39 94 118 96 +32 129 128 95 267 93 +33 34 134 100 108 104 +33 38 34 101 107 99 +33 39 38 96 117 100 +33 131 129 103 269 95 +33 133 131 104 274 102 +33 134 133 99 275 103 +34 35 143 106 111 108 +34 37 35 107 110 105 +34 38 37 100 115 106 +34 143 134 105 281 99 +35 36 144 110 114 111 +35 37 36 106 112 109 +35 144 143 109 288 105 +36 37 44 110 116 113 +36 44 45 112 130 114 +36 45 144 113 133 109 +37 38 43 107 117 116 +37 43 44 115 128 112 +38 39 43 101 119 115 +39 40 42 97 120 119 +39 42 43 118 127 117 +40 41 42 121 123 118 +40 55 41 122 126 120 +40 56 55 10 164 121 +41 48 42 124 127 120 +41 49 48 125 139 123 +41 52 49 126 144 124 +41 55 52 121 153 125 +42 48 43 123 129 119 +43 47 44 129 130 116 +43 48 47 127 137 128 +44 47 45 128 132 113 +45 46 145 132 136 133 +45 47 46 130 134 131 +45 145 144 131 288 114 +46 47 115 132 138 135 +46 115 146 134 62 136 +46 146 145 135 285 131 +47 48 114 129 141 138 +47 114 115 137 255 134 +48 49 112 124 145 140 +48 112 113 139 250 141 +48 113 114 140 253 137 +49 50 111 143 146 145 +49 51 50 144 146 142 +49 52 51 125 147 143 +49 111 112 142 37 139 +50 51 111 143 152 142 +51 52 53 144 153 148 +51 53 92 147 159 149 +51 92 93 148 224 150 +51 93 100 149 226 151 +51 100 101 150 237 152 +51 101 111 151 240 146 +52 55 53 126 155 147 +53 54 76 155 163 156 +53 55 54 153 160 154 +53 76 77 154 198 157 +53 77 84 156 200 158 +53 84 85 157 211 159 +53 85 92 158 213 148 +54 55 61 155 164 161 +54 61 68 160 173 162 +54 68 69 161 184 163 +54 69 76 162 185 154 +55 56 61 122 165 160 +56 57 61 11 167 164 +57 58 60 13 168 167 +57 60 61 166 169 165 +58 59 60 14 15 166 +60 63 61 170 172 167 +60 64 63 16 175 169 +61 62 67 172 174 173 +61 63 62 169 174 171 +61 67 68 171 182 161 +62 63 67 172 176 171 +63 64 66 170 177 176 +63 66 67 175 180 174 +64 65 66 27 178 175 +65 72 66 179 181 177 +65 81 72 28 191 178 +66 71 67 181 183 176 +66 72 71 178 188 180 +67 70 68 183 184 173 +67 71 70 180 186 182 +68 70 69 182 185 162 +69 70 76 184 187 163 +70 71 75 183 189 187 +70 75 76 186 197 185 +71 72 74 181 190 189 +71 74 75 188 195 186 +72 73 74 191 192 188 +72 81 73 179 194 190 +73 79 74 193 196 190 +73 80 79 194 202 192 +73 81 80 191 204 193 +74 78 75 196 197 189 +74 79 78 192 201 195 +75 78 76 195 198 187 +76 78 77 197 199 156 +77 78 83 198 201 200 +77 83 84 199 210 157 +78 79 83 196 203 199 +79 80 82 193 204 203 +79 82 83 202 207 201 +80 81 82 194 205 202 +81 88 82 206 209 204 +81 89 88 29 217 205 +82 86 83 208 210 203 +82 87 86 209 214 207 +82 88 87 205 215 208 +83 86 84 207 211 200 +84 86 85 210 212 158 +85 86 91 211 214 213 +85 91 92 212 222 159 +86 87 91 208 216 212 +87 88 90 209 217 216 +87 90 91 215 221 214 +88 89 90 206 218 215 +89 95 90 219 221 217 +89 96 95 220 228 218 +89 97 96 30 230 219 +90 95 91 218 223 216 +91 94 92 223 224 213 +91 95 94 221 227 222 +92 94 93 222 225 149 +93 94 99 224 227 226 +93 99 100 225 235 150 +94 95 99 223 229 225 +95 96 98 219 230 229 +95 98 99 228 233 227 +96 97 98 220 231 228 +97 104 98 232 234 230 +97 105 104 31 244 231 +98 103 99 234 236 229 +98 104 103 231 242 233 +99 102 100 236 237 226 +99 103 102 233 241 235 +100 102 101 235 238 151 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 152 +102 103 107 236 243 238 +103 104 106 234 244 243 +103 106 107 242 246 241 +104 105 106 232 245 242 +105 109 106 34 246 244 +106 109 107 245 247 243 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 35 36 248 +112 117 113 251 254 140 +112 118 117 252 46 250 +112 119 118 38 40 251 +113 116 114 254 255 141 +113 117 116 250 52 253 +114 116 115 253 57 138 +120 124 121 257 258 82 +120 127 124 84 264 256 +121 124 122 256 260 80 +122 123 139 260 262 77 +122 124 123 258 261 259 +123 124 125 260 263 262 +123 125 139 261 266 259 +124 126 125 264 265 261 +124 127 126 257 86 263 +125 126 128 263 92 266 +125 128 139 265 268 262 +128 129 130 98 269 268 +128 130 139 267 273 266 +129 131 130 102 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 73 268 +131 133 132 103 275 270 +132 133 134 274 104 276 +132 134 135 275 279 277 +132 135 136 276 69 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 108 286 280 +135 141 140 279 284 67 +136 138 137 72 272 278 +140 141 145 282 287 285 +140 145 146 284 136 65 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 111 133 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_auto.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_auto.txt new file mode 100644 index 0000000..e94af4b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 139 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 138 28 +120 121 122 4294967295 4294967295 138 +120 122 136 137 140 136 +122 123 125 4294967295 43 140 +122 125 136 139 4294967295 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_outer.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_outer.txt new file mode 100644 index 0000000..e453f8b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 144 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 145 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 144 136 +118 121 119 136 140 31 +119 120 136 140 142 28 +119 121 120 138 141 139 +120 121 122 140 143 142 +120 122 136 141 146 139 +121 123 122 144 145 141 +121 124 123 137 37 143 +122 123 125 143 43 146 +122 125 136 145 148 142 +125 126 127 46 149 148 +125 127 136 147 153 146 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_super.txt b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_super.txt new file mode 100644 index 0000000..7e8c77f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_as-provided_resolve_super.txt @@ -0,0 +1,408 @@ +257 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 213 1 +0 107 106 4 217 2 +0 108 107 5 217 3 +0 109 108 6 113 4 +0 116 109 0 220 5 +1 2 115 4294967295 9 8 +1 115 116 7 220 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 219 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 222 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 223 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 253 31 +11 12 132 29 37 35 +11 132 137 34 250 32 +12 13 133 19 40 37 +12 133 132 36 245 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 251 36 +13 136 135 39 241 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 227 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 226 46 +20 21 117 4294967295 52 50 +20 117 118 49 224 47 +21 22 124 4294967295 54 52 +21 124 117 51 225 49 +22 23 123 4294967295 55 54 +22 123 124 53 232 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 233 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 235 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 237 63 +30 130 128 72 242 70 +30 131 130 67 243 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 249 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 256 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 256 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 253 99 +44 45 111 97 109 106 +44 111 112 105 223 102 +45 46 109 92 113 108 +45 109 110 107 218 109 +45 110 111 108 221 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 192 118 +48 90 97 117 194 119 +48 97 98 118 205 120 +48 98 108 119 208 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 166 125 +50 74 81 124 168 126 +50 81 82 125 179 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 141 130 +51 65 66 129 152 131 +51 66 73 130 153 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 143 137 +58 59 64 140 142 141 +58 60 59 137 142 139 +58 64 65 139 150 129 +59 60 64 140 144 139 +60 61 63 138 145 144 +60 63 64 143 148 142 +61 62 63 4294967295 146 143 +62 69 63 147 149 145 +62 78 69 4294967295 159 146 +63 68 64 149 151 144 +63 69 68 146 156 148 +64 67 65 151 152 141 +64 68 67 148 154 150 +65 67 66 150 153 130 +66 67 73 152 155 131 +67 68 72 151 157 155 +67 72 73 154 165 153 +68 69 71 149 158 157 +68 71 72 156 163 154 +69 70 71 159 160 156 +69 78 70 147 162 158 +70 76 71 161 164 158 +70 77 76 162 170 160 +70 78 77 159 172 161 +71 75 72 164 165 157 +71 76 75 160 169 163 +72 75 73 163 166 155 +73 75 74 165 167 124 +74 75 80 166 169 168 +74 80 81 167 178 125 +75 76 80 164 171 167 +76 77 79 161 172 171 +76 79 80 170 175 169 +77 78 79 162 173 170 +78 85 79 174 177 172 +78 86 85 4294967295 185 173 +79 83 80 176 178 171 +79 84 83 177 182 175 +79 85 84 173 183 176 +80 83 81 175 179 168 +81 83 82 178 180 126 +82 83 88 179 182 181 +82 88 89 180 190 127 +83 84 88 176 184 180 +84 85 87 177 185 184 +84 87 88 183 189 182 +85 86 87 174 186 183 +86 92 87 187 189 185 +86 93 92 188 196 186 +86 94 93 4294967295 198 187 +87 92 88 186 191 184 +88 91 89 191 192 181 +88 92 91 189 195 190 +89 91 90 190 193 117 +90 91 96 192 195 194 +90 96 97 193 203 118 +91 92 96 191 197 193 +92 93 95 187 198 197 +92 95 96 196 201 195 +93 94 95 188 199 196 +94 101 95 200 202 198 +94 102 101 4294967295 212 199 +95 100 96 202 204 197 +95 101 100 199 210 201 +96 99 97 204 205 194 +96 100 99 201 209 203 +97 99 98 203 206 119 +98 99 104 205 209 207 +98 104 105 206 215 208 +98 105 108 207 216 120 +99 100 104 204 211 206 +100 101 103 202 212 211 +100 103 104 210 214 209 +101 102 103 200 213 210 +102 106 103 2 214 212 +103 106 104 213 215 211 +104 106 105 214 216 207 +105 106 108 215 217 208 +106 107 108 3 4 216 +109 114 110 219 222 108 +109 115 114 220 14 218 +109 116 115 6 8 219 +110 113 111 222 223 109 +110 114 113 218 20 221 +111 113 112 221 25 106 +117 121 118 225 226 50 +117 124 121 52 232 224 +118 121 119 224 228 48 +119 120 136 228 230 45 +119 121 120 226 229 227 +120 121 122 228 231 230 +120 122 136 229 234 227 +121 123 122 232 233 229 +121 124 123 225 54 231 +122 123 125 231 60 234 +122 125 136 233 236 230 +125 126 127 66 237 236 +125 127 136 235 241 234 +126 128 127 70 238 235 +127 128 129 237 242 239 +127 129 134 238 246 240 +127 134 135 239 251 241 +127 135 136 240 41 236 +128 130 129 71 243 238 +129 130 131 242 72 244 +129 131 132 243 247 245 +129 132 133 244 37 246 +129 133 134 245 251 239 +131 138 132 248 250 244 +131 139 138 249 254 247 +131 140 139 76 254 248 +132 138 137 247 252 35 +133 135 134 40 240 246 +137 138 142 250 255 253 +137 142 143 252 104 33 +138 139 140 248 249 255 +138 140 142 254 256 252 +140 141 142 79 101 255 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_ignore_all.txt b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_all.txt new file mode 100644 index 0000000..6faebbd --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 16 14 +0 21 2 2 26 4294967295 +0 22 21 3 78 1 +0 23 22 4 79 2 +0 24 23 5 81 3 +0 25 24 6 83 4 +0 26 25 7 85 5 +0 27 26 8 87 6 +0 28 27 9 88 7 +0 29 28 10 89 8 +0 30 29 11 90 9 +0 31 30 12 91 10 +0 40 31 13 94 11 +0 56 40 14 122 12 +0 57 56 0 165 13 +1 2 64 4294967295 27 19 +1 58 57 17 166 0 +1 59 58 18 168 16 +1 60 59 19 168 17 +1 64 60 15 170 18 +2 4 105 21 33 31 +2 5 4 22 39 20 +2 17 5 23 42 21 +2 18 17 24 70 22 +2 19 18 25 74 23 +2 20 19 26 75 24 +2 21 20 1 76 25 +2 65 64 28 177 15 +2 81 65 29 179 27 +2 89 81 30 206 28 +2 97 89 31 220 29 +2 105 97 20 232 30 +3 4 119 33 40 38 +3 105 4 34 20 32 +3 109 105 35 245 33 +3 110 109 36 249 34 +3 111 110 37 249 35 +3 112 111 38 145 36 +3 119 112 32 252 37 +4 5 118 21 41 40 +4 118 119 39 252 32 +5 6 118 42 46 39 +5 17 6 22 45 41 +6 7 117 44 47 46 +6 16 7 45 48 43 +6 17 16 42 70 44 +6 117 118 43 251 41 +7 8 117 48 52 43 +7 16 8 44 51 47 +8 9 116 50 53 52 +8 15 9 51 55 49 +8 16 15 48 68 50 +8 116 117 49 254 47 +9 10 116 54 57 49 +9 11 10 55 56 53 +9 15 11 50 61 54 +10 11 115 54 62 57 +10 115 116 56 255 53 +11 12 146 59 63 62 +11 13 12 60 63 58 +11 14 13 61 64 59 +11 15 14 55 66 60 +11 146 115 58 135 56 +12 13 146 59 65 58 +13 14 140 60 67 65 +13 140 146 64 285 63 +14 15 135 61 69 67 +14 135 140 66 282 64 +15 16 136 51 72 69 +15 136 135 68 277 66 +16 17 18 45 23 71 +16 18 139 70 74 73 +16 138 136 73 283 68 +16 139 138 71 273 72 +18 19 139 24 75 71 +19 20 139 25 77 74 +20 21 122 26 78 77 +20 122 139 76 259 75 +21 22 122 2 80 76 +22 23 121 3 82 80 +22 121 122 79 258 78 +23 24 120 4 84 82 +23 120 121 81 256 79 +24 25 127 5 86 84 +24 127 120 83 257 81 +25 26 126 6 87 86 +25 126 127 85 264 83 +26 27 126 7 88 85 +27 28 126 8 89 87 +28 29 126 9 90 88 +29 30 126 10 92 89 +30 31 128 11 93 92 +30 128 126 91 265 90 +31 32 128 94 98 91 +31 40 32 12 97 93 +32 33 129 96 102 98 +32 39 33 97 101 95 +32 40 39 94 118 96 +32 129 128 95 267 93 +33 34 134 100 108 104 +33 38 34 101 107 99 +33 39 38 96 117 100 +33 131 129 103 269 95 +33 133 131 104 274 102 +33 134 133 99 275 103 +34 35 143 106 111 108 +34 37 35 107 110 105 +34 38 37 100 115 106 +34 143 134 105 281 99 +35 36 144 110 114 111 +35 37 36 106 112 109 +35 144 143 109 288 105 +36 37 44 110 116 113 +36 44 45 112 130 114 +36 45 144 113 133 109 +37 38 43 107 117 116 +37 43 44 115 128 112 +38 39 43 101 119 115 +39 40 42 97 120 119 +39 42 43 118 127 117 +40 41 42 121 123 118 +40 55 41 122 126 120 +40 56 55 13 164 121 +41 48 42 124 127 120 +41 49 48 125 139 123 +41 52 49 126 144 124 +41 55 52 121 153 125 +42 48 43 123 129 119 +43 47 44 129 130 116 +43 48 47 127 137 128 +44 47 45 128 132 113 +45 46 145 132 136 133 +45 47 46 130 134 131 +45 145 144 131 288 114 +46 47 115 132 138 135 +46 115 146 134 62 136 +46 146 145 135 285 131 +47 48 114 129 141 138 +47 114 115 137 255 134 +48 49 112 124 145 140 +48 112 113 139 250 141 +48 113 114 140 253 137 +49 50 111 143 146 145 +49 51 50 144 146 142 +49 52 51 125 147 143 +49 111 112 142 37 139 +50 51 111 143 152 142 +51 52 53 144 153 148 +51 53 92 147 159 149 +51 92 93 148 224 150 +51 93 100 149 226 151 +51 100 101 150 237 152 +51 101 111 151 240 146 +52 55 53 126 155 147 +53 54 76 155 163 156 +53 55 54 153 160 154 +53 76 77 154 198 157 +53 77 84 156 200 158 +53 84 85 157 211 159 +53 85 92 158 213 148 +54 55 61 155 164 161 +54 61 68 160 173 162 +54 68 69 161 184 163 +54 69 76 162 185 154 +55 56 61 122 165 160 +56 57 61 14 167 164 +57 58 60 16 168 167 +57 60 61 166 169 165 +58 59 60 17 18 166 +60 63 61 170 172 167 +60 64 63 19 175 169 +61 62 67 172 174 173 +61 63 62 169 174 171 +61 67 68 171 182 161 +62 63 67 172 176 171 +63 64 66 170 177 176 +63 66 67 175 180 174 +64 65 66 27 178 175 +65 72 66 179 181 177 +65 81 72 28 191 178 +66 71 67 181 183 176 +66 72 71 178 188 180 +67 70 68 183 184 173 +67 71 70 180 186 182 +68 70 69 182 185 162 +69 70 76 184 187 163 +70 71 75 183 189 187 +70 75 76 186 197 185 +71 72 74 181 190 189 +71 74 75 188 195 186 +72 73 74 191 192 188 +72 81 73 179 194 190 +73 79 74 193 196 190 +73 80 79 194 202 192 +73 81 80 191 204 193 +74 78 75 196 197 189 +74 79 78 192 201 195 +75 78 76 195 198 187 +76 78 77 197 199 156 +77 78 83 198 201 200 +77 83 84 199 210 157 +78 79 83 196 203 199 +79 80 82 193 204 203 +79 82 83 202 207 201 +80 81 82 194 205 202 +81 88 82 206 209 204 +81 89 88 29 217 205 +82 86 83 208 210 203 +82 87 86 209 214 207 +82 88 87 205 215 208 +83 86 84 207 211 200 +84 86 85 210 212 158 +85 86 91 211 214 213 +85 91 92 212 222 159 +86 87 91 208 216 212 +87 88 90 209 217 216 +87 90 91 215 221 214 +88 89 90 206 218 215 +89 95 90 219 221 217 +89 96 95 220 228 218 +89 97 96 30 230 219 +90 95 91 218 223 216 +91 94 92 223 224 213 +91 95 94 221 227 222 +92 94 93 222 225 149 +93 94 99 224 227 226 +93 99 100 225 235 150 +94 95 99 223 229 225 +95 96 98 219 230 229 +95 98 99 228 233 227 +96 97 98 220 231 228 +97 104 98 232 234 230 +97 105 104 31 244 231 +98 103 99 234 236 229 +98 104 103 231 242 233 +99 102 100 236 237 226 +99 103 102 233 241 235 +100 102 101 235 238 151 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 152 +102 103 107 236 243 238 +103 104 106 234 244 243 +103 106 107 242 246 241 +104 105 106 232 245 242 +105 109 106 34 246 244 +106 109 107 245 247 243 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 35 36 248 +112 117 113 251 254 140 +112 118 117 252 46 250 +112 119 118 38 40 251 +113 116 114 254 255 141 +113 117 116 250 52 253 +114 116 115 253 57 138 +120 124 121 257 258 82 +120 127 124 84 264 256 +121 124 122 256 260 80 +122 123 139 260 262 77 +122 124 123 258 261 259 +123 124 125 260 263 262 +123 125 139 261 266 259 +124 126 125 264 265 261 +124 127 126 257 86 263 +125 126 128 263 92 266 +125 128 139 265 268 262 +128 129 130 98 269 268 +128 130 139 267 273 266 +129 131 130 102 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 73 268 +131 133 132 103 275 270 +132 133 134 274 104 276 +132 134 135 275 279 277 +132 135 136 276 69 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 108 286 280 +135 141 140 279 284 67 +136 138 137 72 272 278 +140 141 145 282 287 285 +140 145 146 284 136 65 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 111 133 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_ignore_auto.txt b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_auto.txt new file mode 100644 index 0000000..e94af4b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 139 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 138 28 +120 121 122 4294967295 4294967295 138 +120 122 136 137 140 136 +122 123 125 4294967295 43 140 +122 125 136 139 4294967295 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_ignore_outer.txt b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_outer.txt new file mode 100644 index 0000000..e453f8b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 144 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 145 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 144 136 +118 121 119 136 140 31 +119 120 136 140 142 28 +119 121 120 138 141 139 +120 121 122 140 143 142 +120 122 136 141 146 139 +121 123 122 144 145 141 +121 124 123 137 37 143 +122 123 125 143 43 146 +122 125 136 145 148 142 +125 126 127 46 149 148 +125 127 136 147 153 146 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_ignore_super.txt b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_super.txt new file mode 100644 index 0000000..7e8c77f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_ignore_super.txt @@ -0,0 +1,408 @@ +257 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 213 1 +0 107 106 4 217 2 +0 108 107 5 217 3 +0 109 108 6 113 4 +0 116 109 0 220 5 +1 2 115 4294967295 9 8 +1 115 116 7 220 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 219 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 222 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 223 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 253 31 +11 12 132 29 37 35 +11 132 137 34 250 32 +12 13 133 19 40 37 +12 133 132 36 245 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 251 36 +13 136 135 39 241 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 227 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 226 46 +20 21 117 4294967295 52 50 +20 117 118 49 224 47 +21 22 124 4294967295 54 52 +21 124 117 51 225 49 +22 23 123 4294967295 55 54 +22 123 124 53 232 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 233 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 235 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 237 63 +30 130 128 72 242 70 +30 131 130 67 243 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 249 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 256 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 256 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 253 99 +44 45 111 97 109 106 +44 111 112 105 223 102 +45 46 109 92 113 108 +45 109 110 107 218 109 +45 110 111 108 221 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 192 118 +48 90 97 117 194 119 +48 97 98 118 205 120 +48 98 108 119 208 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 166 125 +50 74 81 124 168 126 +50 81 82 125 179 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 141 130 +51 65 66 129 152 131 +51 66 73 130 153 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 143 137 +58 59 64 140 142 141 +58 60 59 137 142 139 +58 64 65 139 150 129 +59 60 64 140 144 139 +60 61 63 138 145 144 +60 63 64 143 148 142 +61 62 63 4294967295 146 143 +62 69 63 147 149 145 +62 78 69 4294967295 159 146 +63 68 64 149 151 144 +63 69 68 146 156 148 +64 67 65 151 152 141 +64 68 67 148 154 150 +65 67 66 150 153 130 +66 67 73 152 155 131 +67 68 72 151 157 155 +67 72 73 154 165 153 +68 69 71 149 158 157 +68 71 72 156 163 154 +69 70 71 159 160 156 +69 78 70 147 162 158 +70 76 71 161 164 158 +70 77 76 162 170 160 +70 78 77 159 172 161 +71 75 72 164 165 157 +71 76 75 160 169 163 +72 75 73 163 166 155 +73 75 74 165 167 124 +74 75 80 166 169 168 +74 80 81 167 178 125 +75 76 80 164 171 167 +76 77 79 161 172 171 +76 79 80 170 175 169 +77 78 79 162 173 170 +78 85 79 174 177 172 +78 86 85 4294967295 185 173 +79 83 80 176 178 171 +79 84 83 177 182 175 +79 85 84 173 183 176 +80 83 81 175 179 168 +81 83 82 178 180 126 +82 83 88 179 182 181 +82 88 89 180 190 127 +83 84 88 176 184 180 +84 85 87 177 185 184 +84 87 88 183 189 182 +85 86 87 174 186 183 +86 92 87 187 189 185 +86 93 92 188 196 186 +86 94 93 4294967295 198 187 +87 92 88 186 191 184 +88 91 89 191 192 181 +88 92 91 189 195 190 +89 91 90 190 193 117 +90 91 96 192 195 194 +90 96 97 193 203 118 +91 92 96 191 197 193 +92 93 95 187 198 197 +92 95 96 196 201 195 +93 94 95 188 199 196 +94 101 95 200 202 198 +94 102 101 4294967295 212 199 +95 100 96 202 204 197 +95 101 100 199 210 201 +96 99 97 204 205 194 +96 100 99 201 209 203 +97 99 98 203 206 119 +98 99 104 205 209 207 +98 104 105 206 215 208 +98 105 108 207 216 120 +99 100 104 204 211 206 +100 101 103 202 212 211 +100 103 104 210 214 209 +101 102 103 200 213 210 +102 106 103 2 214 212 +103 106 104 213 215 211 +104 106 105 214 216 207 +105 106 108 215 217 208 +106 107 108 3 4 216 +109 114 110 219 222 108 +109 115 114 220 14 218 +109 116 115 6 8 219 +110 113 111 222 223 109 +110 114 113 218 20 221 +111 113 112 221 25 106 +117 121 118 225 226 50 +117 124 121 52 232 224 +118 121 119 224 228 48 +119 120 136 228 230 45 +119 121 120 226 229 227 +120 121 122 228 231 230 +120 122 136 229 234 227 +121 123 122 232 233 229 +121 124 123 225 54 231 +122 123 125 231 60 234 +122 125 136 233 236 230 +125 126 127 66 237 236 +125 127 136 235 241 234 +126 128 127 70 238 235 +127 128 129 237 242 239 +127 129 134 238 246 240 +127 134 135 239 251 241 +127 135 136 240 41 236 +128 130 129 71 243 238 +129 130 131 242 72 244 +129 131 132 243 247 245 +129 132 133 244 37 246 +129 133 134 245 251 239 +131 138 132 248 250 244 +131 139 138 249 254 247 +131 140 139 76 254 248 +132 138 137 247 252 35 +133 135 134 40 240 246 +137 138 142 250 255 253 +137 142 143 252 104 33 +138 139 140 248 249 255 +138 140 142 254 256 252 +140 141 142 79 101 255 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_resolve_all.txt b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_all.txt new file mode 100644 index 0000000..6faebbd --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_all.txt @@ -0,0 +1,440 @@ +289 +0 1 57 4294967295 16 14 +0 21 2 2 26 4294967295 +0 22 21 3 78 1 +0 23 22 4 79 2 +0 24 23 5 81 3 +0 25 24 6 83 4 +0 26 25 7 85 5 +0 27 26 8 87 6 +0 28 27 9 88 7 +0 29 28 10 89 8 +0 30 29 11 90 9 +0 31 30 12 91 10 +0 40 31 13 94 11 +0 56 40 14 122 12 +0 57 56 0 165 13 +1 2 64 4294967295 27 19 +1 58 57 17 166 0 +1 59 58 18 168 16 +1 60 59 19 168 17 +1 64 60 15 170 18 +2 4 105 21 33 31 +2 5 4 22 39 20 +2 17 5 23 42 21 +2 18 17 24 70 22 +2 19 18 25 74 23 +2 20 19 26 75 24 +2 21 20 1 76 25 +2 65 64 28 177 15 +2 81 65 29 179 27 +2 89 81 30 206 28 +2 97 89 31 220 29 +2 105 97 20 232 30 +3 4 119 33 40 38 +3 105 4 34 20 32 +3 109 105 35 245 33 +3 110 109 36 249 34 +3 111 110 37 249 35 +3 112 111 38 145 36 +3 119 112 32 252 37 +4 5 118 21 41 40 +4 118 119 39 252 32 +5 6 118 42 46 39 +5 17 6 22 45 41 +6 7 117 44 47 46 +6 16 7 45 48 43 +6 17 16 42 70 44 +6 117 118 43 251 41 +7 8 117 48 52 43 +7 16 8 44 51 47 +8 9 116 50 53 52 +8 15 9 51 55 49 +8 16 15 48 68 50 +8 116 117 49 254 47 +9 10 116 54 57 49 +9 11 10 55 56 53 +9 15 11 50 61 54 +10 11 115 54 62 57 +10 115 116 56 255 53 +11 12 146 59 63 62 +11 13 12 60 63 58 +11 14 13 61 64 59 +11 15 14 55 66 60 +11 146 115 58 135 56 +12 13 146 59 65 58 +13 14 140 60 67 65 +13 140 146 64 285 63 +14 15 135 61 69 67 +14 135 140 66 282 64 +15 16 136 51 72 69 +15 136 135 68 277 66 +16 17 18 45 23 71 +16 18 139 70 74 73 +16 138 136 73 283 68 +16 139 138 71 273 72 +18 19 139 24 75 71 +19 20 139 25 77 74 +20 21 122 26 78 77 +20 122 139 76 259 75 +21 22 122 2 80 76 +22 23 121 3 82 80 +22 121 122 79 258 78 +23 24 120 4 84 82 +23 120 121 81 256 79 +24 25 127 5 86 84 +24 127 120 83 257 81 +25 26 126 6 87 86 +25 126 127 85 264 83 +26 27 126 7 88 85 +27 28 126 8 89 87 +28 29 126 9 90 88 +29 30 126 10 92 89 +30 31 128 11 93 92 +30 128 126 91 265 90 +31 32 128 94 98 91 +31 40 32 12 97 93 +32 33 129 96 102 98 +32 39 33 97 101 95 +32 40 39 94 118 96 +32 129 128 95 267 93 +33 34 134 100 108 104 +33 38 34 101 107 99 +33 39 38 96 117 100 +33 131 129 103 269 95 +33 133 131 104 274 102 +33 134 133 99 275 103 +34 35 143 106 111 108 +34 37 35 107 110 105 +34 38 37 100 115 106 +34 143 134 105 281 99 +35 36 144 110 114 111 +35 37 36 106 112 109 +35 144 143 109 288 105 +36 37 44 110 116 113 +36 44 45 112 130 114 +36 45 144 113 133 109 +37 38 43 107 117 116 +37 43 44 115 128 112 +38 39 43 101 119 115 +39 40 42 97 120 119 +39 42 43 118 127 117 +40 41 42 121 123 118 +40 55 41 122 126 120 +40 56 55 13 164 121 +41 48 42 124 127 120 +41 49 48 125 139 123 +41 52 49 126 144 124 +41 55 52 121 153 125 +42 48 43 123 129 119 +43 47 44 129 130 116 +43 48 47 127 137 128 +44 47 45 128 132 113 +45 46 145 132 136 133 +45 47 46 130 134 131 +45 145 144 131 288 114 +46 47 115 132 138 135 +46 115 146 134 62 136 +46 146 145 135 285 131 +47 48 114 129 141 138 +47 114 115 137 255 134 +48 49 112 124 145 140 +48 112 113 139 250 141 +48 113 114 140 253 137 +49 50 111 143 146 145 +49 51 50 144 146 142 +49 52 51 125 147 143 +49 111 112 142 37 139 +50 51 111 143 152 142 +51 52 53 144 153 148 +51 53 92 147 159 149 +51 92 93 148 224 150 +51 93 100 149 226 151 +51 100 101 150 237 152 +51 101 111 151 240 146 +52 55 53 126 155 147 +53 54 76 155 163 156 +53 55 54 153 160 154 +53 76 77 154 198 157 +53 77 84 156 200 158 +53 84 85 157 211 159 +53 85 92 158 213 148 +54 55 61 155 164 161 +54 61 68 160 173 162 +54 68 69 161 184 163 +54 69 76 162 185 154 +55 56 61 122 165 160 +56 57 61 14 167 164 +57 58 60 16 168 167 +57 60 61 166 169 165 +58 59 60 17 18 166 +60 63 61 170 172 167 +60 64 63 19 175 169 +61 62 67 172 174 173 +61 63 62 169 174 171 +61 67 68 171 182 161 +62 63 67 172 176 171 +63 64 66 170 177 176 +63 66 67 175 180 174 +64 65 66 27 178 175 +65 72 66 179 181 177 +65 81 72 28 191 178 +66 71 67 181 183 176 +66 72 71 178 188 180 +67 70 68 183 184 173 +67 71 70 180 186 182 +68 70 69 182 185 162 +69 70 76 184 187 163 +70 71 75 183 189 187 +70 75 76 186 197 185 +71 72 74 181 190 189 +71 74 75 188 195 186 +72 73 74 191 192 188 +72 81 73 179 194 190 +73 79 74 193 196 190 +73 80 79 194 202 192 +73 81 80 191 204 193 +74 78 75 196 197 189 +74 79 78 192 201 195 +75 78 76 195 198 187 +76 78 77 197 199 156 +77 78 83 198 201 200 +77 83 84 199 210 157 +78 79 83 196 203 199 +79 80 82 193 204 203 +79 82 83 202 207 201 +80 81 82 194 205 202 +81 88 82 206 209 204 +81 89 88 29 217 205 +82 86 83 208 210 203 +82 87 86 209 214 207 +82 88 87 205 215 208 +83 86 84 207 211 200 +84 86 85 210 212 158 +85 86 91 211 214 213 +85 91 92 212 222 159 +86 87 91 208 216 212 +87 88 90 209 217 216 +87 90 91 215 221 214 +88 89 90 206 218 215 +89 95 90 219 221 217 +89 96 95 220 228 218 +89 97 96 30 230 219 +90 95 91 218 223 216 +91 94 92 223 224 213 +91 95 94 221 227 222 +92 94 93 222 225 149 +93 94 99 224 227 226 +93 99 100 225 235 150 +94 95 99 223 229 225 +95 96 98 219 230 229 +95 98 99 228 233 227 +96 97 98 220 231 228 +97 104 98 232 234 230 +97 105 104 31 244 231 +98 103 99 234 236 229 +98 104 103 231 242 233 +99 102 100 236 237 226 +99 103 102 233 241 235 +100 102 101 235 238 151 +101 102 107 237 241 239 +101 107 108 238 247 240 +101 108 111 239 248 152 +102 103 107 236 243 238 +103 104 106 234 244 243 +103 106 107 242 246 241 +104 105 106 232 245 242 +105 109 106 34 246 244 +106 109 107 245 247 243 +107 109 108 246 248 239 +108 109 111 247 249 240 +109 110 111 35 36 248 +112 117 113 251 254 140 +112 118 117 252 46 250 +112 119 118 38 40 251 +113 116 114 254 255 141 +113 117 116 250 52 253 +114 116 115 253 57 138 +120 124 121 257 258 82 +120 127 124 84 264 256 +121 124 122 256 260 80 +122 123 139 260 262 77 +122 124 123 258 261 259 +123 124 125 260 263 262 +123 125 139 261 266 259 +124 126 125 264 265 261 +124 127 126 257 86 263 +125 126 128 263 92 266 +125 128 139 265 268 262 +128 129 130 98 269 268 +128 130 139 267 273 266 +129 131 130 102 270 267 +130 131 132 269 274 271 +130 132 137 270 278 272 +130 137 138 271 283 273 +130 138 139 272 73 268 +131 133 132 103 275 270 +132 133 134 274 104 276 +132 134 135 275 279 277 +132 135 136 276 69 278 +132 136 137 277 283 271 +134 141 135 280 282 276 +134 142 141 281 286 279 +134 143 142 108 286 280 +135 141 140 279 284 67 +136 138 137 72 272 278 +140 141 145 282 287 285 +140 145 146 284 136 65 +141 142 143 280 281 287 +141 143 145 286 288 284 +143 144 145 111 133 287 + +144 +3 4 +3 119 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +120 121 +120 127 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +128 129 +128 139 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +140 141 +140 146 +141 142 +142 143 +143 144 +144 145 +145 146 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_resolve_auto.txt b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_auto.txt new file mode 100644 index 0000000..e94af4b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_auto.txt @@ -0,0 +1,299 @@ +148 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 4294967295 14 +11 12 132 4294967295 20 18 +11 132 137 17 146 15 +12 13 133 4294967295 23 20 +12 133 132 19 4294967295 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 147 19 +13 136 135 22 4294967295 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 136 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 4294967295 29 +20 21 117 4294967295 35 33 +20 117 118 32 4294967295 30 +21 22 124 4294967295 37 35 +21 124 117 34 4294967295 32 +22 23 123 4294967295 38 37 +22 123 124 36 4294967295 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 139 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 4294967295 44 +30 31 131 4294967295 52 50 +30 128 126 49 141 45 +30 130 128 50 142 48 +30 131 130 47 4294967295 49 +31 32 140 4294967295 54 52 +31 140 131 51 145 47 +32 33 141 4294967295 57 54 +32 141 140 53 4294967295 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 4294967295 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 4294967295 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +119 120 136 4294967295 138 28 +120 121 122 4294967295 4294967295 138 +120 122 136 137 140 136 +122 123 125 4294967295 43 140 +122 125 136 139 4294967295 138 +126 128 127 48 4294967295 4294967295 +128 130 129 49 4294967295 4294967295 +131 138 132 144 146 4294967295 +131 139 138 145 4294967295 143 +131 140 139 52 4294967295 144 +132 138 137 143 4294967295 18 +133 135 134 23 4294967295 4294967295 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_resolve_outer.txt b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_outer.txt new file mode 100644 index 0000000..e453f8b --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_outer.txt @@ -0,0 +1,320 @@ +169 +0 1 116 4294967295 2 4294967295 +1 2 115 4294967295 3 2 +1 115 116 1 4294967295 0 +2 3 115 4294967295 5 1 +3 4 114 4294967295 6 5 +3 114 115 4 4294967295 3 +4 5 114 4294967295 8 4 +5 6 113 4294967295 9 8 +5 113 114 7 4294967295 6 +6 7 113 4294967295 11 7 +7 8 112 4294967295 13 11 +7 112 113 10 4294967295 9 +8 9 143 4294967295 14 13 +8 143 112 12 67 10 +9 10 143 4294967295 16 12 +10 11 137 4294967295 18 16 +10 137 143 15 165 14 +11 12 132 4294967295 20 18 +11 132 137 17 162 15 +12 13 133 4294967295 23 20 +12 133 132 19 157 17 +13 14 15 4294967295 4294967295 22 +13 15 136 21 25 24 +13 135 133 24 163 19 +13 136 135 22 153 23 +15 16 136 4294967295 26 22 +16 17 136 4294967295 28 25 +17 18 119 4294967295 29 28 +17 119 136 27 139 26 +18 19 119 4294967295 31 27 +19 20 118 4294967295 33 31 +19 118 119 30 138 29 +20 21 117 4294967295 35 33 +20 117 118 32 136 30 +21 22 124 4294967295 37 35 +21 124 117 34 137 32 +22 23 123 4294967295 38 37 +22 123 124 36 144 34 +23 24 123 4294967295 39 36 +24 25 123 4294967295 40 38 +25 26 123 4294967295 41 39 +26 27 123 4294967295 43 40 +27 28 125 4294967295 44 43 +27 125 123 42 145 41 +28 29 125 4294967295 46 42 +29 30 126 4294967295 48 46 +29 126 125 45 147 44 +30 31 131 4294967295 52 50 +30 128 126 49 149 45 +30 130 128 50 154 48 +30 131 130 47 155 49 +31 32 140 4294967295 54 52 +31 140 131 51 161 47 +32 33 141 4294967295 57 54 +32 141 140 53 168 51 +33 34 41 4294967295 59 56 +33 41 42 55 4294967295 57 +33 42 141 56 65 53 +34 35 40 4294967295 60 59 +34 40 41 58 4294967295 55 +35 36 40 4294967295 62 58 +36 37 39 4294967295 63 62 +36 39 40 61 4294967295 60 +37 38 39 4294967295 4294967295 61 +42 43 142 4294967295 68 65 +42 142 141 64 168 57 +43 44 112 4294967295 70 67 +43 112 143 66 13 68 +43 143 142 67 165 64 +44 45 111 4294967295 73 70 +44 111 112 69 4294967295 66 +45 46 109 4294967295 75 72 +45 109 110 71 4294967295 73 +45 110 111 72 4294967295 69 +46 47 108 4294967295 76 75 +46 108 109 74 4294967295 71 +47 48 108 4294967295 82 74 +48 49 50 4294967295 4294967295 78 +48 50 89 77 87 79 +48 89 90 78 4294967295 80 +48 90 97 79 122 81 +48 97 98 80 4294967295 82 +48 98 108 81 129 76 +50 51 73 4294967295 91 84 +50 73 74 83 4294967295 85 +50 74 81 84 110 86 +50 81 82 85 4294967295 87 +50 82 89 86 116 78 +51 52 58 4294967295 92 89 +51 58 65 88 98 90 +51 65 66 89 4294967295 91 +51 66 73 90 103 83 +52 53 58 4294967295 93 88 +53 54 58 4294967295 95 92 +54 55 57 4294967295 96 95 +54 57 58 94 4294967295 93 +55 56 57 4294967295 4294967295 94 +58 59 64 4294967295 99 98 +58 64 65 97 4294967295 89 +59 60 64 4294967295 101 97 +60 61 63 4294967295 102 101 +60 63 64 100 4294967295 99 +61 62 63 4294967295 4294967295 100 +66 67 73 4294967295 105 91 +67 68 72 4294967295 107 105 +67 72 73 104 4294967295 103 +68 69 71 4294967295 108 107 +68 71 72 106 4294967295 104 +69 70 71 4294967295 4294967295 106 +74 75 80 4294967295 111 110 +74 80 81 109 4294967295 85 +75 76 80 4294967295 113 109 +76 77 79 4294967295 114 113 +76 79 80 112 4294967295 111 +77 78 79 4294967295 4294967295 112 +82 83 88 4294967295 117 116 +82 88 89 115 4294967295 87 +83 84 88 4294967295 119 115 +84 85 87 4294967295 120 119 +84 87 88 118 4294967295 117 +85 86 87 4294967295 4294967295 118 +90 91 96 4294967295 123 122 +90 96 97 121 4294967295 80 +91 92 96 4294967295 125 121 +92 93 95 4294967295 126 125 +92 95 96 124 4294967295 123 +93 94 95 4294967295 4294967295 124 +98 99 104 4294967295 130 128 +98 104 105 127 4294967295 129 +98 105 108 128 134 82 +99 100 104 4294967295 132 127 +100 101 103 4294967295 133 132 +100 103 104 131 4294967295 130 +101 102 103 4294967295 4294967295 131 +105 106 108 4294967295 135 129 +106 107 108 4294967295 4294967295 134 +117 121 118 137 138 33 +117 124 121 35 144 136 +118 121 119 136 140 31 +119 120 136 140 142 28 +119 121 120 138 141 139 +120 121 122 140 143 142 +120 122 136 141 146 139 +121 123 122 144 145 141 +121 124 123 137 37 143 +122 123 125 143 43 146 +122 125 136 145 148 142 +125 126 127 46 149 148 +125 127 136 147 153 146 +126 128 127 48 150 147 +127 128 129 149 154 151 +127 129 134 150 158 152 +127 134 135 151 163 153 +127 135 136 152 24 148 +128 130 129 49 155 150 +129 130 131 154 50 156 +129 131 132 155 159 157 +129 132 133 156 20 158 +129 133 134 157 163 151 +131 138 132 160 162 156 +131 139 138 161 166 159 +131 140 139 52 166 160 +132 138 137 159 164 18 +133 135 134 23 152 158 +137 138 142 162 167 165 +137 142 143 164 68 16 +138 139 140 160 161 167 +138 140 142 166 168 164 +140 141 142 54 65 167 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/guitar no box__f64_auto_resolve_super.txt b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_super.txt new file mode 100644 index 0000000..7e8c77f --- /dev/null +++ b/include/CDT/tests/expected/guitar no box__f64_auto_resolve_super.txt @@ -0,0 +1,408 @@ +257 +0 1 116 1 8 6 +0 102 1 2 4294967295 0 +0 106 102 3 213 1 +0 107 106 4 217 2 +0 108 107 5 217 3 +0 109 108 6 113 4 +0 116 109 0 220 5 +1 2 115 4294967295 9 8 +1 115 116 7 220 0 +2 3 115 10 14 7 +2 14 3 4294967295 13 9 +3 4 114 12 15 14 +3 13 4 13 16 11 +3 14 13 10 38 12 +3 114 115 11 219 9 +4 5 114 16 20 11 +4 13 5 12 19 15 +5 6 113 18 21 20 +5 12 6 19 23 17 +5 13 12 16 36 18 +5 113 114 17 222 15 +6 7 113 22 25 17 +6 8 7 23 24 21 +6 12 8 18 29 22 +7 8 112 22 30 25 +7 112 113 24 223 21 +8 9 143 27 31 30 +8 10 9 28 31 26 +8 11 10 29 32 27 +8 12 11 23 34 28 +8 143 112 26 103 24 +9 10 143 27 33 26 +10 11 137 28 35 33 +10 137 143 32 253 31 +11 12 132 29 37 35 +11 132 137 34 250 32 +12 13 133 19 40 37 +12 133 132 36 245 34 +13 14 15 13 4294967295 39 +13 15 136 38 42 41 +13 135 133 41 251 36 +13 136 135 39 241 40 +15 16 136 4294967295 43 39 +16 17 136 4294967295 45 42 +17 18 119 4294967295 46 45 +17 119 136 44 227 43 +18 19 119 4294967295 48 44 +19 20 118 4294967295 50 48 +19 118 119 47 226 46 +20 21 117 4294967295 52 50 +20 117 118 49 224 47 +21 22 124 4294967295 54 52 +21 124 117 51 225 49 +22 23 123 4294967295 55 54 +22 123 124 53 232 51 +23 24 123 4294967295 56 53 +24 25 123 4294967295 57 55 +25 26 123 4294967295 58 56 +26 27 123 4294967295 60 57 +27 28 125 4294967295 61 60 +27 125 123 59 233 58 +28 29 125 62 66 59 +28 37 29 4294967295 65 61 +29 30 126 64 70 66 +29 36 30 65 69 63 +29 37 36 62 86 64 +29 126 125 63 235 61 +30 31 131 68 76 72 +30 35 31 69 75 67 +30 36 35 64 85 68 +30 128 126 71 237 63 +30 130 128 72 242 70 +30 131 130 67 243 71 +31 32 140 74 79 76 +31 34 32 75 78 73 +31 35 34 68 83 74 +31 140 131 73 249 67 +32 33 141 78 82 79 +32 34 33 74 80 77 +32 141 140 77 256 73 +33 34 41 78 84 81 +33 41 42 80 98 82 +33 42 141 81 101 77 +34 35 40 75 85 84 +34 40 41 83 96 80 +35 36 40 69 87 83 +36 37 39 65 88 87 +36 39 40 86 95 85 +37 38 39 89 91 86 +37 52 38 90 94 88 +37 53 52 4294967295 132 89 +38 45 39 92 95 88 +38 46 45 93 107 91 +38 49 46 94 112 92 +38 52 49 89 121 93 +39 45 40 91 97 87 +40 44 41 97 98 84 +40 45 44 95 105 96 +41 44 42 96 100 81 +42 43 142 100 104 101 +42 44 43 98 102 99 +42 142 141 99 256 82 +43 44 112 100 106 103 +43 112 143 102 30 104 +43 143 142 103 253 99 +44 45 111 97 109 106 +44 111 112 105 223 102 +45 46 109 92 113 108 +45 109 110 107 218 109 +45 110 111 108 221 105 +46 47 108 111 114 113 +46 48 47 112 114 110 +46 49 48 93 115 111 +46 108 109 110 5 107 +47 48 108 111 120 110 +48 49 50 112 121 116 +48 50 89 115 127 117 +48 89 90 116 192 118 +48 90 97 117 194 119 +48 97 98 118 205 120 +48 98 108 119 208 114 +49 52 50 94 123 115 +50 51 73 123 131 124 +50 52 51 121 128 122 +50 73 74 122 166 125 +50 74 81 124 168 126 +50 81 82 125 179 127 +50 82 89 126 181 116 +51 52 58 123 132 129 +51 58 65 128 141 130 +51 65 66 129 152 131 +51 66 73 130 153 122 +52 53 58 90 133 128 +53 54 58 4294967295 135 132 +54 55 57 4294967295 136 135 +54 57 58 134 137 133 +55 56 57 4294967295 4294967295 134 +57 60 58 138 140 135 +57 61 60 4294967295 143 137 +58 59 64 140 142 141 +58 60 59 137 142 139 +58 64 65 139 150 129 +59 60 64 140 144 139 +60 61 63 138 145 144 +60 63 64 143 148 142 +61 62 63 4294967295 146 143 +62 69 63 147 149 145 +62 78 69 4294967295 159 146 +63 68 64 149 151 144 +63 69 68 146 156 148 +64 67 65 151 152 141 +64 68 67 148 154 150 +65 67 66 150 153 130 +66 67 73 152 155 131 +67 68 72 151 157 155 +67 72 73 154 165 153 +68 69 71 149 158 157 +68 71 72 156 163 154 +69 70 71 159 160 156 +69 78 70 147 162 158 +70 76 71 161 164 158 +70 77 76 162 170 160 +70 78 77 159 172 161 +71 75 72 164 165 157 +71 76 75 160 169 163 +72 75 73 163 166 155 +73 75 74 165 167 124 +74 75 80 166 169 168 +74 80 81 167 178 125 +75 76 80 164 171 167 +76 77 79 161 172 171 +76 79 80 170 175 169 +77 78 79 162 173 170 +78 85 79 174 177 172 +78 86 85 4294967295 185 173 +79 83 80 176 178 171 +79 84 83 177 182 175 +79 85 84 173 183 176 +80 83 81 175 179 168 +81 83 82 178 180 126 +82 83 88 179 182 181 +82 88 89 180 190 127 +83 84 88 176 184 180 +84 85 87 177 185 184 +84 87 88 183 189 182 +85 86 87 174 186 183 +86 92 87 187 189 185 +86 93 92 188 196 186 +86 94 93 4294967295 198 187 +87 92 88 186 191 184 +88 91 89 191 192 181 +88 92 91 189 195 190 +89 91 90 190 193 117 +90 91 96 192 195 194 +90 96 97 193 203 118 +91 92 96 191 197 193 +92 93 95 187 198 197 +92 95 96 196 201 195 +93 94 95 188 199 196 +94 101 95 200 202 198 +94 102 101 4294967295 212 199 +95 100 96 202 204 197 +95 101 100 199 210 201 +96 99 97 204 205 194 +96 100 99 201 209 203 +97 99 98 203 206 119 +98 99 104 205 209 207 +98 104 105 206 215 208 +98 105 108 207 216 120 +99 100 104 204 211 206 +100 101 103 202 212 211 +100 103 104 210 214 209 +101 102 103 200 213 210 +102 106 103 2 214 212 +103 106 104 213 215 211 +104 106 105 214 216 207 +105 106 108 215 217 208 +106 107 108 3 4 216 +109 114 110 219 222 108 +109 115 114 220 14 218 +109 116 115 6 8 219 +110 113 111 222 223 109 +110 114 113 218 20 221 +111 113 112 221 25 106 +117 121 118 225 226 50 +117 124 121 52 232 224 +118 121 119 224 228 48 +119 120 136 228 230 45 +119 121 120 226 229 227 +120 121 122 228 231 230 +120 122 136 229 234 227 +121 123 122 232 233 229 +121 124 123 225 54 231 +122 123 125 231 60 234 +122 125 136 233 236 230 +125 126 127 66 237 236 +125 127 136 235 241 234 +126 128 127 70 238 235 +127 128 129 237 242 239 +127 129 134 238 246 240 +127 134 135 239 251 241 +127 135 136 240 41 236 +128 130 129 71 243 238 +129 130 131 242 72 244 +129 131 132 243 247 245 +129 132 133 244 37 246 +129 133 134 245 251 239 +131 138 132 248 250 244 +131 139 138 249 254 247 +131 140 139 76 254 248 +132 138 137 247 252 35 +133 135 134 40 240 246 +137 138 142 250 255 253 +137 142 143 252 104 33 +138 139 140 248 249 255 +138 140 142 254 256 252 +140 141 142 79 101 255 + +144 +0 1 +0 116 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +117 118 +117 124 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +125 126 +125 136 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +137 138 +137 143 +138 139 +139 140 +140 141 +141 142 +142 143 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_ignore_all.txt b/include/CDT/tests/expected/island__as-provided_ignore_all.txt new file mode 100644 index 0000000..8de776c --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_ignore_all.txt @@ -0,0 +1,293 @@ +191 +0 1 41 4294967295 9 6 +0 12 83 2 54 7 +0 13 12 3 52 1 +0 21 13 4 56 2 +0 22 21 5 68 3 +0 23 22 6 69 4 +0 41 23 0 74 5 +0 83 2 1 18 4294967295 +1 2 74 4294967295 12 11 +1 42 41 10 111 0 +1 51 42 11 114 9 +1 74 51 8 124 10 +2 75 74 13 185 8 +2 76 75 14 184 12 +2 78 76 15 186 13 +2 79 78 16 180 14 +2 81 79 17 187 15 +2 82 81 18 173 16 +2 83 82 7 174 17 +3 4 5 23 26 20 +3 5 18 19 31 21 +3 18 29 20 63 22 +3 29 97 21 85 25 +3 93 4 24 28 19 +3 94 93 25 137 23 +3 97 94 22 190 24 +4 90 5 27 33 19 +4 91 90 28 150 26 +4 93 91 23 188 27 +5 6 17 30 35 31 +5 7 6 32 34 29 +5 17 18 29 59 20 +5 89 7 33 41 30 +5 90 89 26 149 32 +6 7 16 30 39 35 +6 16 17 34 59 29 +7 8 9 40 42 37 +7 9 10 36 46 38 +7 10 15 37 50 39 +7 15 16 38 57 34 +7 88 8 41 45 36 +7 89 88 32 159 40 +8 85 9 43 48 36 +8 86 85 44 170 42 +8 87 86 45 162 43 +8 88 87 40 163 44 +9 83 10 47 51 37 +9 84 83 48 175 46 +9 85 84 42 169 47 +10 11 14 51 53 50 +10 14 15 49 55 38 +10 83 11 46 54 49 +11 12 13 54 2 53 +11 13 14 52 55 49 +11 83 12 51 1 52 +13 15 14 56 50 53 +13 21 15 3 58 55 +15 19 16 58 60 39 +15 21 19 56 64 57 +16 18 17 60 31 35 +16 19 18 57 61 59 +18 19 20 60 64 62 +18 20 28 61 67 63 +18 28 29 62 83 21 +19 21 20 58 65 61 +20 21 24 64 68 66 +20 24 25 65 70 67 +20 25 28 66 76 62 +21 22 24 4 69 65 +22 23 24 5 70 68 +23 25 24 71 66 69 +23 36 25 72 77 70 +23 39 36 73 103 71 +23 40 39 74 109 72 +23 41 40 6 111 73 +25 26 27 77 78 76 +25 27 28 75 81 67 +25 36 26 71 80 75 +26 34 27 79 82 75 +26 35 34 80 98 78 +26 36 35 77 100 79 +27 33 28 82 84 76 +27 34 33 78 92 81 +28 32 29 84 86 63 +28 33 32 81 92 83 +29 30 97 86 89 22 +29 32 30 83 88 85 +30 31 96 88 91 89 +30 32 31 86 90 87 +30 96 97 87 190 85 +31 32 95 88 97 91 +31 95 96 90 189 87 +32 33 34 84 82 93 +32 34 48 92 99 94 +32 48 49 93 119 95 +32 49 53 94 123 96 +32 53 54 95 126 97 +32 54 95 96 127 90 +34 35 47 79 102 99 +34 47 48 98 119 93 +35 36 37 80 103 101 +35 37 46 100 106 102 +35 46 47 101 118 98 +36 39 37 72 105 100 +37 38 45 105 108 106 +37 39 38 103 107 104 +37 45 46 104 117 101 +38 39 44 105 110 108 +38 44 45 107 117 104 +39 40 43 73 112 110 +39 43 44 109 115 107 +40 41 42 74 9 112 +40 42 43 111 113 109 +42 50 43 114 116 112 +42 51 50 10 121 113 +43 47 44 116 118 110 +43 50 47 113 120 115 +44 46 45 118 106 108 +44 47 46 115 102 117 +47 49 48 120 94 99 +47 50 49 116 121 119 +49 50 51 120 114 122 +49 51 52 121 124 123 +49 52 53 122 125 95 +51 74 52 11 125 122 +52 74 53 124 126 123 +53 74 54 125 128 96 +54 55 95 128 129 97 +54 74 55 126 130 127 +55 56 95 130 133 127 +55 74 56 128 132 129 +56 57 94 132 137 133 +56 74 57 130 136 131 +56 94 95 131 189 129 +57 58 93 135 138 137 +57 73 58 136 139 134 +57 74 73 132 185 135 +57 93 94 134 24 131 +58 59 93 139 145 134 +58 73 59 135 144 138 +59 60 92 141 147 145 +59 61 60 142 146 140 +59 62 61 143 148 141 +59 72 62 144 153 142 +59 73 72 139 183 143 +59 92 93 140 188 138 +60 61 91 141 150 147 +60 91 92 146 188 140 +61 62 89 142 151 149 +61 89 90 148 33 150 +61 90 91 149 27 146 +62 63 89 152 159 148 +62 71 63 153 158 151 +62 72 71 143 181 152 +63 64 88 155 163 159 +63 65 64 156 160 154 +63 66 65 157 164 155 +63 70 66 158 166 156 +63 71 70 152 178 157 +63 88 89 154 41 151 +64 65 67 155 164 161 +64 67 86 160 170 162 +64 86 87 161 44 163 +64 87 88 162 45 154 +65 66 67 156 165 160 +66 69 67 166 168 164 +66 70 69 157 176 165 +67 68 84 168 175 169 +67 69 68 165 171 167 +67 84 85 167 48 170 +67 85 86 169 43 161 +68 69 80 168 177 172 +68 80 81 171 187 173 +68 81 82 172 17 174 +68 82 83 173 18 175 +68 83 84 174 47 167 +69 70 79 166 180 177 +69 79 80 176 187 171 +70 71 77 158 182 179 +70 77 78 178 186 180 +70 78 79 179 15 176 +71 72 76 153 184 182 +71 76 77 181 186 178 +72 73 75 144 185 184 +72 75 76 183 13 181 +73 74 75 136 12 183 +76 78 77 14 179 182 +79 81 80 16 172 177 +91 93 92 28 145 147 +94 96 95 190 91 133 +94 97 96 25 89 189 + +95 +3 4 +3 97 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_ignore_auto.txt b/include/CDT/tests/expected/island__as-provided_ignore_auto.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_ignore_auto.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_ignore_outer.txt b/include/CDT/tests/expected/island__as-provided_ignore_outer.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_ignore_outer.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_ignore_super.txt b/include/CDT/tests/expected/island__as-provided_ignore_super.txt new file mode 100644 index 0000000..ed80bae --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_ignore_super.txt @@ -0,0 +1,274 @@ +172 +0 1 2 4 7 1 +0 2 15 0 12 2 +0 15 26 1 44 3 +0 26 94 2 66 6 +0 90 1 5 9 0 +0 91 90 6 118 4 +0 94 91 3 171 5 +1 87 2 8 14 0 +1 88 87 9 131 7 +1 90 88 4 169 8 +2 3 14 11 16 12 +2 4 3 13 15 10 +2 14 15 10 40 1 +2 86 4 14 22 11 +2 87 86 7 130 13 +3 4 13 11 20 16 +3 13 14 15 40 10 +4 5 6 21 23 18 +4 6 7 17 27 19 +4 7 12 18 31 20 +4 12 13 19 38 15 +4 85 5 22 26 17 +4 86 85 13 140 21 +5 82 6 24 29 17 +5 83 82 25 151 23 +5 84 83 26 143 24 +5 85 84 21 144 25 +6 80 7 28 32 18 +6 81 80 29 156 27 +6 82 81 23 150 28 +7 8 11 32 34 31 +7 11 12 30 36 19 +7 80 8 27 35 30 +8 9 10 35 4294967295 34 +8 10 11 33 36 30 +8 80 9 32 4294967295 33 +10 12 11 37 31 34 +10 18 12 4294967295 39 36 +12 16 13 39 41 20 +12 18 16 37 45 38 +13 15 14 41 12 16 +13 16 15 38 42 40 +15 16 17 41 45 43 +15 17 25 42 48 44 +15 25 26 43 64 2 +16 18 17 39 46 42 +17 18 21 45 49 47 +17 21 22 46 51 48 +17 22 25 47 57 43 +18 19 21 4294967295 50 46 +19 20 21 4294967295 51 49 +20 22 21 52 47 50 +20 33 22 53 58 51 +20 36 33 54 84 52 +20 37 36 55 90 53 +20 38 37 4294967295 92 54 +22 23 24 58 59 57 +22 24 25 56 62 48 +22 33 23 52 61 56 +23 31 24 60 63 56 +23 32 31 61 79 59 +23 33 32 58 81 60 +24 30 25 63 65 57 +24 31 30 59 73 62 +25 29 26 65 67 44 +25 30 29 62 73 64 +26 27 94 67 70 3 +26 29 27 64 69 66 +27 28 93 69 72 70 +27 29 28 67 71 68 +27 93 94 68 171 66 +28 29 92 69 78 72 +28 92 93 71 170 68 +29 30 31 65 63 74 +29 31 45 73 80 75 +29 45 46 74 100 76 +29 46 50 75 104 77 +29 50 51 76 107 78 +29 51 92 77 108 71 +31 32 44 60 83 80 +31 44 45 79 100 74 +32 33 34 61 84 82 +32 34 43 81 87 83 +32 43 44 82 99 79 +33 36 34 53 86 81 +34 35 42 86 89 87 +34 36 35 84 88 85 +34 42 43 85 98 82 +35 36 41 86 91 89 +35 41 42 88 98 85 +36 37 40 54 93 91 +36 40 41 90 96 88 +37 38 39 55 4294967295 93 +37 39 40 92 94 90 +39 47 40 95 97 93 +39 48 47 4294967295 102 94 +40 44 41 97 99 91 +40 47 44 94 101 96 +41 43 42 99 87 89 +41 44 43 96 83 98 +44 46 45 101 75 80 +44 47 46 97 102 100 +46 47 48 101 95 103 +46 48 49 102 105 104 +46 49 50 103 106 76 +48 71 49 4294967295 106 103 +49 71 50 105 107 104 +50 71 51 106 109 77 +51 52 92 109 110 78 +51 71 52 107 111 108 +52 53 92 111 114 108 +52 71 53 109 113 110 +53 54 91 113 118 114 +53 71 54 111 117 112 +53 91 92 112 170 110 +54 55 90 116 119 118 +54 70 55 117 120 115 +54 71 70 113 166 116 +54 90 91 115 5 112 +55 56 90 120 126 115 +55 70 56 116 125 119 +56 57 89 122 128 126 +56 58 57 123 127 121 +56 59 58 124 129 122 +56 69 59 125 134 123 +56 70 69 120 164 124 +56 89 90 121 169 119 +57 58 88 122 131 128 +57 88 89 127 169 121 +58 59 86 123 132 130 +58 86 87 129 14 131 +58 87 88 130 8 127 +59 60 86 133 140 129 +59 68 60 134 139 132 +59 69 68 124 162 133 +60 61 85 136 144 140 +60 62 61 137 141 135 +60 63 62 138 145 136 +60 67 63 139 147 137 +60 68 67 133 159 138 +60 85 86 135 22 132 +61 62 64 136 145 142 +61 64 83 141 151 143 +61 83 84 142 25 144 +61 84 85 143 26 135 +62 63 64 137 146 141 +63 66 64 147 149 145 +63 67 66 138 157 146 +64 65 81 149 156 150 +64 66 65 146 152 148 +64 81 82 148 29 151 +64 82 83 150 24 142 +65 66 77 149 158 153 +65 77 78 152 168 154 +65 78 79 153 4294967295 155 +65 79 80 154 4294967295 156 +65 80 81 155 28 148 +66 67 76 147 161 158 +66 76 77 157 168 152 +67 68 74 139 163 160 +67 74 75 159 167 161 +67 75 76 160 4294967295 157 +68 69 73 134 165 163 +68 73 74 162 167 159 +69 70 72 125 166 165 +69 72 73 164 4294967295 162 +70 71 72 117 4294967295 164 +73 75 74 4294967295 160 163 +76 78 77 4294967295 153 158 +88 90 89 9 126 128 +91 93 92 171 72 114 +91 94 93 6 70 170 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_resolve_all.txt b/include/CDT/tests/expected/island__as-provided_resolve_all.txt new file mode 100644 index 0000000..8de776c --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_resolve_all.txt @@ -0,0 +1,293 @@ +191 +0 1 41 4294967295 9 6 +0 12 83 2 54 7 +0 13 12 3 52 1 +0 21 13 4 56 2 +0 22 21 5 68 3 +0 23 22 6 69 4 +0 41 23 0 74 5 +0 83 2 1 18 4294967295 +1 2 74 4294967295 12 11 +1 42 41 10 111 0 +1 51 42 11 114 9 +1 74 51 8 124 10 +2 75 74 13 185 8 +2 76 75 14 184 12 +2 78 76 15 186 13 +2 79 78 16 180 14 +2 81 79 17 187 15 +2 82 81 18 173 16 +2 83 82 7 174 17 +3 4 5 23 26 20 +3 5 18 19 31 21 +3 18 29 20 63 22 +3 29 97 21 85 25 +3 93 4 24 28 19 +3 94 93 25 137 23 +3 97 94 22 190 24 +4 90 5 27 33 19 +4 91 90 28 150 26 +4 93 91 23 188 27 +5 6 17 30 35 31 +5 7 6 32 34 29 +5 17 18 29 59 20 +5 89 7 33 41 30 +5 90 89 26 149 32 +6 7 16 30 39 35 +6 16 17 34 59 29 +7 8 9 40 42 37 +7 9 10 36 46 38 +7 10 15 37 50 39 +7 15 16 38 57 34 +7 88 8 41 45 36 +7 89 88 32 159 40 +8 85 9 43 48 36 +8 86 85 44 170 42 +8 87 86 45 162 43 +8 88 87 40 163 44 +9 83 10 47 51 37 +9 84 83 48 175 46 +9 85 84 42 169 47 +10 11 14 51 53 50 +10 14 15 49 55 38 +10 83 11 46 54 49 +11 12 13 54 2 53 +11 13 14 52 55 49 +11 83 12 51 1 52 +13 15 14 56 50 53 +13 21 15 3 58 55 +15 19 16 58 60 39 +15 21 19 56 64 57 +16 18 17 60 31 35 +16 19 18 57 61 59 +18 19 20 60 64 62 +18 20 28 61 67 63 +18 28 29 62 83 21 +19 21 20 58 65 61 +20 21 24 64 68 66 +20 24 25 65 70 67 +20 25 28 66 76 62 +21 22 24 4 69 65 +22 23 24 5 70 68 +23 25 24 71 66 69 +23 36 25 72 77 70 +23 39 36 73 103 71 +23 40 39 74 109 72 +23 41 40 6 111 73 +25 26 27 77 78 76 +25 27 28 75 81 67 +25 36 26 71 80 75 +26 34 27 79 82 75 +26 35 34 80 98 78 +26 36 35 77 100 79 +27 33 28 82 84 76 +27 34 33 78 92 81 +28 32 29 84 86 63 +28 33 32 81 92 83 +29 30 97 86 89 22 +29 32 30 83 88 85 +30 31 96 88 91 89 +30 32 31 86 90 87 +30 96 97 87 190 85 +31 32 95 88 97 91 +31 95 96 90 189 87 +32 33 34 84 82 93 +32 34 48 92 99 94 +32 48 49 93 119 95 +32 49 53 94 123 96 +32 53 54 95 126 97 +32 54 95 96 127 90 +34 35 47 79 102 99 +34 47 48 98 119 93 +35 36 37 80 103 101 +35 37 46 100 106 102 +35 46 47 101 118 98 +36 39 37 72 105 100 +37 38 45 105 108 106 +37 39 38 103 107 104 +37 45 46 104 117 101 +38 39 44 105 110 108 +38 44 45 107 117 104 +39 40 43 73 112 110 +39 43 44 109 115 107 +40 41 42 74 9 112 +40 42 43 111 113 109 +42 50 43 114 116 112 +42 51 50 10 121 113 +43 47 44 116 118 110 +43 50 47 113 120 115 +44 46 45 118 106 108 +44 47 46 115 102 117 +47 49 48 120 94 99 +47 50 49 116 121 119 +49 50 51 120 114 122 +49 51 52 121 124 123 +49 52 53 122 125 95 +51 74 52 11 125 122 +52 74 53 124 126 123 +53 74 54 125 128 96 +54 55 95 128 129 97 +54 74 55 126 130 127 +55 56 95 130 133 127 +55 74 56 128 132 129 +56 57 94 132 137 133 +56 74 57 130 136 131 +56 94 95 131 189 129 +57 58 93 135 138 137 +57 73 58 136 139 134 +57 74 73 132 185 135 +57 93 94 134 24 131 +58 59 93 139 145 134 +58 73 59 135 144 138 +59 60 92 141 147 145 +59 61 60 142 146 140 +59 62 61 143 148 141 +59 72 62 144 153 142 +59 73 72 139 183 143 +59 92 93 140 188 138 +60 61 91 141 150 147 +60 91 92 146 188 140 +61 62 89 142 151 149 +61 89 90 148 33 150 +61 90 91 149 27 146 +62 63 89 152 159 148 +62 71 63 153 158 151 +62 72 71 143 181 152 +63 64 88 155 163 159 +63 65 64 156 160 154 +63 66 65 157 164 155 +63 70 66 158 166 156 +63 71 70 152 178 157 +63 88 89 154 41 151 +64 65 67 155 164 161 +64 67 86 160 170 162 +64 86 87 161 44 163 +64 87 88 162 45 154 +65 66 67 156 165 160 +66 69 67 166 168 164 +66 70 69 157 176 165 +67 68 84 168 175 169 +67 69 68 165 171 167 +67 84 85 167 48 170 +67 85 86 169 43 161 +68 69 80 168 177 172 +68 80 81 171 187 173 +68 81 82 172 17 174 +68 82 83 173 18 175 +68 83 84 174 47 167 +69 70 79 166 180 177 +69 79 80 176 187 171 +70 71 77 158 182 179 +70 77 78 178 186 180 +70 78 79 179 15 176 +71 72 76 153 184 182 +71 76 77 181 186 178 +72 73 75 144 185 184 +72 75 76 183 13 181 +73 74 75 136 12 183 +76 78 77 14 179 182 +79 81 80 16 172 177 +91 93 92 28 145 147 +94 96 95 190 91 133 +94 97 96 25 89 189 + +95 +3 4 +3 97 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_resolve_auto.txt b/include/CDT/tests/expected/island__as-provided_resolve_auto.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_resolve_auto.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_resolve_outer.txt b/include/CDT/tests/expected/island__as-provided_resolve_outer.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_resolve_outer.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__as-provided_resolve_super.txt b/include/CDT/tests/expected/island__as-provided_resolve_super.txt new file mode 100644 index 0000000..ed80bae --- /dev/null +++ b/include/CDT/tests/expected/island__as-provided_resolve_super.txt @@ -0,0 +1,274 @@ +172 +0 1 2 4 7 1 +0 2 15 0 12 2 +0 15 26 1 44 3 +0 26 94 2 66 6 +0 90 1 5 9 0 +0 91 90 6 118 4 +0 94 91 3 171 5 +1 87 2 8 14 0 +1 88 87 9 131 7 +1 90 88 4 169 8 +2 3 14 11 16 12 +2 4 3 13 15 10 +2 14 15 10 40 1 +2 86 4 14 22 11 +2 87 86 7 130 13 +3 4 13 11 20 16 +3 13 14 15 40 10 +4 5 6 21 23 18 +4 6 7 17 27 19 +4 7 12 18 31 20 +4 12 13 19 38 15 +4 85 5 22 26 17 +4 86 85 13 140 21 +5 82 6 24 29 17 +5 83 82 25 151 23 +5 84 83 26 143 24 +5 85 84 21 144 25 +6 80 7 28 32 18 +6 81 80 29 156 27 +6 82 81 23 150 28 +7 8 11 32 34 31 +7 11 12 30 36 19 +7 80 8 27 35 30 +8 9 10 35 4294967295 34 +8 10 11 33 36 30 +8 80 9 32 4294967295 33 +10 12 11 37 31 34 +10 18 12 4294967295 39 36 +12 16 13 39 41 20 +12 18 16 37 45 38 +13 15 14 41 12 16 +13 16 15 38 42 40 +15 16 17 41 45 43 +15 17 25 42 48 44 +15 25 26 43 64 2 +16 18 17 39 46 42 +17 18 21 45 49 47 +17 21 22 46 51 48 +17 22 25 47 57 43 +18 19 21 4294967295 50 46 +19 20 21 4294967295 51 49 +20 22 21 52 47 50 +20 33 22 53 58 51 +20 36 33 54 84 52 +20 37 36 55 90 53 +20 38 37 4294967295 92 54 +22 23 24 58 59 57 +22 24 25 56 62 48 +22 33 23 52 61 56 +23 31 24 60 63 56 +23 32 31 61 79 59 +23 33 32 58 81 60 +24 30 25 63 65 57 +24 31 30 59 73 62 +25 29 26 65 67 44 +25 30 29 62 73 64 +26 27 94 67 70 3 +26 29 27 64 69 66 +27 28 93 69 72 70 +27 29 28 67 71 68 +27 93 94 68 171 66 +28 29 92 69 78 72 +28 92 93 71 170 68 +29 30 31 65 63 74 +29 31 45 73 80 75 +29 45 46 74 100 76 +29 46 50 75 104 77 +29 50 51 76 107 78 +29 51 92 77 108 71 +31 32 44 60 83 80 +31 44 45 79 100 74 +32 33 34 61 84 82 +32 34 43 81 87 83 +32 43 44 82 99 79 +33 36 34 53 86 81 +34 35 42 86 89 87 +34 36 35 84 88 85 +34 42 43 85 98 82 +35 36 41 86 91 89 +35 41 42 88 98 85 +36 37 40 54 93 91 +36 40 41 90 96 88 +37 38 39 55 4294967295 93 +37 39 40 92 94 90 +39 47 40 95 97 93 +39 48 47 4294967295 102 94 +40 44 41 97 99 91 +40 47 44 94 101 96 +41 43 42 99 87 89 +41 44 43 96 83 98 +44 46 45 101 75 80 +44 47 46 97 102 100 +46 47 48 101 95 103 +46 48 49 102 105 104 +46 49 50 103 106 76 +48 71 49 4294967295 106 103 +49 71 50 105 107 104 +50 71 51 106 109 77 +51 52 92 109 110 78 +51 71 52 107 111 108 +52 53 92 111 114 108 +52 71 53 109 113 110 +53 54 91 113 118 114 +53 71 54 111 117 112 +53 91 92 112 170 110 +54 55 90 116 119 118 +54 70 55 117 120 115 +54 71 70 113 166 116 +54 90 91 115 5 112 +55 56 90 120 126 115 +55 70 56 116 125 119 +56 57 89 122 128 126 +56 58 57 123 127 121 +56 59 58 124 129 122 +56 69 59 125 134 123 +56 70 69 120 164 124 +56 89 90 121 169 119 +57 58 88 122 131 128 +57 88 89 127 169 121 +58 59 86 123 132 130 +58 86 87 129 14 131 +58 87 88 130 8 127 +59 60 86 133 140 129 +59 68 60 134 139 132 +59 69 68 124 162 133 +60 61 85 136 144 140 +60 62 61 137 141 135 +60 63 62 138 145 136 +60 67 63 139 147 137 +60 68 67 133 159 138 +60 85 86 135 22 132 +61 62 64 136 145 142 +61 64 83 141 151 143 +61 83 84 142 25 144 +61 84 85 143 26 135 +62 63 64 137 146 141 +63 66 64 147 149 145 +63 67 66 138 157 146 +64 65 81 149 156 150 +64 66 65 146 152 148 +64 81 82 148 29 151 +64 82 83 150 24 142 +65 66 77 149 158 153 +65 77 78 152 168 154 +65 78 79 153 4294967295 155 +65 79 80 154 4294967295 156 +65 80 81 155 28 148 +66 67 76 147 161 158 +66 76 77 157 168 152 +67 68 74 139 163 160 +67 74 75 159 167 161 +67 75 76 160 4294967295 157 +68 69 73 134 165 163 +68 73 74 162 167 159 +69 70 72 125 166 165 +69 72 73 164 4294967295 162 +70 71 72 117 4294967295 164 +73 75 74 4294967295 160 163 +76 78 77 4294967295 153 158 +88 90 89 9 126 128 +91 93 92 171 72 114 +91 94 93 6 70 170 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_ignore_all.txt b/include/CDT/tests/expected/island__auto_ignore_all.txt new file mode 100644 index 0000000..258dad0 --- /dev/null +++ b/include/CDT/tests/expected/island__auto_ignore_all.txt @@ -0,0 +1,293 @@ +191 +0 1 23 4294967295 8 5 +0 12 83 2 54 6 +0 13 12 3 52 1 +0 21 13 4 56 2 +0 22 21 5 68 3 +0 23 22 0 69 4 +0 83 2 1 18 4294967295 +1 2 74 4294967295 12 11 +1 41 23 9 74 0 +1 42 41 10 111 8 +1 51 42 11 114 9 +1 74 51 7 124 10 +2 75 74 13 185 7 +2 76 75 14 184 12 +2 78 76 15 186 13 +2 79 78 16 180 14 +2 81 79 17 187 15 +2 82 81 18 173 16 +2 83 82 6 174 17 +3 4 5 23 26 20 +3 5 18 19 31 21 +3 18 29 20 63 22 +3 29 97 21 85 25 +3 93 4 24 28 19 +3 94 93 25 137 23 +3 97 94 22 190 24 +4 90 5 27 33 19 +4 91 90 28 150 26 +4 93 91 23 188 27 +5 6 17 30 35 31 +5 7 6 32 34 29 +5 17 18 29 59 20 +5 89 7 33 41 30 +5 90 89 26 149 32 +6 7 16 30 39 35 +6 16 17 34 59 29 +7 8 9 40 42 37 +7 9 10 36 46 38 +7 10 15 37 50 39 +7 15 16 38 57 34 +7 88 8 41 45 36 +7 89 88 32 159 40 +8 85 9 43 48 36 +8 86 85 44 170 42 +8 87 86 45 162 43 +8 88 87 40 163 44 +9 83 10 47 51 37 +9 84 83 48 175 46 +9 85 84 42 169 47 +10 11 14 51 53 50 +10 14 15 49 55 38 +10 83 11 46 54 49 +11 12 13 54 2 53 +11 13 14 52 55 49 +11 83 12 51 1 52 +13 15 14 56 50 53 +13 21 15 3 58 55 +15 19 16 58 60 39 +15 21 19 56 64 57 +16 18 17 60 31 35 +16 19 18 57 61 59 +18 19 20 60 64 62 +18 20 28 61 67 63 +18 28 29 62 83 21 +19 21 20 58 65 61 +20 21 24 64 68 66 +20 24 25 65 70 67 +20 25 28 66 76 62 +21 22 24 4 69 65 +22 23 24 5 70 68 +23 25 24 71 66 69 +23 36 25 72 77 70 +23 39 36 73 103 71 +23 40 39 74 109 72 +23 41 40 8 111 73 +25 26 27 77 78 76 +25 27 28 75 81 67 +25 36 26 71 80 75 +26 34 27 79 82 75 +26 35 34 80 98 78 +26 36 35 77 100 79 +27 33 28 82 84 76 +27 34 33 78 92 81 +28 32 29 84 86 63 +28 33 32 81 92 83 +29 30 97 86 89 22 +29 32 30 83 88 85 +30 31 96 88 91 89 +30 32 31 86 90 87 +30 96 97 87 190 85 +31 32 95 88 97 91 +31 95 96 90 189 87 +32 33 34 84 82 93 +32 34 48 92 99 94 +32 48 49 93 119 95 +32 49 53 94 123 96 +32 53 54 95 126 97 +32 54 95 96 127 90 +34 35 47 79 102 99 +34 47 48 98 119 93 +35 36 37 80 103 101 +35 37 46 100 106 102 +35 46 47 101 118 98 +36 39 37 72 105 100 +37 38 45 105 108 106 +37 39 38 103 107 104 +37 45 46 104 117 101 +38 39 44 105 110 108 +38 44 45 107 117 104 +39 40 43 73 112 110 +39 43 44 109 115 107 +40 41 42 74 9 112 +40 42 43 111 113 109 +42 50 43 114 116 112 +42 51 50 10 121 113 +43 47 44 116 118 110 +43 50 47 113 120 115 +44 46 45 118 106 108 +44 47 46 115 102 117 +47 49 48 120 94 99 +47 50 49 116 121 119 +49 50 51 120 114 122 +49 51 52 121 124 123 +49 52 53 122 125 95 +51 74 52 11 125 122 +52 74 53 124 126 123 +53 74 54 125 128 96 +54 55 95 128 129 97 +54 74 55 126 130 127 +55 56 95 130 133 127 +55 74 56 128 132 129 +56 57 94 132 137 133 +56 74 57 130 136 131 +56 94 95 131 189 129 +57 58 93 135 138 137 +57 73 58 136 139 134 +57 74 73 132 185 135 +57 93 94 134 24 131 +58 59 93 139 145 134 +58 73 59 135 144 138 +59 60 92 141 147 145 +59 61 60 142 146 140 +59 62 61 143 148 141 +59 72 62 144 153 142 +59 73 72 139 183 143 +59 92 93 140 188 138 +60 61 91 141 150 147 +60 91 92 146 188 140 +61 62 89 142 151 149 +61 89 90 148 33 150 +61 90 91 149 27 146 +62 63 89 152 159 148 +62 71 63 153 158 151 +62 72 71 143 181 152 +63 64 88 155 163 159 +63 65 64 156 160 154 +63 66 65 157 164 155 +63 70 66 158 166 156 +63 71 70 152 178 157 +63 88 89 154 41 151 +64 65 67 155 164 161 +64 67 86 160 170 162 +64 86 87 161 44 163 +64 87 88 162 45 154 +65 66 67 156 165 160 +66 69 67 166 168 164 +66 70 69 157 176 165 +67 68 84 168 175 169 +67 69 68 165 171 167 +67 84 85 167 48 170 +67 85 86 169 43 161 +68 69 80 168 177 172 +68 80 81 171 187 173 +68 81 82 172 17 174 +68 82 83 173 18 175 +68 83 84 174 47 167 +69 70 79 166 180 177 +69 79 80 176 187 171 +70 71 77 158 182 179 +70 77 78 178 186 180 +70 78 79 179 15 176 +71 72 76 153 184 182 +71 76 77 181 186 178 +72 73 75 144 185 184 +72 75 76 183 13 181 +73 74 75 136 12 183 +76 78 77 14 179 182 +79 81 80 16 172 177 +91 93 92 28 145 147 +94 96 95 190 91 133 +94 97 96 25 89 189 + +95 +3 4 +3 97 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_ignore_auto.txt b/include/CDT/tests/expected/island__auto_ignore_auto.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__auto_ignore_auto.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_ignore_outer.txt b/include/CDT/tests/expected/island__auto_ignore_outer.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__auto_ignore_outer.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_ignore_super.txt b/include/CDT/tests/expected/island__auto_ignore_super.txt new file mode 100644 index 0000000..ed80bae --- /dev/null +++ b/include/CDT/tests/expected/island__auto_ignore_super.txt @@ -0,0 +1,274 @@ +172 +0 1 2 4 7 1 +0 2 15 0 12 2 +0 15 26 1 44 3 +0 26 94 2 66 6 +0 90 1 5 9 0 +0 91 90 6 118 4 +0 94 91 3 171 5 +1 87 2 8 14 0 +1 88 87 9 131 7 +1 90 88 4 169 8 +2 3 14 11 16 12 +2 4 3 13 15 10 +2 14 15 10 40 1 +2 86 4 14 22 11 +2 87 86 7 130 13 +3 4 13 11 20 16 +3 13 14 15 40 10 +4 5 6 21 23 18 +4 6 7 17 27 19 +4 7 12 18 31 20 +4 12 13 19 38 15 +4 85 5 22 26 17 +4 86 85 13 140 21 +5 82 6 24 29 17 +5 83 82 25 151 23 +5 84 83 26 143 24 +5 85 84 21 144 25 +6 80 7 28 32 18 +6 81 80 29 156 27 +6 82 81 23 150 28 +7 8 11 32 34 31 +7 11 12 30 36 19 +7 80 8 27 35 30 +8 9 10 35 4294967295 34 +8 10 11 33 36 30 +8 80 9 32 4294967295 33 +10 12 11 37 31 34 +10 18 12 4294967295 39 36 +12 16 13 39 41 20 +12 18 16 37 45 38 +13 15 14 41 12 16 +13 16 15 38 42 40 +15 16 17 41 45 43 +15 17 25 42 48 44 +15 25 26 43 64 2 +16 18 17 39 46 42 +17 18 21 45 49 47 +17 21 22 46 51 48 +17 22 25 47 57 43 +18 19 21 4294967295 50 46 +19 20 21 4294967295 51 49 +20 22 21 52 47 50 +20 33 22 53 58 51 +20 36 33 54 84 52 +20 37 36 55 90 53 +20 38 37 4294967295 92 54 +22 23 24 58 59 57 +22 24 25 56 62 48 +22 33 23 52 61 56 +23 31 24 60 63 56 +23 32 31 61 79 59 +23 33 32 58 81 60 +24 30 25 63 65 57 +24 31 30 59 73 62 +25 29 26 65 67 44 +25 30 29 62 73 64 +26 27 94 67 70 3 +26 29 27 64 69 66 +27 28 93 69 72 70 +27 29 28 67 71 68 +27 93 94 68 171 66 +28 29 92 69 78 72 +28 92 93 71 170 68 +29 30 31 65 63 74 +29 31 45 73 80 75 +29 45 46 74 100 76 +29 46 50 75 104 77 +29 50 51 76 107 78 +29 51 92 77 108 71 +31 32 44 60 83 80 +31 44 45 79 100 74 +32 33 34 61 84 82 +32 34 43 81 87 83 +32 43 44 82 99 79 +33 36 34 53 86 81 +34 35 42 86 89 87 +34 36 35 84 88 85 +34 42 43 85 98 82 +35 36 41 86 91 89 +35 41 42 88 98 85 +36 37 40 54 93 91 +36 40 41 90 96 88 +37 38 39 55 4294967295 93 +37 39 40 92 94 90 +39 47 40 95 97 93 +39 48 47 4294967295 102 94 +40 44 41 97 99 91 +40 47 44 94 101 96 +41 43 42 99 87 89 +41 44 43 96 83 98 +44 46 45 101 75 80 +44 47 46 97 102 100 +46 47 48 101 95 103 +46 48 49 102 105 104 +46 49 50 103 106 76 +48 71 49 4294967295 106 103 +49 71 50 105 107 104 +50 71 51 106 109 77 +51 52 92 109 110 78 +51 71 52 107 111 108 +52 53 92 111 114 108 +52 71 53 109 113 110 +53 54 91 113 118 114 +53 71 54 111 117 112 +53 91 92 112 170 110 +54 55 90 116 119 118 +54 70 55 117 120 115 +54 71 70 113 166 116 +54 90 91 115 5 112 +55 56 90 120 126 115 +55 70 56 116 125 119 +56 57 89 122 128 126 +56 58 57 123 127 121 +56 59 58 124 129 122 +56 69 59 125 134 123 +56 70 69 120 164 124 +56 89 90 121 169 119 +57 58 88 122 131 128 +57 88 89 127 169 121 +58 59 86 123 132 130 +58 86 87 129 14 131 +58 87 88 130 8 127 +59 60 86 133 140 129 +59 68 60 134 139 132 +59 69 68 124 162 133 +60 61 85 136 144 140 +60 62 61 137 141 135 +60 63 62 138 145 136 +60 67 63 139 147 137 +60 68 67 133 159 138 +60 85 86 135 22 132 +61 62 64 136 145 142 +61 64 83 141 151 143 +61 83 84 142 25 144 +61 84 85 143 26 135 +62 63 64 137 146 141 +63 66 64 147 149 145 +63 67 66 138 157 146 +64 65 81 149 156 150 +64 66 65 146 152 148 +64 81 82 148 29 151 +64 82 83 150 24 142 +65 66 77 149 158 153 +65 77 78 152 168 154 +65 78 79 153 4294967295 155 +65 79 80 154 4294967295 156 +65 80 81 155 28 148 +66 67 76 147 161 158 +66 76 77 157 168 152 +67 68 74 139 163 160 +67 74 75 159 167 161 +67 75 76 160 4294967295 157 +68 69 73 134 165 163 +68 73 74 162 167 159 +69 70 72 125 166 165 +69 72 73 164 4294967295 162 +70 71 72 117 4294967295 164 +73 75 74 4294967295 160 163 +76 78 77 4294967295 153 158 +88 90 89 9 126 128 +91 93 92 171 72 114 +91 94 93 6 70 170 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_resolve_all.txt b/include/CDT/tests/expected/island__auto_resolve_all.txt new file mode 100644 index 0000000..258dad0 --- /dev/null +++ b/include/CDT/tests/expected/island__auto_resolve_all.txt @@ -0,0 +1,293 @@ +191 +0 1 23 4294967295 8 5 +0 12 83 2 54 6 +0 13 12 3 52 1 +0 21 13 4 56 2 +0 22 21 5 68 3 +0 23 22 0 69 4 +0 83 2 1 18 4294967295 +1 2 74 4294967295 12 11 +1 41 23 9 74 0 +1 42 41 10 111 8 +1 51 42 11 114 9 +1 74 51 7 124 10 +2 75 74 13 185 7 +2 76 75 14 184 12 +2 78 76 15 186 13 +2 79 78 16 180 14 +2 81 79 17 187 15 +2 82 81 18 173 16 +2 83 82 6 174 17 +3 4 5 23 26 20 +3 5 18 19 31 21 +3 18 29 20 63 22 +3 29 97 21 85 25 +3 93 4 24 28 19 +3 94 93 25 137 23 +3 97 94 22 190 24 +4 90 5 27 33 19 +4 91 90 28 150 26 +4 93 91 23 188 27 +5 6 17 30 35 31 +5 7 6 32 34 29 +5 17 18 29 59 20 +5 89 7 33 41 30 +5 90 89 26 149 32 +6 7 16 30 39 35 +6 16 17 34 59 29 +7 8 9 40 42 37 +7 9 10 36 46 38 +7 10 15 37 50 39 +7 15 16 38 57 34 +7 88 8 41 45 36 +7 89 88 32 159 40 +8 85 9 43 48 36 +8 86 85 44 170 42 +8 87 86 45 162 43 +8 88 87 40 163 44 +9 83 10 47 51 37 +9 84 83 48 175 46 +9 85 84 42 169 47 +10 11 14 51 53 50 +10 14 15 49 55 38 +10 83 11 46 54 49 +11 12 13 54 2 53 +11 13 14 52 55 49 +11 83 12 51 1 52 +13 15 14 56 50 53 +13 21 15 3 58 55 +15 19 16 58 60 39 +15 21 19 56 64 57 +16 18 17 60 31 35 +16 19 18 57 61 59 +18 19 20 60 64 62 +18 20 28 61 67 63 +18 28 29 62 83 21 +19 21 20 58 65 61 +20 21 24 64 68 66 +20 24 25 65 70 67 +20 25 28 66 76 62 +21 22 24 4 69 65 +22 23 24 5 70 68 +23 25 24 71 66 69 +23 36 25 72 77 70 +23 39 36 73 103 71 +23 40 39 74 109 72 +23 41 40 8 111 73 +25 26 27 77 78 76 +25 27 28 75 81 67 +25 36 26 71 80 75 +26 34 27 79 82 75 +26 35 34 80 98 78 +26 36 35 77 100 79 +27 33 28 82 84 76 +27 34 33 78 92 81 +28 32 29 84 86 63 +28 33 32 81 92 83 +29 30 97 86 89 22 +29 32 30 83 88 85 +30 31 96 88 91 89 +30 32 31 86 90 87 +30 96 97 87 190 85 +31 32 95 88 97 91 +31 95 96 90 189 87 +32 33 34 84 82 93 +32 34 48 92 99 94 +32 48 49 93 119 95 +32 49 53 94 123 96 +32 53 54 95 126 97 +32 54 95 96 127 90 +34 35 47 79 102 99 +34 47 48 98 119 93 +35 36 37 80 103 101 +35 37 46 100 106 102 +35 46 47 101 118 98 +36 39 37 72 105 100 +37 38 45 105 108 106 +37 39 38 103 107 104 +37 45 46 104 117 101 +38 39 44 105 110 108 +38 44 45 107 117 104 +39 40 43 73 112 110 +39 43 44 109 115 107 +40 41 42 74 9 112 +40 42 43 111 113 109 +42 50 43 114 116 112 +42 51 50 10 121 113 +43 47 44 116 118 110 +43 50 47 113 120 115 +44 46 45 118 106 108 +44 47 46 115 102 117 +47 49 48 120 94 99 +47 50 49 116 121 119 +49 50 51 120 114 122 +49 51 52 121 124 123 +49 52 53 122 125 95 +51 74 52 11 125 122 +52 74 53 124 126 123 +53 74 54 125 128 96 +54 55 95 128 129 97 +54 74 55 126 130 127 +55 56 95 130 133 127 +55 74 56 128 132 129 +56 57 94 132 137 133 +56 74 57 130 136 131 +56 94 95 131 189 129 +57 58 93 135 138 137 +57 73 58 136 139 134 +57 74 73 132 185 135 +57 93 94 134 24 131 +58 59 93 139 145 134 +58 73 59 135 144 138 +59 60 92 141 147 145 +59 61 60 142 146 140 +59 62 61 143 148 141 +59 72 62 144 153 142 +59 73 72 139 183 143 +59 92 93 140 188 138 +60 61 91 141 150 147 +60 91 92 146 188 140 +61 62 89 142 151 149 +61 89 90 148 33 150 +61 90 91 149 27 146 +62 63 89 152 159 148 +62 71 63 153 158 151 +62 72 71 143 181 152 +63 64 88 155 163 159 +63 65 64 156 160 154 +63 66 65 157 164 155 +63 70 66 158 166 156 +63 71 70 152 178 157 +63 88 89 154 41 151 +64 65 67 155 164 161 +64 67 86 160 170 162 +64 86 87 161 44 163 +64 87 88 162 45 154 +65 66 67 156 165 160 +66 69 67 166 168 164 +66 70 69 157 176 165 +67 68 84 168 175 169 +67 69 68 165 171 167 +67 84 85 167 48 170 +67 85 86 169 43 161 +68 69 80 168 177 172 +68 80 81 171 187 173 +68 81 82 172 17 174 +68 82 83 173 18 175 +68 83 84 174 47 167 +69 70 79 166 180 177 +69 79 80 176 187 171 +70 71 77 158 182 179 +70 77 78 178 186 180 +70 78 79 179 15 176 +71 72 76 153 184 182 +71 76 77 181 186 178 +72 73 75 144 185 184 +72 75 76 183 13 181 +73 74 75 136 12 183 +76 78 77 14 179 182 +79 81 80 16 172 177 +91 93 92 28 145 147 +94 96 95 190 91 133 +94 97 96 25 89 189 + +95 +3 4 +3 97 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_resolve_auto.txt b/include/CDT/tests/expected/island__auto_resolve_auto.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__auto_resolve_auto.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_resolve_outer.txt b/include/CDT/tests/expected/island__auto_resolve_outer.txt new file mode 100644 index 0000000..66eeaea --- /dev/null +++ b/include/CDT/tests/expected/island__auto_resolve_outer.txt @@ -0,0 +1,195 @@ +93 +0 1 2 4294967295 4294967295 1 +0 2 15 0 5 2 +0 15 26 1 18 3 +0 26 94 2 26 4294967295 +2 3 14 4294967295 7 5 +2 14 15 4 4294967295 1 +3 4 13 4294967295 11 7 +3 13 14 6 4294967295 4 +4 5 6 4294967295 4294967295 9 +4 6 7 8 4294967295 10 +4 7 12 9 13 11 +4 12 13 10 4294967295 6 +7 8 11 4294967295 15 13 +7 11 12 12 4294967295 10 +8 9 10 4294967295 4294967295 15 +8 10 11 14 4294967295 12 +15 16 17 4294967295 4294967295 17 +15 17 25 16 21 18 +15 25 26 17 4294967295 2 +17 18 21 4294967295 22 20 +17 21 22 19 4294967295 21 +17 22 25 20 25 17 +18 19 21 4294967295 23 19 +19 20 21 4294967295 4294967295 22 +22 23 24 4294967295 4294967295 25 +22 24 25 24 4294967295 21 +26 27 94 4294967295 28 3 +27 28 93 4294967295 30 28 +27 93 94 27 4294967295 26 +28 29 92 4294967295 36 30 +28 92 93 29 4294967295 27 +29 30 31 4294967295 4294967295 32 +29 31 45 31 38 33 +29 45 46 32 4294967295 34 +29 46 50 33 52 35 +29 50 51 34 4294967295 36 +29 51 92 35 53 29 +31 32 44 4294967295 41 38 +31 44 45 37 4294967295 32 +32 33 34 4294967295 4294967295 40 +32 34 43 39 43 41 +32 43 44 40 4294967295 37 +34 35 42 4294967295 45 43 +34 42 43 42 4294967295 40 +35 36 41 4294967295 47 45 +35 41 42 44 4294967295 42 +36 37 40 4294967295 49 47 +36 40 41 46 4294967295 44 +37 38 39 4294967295 4294967295 49 +37 39 40 48 4294967295 46 +46 47 48 4294967295 4294967295 51 +46 48 49 50 4294967295 52 +46 49 50 51 4294967295 34 +51 52 92 4294967295 54 36 +52 53 92 4294967295 56 53 +53 54 91 4294967295 58 56 +53 91 92 55 4294967295 54 +54 55 90 4294967295 59 58 +54 90 91 57 4294967295 55 +55 56 90 4294967295 61 57 +56 57 89 4294967295 63 61 +56 89 90 60 4294967295 59 +57 58 88 4294967295 66 63 +57 88 89 62 4294967295 60 +58 59 86 4294967295 67 65 +58 86 87 64 4294967295 66 +58 87 88 65 4294967295 62 +59 60 86 4294967295 69 64 +60 61 85 4294967295 73 69 +60 85 86 68 4294967295 67 +61 62 64 4294967295 74 71 +61 64 83 70 77 72 +61 83 84 71 4294967295 73 +61 84 85 72 4294967295 68 +62 63 64 4294967295 4294967295 70 +64 65 81 4294967295 82 76 +64 81 82 75 4294967295 77 +64 82 83 76 4294967295 71 +65 66 77 4294967295 84 79 +65 77 78 78 4294967295 80 +65 78 79 79 4294967295 81 +65 79 80 80 4294967295 82 +65 80 81 81 4294967295 75 +66 67 76 4294967295 87 84 +66 76 77 83 4294967295 78 +67 68 74 4294967295 89 86 +67 74 75 85 4294967295 87 +67 75 76 86 4294967295 83 +68 69 73 4294967295 91 89 +68 73 74 88 4294967295 85 +69 70 72 4294967295 92 91 +69 72 73 90 4294967295 88 +70 71 72 4294967295 4294967295 90 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/island__auto_resolve_super.txt b/include/CDT/tests/expected/island__auto_resolve_super.txt new file mode 100644 index 0000000..ed80bae --- /dev/null +++ b/include/CDT/tests/expected/island__auto_resolve_super.txt @@ -0,0 +1,274 @@ +172 +0 1 2 4 7 1 +0 2 15 0 12 2 +0 15 26 1 44 3 +0 26 94 2 66 6 +0 90 1 5 9 0 +0 91 90 6 118 4 +0 94 91 3 171 5 +1 87 2 8 14 0 +1 88 87 9 131 7 +1 90 88 4 169 8 +2 3 14 11 16 12 +2 4 3 13 15 10 +2 14 15 10 40 1 +2 86 4 14 22 11 +2 87 86 7 130 13 +3 4 13 11 20 16 +3 13 14 15 40 10 +4 5 6 21 23 18 +4 6 7 17 27 19 +4 7 12 18 31 20 +4 12 13 19 38 15 +4 85 5 22 26 17 +4 86 85 13 140 21 +5 82 6 24 29 17 +5 83 82 25 151 23 +5 84 83 26 143 24 +5 85 84 21 144 25 +6 80 7 28 32 18 +6 81 80 29 156 27 +6 82 81 23 150 28 +7 8 11 32 34 31 +7 11 12 30 36 19 +7 80 8 27 35 30 +8 9 10 35 4294967295 34 +8 10 11 33 36 30 +8 80 9 32 4294967295 33 +10 12 11 37 31 34 +10 18 12 4294967295 39 36 +12 16 13 39 41 20 +12 18 16 37 45 38 +13 15 14 41 12 16 +13 16 15 38 42 40 +15 16 17 41 45 43 +15 17 25 42 48 44 +15 25 26 43 64 2 +16 18 17 39 46 42 +17 18 21 45 49 47 +17 21 22 46 51 48 +17 22 25 47 57 43 +18 19 21 4294967295 50 46 +19 20 21 4294967295 51 49 +20 22 21 52 47 50 +20 33 22 53 58 51 +20 36 33 54 84 52 +20 37 36 55 90 53 +20 38 37 4294967295 92 54 +22 23 24 58 59 57 +22 24 25 56 62 48 +22 33 23 52 61 56 +23 31 24 60 63 56 +23 32 31 61 79 59 +23 33 32 58 81 60 +24 30 25 63 65 57 +24 31 30 59 73 62 +25 29 26 65 67 44 +25 30 29 62 73 64 +26 27 94 67 70 3 +26 29 27 64 69 66 +27 28 93 69 72 70 +27 29 28 67 71 68 +27 93 94 68 171 66 +28 29 92 69 78 72 +28 92 93 71 170 68 +29 30 31 65 63 74 +29 31 45 73 80 75 +29 45 46 74 100 76 +29 46 50 75 104 77 +29 50 51 76 107 78 +29 51 92 77 108 71 +31 32 44 60 83 80 +31 44 45 79 100 74 +32 33 34 61 84 82 +32 34 43 81 87 83 +32 43 44 82 99 79 +33 36 34 53 86 81 +34 35 42 86 89 87 +34 36 35 84 88 85 +34 42 43 85 98 82 +35 36 41 86 91 89 +35 41 42 88 98 85 +36 37 40 54 93 91 +36 40 41 90 96 88 +37 38 39 55 4294967295 93 +37 39 40 92 94 90 +39 47 40 95 97 93 +39 48 47 4294967295 102 94 +40 44 41 97 99 91 +40 47 44 94 101 96 +41 43 42 99 87 89 +41 44 43 96 83 98 +44 46 45 101 75 80 +44 47 46 97 102 100 +46 47 48 101 95 103 +46 48 49 102 105 104 +46 49 50 103 106 76 +48 71 49 4294967295 106 103 +49 71 50 105 107 104 +50 71 51 106 109 77 +51 52 92 109 110 78 +51 71 52 107 111 108 +52 53 92 111 114 108 +52 71 53 109 113 110 +53 54 91 113 118 114 +53 71 54 111 117 112 +53 91 92 112 170 110 +54 55 90 116 119 118 +54 70 55 117 120 115 +54 71 70 113 166 116 +54 90 91 115 5 112 +55 56 90 120 126 115 +55 70 56 116 125 119 +56 57 89 122 128 126 +56 58 57 123 127 121 +56 59 58 124 129 122 +56 69 59 125 134 123 +56 70 69 120 164 124 +56 89 90 121 169 119 +57 58 88 122 131 128 +57 88 89 127 169 121 +58 59 86 123 132 130 +58 86 87 129 14 131 +58 87 88 130 8 127 +59 60 86 133 140 129 +59 68 60 134 139 132 +59 69 68 124 162 133 +60 61 85 136 144 140 +60 62 61 137 141 135 +60 63 62 138 145 136 +60 67 63 139 147 137 +60 68 67 133 159 138 +60 85 86 135 22 132 +61 62 64 136 145 142 +61 64 83 141 151 143 +61 83 84 142 25 144 +61 84 85 143 26 135 +62 63 64 137 146 141 +63 66 64 147 149 145 +63 67 66 138 157 146 +64 65 81 149 156 150 +64 66 65 146 152 148 +64 81 82 148 29 151 +64 82 83 150 24 142 +65 66 77 149 158 153 +65 77 78 152 168 154 +65 78 79 153 4294967295 155 +65 79 80 154 4294967295 156 +65 80 81 155 28 148 +66 67 76 147 161 158 +66 76 77 157 168 152 +67 68 74 139 163 160 +67 74 75 159 167 161 +67 75 76 160 4294967295 157 +68 69 73 134 165 163 +68 73 74 162 167 159 +69 70 72 125 166 165 +69 72 73 164 4294967295 162 +70 71 72 117 4294967295 164 +73 75 74 4294967295 160 163 +76 78 77 4294967295 153 158 +88 90 89 9 126 128 +91 93 92 171 72 114 +91 94 93 6 70 170 + +95 +0 1 +0 94 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_all.txt new file mode 100644 index 0000000..71ecb90 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_all.txt @@ -0,0 +1,35 @@ +19 +0 1 10 4294967295 4 1 +0 10 11 0 10 2 +0 11 2 1 6 4294967295 +1 2 9 4294967295 5 4 +1 9 10 3 17 0 +2 8 9 6 16 3 +2 11 8 2 13 5 +3 4 11 8 13 10 +3 5 4 9 11 7 +3 10 5 10 17 8 +3 11 10 7 1 9 +4 5 6 8 14 12 +4 6 8 11 18 13 +4 8 11 12 6 7 +5 7 6 15 18 11 +5 8 7 16 18 14 +5 9 8 17 5 15 +5 10 9 9 4 16 +6 7 8 14 15 12 + +9 +3 4 +3 11 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_auto.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_auto.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_outer.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_outer.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_super.txt new file mode 100644 index 0000000..9f46dca --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_ignore_super.txt @@ -0,0 +1,28 @@ +12 +0 1 8 1 6 3 +0 2 1 2 4 0 +0 7 2 3 10 1 +0 8 7 0 4294967295 2 +1 2 3 1 7 5 +1 3 5 4 11 6 +1 5 8 5 4294967295 0 +2 4 3 8 11 4 +2 5 4 9 11 7 +2 6 5 10 4294967295 8 +2 7 6 2 4294967295 9 +3 4 5 7 8 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_all.txt new file mode 100644 index 0000000..71ecb90 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_all.txt @@ -0,0 +1,35 @@ +19 +0 1 10 4294967295 4 1 +0 10 11 0 10 2 +0 11 2 1 6 4294967295 +1 2 9 4294967295 5 4 +1 9 10 3 17 0 +2 8 9 6 16 3 +2 11 8 2 13 5 +3 4 11 8 13 10 +3 5 4 9 11 7 +3 10 5 10 17 8 +3 11 10 7 1 9 +4 5 6 8 14 12 +4 6 8 11 18 13 +4 8 11 12 6 7 +5 7 6 15 18 11 +5 8 7 16 18 14 +5 9 8 17 5 15 +5 10 9 9 4 16 +6 7 8 14 15 12 + +9 +3 4 +3 11 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_auto.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_auto.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_outer.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_outer.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_super.txt new file mode 100644 index 0000000..9f46dca --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__as-provided_resolve_super.txt @@ -0,0 +1,28 @@ +12 +0 1 8 1 6 3 +0 2 1 2 4 0 +0 7 2 3 10 1 +0 8 7 0 4294967295 2 +1 2 3 1 7 5 +1 3 5 4 11 6 +1 5 8 5 4294967295 0 +2 4 3 8 11 4 +2 5 4 9 11 7 +2 6 5 10 4294967295 8 +2 7 6 2 4294967295 9 +3 4 5 7 8 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_all.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_all.txt new file mode 100644 index 0000000..71ecb90 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_all.txt @@ -0,0 +1,35 @@ +19 +0 1 10 4294967295 4 1 +0 10 11 0 10 2 +0 11 2 1 6 4294967295 +1 2 9 4294967295 5 4 +1 9 10 3 17 0 +2 8 9 6 16 3 +2 11 8 2 13 5 +3 4 11 8 13 10 +3 5 4 9 11 7 +3 10 5 10 17 8 +3 11 10 7 1 9 +4 5 6 8 14 12 +4 6 8 11 18 13 +4 8 11 12 6 7 +5 7 6 15 18 11 +5 8 7 16 18 14 +5 9 8 17 5 15 +5 10 9 9 4 16 +6 7 8 14 15 12 + +9 +3 4 +3 11 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_auto.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_auto.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_auto.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_outer.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_outer.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_outer.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_super.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_super.txt new file mode 100644 index 0000000..9f46dca --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_ignore_super.txt @@ -0,0 +1,28 @@ +12 +0 1 8 1 6 3 +0 2 1 2 4 0 +0 7 2 3 10 1 +0 8 7 0 4294967295 2 +1 2 3 1 7 5 +1 3 5 4 11 6 +1 5 8 5 4294967295 0 +2 4 3 8 11 4 +2 5 4 9 11 7 +2 6 5 10 4294967295 8 +2 7 6 2 4294967295 9 +3 4 5 7 8 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_all.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_all.txt new file mode 100644 index 0000000..71ecb90 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_all.txt @@ -0,0 +1,35 @@ +19 +0 1 10 4294967295 4 1 +0 10 11 0 10 2 +0 11 2 1 6 4294967295 +1 2 9 4294967295 5 4 +1 9 10 3 17 0 +2 8 9 6 16 3 +2 11 8 2 13 5 +3 4 11 8 13 10 +3 5 4 9 11 7 +3 10 5 10 17 8 +3 11 10 7 1 9 +4 5 6 8 14 12 +4 6 8 11 18 13 +4 8 11 12 6 7 +5 7 6 15 18 11 +5 8 7 16 18 14 +5 9 8 17 5 15 +5 10 9 9 4 16 +6 7 8 14 15 12 + +9 +3 4 +3 11 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_auto.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_auto.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_auto.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_outer.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_outer.txt new file mode 100644 index 0000000..d591639 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_outer.txt @@ -0,0 +1,23 @@ +7 +0 2 1 1 4294967295 4294967295 +0 7 2 2 6 0 +0 8 7 4294967295 4294967295 1 +2 4 3 4 4294967295 4294967295 +2 5 4 5 4294967295 3 +2 6 5 6 4294967295 4 +2 7 6 1 4294967295 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_super.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_super.txt new file mode 100644 index 0000000..9f46dca --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__auto_resolve_super.txt @@ -0,0 +1,28 @@ +12 +0 1 8 1 6 3 +0 2 1 2 4 0 +0 7 2 3 10 1 +0 8 7 0 4294967295 2 +1 2 3 1 7 5 +1 3 5 4 11 6 +1 5 8 5 4294967295 0 +2 4 3 8 11 4 +2 5 4 9 11 7 +2 6 5 10 4294967295 8 +2 7 6 2 4294967295 9 +3 4 5 7 8 5 + +9 +0 1 +0 8 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-142-double-hanging-edge__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-142-double-hanging-edge__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..a79af39 --- /dev/null +++ b/include/CDT/tests/expected/issue-142-double-hanging-edge__conforming_auto_ignore_auto.txt @@ -0,0 +1,87 @@ +18 +0 7 9 5 16 1 +0 9 12 0 4294967295 4 +0 10 1 3 4294967295 4294967295 +0 11 10 4 4294967295 2 +0 12 11 1 4294967295 3 +0 19 7 4294967295 17 0 +2 5 15 7 13 4294967295 +2 6 5 8 4294967295 6 +2 7 6 9 4294967295 7 +2 13 7 4294967295 15 8 +3 18 4 4294967295 12 4294967295 +4 17 5 12 14 4294967295 +4 18 17 10 4294967295 11 +5 16 15 14 4294967295 6 +5 17 16 11 4294967295 13 +7 13 14 9 4294967295 16 +7 14 9 15 4294967295 0 +7 19 8 5 4294967295 4294967295 + +20 +0 1 +0 19 +1 10 +2 13 +2 15 +3 4 +3 18 +4 5 +5 6 +6 7 +7 8 +8 19 +9 12 +9 14 +10 11 +11 12 +13 14 +15 16 +16 17 +17 18 + +0 + +14 +0 19 + 1 + 0 8 +1 10 + 1 + 1 2 +2 13 + 1 + 1 2 +2 15 + 1 + 2 3 +3 18 + 1 + 2 3 +8 19 + 1 + 0 8 +9 12 + 1 + 1 2 +9 14 + 1 + 1 2 +10 11 + 1 + 1 2 +11 12 + 1 + 1 2 +13 14 + 1 + 1 2 +15 16 + 1 + 2 3 +16 17 + 1 + 2 3 +17 18 + 1 + 2 3 diff --git a/include/CDT/tests/expected/issue-148-crossing-edges__auto_resolve_all.txt b/include/CDT/tests/expected/issue-148-crossing-edges__auto_resolve_all.txt new file mode 100644 index 0000000..2defa1f --- /dev/null +++ b/include/CDT/tests/expected/issue-148-crossing-edges__auto_resolve_all.txt @@ -0,0 +1,38 @@ +15 +0 1 4 4294967295 5 2 +0 3 6 2 9 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 10 0 +2 6 5 3 13 4 +3 4 7 2 12 8 +3 7 9 7 12 9 +3 9 6 8 13 1 +4 5 8 5 14 11 +4 8 9 10 14 12 +4 9 7 11 8 7 +5 6 9 6 9 14 +5 9 8 13 11 10 + +4 +3 9 +4 9 +5 9 +6 9 + +0 + +4 +3 9 + 1 + 3 5 +4 9 + 1 + 4 6 +5 9 + 1 + 3 5 +6 9 + 1 + 4 6 diff --git a/include/CDT/tests/expected/issue-148-crossing-edges__conforming_auto_resolve_all.txt b/include/CDT/tests/expected/issue-148-crossing-edges__conforming_auto_resolve_all.txt new file mode 100644 index 0000000..d50040a --- /dev/null +++ b/include/CDT/tests/expected/issue-148-crossing-edges__conforming_auto_resolve_all.txt @@ -0,0 +1,50 @@ +19 +0 1 4 4294967295 5 2 +0 3 6 2 9 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 10 0 +2 6 5 3 13 4 +3 4 7 2 12 8 +3 7 10 7 16 9 +3 10 6 8 15 1 +4 5 8 5 14 11 +4 8 11 10 17 12 +4 11 7 11 16 7 +5 6 9 6 15 14 +5 9 8 13 17 10 +6 10 9 9 18 13 +7 11 10 12 18 8 +8 9 11 14 18 11 +9 10 11 15 16 17 + +6 +3 10 +4 11 +5 9 +6 10 +9 10 +10 11 + +0 + +6 +3 10 + 1 + 3 5 +4 11 + 1 + 4 6 +5 9 + 1 + 3 5 +6 10 + 1 + 4 6 +9 10 + 1 + 3 5 +10 11 + 1 + 4 6 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_all.txt new file mode 100644 index 0000000..d649155 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 11 4 +3 4 7 2 10 8 +3 7 6 7 13 1 +4 5 8 5 12 10 +4 8 7 9 15 7 +5 6 9 6 14 12 +5 9 8 11 17 9 +6 7 10 8 16 14 +6 10 9 13 19 11 +7 8 11 10 18 16 +7 11 10 15 22 13 +8 9 12 12 20 18 +8 12 11 17 23 15 +9 10 14 14 22 21 +9 13 12 21 23 17 +9 14 13 19 24 20 +10 11 14 16 24 19 +11 12 13 18 20 24 +11 13 14 23 21 22 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_auto.txt new file mode 100644 index 0000000..74cd357 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 4294967295 8 +6 7 11 7 15 14 +6 10 9 14 4294967295 10 +6 11 10 12 4294967295 13 +7 8 11 9 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_outer.txt new file mode 100644 index 0000000..1e75691 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 16 10 +6 11 10 12 17 13 +7 8 11 9 17 12 +8 9 10 11 13 17 +8 10 11 16 14 15 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_super.txt new file mode 100644 index 0000000..1e75691 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_ignore_super.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 16 10 +6 11 10 12 17 13 +7 8 11 9 17 12 +8 9 10 11 13 17 +8 10 11 16 14 15 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_all.txt new file mode 100644 index 0000000..d649155 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 11 4 +3 4 7 2 10 8 +3 7 6 7 13 1 +4 5 8 5 12 10 +4 8 7 9 15 7 +5 6 9 6 14 12 +5 9 8 11 17 9 +6 7 10 8 16 14 +6 10 9 13 19 11 +7 8 11 10 18 16 +7 11 10 15 22 13 +8 9 12 12 20 18 +8 12 11 17 23 15 +9 10 14 14 22 21 +9 13 12 21 23 17 +9 14 13 19 24 20 +10 11 14 16 24 19 +11 12 13 18 20 24 +11 13 14 23 21 22 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_auto.txt new file mode 100644 index 0000000..74cd357 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 4294967295 8 +6 7 11 7 15 14 +6 10 9 14 4294967295 10 +6 11 10 12 4294967295 13 +7 8 11 9 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_outer.txt new file mode 100644 index 0000000..1e75691 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 16 10 +6 11 10 12 17 13 +7 8 11 9 17 12 +8 9 10 11 13 17 +8 10 11 16 14 15 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_super.txt new file mode 100644 index 0000000..1e75691 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_as-provided_resolve_super.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 15 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 16 10 +6 11 10 12 17 13 +7 8 11 9 17 12 +8 9 10 11 13 17 +8 10 11 16 14 15 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_all.txt new file mode 100644 index 0000000..2eadab5 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 10 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 3 12 4 +3 4 8 2 11 9 +3 7 10 9 16 10 +3 8 7 7 15 8 +3 10 6 8 12 1 +4 5 8 5 13 7 +5 6 10 6 10 14 +5 9 8 14 17 11 +5 10 9 12 19 13 +7 8 11 9 18 16 +7 11 10 15 22 8 +8 9 12 13 20 18 +8 12 11 17 23 15 +9 10 14 14 22 21 +9 13 12 21 24 17 +9 14 13 19 24 20 +10 11 14 16 23 19 +11 12 14 18 24 22 +12 13 14 20 21 23 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_auto.txt new file mode 100644 index 0000000..f60ede7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 4294967295 8 +6 7 11 7 15 14 +6 10 9 14 4294967295 10 +6 11 10 12 4294967295 13 +7 8 11 9 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_outer.txt new file mode 100644 index 0000000..e7a8b2e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 17 10 +6 11 10 12 17 13 +7 8 11 9 16 12 +8 9 11 11 17 15 +9 10 11 13 14 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_super.txt new file mode 100644 index 0000000..e7a8b2e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_ignore_super.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 17 10 +6 11 10 12 17 13 +7 8 11 9 16 12 +8 9 11 11 17 15 +9 10 11 13 14 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_all.txt new file mode 100644 index 0000000..2eadab5 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 10 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 3 12 4 +3 4 8 2 11 9 +3 7 10 9 16 10 +3 8 7 7 15 8 +3 10 6 8 12 1 +4 5 8 5 13 7 +5 6 10 6 10 14 +5 9 8 14 17 11 +5 10 9 12 19 13 +7 8 11 9 18 16 +7 11 10 15 22 8 +8 9 12 13 20 18 +8 12 11 17 23 15 +9 10 14 14 22 21 +9 13 12 21 24 17 +9 14 13 19 24 20 +10 11 14 16 23 19 +11 12 14 18 24 22 +12 13 14 20 21 23 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_auto.txt new file mode 100644 index 0000000..f60ede7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 4294967295 8 +6 7 11 7 15 14 +6 10 9 14 4294967295 10 +6 11 10 12 4294967295 13 +7 8 11 9 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_outer.txt new file mode 100644 index 0000000..e7a8b2e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 17 10 +6 11 10 12 17 13 +7 8 11 9 16 12 +8 9 11 11 17 15 +9 10 11 13 14 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_super.txt new file mode 100644 index 0000000..e7a8b2e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f32_auto_resolve_super.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 9 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 10 4 +2 7 6 5 12 6 +4 5 8 2 11 9 +4 8 7 8 15 1 +5 6 9 6 13 11 +5 9 8 10 16 8 +6 7 11 7 15 14 +6 10 9 14 17 10 +6 11 10 12 17 13 +7 8 11 9 16 12 +8 9 11 11 17 15 +9 10 11 13 14 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_all.txt new file mode 100644 index 0000000..f2ddb21 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 11 4 +3 4 7 2 10 8 +3 7 6 7 13 1 +4 5 8 5 12 10 +4 8 7 9 15 7 +5 6 9 6 14 12 +5 9 8 11 17 9 +6 7 10 8 16 14 +6 10 9 13 19 11 +7 8 11 10 18 16 +7 11 10 15 21 13 +8 9 12 12 20 18 +8 12 11 17 23 15 +9 10 13 14 22 20 +9 13 12 19 23 17 +10 11 14 16 24 22 +10 14 13 21 24 19 +11 12 13 18 20 24 +11 13 14 23 22 21 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_auto.txt new file mode 100644 index 0000000..a139042 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 4294967295 8 +6 7 10 7 15 13 +6 10 9 12 4294967295 10 +7 8 11 9 4294967295 15 +7 11 10 14 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_outer.txt new file mode 100644 index 0000000..f9daeb7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 10 7 15 13 +6 10 9 12 16 10 +7 8 11 9 17 15 +7 11 10 14 17 12 +8 9 10 11 13 17 +8 10 11 16 15 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_super.txt new file mode 100644 index 0000000..f9daeb7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_ignore_super.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 10 7 15 13 +6 10 9 12 16 10 +7 8 11 9 17 15 +7 11 10 14 17 12 +8 9 10 11 13 17 +8 10 11 16 15 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..f2ddb21 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 9 0 +2 6 5 3 11 4 +3 4 7 2 10 8 +3 7 6 7 13 1 +4 5 8 5 12 10 +4 8 7 9 15 7 +5 6 9 6 14 12 +5 9 8 11 17 9 +6 7 10 8 16 14 +6 10 9 13 19 11 +7 8 11 10 18 16 +7 11 10 15 21 13 +8 9 12 12 20 18 +8 12 11 17 23 15 +9 10 13 14 22 20 +9 13 12 19 23 17 +10 11 14 16 24 22 +10 14 13 21 24 19 +11 12 13 18 20 24 +11 13 14 23 22 21 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_auto.txt new file mode 100644 index 0000000..a139042 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 4294967295 8 +6 7 10 7 15 13 +6 10 9 12 4294967295 10 +7 8 11 9 4294967295 15 +7 11 10 14 4294967295 12 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_outer.txt new file mode 100644 index 0000000..f9daeb7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 10 7 15 13 +6 10 9 12 16 10 +7 8 11 9 17 15 +7 11 10 14 17 12 +8 9 10 11 13 17 +8 10 11 16 15 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_super.txt new file mode 100644 index 0000000..f9daeb7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_as-provided_resolve_super.txt @@ -0,0 +1,41 @@ +18 +0 1 4 4294967295 3 1 +0 4 3 0 6 4294967295 +1 2 5 4294967295 5 3 +1 5 4 2 8 0 +2 3 6 4294967295 7 5 +2 6 5 4 10 2 +3 4 7 1 9 7 +3 7 6 6 12 4 +4 5 8 3 11 9 +4 8 7 8 14 6 +5 6 9 5 13 11 +5 9 8 10 16 8 +6 7 10 7 15 13 +6 10 9 12 16 10 +7 8 11 9 17 15 +7 11 10 14 17 12 +8 9 10 11 13 17 +8 10 11 16 15 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_all.txt new file mode 100644 index 0000000..3dd8353 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 10 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 3 12 4 +3 4 8 2 11 9 +3 7 10 9 18 10 +3 8 7 7 15 8 +3 10 6 8 12 1 +4 5 8 5 13 7 +5 6 10 6 10 14 +5 9 8 14 19 11 +5 10 9 12 21 13 +7 8 12 9 20 17 +7 11 14 17 23 18 +7 12 11 15 23 16 +7 14 10 16 22 8 +8 9 13 13 21 20 +8 13 12 19 24 15 +9 10 13 14 22 19 +10 14 13 18 24 21 +11 12 14 17 24 16 +12 13 14 20 22 23 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_auto.txt new file mode 100644 index 0000000..8c6ffc7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 4294967295 11 +4 9 8 8 4294967295 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 4294967295 8 +6 7 10 7 15 12 +7 11 10 11 4294967295 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_outer.txt new file mode 100644 index 0000000..3186cd9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 16 11 +4 9 8 8 16 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 17 8 +6 7 10 7 15 12 +7 11 10 11 17 14 +8 9 11 10 17 9 +9 10 11 13 15 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_super.txt new file mode 100644 index 0000000..3186cd9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_ignore_super.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 16 11 +4 9 8 8 16 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 17 8 +6 7 10 7 15 12 +7 11 10 11 17 14 +8 9 11 10 17 9 +9 10 11 13 15 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_all.txt new file mode 100644 index 0000000..3dd8353 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_all.txt @@ -0,0 +1,48 @@ +25 +0 1 4 4294967295 5 2 +0 3 6 2 10 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 3 12 4 +3 4 8 2 11 9 +3 7 10 9 18 10 +3 8 7 7 15 8 +3 10 6 8 12 1 +4 5 8 5 13 7 +5 6 10 6 10 14 +5 9 8 14 19 11 +5 10 9 12 21 13 +7 8 12 9 20 17 +7 11 14 17 23 18 +7 12 11 15 23 16 +7 14 10 16 22 8 +8 9 13 13 21 20 +8 13 12 19 24 15 +9 10 13 14 22 19 +10 14 13 18 24 21 +11 12 14 17 24 16 +12 13 14 20 22 23 + +12 +3 4 +3 6 +4 5 +5 6 +7 8 +7 10 +8 9 +9 10 +11 12 +11 14 +12 13 +13 14 + +4 +7 8 1 +7 10 1 +8 9 1 +9 10 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_auto.txt new file mode 100644 index 0000000..8c6ffc7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_auto.txt @@ -0,0 +1,39 @@ +16 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 4294967295 11 +4 9 8 8 4294967295 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 4294967295 8 +6 7 10 7 15 12 +7 11 10 11 4294967295 14 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_outer.txt new file mode 100644 index 0000000..3186cd9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_outer.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 16 11 +4 9 8 8 16 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 17 8 +6 7 10 7 15 12 +7 11 10 11 17 14 +8 9 11 10 17 9 +9 10 11 13 15 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_super.txt new file mode 100644 index 0000000..3186cd9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-full-boundary-overlap__f64_auto_resolve_super.txt @@ -0,0 +1,41 @@ +18 +0 1 5 4294967295 4 2 +0 4 7 2 11 3 +0 5 4 0 8 1 +0 7 3 1 5 4294967295 +1 2 5 4294967295 6 0 +2 3 7 4294967295 3 7 +2 6 5 7 12 4 +2 7 6 5 14 6 +4 5 9 2 13 10 +4 8 11 10 16 11 +4 9 8 8 16 9 +4 11 7 9 15 1 +5 6 10 6 14 13 +5 10 9 12 17 8 +6 7 10 7 15 12 +7 11 10 11 17 14 +8 9 11 10 17 9 +9 10 11 13 15 16 + +12 +0 1 +0 3 +1 2 +2 3 +4 5 +4 7 +5 6 +6 7 +8 9 +8 11 +9 10 +10 11 + +4 +4 5 1 +4 7 1 +5 6 1 +6 7 1 + +0 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_all.txt new file mode 100644 index 0000000..8c65090 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 8 4294967295 6 4 +0 3 6 3 10 2 +0 6 2 1 8 4294967295 +0 7 3 4 9 1 +0 8 7 0 15 3 +1 2 5 4294967295 8 7 +1 4 8 7 12 0 +1 5 4 5 11 6 +2 6 5 2 13 5 +3 7 10 3 16 10 +3 10 6 9 14 1 +4 5 9 7 13 12 +4 9 8 11 15 6 +5 6 9 8 14 11 +6 10 9 10 16 13 +7 8 9 4 12 16 +7 9 10 15 14 9 + +9 +3 6 +3 7 +4 5 +4 8 +5 6 +7 8 +7 10 +8 9 +9 10 + +1 +7 8 1 + +3 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 8 + 1 + 3 4 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_auto.txt new file mode 100644 index 0000000..b1248ed --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_auto.txt @@ -0,0 +1,32 @@ +6 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_outer.txt new file mode 100644 index 0000000..bb3c2cc --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_outer.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 6 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 6 4294967295 3 7 +4 6 7 6 5 0 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_super.txt new file mode 100644 index 0000000..bb3c2cc --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_ignore_super.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 6 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 6 4294967295 3 7 +4 6 7 6 5 0 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_all.txt new file mode 100644 index 0000000..8c65090 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 8 4294967295 6 4 +0 3 6 3 10 2 +0 6 2 1 8 4294967295 +0 7 3 4 9 1 +0 8 7 0 15 3 +1 2 5 4294967295 8 7 +1 4 8 7 12 0 +1 5 4 5 11 6 +2 6 5 2 13 5 +3 7 10 3 16 10 +3 10 6 9 14 1 +4 5 9 7 13 12 +4 9 8 11 15 6 +5 6 9 8 14 11 +6 10 9 10 16 13 +7 8 9 4 12 16 +7 9 10 15 14 9 + +9 +3 6 +3 7 +4 5 +4 8 +5 6 +7 8 +7 10 +8 9 +9 10 + +1 +7 8 1 + +3 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 8 + 1 + 3 4 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_auto.txt new file mode 100644 index 0000000..b1248ed --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_auto.txt @@ -0,0 +1,32 @@ +6 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_outer.txt new file mode 100644 index 0000000..bb3c2cc --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_outer.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 6 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 6 4294967295 3 7 +4 6 7 6 5 0 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_super.txt new file mode 100644 index 0000000..bb3c2cc --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__as-provided_resolve_super.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 6 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 6 4294967295 3 7 +4 6 7 6 5 0 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_all.txt new file mode 100644 index 0000000..425f8f0 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 6 1 +0 3 6 0 10 2 +0 6 2 1 8 4294967295 +1 2 5 4294967295 8 5 +1 4 8 5 12 7 +1 5 4 3 11 4 +1 7 3 7 9 0 +1 8 7 4 15 6 +2 6 5 2 13 3 +3 7 10 6 15 10 +3 10 6 9 14 1 +4 5 9 5 13 12 +4 9 8 11 16 4 +5 6 9 8 14 11 +6 10 9 10 16 13 +7 8 10 7 16 9 +8 9 10 12 14 15 + +9 +3 6 +3 7 +4 5 +4 8 +5 6 +7 8 +7 10 +8 9 +9 10 + +1 +7 8 1 + +3 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 8 + 1 + 3 4 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_auto.txt new file mode 100644 index 0000000..b1248ed --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_auto.txt @@ -0,0 +1,32 @@ +6 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_outer.txt new file mode 100644 index 0000000..93392f7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_outer.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 6 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 7 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 7 4294967295 7 0 +5 6 7 3 5 6 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_super.txt new file mode 100644 index 0000000..93392f7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_ignore_super.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 6 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 7 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 7 4294967295 7 0 +5 6 7 3 5 6 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_all.txt new file mode 100644 index 0000000..425f8f0 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 6 1 +0 3 6 0 10 2 +0 6 2 1 8 4294967295 +1 2 5 4294967295 8 5 +1 4 8 5 12 7 +1 5 4 3 11 4 +1 7 3 7 9 0 +1 8 7 4 15 6 +2 6 5 2 13 3 +3 7 10 6 15 10 +3 10 6 9 14 1 +4 5 9 5 13 12 +4 9 8 11 16 4 +5 6 9 8 14 11 +6 10 9 10 16 13 +7 8 10 7 16 9 +8 9 10 12 14 15 + +9 +3 6 +3 7 +4 5 +4 8 +5 6 +7 8 +7 10 +8 9 +9 10 + +1 +7 8 1 + +3 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 8 + 1 + 3 4 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_auto.txt new file mode 100644 index 0000000..b1248ed --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_auto.txt @@ -0,0 +1,32 @@ +6 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_outer.txt new file mode 100644 index 0000000..93392f7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_outer.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 6 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 7 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 7 4294967295 7 0 +5 6 7 3 5 6 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_super.txt new file mode 100644 index 0000000..93392f7 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-hole-overlaps-bondary__auto_resolve_super.txt @@ -0,0 +1,34 @@ +8 +0 4 7 4294967295 6 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 7 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 7 4 +4 5 7 4294967295 7 0 +5 6 7 3 5 6 + +9 +0 3 +0 4 +1 2 +1 5 +2 3 +4 5 +4 7 +5 6 +6 7 + +1 +4 5 1 + +3 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 5 + 1 + 0 1 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_all.txt new file mode 100644 index 0000000..6eb713d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_all.txt @@ -0,0 +1,96 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 31 11 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_auto.txt new file mode 100644 index 0000000..bdf403f --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 4294967295 4294967295 +6 7 10 5 11 8 +7 11 10 7 4294967295 10 +12 13 14 4294967295 4294967295 13 +12 14 15 12 4294967295 4294967295 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_outer.txt new file mode 100644 index 0000000..9152bb3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_super.txt new file mode 100644 index 0000000..9152bb3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_ignore_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_all.txt new file mode 100644 index 0000000..6eb713d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_all.txt @@ -0,0 +1,96 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 31 11 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_auto.txt new file mode 100644 index 0000000..bdf403f --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 4294967295 4294967295 +6 7 10 5 11 8 +7 11 10 7 4294967295 10 +12 13 14 4294967295 4294967295 13 +12 14 15 12 4294967295 4294967295 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_outer.txt new file mode 100644 index 0000000..9152bb3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_super.txt new file mode 100644 index 0000000..9152bb3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_as-provided_resolve_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_all.txt new file mode 100644 index 0000000..b37c737 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_all.txt @@ -0,0 +1,96 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 17 1 +4 5 9 5 18 16 +4 9 8 15 21 4 +5 6 10 12 14 18 +5 10 9 17 23 15 +7 11 14 8 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 7 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 10 31 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 32 9 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_auto.txt new file mode 100644 index 0000000..5122dc2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 4294967295 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 4294967295 4294967295 +6 7 10 5 11 8 +7 11 10 7 4294967295 10 +12 13 15 4294967295 13 4294967295 +13 14 15 4294967295 4294967295 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_outer.txt new file mode 100644 index 0000000..e9408ac --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_super.txt new file mode 100644 index 0000000..e9408ac --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_ignore_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_all.txt new file mode 100644 index 0000000..b37c737 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_all.txt @@ -0,0 +1,96 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 17 1 +4 5 9 5 18 16 +4 9 8 15 21 4 +5 6 10 12 14 18 +5 10 9 17 23 15 +7 11 14 8 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 7 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 10 31 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 32 9 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_auto.txt new file mode 100644 index 0000000..5122dc2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 4294967295 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 4294967295 4294967295 +6 7 10 5 11 8 +7 11 10 7 4294967295 10 +12 13 15 4294967295 13 4294967295 +13 14 15 4294967295 4294967295 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_outer.txt new file mode 100644 index 0000000..e9408ac --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_super.txt new file mode 100644 index 0000000..e9408ac --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f32_auto_resolve_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 4 4294967295 +1 2 6 4294967295 5 3 +1 6 5 2 8 4294967295 +2 3 7 4294967295 1 5 +2 7 6 4 10 2 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_all.txt new file mode 100644 index 0000000..8c71d00 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_all.txt @@ -0,0 +1,96 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 10 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 5 32 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 31 11 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_auto.txt new file mode 100644 index 0000000..a872082 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 4294967295 4294967295 +6 7 11 5 7 11 +6 11 10 10 4294967295 8 +12 13 14 4294967295 4294967295 13 +12 14 15 12 4294967295 4294967295 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_outer.txt new file mode 100644 index 0000000..12fe303 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_super.txt new file mode 100644 index 0000000..12fe303 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_ignore_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..8c71d00 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_all.txt @@ -0,0 +1,96 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 10 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 5 32 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 31 11 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_auto.txt new file mode 100644 index 0000000..a872082 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 4294967295 4294967295 +6 7 11 5 7 11 +6 11 10 10 4294967295 8 +12 13 14 4294967295 4294967295 13 +12 14 15 12 4294967295 4294967295 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_outer.txt new file mode 100644 index 0000000..12fe303 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_super.txt new file mode 100644 index 0000000..12fe303 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_as-provided_resolve_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_all.txt new file mode 100644 index 0000000..9561f49 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_all.txt @@ -0,0 +1,96 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 32 9 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_auto.txt new file mode 100644 index 0000000..7d81833 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 4294967295 4294967295 +6 7 11 5 7 11 +6 11 10 10 4294967295 8 +12 13 15 4294967295 13 4294967295 +13 14 15 4294967295 4294967295 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_outer.txt new file mode 100644 index 0000000..51566f9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_super.txt new file mode 100644 index 0000000..51566f9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_ignore_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_all.txt new file mode 100644 index 0000000..9561f49 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_all.txt @@ -0,0 +1,96 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 32 9 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +8 +7 10 1 +7 11 2 +8 9 1 +8 12 2 +9 10 1 +11 15 3 +12 16 3 +15 16 4 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_auto.txt new file mode 100644 index 0000000..7d81833 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_auto.txt @@ -0,0 +1,77 @@ +14 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 4294967295 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 4294967295 4294967295 +6 7 11 5 7 11 +6 11 10 10 4294967295 8 +12 13 15 4294967295 13 4294967295 +13 14 15 4294967295 4294967295 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_outer.txt new file mode 100644 index 0000000..51566f9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_outer.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_super.txt new file mode 100644 index 0000000..51566f9 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps-conform-to-edge__f64_auto_resolve_super.txt @@ -0,0 +1,83 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +8 +4 7 1 +4 8 2 +5 6 1 +5 9 2 +6 7 1 +8 12 3 +9 13 3 +12 13 4 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f32_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f32_auto_ignore_auto.txt new file mode 100644 index 0000000..1992756 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f32_auto_ignore_auto.txt @@ -0,0 +1,104 @@ +16 +0 4 17 4294967295 4294967295 2 +0 7 3 2 7 4294967295 +0 17 7 0 4294967295 1 +1 2 6 4294967295 6 4 +1 6 16 3 4294967295 5 +1 16 5 4 4294967295 4294967295 +2 3 6 4294967295 7 3 +3 7 6 1 4294967295 6 +8 12 19 4294967295 14 4294967295 +9 18 13 4294967295 15 4294967295 +10 11 14 4294967295 12 11 +10 14 18 10 15 4294967295 +11 15 14 13 4294967295 10 +11 19 15 4294967295 14 12 +12 15 19 4294967295 13 8 +13 18 14 9 11 4294967295 + +23 +0 3 +0 4 +1 2 +1 5 +2 3 +4 8 +4 17 +5 9 +5 16 +6 7 +6 16 +7 17 +8 12 +8 19 +9 13 +9 18 +10 11 +10 18 +11 19 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +15 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +4 17 + 1 + 4 7 +5 9 + 2 + 0 1 + 4 5 +5 16 + 1 + 5 6 +6 16 + 1 + 5 6 +7 17 + 1 + 4 7 +8 12 + 3 + 0 1 + 4 5 + 8 9 +8 19 + 1 + 8 11 +9 13 + 3 + 0 1 + 4 5 + 8 9 +9 18 + 1 + 9 10 +10 18 + 1 + 9 10 +11 19 + 1 + 8 11 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f64_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f64_auto_ignore_auto.txt new file mode 100644 index 0000000..519f311 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__conforming_f64_auto_ignore_auto.txt @@ -0,0 +1,104 @@ +16 +0 4 17 4294967295 4294967295 2 +0 7 3 2 7 4294967295 +0 17 7 0 4294967295 1 +1 2 6 4294967295 6 4 +1 6 16 3 4294967295 5 +1 16 5 4 4294967295 4294967295 +2 3 6 4294967295 7 3 +3 7 6 1 4294967295 6 +8 12 19 4294967295 14 4294967295 +9 18 13 4294967295 15 4294967295 +10 11 15 4294967295 13 12 +10 14 18 12 15 4294967295 +10 15 14 10 4294967295 11 +11 19 15 4294967295 14 10 +12 15 19 4294967295 13 8 +13 18 14 9 11 4294967295 + +23 +0 3 +0 4 +1 2 +1 5 +2 3 +4 8 +4 17 +5 9 +5 16 +6 7 +6 16 +7 17 +8 12 +8 19 +9 13 +9 18 +10 11 +10 18 +11 19 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +15 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +4 17 + 1 + 4 7 +5 9 + 2 + 0 1 + 4 5 +5 16 + 1 + 5 6 +6 16 + 1 + 5 6 +7 17 + 1 + 4 7 +8 12 + 3 + 0 1 + 4 5 + 8 9 +8 19 + 1 + 8 11 +9 13 + 3 + 0 1 + 4 5 + 8 9 +9 18 + 1 + 9 10 +10 18 + 1 + 9 10 +11 19 + 1 + 8 11 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_all.txt new file mode 100644 index 0000000..71cf9a4 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_all.txt @@ -0,0 +1,93 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 31 11 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_auto.txt new file mode 100644 index 0000000..99dd8f2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 11 4294967295 +9 10 14 4294967295 10 9 +9 14 13 8 4294967295 4294967295 +10 11 14 4294967295 11 8 +11 15 14 7 4294967295 10 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_outer.txt new file mode 100644 index 0000000..a65970d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_super.txt new file mode 100644 index 0000000..a65970d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_ignore_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_all.txt new file mode 100644 index 0000000..71cf9a4 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_all.txt @@ -0,0 +1,93 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 31 11 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_auto.txt new file mode 100644 index 0000000..99dd8f2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 11 4294967295 +9 10 14 4294967295 10 9 +9 14 13 8 4294967295 4294967295 +10 11 14 4294967295 11 8 +11 15 14 7 4294967295 10 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_outer.txt new file mode 100644 index 0000000..a65970d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_super.txt new file mode 100644 index 0000000..a65970d --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_as-provided_resolve_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 18 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_all.txt new file mode 100644 index 0000000..5761639 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_all.txt @@ -0,0 +1,93 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 32 9 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_auto.txt new file mode 100644 index 0000000..99dd8f2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 11 4294967295 +9 10 14 4294967295 10 9 +9 14 13 8 4294967295 4294967295 +10 11 14 4294967295 11 8 +11 15 14 7 4294967295 10 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_outer.txt new file mode 100644 index 0000000..5b85161 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_super.txt new file mode 100644 index 0000000..5b85161 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_ignore_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_all.txt new file mode 100644 index 0000000..5761639 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_all.txt @@ -0,0 +1,93 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 30 19 +12 13 17 22 29 28 +12 17 16 27 32 9 +13 14 17 24 30 27 +14 18 17 26 32 29 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_auto.txt new file mode 100644 index 0000000..99dd8f2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 11 4294967295 +9 10 14 4294967295 10 9 +9 14 13 8 4294967295 4294967295 +10 11 14 4294967295 11 8 +11 15 14 7 4294967295 10 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_outer.txt new file mode 100644 index 0000000..5b85161 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_super.txt new file mode 100644 index 0000000..5b85161 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f32_auto_resolve_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 17 6 +9 10 14 9 16 15 +9 14 13 14 19 4294967295 +10 11 14 11 17 14 +11 15 14 13 19 16 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_all.txt new file mode 100644 index 0000000..cf83552 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_all.txt @@ -0,0 +1,93 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 31 11 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_auto.txt new file mode 100644 index 0000000..438f5e2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 10 4294967295 +9 10 14 4294967295 11 9 +9 14 13 8 4294967295 4294967295 +10 11 15 4294967295 7 11 +10 15 14 10 4294967295 8 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_outer.txt new file mode 100644 index 0000000..1d9860e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_super.txt new file mode 100644 index 0000000..1d9860e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_ignore_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..cf83552 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_all.txt @@ -0,0 +1,93 @@ +33 +0 1 16 4294967295 11 6 +0 3 6 3 14 2 +0 6 2 1 12 4294967295 +0 7 3 4 13 1 +0 11 7 5 19 3 +0 15 11 6 25 4 +0 16 15 0 31 5 +1 2 5 4294967295 12 9 +1 4 8 9 16 10 +1 5 4 7 15 8 +1 8 12 8 22 11 +1 12 16 10 28 0 +2 6 5 2 17 7 +3 7 10 3 20 14 +3 10 6 13 18 1 +4 5 9 9 17 16 +4 9 8 15 21 8 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 4 26 20 +7 14 10 19 24 13 +8 9 13 16 23 22 +8 13 12 21 27 10 +9 10 13 18 24 21 +10 14 13 20 29 23 +11 15 18 5 32 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 31 11 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 17 6 28 32 +15 17 18 31 30 25 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_auto.txt new file mode 100644 index 0000000..438f5e2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 10 4294967295 +9 10 14 4294967295 11 9 +9 14 13 8 4294967295 4294967295 +10 11 15 4294967295 7 11 +10 15 14 10 4294967295 8 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_outer.txt new file mode 100644 index 0000000..1d9860e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_super.txt new file mode 100644 index 0000000..1d9860e --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_as-provided_resolve_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 11 0 +5 6 10 3 10 9 +5 10 9 8 14 4294967295 +6 7 10 5 11 8 +7 11 10 7 16 10 +8 12 15 4294967295 19 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 18 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 14 4294967295 15 19 +12 14 15 18 17 12 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_all.txt new file mode 100644 index 0000000..36ad429 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_all.txt @@ -0,0 +1,93 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 32 9 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_auto.txt new file mode 100644 index 0000000..438f5e2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 10 4294967295 +9 10 14 4294967295 11 9 +9 14 13 8 4294967295 4294967295 +10 11 15 4294967295 7 11 +10 15 14 10 4294967295 8 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_outer.txt new file mode 100644 index 0000000..5d9dca3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_super.txt new file mode 100644 index 0000000..5d9dca3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_ignore_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_all.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_all.txt new file mode 100644 index 0000000..36ad429 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_all.txt @@ -0,0 +1,93 @@ +33 +0 1 3 4294967295 6 1 +0 3 6 0 14 2 +0 6 2 1 12 4294967295 +1 2 5 4294967295 12 5 +1 4 8 5 16 7 +1 5 4 3 15 4 +1 7 3 8 13 0 +1 8 12 4 22 9 +1 11 7 10 19 6 +1 12 16 7 28 11 +1 15 11 11 25 8 +1 16 15 9 31 10 +2 6 5 2 17 3 +3 7 10 6 20 14 +3 10 6 13 18 1 +4 5 9 5 17 16 +4 9 8 15 21 4 +5 6 9 12 18 15 +6 10 9 14 23 17 +7 11 14 8 26 20 +7 14 10 19 23 13 +8 9 13 16 24 22 +8 13 12 21 27 7 +9 10 14 18 20 24 +9 14 13 23 29 21 +11 15 18 10 31 26 +11 18 14 25 29 19 +12 13 17 22 30 28 +12 17 16 27 32 9 +13 14 18 24 26 30 +13 18 17 29 32 27 +15 16 18 11 32 25 +16 17 18 28 30 31 + +19 +3 6 +3 7 +4 5 +4 8 +5 6 +7 10 +7 11 +8 9 +8 12 +9 10 +11 14 +11 15 +12 13 +12 16 +13 14 +15 16 +15 18 +16 17 +17 18 + +5 +7 11 1 +8 12 1 +11 15 2 +12 16 2 +15 16 3 + +7 +3 7 + 1 + 3 4 +4 8 + 1 + 3 4 +7 11 + 2 + 3 4 + 7 8 +8 12 + 2 + 3 4 + 7 8 +11 15 + 3 + 3 4 + 7 8 + 11 12 +12 16 + 3 + 3 4 + 7 8 + 11 12 +15 16 + 3 + 3 4 + 7 8 + 11 12 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_auto.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_auto.txt new file mode 100644 index 0000000..438f5e2 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_auto.txt @@ -0,0 +1,72 @@ +12 +0 4 7 4294967295 4294967295 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 4294967295 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 4294967295 4 +8 12 15 4294967295 4294967295 7 +8 15 11 6 10 4294967295 +9 10 14 4294967295 11 9 +9 14 13 8 4294967295 4294967295 +10 11 15 4294967295 7 11 +10 15 14 10 4294967295 8 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_outer.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_outer.txt new file mode 100644 index 0000000..5d9dca3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_outer.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_super.txt b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_super.txt new file mode 100644 index 0000000..5d9dca3 --- /dev/null +++ b/include/CDT/tests/expected/issue-42-multiple-boundary-overlaps__f64_auto_resolve_super.txt @@ -0,0 +1,80 @@ +20 +0 4 7 4294967295 7 1 +0 7 3 0 5 4294967295 +1 2 6 4294967295 4 3 +1 6 5 2 8 4294967295 +2 3 6 4294967295 5 2 +3 7 6 1 10 4 +4 8 11 4294967295 13 7 +4 11 7 6 10 0 +5 6 10 3 11 9 +5 10 9 8 14 4294967295 +6 7 11 5 7 11 +6 11 10 10 16 8 +8 12 15 4294967295 18 13 +8 15 11 12 16 6 +9 10 14 9 17 15 +9 14 13 14 19 4294967295 +10 11 15 11 13 17 +10 15 14 16 19 14 +12 13 15 4294967295 19 12 +13 14 15 15 17 18 + +19 +0 3 +0 4 +1 2 +1 5 +2 3 +4 7 +4 8 +5 6 +5 9 +6 7 +8 11 +8 12 +9 10 +9 13 +10 11 +12 13 +12 15 +13 14 +14 15 + +5 +4 8 1 +5 9 1 +8 12 2 +9 13 2 +12 13 3 + +7 +0 4 + 1 + 0 1 +1 5 + 1 + 0 1 +4 8 + 2 + 0 1 + 4 5 +5 9 + 2 + 0 1 + 4 5 +8 12 + 3 + 0 1 + 4 5 + 8 9 +9 13 + 3 + 0 1 + 4 5 + 8 9 +12 13 + 3 + 0 1 + 4 5 + 8 9 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_all.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_all.txt new file mode 100644 index 0000000..b572f17 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_all.txt @@ -0,0 +1,14 @@ +7 +0 1 5 4294967295 3 1 +0 5 2 0 5 4294967295 +1 2 3 4294967295 4 3 +1 3 5 2 6 0 +2 4 3 5 6 2 +2 5 4 1 6 4 +3 4 5 4 5 3 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_auto.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_outer.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_super.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_super.txt new file mode 100644 index 0000000..863ff6c --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_ignore_super.txt @@ -0,0 +1,8 @@ +1 +0 1 2 4294967295 4294967295 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_all.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_all.txt new file mode 100644 index 0000000..b572f17 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_all.txt @@ -0,0 +1,14 @@ +7 +0 1 5 4294967295 3 1 +0 5 2 0 5 4294967295 +1 2 3 4294967295 4 3 +1 3 5 2 6 0 +2 4 3 5 6 2 +2 5 4 1 6 4 +3 4 5 4 5 3 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_auto.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_outer.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_super.txt b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_super.txt new file mode 100644 index 0000000..863ff6c --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__as-provided_resolve_super.txt @@ -0,0 +1,8 @@ +1 +0 1 2 4294967295 4294967295 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_all.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_all.txt new file mode 100644 index 0000000..a051e96 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_all.txt @@ -0,0 +1,14 @@ +7 +0 1 3 4294967295 3 1 +0 3 5 0 6 2 +0 5 2 1 5 4294967295 +1 2 3 4294967295 4 0 +2 4 3 5 6 3 +2 5 4 2 6 4 +3 4 5 4 5 1 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_auto.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_outer.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_super.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_super.txt new file mode 100644 index 0000000..863ff6c --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_ignore_super.txt @@ -0,0 +1,8 @@ +1 +0 1 2 4294967295 4294967295 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_all.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_all.txt new file mode 100644 index 0000000..a051e96 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_all.txt @@ -0,0 +1,14 @@ +7 +0 1 3 4294967295 3 1 +0 3 5 0 6 2 +0 5 2 1 5 4294967295 +1 2 3 4294967295 4 0 +2 4 3 5 6 3 +2 5 4 2 6 4 +3 4 5 4 5 1 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_auto.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_outer.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_super.txt b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_super.txt new file mode 100644 index 0000000..863ff6c --- /dev/null +++ b/include/CDT/tests/expected/issue-65-wrong-edges__auto_resolve_super.txt @@ -0,0 +1,8 @@ +1 +0 1 2 4294967295 4294967295 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_ignore_all.txt b/include/CDT/tests/expected/kidney__as-provided_ignore_all.txt new file mode 100644 index 0000000..c02b93f --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_ignore_all.txt @@ -0,0 +1,158 @@ +101 +0 1 21 4294967295 22 19 +0 3 52 2 36 20 +0 4 3 3 35 1 +0 5 4 4 37 2 +0 6 5 5 39 3 +0 7 6 6 40 4 +0 8 7 7 42 5 +0 9 8 8 44 6 +0 10 9 9 45 7 +0 11 10 10 47 8 +0 12 11 11 48 9 +0 13 12 12 50 10 +0 14 13 13 52 11 +0 15 14 14 53 12 +0 16 15 15 55 13 +0 17 16 16 56 14 +0 18 17 17 58 15 +0 19 18 18 59 16 +0 20 19 19 61 17 +0 21 20 0 62 18 +0 52 2 1 34 4294967295 +1 2 31 4294967295 32 31 +1 22 21 23 64 0 +1 23 22 24 66 22 +1 24 23 25 67 23 +1 25 24 26 69 24 +1 26 25 27 71 25 +1 27 26 28 73 26 +1 28 27 29 74 27 +1 29 28 30 76 28 +1 30 29 31 78 29 +1 31 30 21 79 30 +2 50 31 33 81 21 +2 51 50 34 99 32 +2 52 51 20 100 33 +3 4 48 2 38 36 +3 48 52 35 98 1 +4 5 47 3 39 38 +4 47 48 37 90 35 +5 6 47 4 41 37 +6 7 46 5 43 41 +6 46 47 40 89 39 +7 8 45 6 44 43 +7 45 46 42 97 40 +8 9 45 7 46 42 +9 10 44 8 47 46 +9 44 45 45 97 44 +10 11 44 9 49 45 +11 12 43 10 51 49 +11 43 44 48 96 47 +12 13 42 11 52 51 +12 42 43 50 95 48 +13 14 42 12 54 50 +14 15 41 13 55 54 +14 41 42 53 95 52 +15 16 41 14 57 53 +16 17 40 15 58 57 +16 40 41 56 92 55 +17 18 40 16 60 56 +18 19 39 17 61 60 +18 39 40 59 91 58 +19 20 39 18 63 59 +20 21 38 19 65 63 +20 38 39 62 91 61 +21 22 37 22 66 65 +21 37 38 64 87 62 +22 23 37 23 68 64 +23 24 36 24 70 68 +23 36 37 67 86 66 +24 25 35 25 72 70 +24 35 36 69 86 67 +25 26 34 26 73 72 +25 34 35 71 83 69 +26 27 34 27 75 71 +27 28 33 28 77 75 +27 33 34 74 83 73 +28 29 32 29 78 77 +28 32 33 76 82 74 +29 30 32 30 79 76 +30 31 32 31 80 78 +31 49 32 81 82 79 +31 50 49 32 99 80 +32 49 33 80 85 77 +33 35 34 84 72 75 +33 48 35 85 90 83 +33 49 48 82 98 84 +35 37 36 87 68 70 +35 38 37 88 65 86 +35 46 38 89 94 87 +35 47 46 90 41 88 +35 48 47 84 38 89 +38 40 39 92 60 63 +38 41 40 93 57 91 +38 44 41 94 96 92 +38 46 44 88 97 93 +41 43 42 96 51 54 +41 44 43 93 49 95 +44 46 45 94 43 46 +48 49 52 85 100 36 +49 50 51 81 33 100 +49 51 52 99 34 98 + +50 +3 4 +3 52 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_ignore_auto.txt b/include/CDT/tests/expected/kidney__as-provided_ignore_auto.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_ignore_auto.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_ignore_outer.txt b/include/CDT/tests/expected/kidney__as-provided_ignore_outer.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_ignore_outer.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_ignore_super.txt b/include/CDT/tests/expected/kidney__as-provided_ignore_super.txt new file mode 100644 index 0000000..4183f71 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_ignore_super.txt @@ -0,0 +1,123 @@ +66 +0 1 45 4294967295 3 1 +0 45 49 0 63 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 55 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 54 4 +4 5 42 4294967295 9 8 +4 42 43 7 62 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 62 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 61 12 +9 10 39 4294967295 17 16 +9 39 40 15 60 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 60 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 57 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 56 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 56 26 +18 19 34 4294967295 31 30 +18 34 35 29 52 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 51 31 +21 22 32 4294967295 37 35 +21 32 33 34 51 32 +22 23 31 4294967295 38 37 +22 31 32 36 48 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 48 38 +25 26 29 4294967295 43 42 +25 29 30 41 47 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 45 43 +28 46 29 46 47 44 +28 47 46 4294967295 64 45 +29 46 30 45 50 42 +30 32 31 49 37 40 +30 45 32 50 55 48 +30 46 45 47 63 49 +32 34 33 52 33 35 +32 35 34 53 30 51 +32 43 35 54 59 52 +32 44 43 55 6 53 +32 45 44 49 3 54 +35 37 36 57 25 28 +35 38 37 58 22 56 +35 41 38 59 61 57 +35 43 41 53 62 58 +38 40 39 61 16 19 +38 41 40 58 14 60 +41 43 42 59 8 11 +45 46 49 50 65 1 +46 47 48 46 4294967295 65 +46 48 49 64 4294967295 63 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_resolve_all.txt b/include/CDT/tests/expected/kidney__as-provided_resolve_all.txt new file mode 100644 index 0000000..c02b93f --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_resolve_all.txt @@ -0,0 +1,158 @@ +101 +0 1 21 4294967295 22 19 +0 3 52 2 36 20 +0 4 3 3 35 1 +0 5 4 4 37 2 +0 6 5 5 39 3 +0 7 6 6 40 4 +0 8 7 7 42 5 +0 9 8 8 44 6 +0 10 9 9 45 7 +0 11 10 10 47 8 +0 12 11 11 48 9 +0 13 12 12 50 10 +0 14 13 13 52 11 +0 15 14 14 53 12 +0 16 15 15 55 13 +0 17 16 16 56 14 +0 18 17 17 58 15 +0 19 18 18 59 16 +0 20 19 19 61 17 +0 21 20 0 62 18 +0 52 2 1 34 4294967295 +1 2 31 4294967295 32 31 +1 22 21 23 64 0 +1 23 22 24 66 22 +1 24 23 25 67 23 +1 25 24 26 69 24 +1 26 25 27 71 25 +1 27 26 28 73 26 +1 28 27 29 74 27 +1 29 28 30 76 28 +1 30 29 31 78 29 +1 31 30 21 79 30 +2 50 31 33 81 21 +2 51 50 34 99 32 +2 52 51 20 100 33 +3 4 48 2 38 36 +3 48 52 35 98 1 +4 5 47 3 39 38 +4 47 48 37 90 35 +5 6 47 4 41 37 +6 7 46 5 43 41 +6 46 47 40 89 39 +7 8 45 6 44 43 +7 45 46 42 97 40 +8 9 45 7 46 42 +9 10 44 8 47 46 +9 44 45 45 97 44 +10 11 44 9 49 45 +11 12 43 10 51 49 +11 43 44 48 96 47 +12 13 42 11 52 51 +12 42 43 50 95 48 +13 14 42 12 54 50 +14 15 41 13 55 54 +14 41 42 53 95 52 +15 16 41 14 57 53 +16 17 40 15 58 57 +16 40 41 56 92 55 +17 18 40 16 60 56 +18 19 39 17 61 60 +18 39 40 59 91 58 +19 20 39 18 63 59 +20 21 38 19 65 63 +20 38 39 62 91 61 +21 22 37 22 66 65 +21 37 38 64 87 62 +22 23 37 23 68 64 +23 24 36 24 70 68 +23 36 37 67 86 66 +24 25 35 25 72 70 +24 35 36 69 86 67 +25 26 34 26 73 72 +25 34 35 71 83 69 +26 27 34 27 75 71 +27 28 33 28 77 75 +27 33 34 74 83 73 +28 29 32 29 78 77 +28 32 33 76 82 74 +29 30 32 30 79 76 +30 31 32 31 80 78 +31 49 32 81 82 79 +31 50 49 32 99 80 +32 49 33 80 85 77 +33 35 34 84 72 75 +33 48 35 85 90 83 +33 49 48 82 98 84 +35 37 36 87 68 70 +35 38 37 88 65 86 +35 46 38 89 94 87 +35 47 46 90 41 88 +35 48 47 84 38 89 +38 40 39 92 60 63 +38 41 40 93 57 91 +38 44 41 94 96 92 +38 46 44 88 97 93 +41 43 42 96 51 54 +41 44 43 93 49 95 +44 46 45 94 43 46 +48 49 52 85 100 36 +49 50 51 81 33 100 +49 51 52 99 34 98 + +50 +3 4 +3 52 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_resolve_auto.txt b/include/CDT/tests/expected/kidney__as-provided_resolve_auto.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_resolve_auto.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_resolve_outer.txt b/include/CDT/tests/expected/kidney__as-provided_resolve_outer.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_resolve_outer.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__as-provided_resolve_super.txt b/include/CDT/tests/expected/kidney__as-provided_resolve_super.txt new file mode 100644 index 0000000..4183f71 --- /dev/null +++ b/include/CDT/tests/expected/kidney__as-provided_resolve_super.txt @@ -0,0 +1,123 @@ +66 +0 1 45 4294967295 3 1 +0 45 49 0 63 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 55 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 54 4 +4 5 42 4294967295 9 8 +4 42 43 7 62 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 62 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 61 12 +9 10 39 4294967295 17 16 +9 39 40 15 60 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 60 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 57 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 56 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 56 26 +18 19 34 4294967295 31 30 +18 34 35 29 52 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 51 31 +21 22 32 4294967295 37 35 +21 32 33 34 51 32 +22 23 31 4294967295 38 37 +22 31 32 36 48 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 48 38 +25 26 29 4294967295 43 42 +25 29 30 41 47 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 45 43 +28 46 29 46 47 44 +28 47 46 4294967295 64 45 +29 46 30 45 50 42 +30 32 31 49 37 40 +30 45 32 50 55 48 +30 46 45 47 63 49 +32 34 33 52 33 35 +32 35 34 53 30 51 +32 43 35 54 59 52 +32 44 43 55 6 53 +32 45 44 49 3 54 +35 37 36 57 25 28 +35 38 37 58 22 56 +35 41 38 59 61 57 +35 43 41 53 62 58 +38 40 39 61 16 19 +38 41 40 58 14 60 +41 43 42 59 8 11 +45 46 49 50 65 1 +46 47 48 46 4294967295 65 +46 48 49 64 4294967295 63 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_ignore_all.txt b/include/CDT/tests/expected/kidney__auto_ignore_all.txt new file mode 100644 index 0000000..f096c67 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_ignore_all.txt @@ -0,0 +1,158 @@ +101 +0 1 13 4294967295 15 11 +0 3 52 2 36 13 +0 4 3 3 35 1 +0 5 4 4 37 2 +0 6 5 5 39 3 +0 7 6 6 40 4 +0 8 7 7 42 5 +0 9 8 8 44 6 +0 10 9 9 45 7 +0 11 10 10 47 8 +0 12 11 11 48 9 +0 13 12 0 50 10 +0 51 2 13 34 4294967295 +0 52 51 1 100 12 +1 2 29 4294967295 31 30 +1 14 13 16 52 0 +1 15 14 17 53 15 +1 16 15 18 55 16 +1 17 16 19 56 17 +1 18 17 20 58 18 +1 19 18 21 59 19 +1 20 19 22 61 20 +1 21 20 23 62 21 +1 22 21 24 64 22 +1 23 22 25 66 23 +1 24 23 26 67 24 +1 25 24 27 69 25 +1 26 25 28 71 26 +1 27 26 29 73 27 +1 28 27 30 74 28 +1 29 28 14 76 29 +2 30 29 32 78 14 +2 31 30 33 79 31 +2 50 31 34 81 32 +2 51 50 12 99 33 +3 4 48 2 38 36 +3 48 52 35 98 1 +4 5 47 3 39 38 +4 47 48 37 90 35 +5 6 47 4 41 37 +6 7 46 5 43 41 +6 46 47 40 89 39 +7 8 45 6 44 43 +7 45 46 42 97 40 +8 9 45 7 46 42 +9 10 44 8 47 46 +9 44 45 45 97 44 +10 11 44 9 49 45 +11 12 43 10 51 49 +11 43 44 48 96 47 +12 13 42 11 52 51 +12 42 43 50 95 48 +13 14 42 15 54 50 +14 15 41 16 55 54 +14 41 42 53 95 52 +15 16 41 17 57 53 +16 17 40 18 58 57 +16 40 41 56 92 55 +17 18 40 19 60 56 +18 19 39 20 61 60 +18 39 40 59 91 58 +19 20 39 21 63 59 +20 21 38 22 65 63 +20 38 39 62 91 61 +21 22 37 23 66 65 +21 37 38 64 87 62 +22 23 37 24 68 64 +23 24 36 25 70 68 +23 36 37 67 86 66 +24 25 35 26 72 70 +24 35 36 69 86 67 +25 26 34 27 73 72 +25 34 35 71 83 69 +26 27 34 28 75 71 +27 28 33 29 77 75 +27 33 34 74 83 73 +28 29 32 30 78 77 +28 32 33 76 82 74 +29 30 32 31 79 76 +30 31 32 32 80 78 +31 49 32 81 82 79 +31 50 49 33 99 80 +32 49 33 80 85 77 +33 35 34 84 72 75 +33 48 35 85 90 83 +33 49 48 82 98 84 +35 37 36 87 68 70 +35 38 37 88 65 86 +35 46 38 89 94 87 +35 47 46 90 41 88 +35 48 47 84 38 89 +38 40 39 92 60 63 +38 41 40 93 57 91 +38 44 41 94 96 92 +38 46 44 88 97 93 +41 43 42 96 51 54 +41 44 43 93 49 95 +44 46 45 94 43 46 +48 49 52 85 100 36 +49 50 51 81 34 100 +49 51 52 99 13 98 + +50 +3 4 +3 52 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_ignore_auto.txt b/include/CDT/tests/expected/kidney__auto_ignore_auto.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_ignore_auto.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_ignore_outer.txt b/include/CDT/tests/expected/kidney__auto_ignore_outer.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_ignore_outer.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_ignore_super.txt b/include/CDT/tests/expected/kidney__auto_ignore_super.txt new file mode 100644 index 0000000..4183f71 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_ignore_super.txt @@ -0,0 +1,123 @@ +66 +0 1 45 4294967295 3 1 +0 45 49 0 63 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 55 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 54 4 +4 5 42 4294967295 9 8 +4 42 43 7 62 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 62 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 61 12 +9 10 39 4294967295 17 16 +9 39 40 15 60 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 60 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 57 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 56 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 56 26 +18 19 34 4294967295 31 30 +18 34 35 29 52 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 51 31 +21 22 32 4294967295 37 35 +21 32 33 34 51 32 +22 23 31 4294967295 38 37 +22 31 32 36 48 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 48 38 +25 26 29 4294967295 43 42 +25 29 30 41 47 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 45 43 +28 46 29 46 47 44 +28 47 46 4294967295 64 45 +29 46 30 45 50 42 +30 32 31 49 37 40 +30 45 32 50 55 48 +30 46 45 47 63 49 +32 34 33 52 33 35 +32 35 34 53 30 51 +32 43 35 54 59 52 +32 44 43 55 6 53 +32 45 44 49 3 54 +35 37 36 57 25 28 +35 38 37 58 22 56 +35 41 38 59 61 57 +35 43 41 53 62 58 +38 40 39 61 16 19 +38 41 40 58 14 60 +41 43 42 59 8 11 +45 46 49 50 65 1 +46 47 48 46 4294967295 65 +46 48 49 64 4294967295 63 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_resolve_all.txt b/include/CDT/tests/expected/kidney__auto_resolve_all.txt new file mode 100644 index 0000000..f096c67 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_resolve_all.txt @@ -0,0 +1,158 @@ +101 +0 1 13 4294967295 15 11 +0 3 52 2 36 13 +0 4 3 3 35 1 +0 5 4 4 37 2 +0 6 5 5 39 3 +0 7 6 6 40 4 +0 8 7 7 42 5 +0 9 8 8 44 6 +0 10 9 9 45 7 +0 11 10 10 47 8 +0 12 11 11 48 9 +0 13 12 0 50 10 +0 51 2 13 34 4294967295 +0 52 51 1 100 12 +1 2 29 4294967295 31 30 +1 14 13 16 52 0 +1 15 14 17 53 15 +1 16 15 18 55 16 +1 17 16 19 56 17 +1 18 17 20 58 18 +1 19 18 21 59 19 +1 20 19 22 61 20 +1 21 20 23 62 21 +1 22 21 24 64 22 +1 23 22 25 66 23 +1 24 23 26 67 24 +1 25 24 27 69 25 +1 26 25 28 71 26 +1 27 26 29 73 27 +1 28 27 30 74 28 +1 29 28 14 76 29 +2 30 29 32 78 14 +2 31 30 33 79 31 +2 50 31 34 81 32 +2 51 50 12 99 33 +3 4 48 2 38 36 +3 48 52 35 98 1 +4 5 47 3 39 38 +4 47 48 37 90 35 +5 6 47 4 41 37 +6 7 46 5 43 41 +6 46 47 40 89 39 +7 8 45 6 44 43 +7 45 46 42 97 40 +8 9 45 7 46 42 +9 10 44 8 47 46 +9 44 45 45 97 44 +10 11 44 9 49 45 +11 12 43 10 51 49 +11 43 44 48 96 47 +12 13 42 11 52 51 +12 42 43 50 95 48 +13 14 42 15 54 50 +14 15 41 16 55 54 +14 41 42 53 95 52 +15 16 41 17 57 53 +16 17 40 18 58 57 +16 40 41 56 92 55 +17 18 40 19 60 56 +18 19 39 20 61 60 +18 39 40 59 91 58 +19 20 39 21 63 59 +20 21 38 22 65 63 +20 38 39 62 91 61 +21 22 37 23 66 65 +21 37 38 64 87 62 +22 23 37 24 68 64 +23 24 36 25 70 68 +23 36 37 67 86 66 +24 25 35 26 72 70 +24 35 36 69 86 67 +25 26 34 27 73 72 +25 34 35 71 83 69 +26 27 34 28 75 71 +27 28 33 29 77 75 +27 33 34 74 83 73 +28 29 32 30 78 77 +28 32 33 76 82 74 +29 30 32 31 79 76 +30 31 32 32 80 78 +31 49 32 81 82 79 +31 50 49 33 99 80 +32 49 33 80 85 77 +33 35 34 84 72 75 +33 48 35 85 90 83 +33 49 48 82 98 84 +35 37 36 87 68 70 +35 38 37 88 65 86 +35 46 38 89 94 87 +35 47 46 90 41 88 +35 48 47 84 38 89 +38 40 39 92 60 63 +38 41 40 93 57 91 +38 44 41 94 96 92 +38 46 44 88 97 93 +41 43 42 96 51 54 +41 44 43 93 49 95 +44 46 45 94 43 46 +48 49 52 85 100 36 +49 50 51 81 34 100 +49 51 52 99 13 98 + +50 +3 4 +3 52 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_resolve_auto.txt b/include/CDT/tests/expected/kidney__auto_resolve_auto.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_resolve_auto.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_resolve_outer.txt b/include/CDT/tests/expected/kidney__auto_resolve_outer.txt new file mode 100644 index 0000000..ee3b608 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_resolve_outer.txt @@ -0,0 +1,105 @@ +48 +0 1 45 4294967295 3 1 +0 45 49 0 45 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 4294967295 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 4294967295 4 +4 5 42 4294967295 9 8 +4 42 43 7 4294967295 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 4294967295 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 4294967295 12 +9 10 39 4294967295 17 16 +9 39 40 15 4294967295 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 4294967295 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 4294967295 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 4294967295 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 4294967295 26 +18 19 34 4294967295 31 30 +18 34 35 29 4294967295 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 4294967295 31 +21 22 32 4294967295 37 35 +21 32 33 34 4294967295 32 +22 23 31 4294967295 38 37 +22 31 32 36 4294967295 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 4294967295 38 +25 26 29 4294967295 43 42 +25 29 30 41 4294967295 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 4294967295 43 +45 46 49 4294967295 47 1 +46 47 48 4294967295 4294967295 47 +46 48 49 46 4294967295 45 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/kidney__auto_resolve_super.txt b/include/CDT/tests/expected/kidney__auto_resolve_super.txt new file mode 100644 index 0000000..4183f71 --- /dev/null +++ b/include/CDT/tests/expected/kidney__auto_resolve_super.txt @@ -0,0 +1,123 @@ +66 +0 1 45 4294967295 3 1 +0 45 49 0 63 4294967295 +1 2 44 4294967295 4 3 +1 44 45 2 55 0 +2 3 44 4294967295 6 2 +3 4 43 4294967295 8 6 +3 43 44 5 54 4 +4 5 42 4294967295 9 8 +4 42 43 7 62 5 +5 6 42 4294967295 11 7 +6 7 41 4294967295 12 11 +6 41 42 10 62 9 +7 8 41 4294967295 14 10 +8 9 40 4294967295 16 14 +8 40 41 13 61 12 +9 10 39 4294967295 17 16 +9 39 40 15 60 13 +10 11 39 4294967295 19 15 +11 12 38 4294967295 20 19 +11 38 39 18 60 17 +12 13 38 4294967295 22 18 +13 14 37 4294967295 23 22 +13 37 38 21 57 20 +14 15 37 4294967295 25 21 +15 16 36 4294967295 26 25 +15 36 37 24 56 23 +16 17 36 4294967295 28 24 +17 18 35 4294967295 30 28 +17 35 36 27 56 26 +18 19 34 4294967295 31 30 +18 34 35 29 52 27 +19 20 34 4294967295 33 29 +20 21 33 4294967295 35 33 +20 33 34 32 51 31 +21 22 32 4294967295 37 35 +21 32 33 34 51 32 +22 23 31 4294967295 38 37 +22 31 32 36 48 34 +23 24 31 4294967295 40 36 +24 25 30 4294967295 42 40 +24 30 31 39 48 38 +25 26 29 4294967295 43 42 +25 29 30 41 47 39 +26 27 29 4294967295 44 41 +27 28 29 4294967295 45 43 +28 46 29 46 47 44 +28 47 46 4294967295 64 45 +29 46 30 45 50 42 +30 32 31 49 37 40 +30 45 32 50 55 48 +30 46 45 47 63 49 +32 34 33 52 33 35 +32 35 34 53 30 51 +32 43 35 54 59 52 +32 44 43 55 6 53 +32 45 44 49 3 54 +35 37 36 57 25 28 +35 38 37 58 22 56 +35 41 38 59 61 57 +35 43 41 53 62 58 +38 40 39 61 16 19 +38 41 40 58 14 60 +41 43 42 59 8 11 +45 46 49 50 65 1 +46 47 48 46 4294967295 65 +46 48 49 64 4294967295 63 + +50 +0 1 +0 49 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 + +0 + +0 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_all.txt new file mode 100644 index 0000000..2dc0a85 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_all.txt @@ -0,0 +1,38 @@ +13 +0 1 6 4294967295 4 2 +0 5 2 2 6 4294967295 +0 6 5 0 11 1 +1 2 4 4294967295 6 5 +1 3 6 5 8 0 +1 4 3 3 7 4 +2 5 4 1 9 3 +3 4 8 5 10 8 +3 8 6 7 12 4 +4 5 7 6 11 10 +4 7 8 9 12 7 +5 6 7 2 12 9 +6 8 7 8 10 11 + +7 +3 4 +3 6 +3 8 +4 5 +5 6 +5 7 +7 8 + +1 +7 8 1 + +3 +3 8 + 1 + 3 7 +5 7 + 1 + 5 8 +7 8 + 2 + 5 8 + 3 7 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_auto.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_auto.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_outer.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_outer.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_super.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_ignore_super.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_all.txt new file mode 100644 index 0000000..2dc0a85 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_all.txt @@ -0,0 +1,38 @@ +13 +0 1 6 4294967295 4 2 +0 5 2 2 6 4294967295 +0 6 5 0 11 1 +1 2 4 4294967295 6 5 +1 3 6 5 8 0 +1 4 3 3 7 4 +2 5 4 1 9 3 +3 4 8 5 10 8 +3 8 6 7 12 4 +4 5 7 6 11 10 +4 7 8 9 12 7 +5 6 7 2 12 9 +6 8 7 8 10 11 + +7 +3 4 +3 6 +3 8 +4 5 +5 6 +5 7 +7 8 + +1 +7 8 1 + +3 +3 8 + 1 + 3 7 +5 7 + 1 + 5 8 +7 8 + 2 + 5 8 + 3 7 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_auto.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_auto.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_outer.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_outer.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_super.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__as-provided_resolve_super.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_all.txt new file mode 100644 index 0000000..c0e30a6 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_all.txt @@ -0,0 +1,38 @@ +13 +0 1 6 4294967295 4 2 +0 5 2 2 6 4294967295 +0 6 5 0 11 1 +1 2 3 4294967295 5 4 +1 3 6 3 8 0 +2 4 3 6 7 3 +2 5 4 1 9 5 +3 4 8 5 10 8 +3 8 6 7 12 4 +4 5 7 6 11 10 +4 7 8 9 12 7 +5 6 7 2 12 9 +6 8 7 8 10 11 + +7 +3 4 +3 6 +3 8 +4 5 +5 6 +5 7 +7 8 + +1 +7 8 1 + +3 +3 8 + 1 + 3 7 +5 7 + 1 + 5 8 +7 8 + 2 + 5 8 + 3 7 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_auto.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_auto.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_outer.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_outer.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_super.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_ignore_super.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_all.txt new file mode 100644 index 0000000..c0e30a6 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_all.txt @@ -0,0 +1,38 @@ +13 +0 1 6 4294967295 4 2 +0 5 2 2 6 4294967295 +0 6 5 0 11 1 +1 2 3 4294967295 5 4 +1 3 6 3 8 0 +2 4 3 6 7 3 +2 5 4 1 9 5 +3 4 8 5 10 8 +3 8 6 7 12 4 +4 5 7 6 11 10 +4 7 8 9 12 7 +5 6 7 2 12 9 +6 8 7 8 10 11 + +7 +3 4 +3 6 +3 8 +4 5 +5 6 +5 7 +7 8 + +1 +7 8 1 + +3 +3 8 + 1 + 3 7 +5 7 + 1 + 5 8 +7 8 + 2 + 5 8 + 3 7 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_auto.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_auto.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_outer.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_outer.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints2__auto_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_super.txt new file mode 100644 index 0000000..0272e96 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints2__auto_resolve_super.txt @@ -0,0 +1,31 @@ +6 +0 1 5 4294967295 3 1 +0 5 3 0 5 4294967295 +1 2 4 4294967295 4 3 +1 4 5 2 5 0 +2 3 4 4294967295 5 2 +3 5 4 1 3 4 + +7 +0 1 +0 3 +0 5 +1 2 +2 3 +2 4 +4 5 + +1 +4 5 1 + +3 +0 5 + 1 + 0 4 +2 4 + 1 + 2 5 +4 5 + 2 + 2 5 + 0 4 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_ignore_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_as-provided_resolve_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_ignore_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f32_auto_resolve_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_ignore_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_all.txt new file mode 100644 index 0000000..70d8ed9 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 11 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 12 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 5 4 12 2 1 +3 6 5 8 13 11 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_auto.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_auto.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_outer.txt new file mode 100644 index 0000000..cdd9222 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_outer.txt @@ -0,0 +1,30 @@ +4 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 4294967295 0 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_super.txt new file mode 100644 index 0000000..4ce475b --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_as-provided_resolve_super.txt @@ -0,0 +1,32 @@ +6 +0 2 1 1 4294967295 4294967295 +0 3 2 4294967295 2 0 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_all.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_all.txt new file mode 100644 index 0000000..55104fa --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 12 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 11 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 6 4 8 12 1 +4 6 5 11 13 2 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_auto.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_auto.txt new file mode 100644 index 0000000..7dada29 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_auto.txt @@ -0,0 +1,30 @@ +4 +0 3 1 4294967295 1 4294967295 +1 3 2 0 4294967295 4294967295 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_outer.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_outer.txt new file mode 100644 index 0000000..7dada29 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_outer.txt @@ -0,0 +1,30 @@ +4 +0 3 1 4294967295 1 4294967295 +1 3 2 0 4294967295 4294967295 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_super.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_super.txt new file mode 100644 index 0000000..7713817 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_ignore_super.txt @@ -0,0 +1,32 @@ +6 +0 3 1 4294967295 1 4294967295 +1 3 2 0 2 4294967295 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_all.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_all.txt new file mode 100644 index 0000000..55104fa --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_all.txt @@ -0,0 +1,43 @@ +17 +0 1 3 4294967295 8 1 +0 3 4 0 11 2 +0 4 5 1 12 3 +0 5 8 2 14 4 +0 8 9 3 15 5 +0 9 10 4 16 6 +0 10 2 5 7 4294967295 +1 2 10 4294967295 6 10 +1 6 3 9 11 0 +1 7 6 10 13 8 +1 10 7 7 16 9 +3 6 4 8 12 1 +4 6 5 11 13 2 +5 6 7 12 9 14 +5 7 8 13 15 3 +7 9 8 16 4 14 +7 10 9 10 5 15 + +9 +3 4 +3 6 +4 5 +5 6 +6 7 +7 8 +7 10 +8 9 +9 10 + +1 +6 7 1 + +3 +3 6 + 1 + 3 10 +6 7 + 1 + 3 10 +7 10 + 1 + 3 10 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_auto.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_auto.txt new file mode 100644 index 0000000..7dada29 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_auto.txt @@ -0,0 +1,30 @@ +4 +0 3 1 4294967295 1 4294967295 +1 3 2 0 4294967295 4294967295 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_outer.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_outer.txt new file mode 100644 index 0000000..7dada29 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_outer.txt @@ -0,0 +1,30 @@ +4 +0 3 1 4294967295 1 4294967295 +1 3 2 0 4294967295 4294967295 +4 6 5 3 4294967295 4294967295 +4 7 6 4294967295 4294967295 2 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_super.txt b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_super.txt new file mode 100644 index 0000000..7713817 --- /dev/null +++ b/include/CDT/tests/expected/overlapping constraints__f64_auto_resolve_super.txt @@ -0,0 +1,32 @@ +6 +0 3 1 4294967295 1 4294967295 +1 3 2 0 2 4294967295 +2 3 4 1 4294967295 3 +2 4 5 2 4 4294967295 +4 6 5 5 4294967295 3 +4 7 6 4294967295 4294967295 4 + +9 +0 1 +0 3 +1 2 +2 3 +3 4 +4 5 +4 7 +5 6 +6 7 + +1 +3 4 1 + +3 +0 3 + 1 + 0 7 +3 4 + 1 + 0 7 +4 7 + 1 + 0 7 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_all.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_all.txt new file mode 100644 index 0000000..9fa86a3 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_all.txt @@ -0,0 +1,44 @@ +25 +0 1 14 4294967295 7 6 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 13 2 +0 12 7 5 20 3 +0 13 12 6 21 4 +0 14 13 0 22 5 +1 2 14 4294967295 12 0 +2 3 4 1 15 9 +2 4 5 8 16 10 +2 5 10 9 18 11 +2 10 11 10 24 12 +2 11 14 11 24 7 +3 6 7 2 3 14 +3 7 8 13 19 15 +3 8 4 14 16 8 +4 8 5 15 17 9 +5 8 9 16 19 18 +5 9 10 17 23 10 +7 9 8 20 17 14 +7 12 9 4 21 19 +9 12 13 20 5 22 +9 13 14 21 6 23 +9 14 10 22 24 18 +10 14 11 23 12 11 + +3 +3 8 +8 9 +9 14 + +0 + +3 +3 8 + 1 + 3 14 +8 9 + 1 + 3 14 +9 14 + 1 + 3 14 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_auto.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_auto.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_auto.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_outer.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_outer.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_outer.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_super.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_super.txt new file mode 100644 index 0000000..0254126 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_ignore_super.txt @@ -0,0 +1,31 @@ +12 +0 3 4 4294967295 4294967295 1 +0 4 5 0 6 2 +0 5 1 1 3 4294967295 +1 5 2 2 4 4294967295 +2 5 6 3 6 5 +2 6 7 4 10 4294967295 +4 6 5 7 4 1 +4 9 6 4294967295 8 6 +6 9 10 7 4294967295 9 +6 10 11 8 4294967295 10 +6 11 7 9 11 5 +7 11 8 10 4294967295 4294967295 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_all.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_all.txt new file mode 100644 index 0000000..9fa86a3 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_all.txt @@ -0,0 +1,44 @@ +25 +0 1 14 4294967295 7 6 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 13 2 +0 12 7 5 20 3 +0 13 12 6 21 4 +0 14 13 0 22 5 +1 2 14 4294967295 12 0 +2 3 4 1 15 9 +2 4 5 8 16 10 +2 5 10 9 18 11 +2 10 11 10 24 12 +2 11 14 11 24 7 +3 6 7 2 3 14 +3 7 8 13 19 15 +3 8 4 14 16 8 +4 8 5 15 17 9 +5 8 9 16 19 18 +5 9 10 17 23 10 +7 9 8 20 17 14 +7 12 9 4 21 19 +9 12 13 20 5 22 +9 13 14 21 6 23 +9 14 10 22 24 18 +10 14 11 23 12 11 + +3 +3 8 +8 9 +9 14 + +0 + +3 +3 8 + 1 + 3 14 +8 9 + 1 + 3 14 +9 14 + 1 + 3 14 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_auto.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_auto.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_auto.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_outer.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_outer.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_outer.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_super.txt b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_super.txt new file mode 100644 index 0000000..0254126 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__as-provided_resolve_super.txt @@ -0,0 +1,31 @@ +12 +0 3 4 4294967295 4294967295 1 +0 4 5 0 6 2 +0 5 1 1 3 4294967295 +1 5 2 2 4 4294967295 +2 5 6 3 6 5 +2 6 7 4 10 4294967295 +4 6 5 7 4 1 +4 9 6 4294967295 8 6 +6 9 10 7 4294967295 9 +6 10 11 8 4294967295 10 +6 11 7 9 11 5 +7 11 8 10 4294967295 4294967295 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_all.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_all.txt new file mode 100644 index 0000000..a33c700 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_all.txt @@ -0,0 +1,44 @@ +25 +0 1 13 4294967295 7 5 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 13 2 +0 12 7 5 19 3 +0 13 12 0 21 4 +1 2 14 4294967295 12 7 +1 14 13 6 22 0 +2 3 4 1 15 9 +2 4 5 8 16 10 +2 5 10 9 18 11 +2 10 11 10 24 12 +2 11 14 11 24 6 +3 6 7 2 3 14 +3 7 8 13 19 15 +3 8 4 14 16 8 +4 8 5 15 17 9 +5 8 9 16 20 18 +5 9 10 17 23 10 +7 12 8 4 20 14 +8 12 9 19 21 17 +9 12 13 20 5 22 +9 13 14 21 7 23 +9 14 10 22 24 18 +10 14 11 23 12 11 + +3 +3 8 +8 9 +9 14 + +0 + +3 +3 8 + 1 + 3 14 +8 9 + 1 + 3 14 +9 14 + 1 + 3 14 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_auto.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_auto.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_auto.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_outer.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_outer.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_outer.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_super.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_super.txt new file mode 100644 index 0000000..af3bbdc --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_ignore_super.txt @@ -0,0 +1,31 @@ +12 +0 3 4 4294967295 4294967295 1 +0 4 5 0 6 2 +0 5 1 1 3 4294967295 +1 5 2 2 4 4294967295 +2 5 6 3 7 5 +2 6 7 4 10 4294967295 +4 9 5 4294967295 7 1 +5 9 6 6 8 4 +6 9 10 7 4294967295 9 +6 10 11 8 4294967295 10 +6 11 7 9 11 5 +7 11 8 10 4294967295 4294967295 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_all.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_all.txt new file mode 100644 index 0000000..a33c700 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_all.txt @@ -0,0 +1,44 @@ +25 +0 1 13 4294967295 7 5 +0 3 2 2 8 4294967295 +0 6 3 3 13 1 +0 7 6 4 13 2 +0 12 7 5 19 3 +0 13 12 0 21 4 +1 2 14 4294967295 12 7 +1 14 13 6 22 0 +2 3 4 1 15 9 +2 4 5 8 16 10 +2 5 10 9 18 11 +2 10 11 10 24 12 +2 11 14 11 24 6 +3 6 7 2 3 14 +3 7 8 13 19 15 +3 8 4 14 16 8 +4 8 5 15 17 9 +5 8 9 16 20 18 +5 9 10 17 23 10 +7 12 8 4 20 14 +8 12 9 19 21 17 +9 12 13 20 5 22 +9 13 14 21 7 23 +9 14 10 22 24 18 +10 14 11 23 12 11 + +3 +3 8 +8 9 +9 14 + +0 + +3 +3 8 + 1 + 3 14 +8 9 + 1 + 3 14 +9 14 + 1 + 3 14 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_auto.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_auto.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_auto.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_outer.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_outer.txt new file mode 100644 index 0000000..ade0db2 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_outer.txt @@ -0,0 +1,19 @@ +0 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_super.txt b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_super.txt new file mode 100644 index 0000000..af3bbdc --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__auto_resolve_super.txt @@ -0,0 +1,31 @@ +12 +0 3 4 4294967295 4294967295 1 +0 4 5 0 6 2 +0 5 1 1 3 4294967295 +1 5 2 2 4 4294967295 +2 5 6 3 7 5 +2 6 7 4 10 4294967295 +4 9 5 4294967295 7 1 +5 9 6 6 8 4 +6 9 10 7 4294967295 9 +6 10 11 8 4294967295 10 +6 11 7 9 11 5 +7 11 8 10 4294967295 4294967295 + +3 +0 5 +5 6 +6 11 + +0 + +3 +0 5 + 1 + 0 11 +5 6 + 1 + 0 11 +6 11 + 1 + 0 11 diff --git a/include/CDT/tests/expected/points_on_constraint_edge__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/points_on_constraint_edge__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..1551fc6 --- /dev/null +++ b/include/CDT/tests/expected/points_on_constraint_edge__conforming_auto_ignore_auto.txt @@ -0,0 +1,43 @@ +0 + +9 +0 13 +5 6 +5 14 +6 16 +11 17 +12 13 +12 14 +15 16 +15 17 + +0 + +9 +0 13 + 1 + 0 11 +5 6 + 1 + 0 11 +5 14 + 1 + 0 11 +6 16 + 1 + 0 11 +11 17 + 1 + 0 11 +12 13 + 1 + 0 11 +12 14 + 1 + 0 11 +15 16 + 1 + 0 11 +15 17 + 1 + 0 11 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_all.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_all.txt new file mode 100644 index 0000000..936798f --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_all.txt @@ -0,0 +1,20 @@ +13 +0 1 6 4294967295 6 3 +0 4 2 4 5 4294967295 +0 5 7 3 12 4 +0 6 5 0 11 2 +0 7 4 2 10 1 +1 2 4 4294967295 1 7 +1 3 6 7 9 0 +1 4 3 5 8 6 +3 4 8 7 10 9 +3 8 6 8 11 6 +4 7 8 4 12 8 +5 6 8 3 9 12 +5 8 7 11 10 2 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_auto.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_outer.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_super.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_super.txt new file mode 100644 index 0000000..231e2ed --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_ignore_super.txt @@ -0,0 +1,12 @@ +5 +0 1 5 4294967295 2 1 +0 5 3 0 3 4294967295 +1 4 5 4294967295 4 0 +2 3 5 4294967295 1 4 +2 5 4 3 2 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_all.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_all.txt new file mode 100644 index 0000000..936798f --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_all.txt @@ -0,0 +1,20 @@ +13 +0 1 6 4294967295 6 3 +0 4 2 4 5 4294967295 +0 5 7 3 12 4 +0 6 5 0 11 2 +0 7 4 2 10 1 +1 2 4 4294967295 1 7 +1 3 6 7 9 0 +1 4 3 5 8 6 +3 4 8 7 10 9 +3 8 6 8 11 6 +4 7 8 4 12 8 +5 6 8 3 9 12 +5 8 7 11 10 2 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_auto.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_outer.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_super.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_super.txt new file mode 100644 index 0000000..231e2ed --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__as-provided_resolve_super.txt @@ -0,0 +1,12 @@ +5 +0 1 5 4294967295 2 1 +0 5 3 0 3 4294967295 +1 4 5 4294967295 4 0 +2 3 5 4294967295 1 4 +2 5 4 3 2 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_all.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_all.txt new file mode 100644 index 0000000..687330a --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_all.txt @@ -0,0 +1,20 @@ +13 +0 1 3 4294967295 6 1 +0 3 6 0 9 4 +0 4 2 5 7 4294967295 +0 5 7 4 12 5 +0 6 5 1 11 3 +0 7 4 3 10 2 +1 2 3 4294967295 7 0 +2 4 3 2 8 6 +3 4 8 7 10 9 +3 8 6 8 11 1 +4 7 8 5 12 8 +5 6 8 4 9 12 +5 8 7 11 10 3 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_auto.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_outer.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_super.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_super.txt new file mode 100644 index 0000000..231e2ed --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_ignore_super.txt @@ -0,0 +1,12 @@ +5 +0 1 5 4294967295 2 1 +0 5 3 0 3 4294967295 +1 4 5 4294967295 4 0 +2 3 5 4294967295 1 4 +2 5 4 3 2 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_all.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_all.txt new file mode 100644 index 0000000..687330a --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_all.txt @@ -0,0 +1,20 @@ +13 +0 1 3 4294967295 6 1 +0 3 6 0 9 4 +0 4 2 5 7 4294967295 +0 5 7 4 12 5 +0 6 5 1 11 3 +0 7 4 3 10 2 +1 2 3 4294967295 7 0 +2 4 3 2 8 6 +3 4 8 7 10 9 +3 8 6 8 11 1 +4 7 8 5 12 8 +5 6 8 4 9 12 +5 8 7 11 10 3 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_auto.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_auto.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_auto.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_outer.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_outer.txt new file mode 100644 index 0000000..d737c60 --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_outer.txt @@ -0,0 +1,7 @@ +0 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_super.txt b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_super.txt new file mode 100644 index 0000000..231e2ed --- /dev/null +++ b/include/CDT/tests/expected/regression_issue_38_wrong_hull_small__auto_resolve_super.txt @@ -0,0 +1,12 @@ +5 +0 1 5 4294967295 2 1 +0 5 3 0 3 4294967295 +1 4 5 4294967295 4 0 +2 3 5 4294967295 1 4 +2 5 4 3 2 4294967295 + +0 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_ignore_all.txt b/include/CDT/tests/expected/square with crack__as-provided_ignore_all.txt new file mode 100644 index 0000000..3e64af2 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_ignore_all.txt @@ -0,0 +1,29 @@ +15 +0 1 4 4294967295 5 2 +0 3 9 2 10 3 +0 4 3 0 9 1 +0 9 2 1 8 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 7 12 4 +2 8 6 8 13 6 +2 9 8 3 14 7 +3 4 7 2 11 10 +3 7 9 9 14 1 +4 5 7 5 12 9 +5 6 7 6 13 11 +6 8 7 7 14 12 +7 8 9 13 8 10 + +7 +3 4 +3 9 +4 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_ignore_auto.txt b/include/CDT/tests/expected/square with crack__as-provided_ignore_auto.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_ignore_auto.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_ignore_outer.txt b/include/CDT/tests/expected/square with crack__as-provided_ignore_outer.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_ignore_outer.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_ignore_super.txt b/include/CDT/tests/expected/square with crack__as-provided_ignore_super.txt new file mode 100644 index 0000000..b4abfb0 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_ignore_super.txt @@ -0,0 +1,20 @@ +6 +0 1 4 4294967295 2 1 +0 4 6 0 5 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4 2 +3 5 4 4294967295 5 3 +4 5 6 4 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_resolve_all.txt b/include/CDT/tests/expected/square with crack__as-provided_resolve_all.txt new file mode 100644 index 0000000..3e64af2 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_resolve_all.txt @@ -0,0 +1,29 @@ +15 +0 1 4 4294967295 5 2 +0 3 9 2 10 3 +0 4 3 0 9 1 +0 9 2 1 8 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 7 12 4 +2 8 6 8 13 6 +2 9 8 3 14 7 +3 4 7 2 11 10 +3 7 9 9 14 1 +4 5 7 5 12 9 +5 6 7 6 13 11 +6 8 7 7 14 12 +7 8 9 13 8 10 + +7 +3 4 +3 9 +4 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_resolve_auto.txt b/include/CDT/tests/expected/square with crack__as-provided_resolve_auto.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_resolve_auto.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_resolve_outer.txt b/include/CDT/tests/expected/square with crack__as-provided_resolve_outer.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_resolve_outer.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__as-provided_resolve_super.txt b/include/CDT/tests/expected/square with crack__as-provided_resolve_super.txt new file mode 100644 index 0000000..b4abfb0 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__as-provided_resolve_super.txt @@ -0,0 +1,20 @@ +6 +0 1 4 4294967295 2 1 +0 4 6 0 5 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4 2 +3 5 4 4294967295 5 3 +4 5 6 4 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_ignore_all.txt b/include/CDT/tests/expected/square with crack__auto_ignore_all.txt new file mode 100644 index 0000000..3e64af2 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_ignore_all.txt @@ -0,0 +1,29 @@ +15 +0 1 4 4294967295 5 2 +0 3 9 2 10 3 +0 4 3 0 9 1 +0 9 2 1 8 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 7 12 4 +2 8 6 8 13 6 +2 9 8 3 14 7 +3 4 7 2 11 10 +3 7 9 9 14 1 +4 5 7 5 12 9 +5 6 7 6 13 11 +6 8 7 7 14 12 +7 8 9 13 8 10 + +7 +3 4 +3 9 +4 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_ignore_auto.txt b/include/CDT/tests/expected/square with crack__auto_ignore_auto.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_ignore_auto.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_ignore_outer.txt b/include/CDT/tests/expected/square with crack__auto_ignore_outer.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_ignore_outer.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_ignore_super.txt b/include/CDT/tests/expected/square with crack__auto_ignore_super.txt new file mode 100644 index 0000000..b4abfb0 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_ignore_super.txt @@ -0,0 +1,20 @@ +6 +0 1 4 4294967295 2 1 +0 4 6 0 5 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4 2 +3 5 4 4294967295 5 3 +4 5 6 4 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_resolve_all.txt b/include/CDT/tests/expected/square with crack__auto_resolve_all.txt new file mode 100644 index 0000000..3e64af2 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_resolve_all.txt @@ -0,0 +1,29 @@ +15 +0 1 4 4294967295 5 2 +0 3 9 2 10 3 +0 4 3 0 9 1 +0 9 2 1 8 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 11 0 +2 6 5 7 12 4 +2 8 6 8 13 6 +2 9 8 3 14 7 +3 4 7 2 11 10 +3 7 9 9 14 1 +4 5 7 5 12 9 +5 6 7 6 13 11 +6 8 7 7 14 12 +7 8 9 13 8 10 + +7 +3 4 +3 9 +4 5 +5 6 +6 7 +7 8 +8 9 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_resolve_auto.txt b/include/CDT/tests/expected/square with crack__auto_resolve_auto.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_resolve_auto.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_resolve_outer.txt b/include/CDT/tests/expected/square with crack__auto_resolve_outer.txt new file mode 100644 index 0000000..2f8bb2c --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_resolve_outer.txt @@ -0,0 +1,19 @@ +5 +0 1 4 4294967295 2 1 +0 4 6 0 4 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4294967295 2 +4 5 6 4294967295 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/square with crack__auto_resolve_super.txt b/include/CDT/tests/expected/square with crack__auto_resolve_super.txt new file mode 100644 index 0000000..b4abfb0 --- /dev/null +++ b/include/CDT/tests/expected/square with crack__auto_resolve_super.txt @@ -0,0 +1,20 @@ +6 +0 1 4 4294967295 2 1 +0 4 6 0 5 4294967295 +1 2 4 4294967295 3 0 +2 3 4 4294967295 4 2 +3 5 4 4294967295 5 3 +4 5 6 4 4294967295 1 + +7 +0 1 +0 6 +1 2 +2 3 +3 4 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_ignore_all.txt b/include/CDT/tests/expected/test_data_small__as-provided_ignore_all.txt new file mode 100644 index 0000000..1c6864d --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_ignore_all.txt @@ -0,0 +1,210 @@ +201 +0 1 26 4294967295 8 2 +0 4 72 2 24 4 +0 26 4 0 20 1 +0 70 2 5 12 4294967295 +0 72 86 1 199 5 +0 86 70 4 191 3 +1 2 74 4294967295 11 9 +1 22 60 9 99 8 +1 60 26 7 49 0 +1 74 22 6 100 7 +2 25 92 12 108 13 +2 61 74 14 102 6 +2 70 25 3 109 10 +2 92 98 10 188 14 +2 98 61 13 189 11 +3 13 90 18 65 17 +3 43 95 17 170 18 +3 90 43 15 29 16 +3 95 13 16 67 15 +4 24 83 23 106 24 +4 26 57 2 27 21 +4 57 62 20 190 22 +4 62 68 21 195 23 +4 68 24 22 104 19 +4 83 72 19 200 1 +5 10 57 26 48 27 +5 26 10 27 49 25 +5 57 26 25 20 26 +6 33 100 32 133 33 +6 43 90 33 17 31 +6 78 91 31 158 32 +6 90 78 29 65 30 +6 91 33 30 136 28 +6 100 43 28 171 29 +7 8 102 35 41 39 +7 14 8 38 40 34 +7 18 82 37 81 38 +7 66 18 39 82 36 +7 82 14 36 70 35 +7 102 66 34 93 37 +8 14 86 35 68 42 +8 75 102 42 96 34 +8 86 75 40 199 41 +9 17 95 46 80 47 +9 46 85 45 179 46 +9 53 46 47 177 44 +9 85 17 44 80 43 +9 95 53 43 186 45 +10 20 57 50 92 25 +10 26 60 26 8 52 +10 52 20 51 91 48 +10 56 52 52 184 50 +10 60 56 49 161 51 +11 39 99 56 150 58 +11 47 88 57 157 56 +11 73 89 58 148 57 +11 88 39 54 152 53 +11 89 47 55 117 54 +11 99 73 53 147 55 +12 20 93 61 91 62 +12 42 71 63 75 61 +12 71 20 60 92 59 +12 93 97 59 90 63 +12 97 42 62 167 60 +13 46 80 67 166 66 +13 78 90 66 31 15 +13 80 78 64 155 65 +13 95 46 18 179 64 +14 27 86 69 114 40 +14 49 27 70 112 68 +14 82 49 38 121 69 +15 42 46 75 166 72 +15 46 101 71 178 76 +15 62 71 74 190 75 +15 69 62 76 195 73 +15 71 42 73 60 71 +15 101 69 72 193 74 +16 59 101 78 193 79 +16 81 59 79 172 77 +16 101 81 77 178 78 +17 85 95 46 179 43 +18 46 82 83 177 36 +18 66 81 37 174 83 +18 81 46 82 178 81 +19 45 84 85 176 88 +19 51 45 86 159 84 +19 52 51 89 184 85 +19 80 97 88 167 90 +19 84 80 84 197 87 +19 93 52 90 91 86 +19 97 93 87 62 89 +20 52 93 50 89 59 +20 71 57 61 190 48 +21 66 102 95 39 96 +21 75 83 96 200 95 +21 83 66 94 138 93 +21 102 75 93 41 94 +22 23 32 100 103 98 +22 32 38 97 134 99 +22 38 60 98 149 7 +22 74 23 9 102 97 +23 61 87 102 183 103 +23 74 61 100 11 101 +23 87 32 101 123 97 +24 68 69 23 195 105 +24 69 94 104 194 107 +24 79 83 107 140 19 +24 94 79 105 173 106 +25 36 92 110 144 10 +25 70 77 12 192 110 +25 77 36 109 145 108 +27 29 53 112 122 113 +27 49 29 69 121 111 +27 53 58 111 185 114 +27 58 86 113 191 68 +28 32 96 118 127 120 +28 37 91 120 136 119 +28 47 89 119 57 118 +28 89 32 117 134 115 +28 91 47 116 153 117 +28 96 37 115 141 116 +29 49 82 112 70 122 +29 82 53 121 177 111 +30 32 87 127 103 126 +30 50 55 126 182 125 +30 55 98 124 189 128 +30 87 50 123 183 124 +30 96 32 128 115 123 +30 98 96 125 142 127 +31 33 35 133 135 130 +31 35 54 129 143 131 +31 54 64 130 187 132 +31 64 100 131 171 133 +31 100 33 132 28 129 +32 89 38 118 148 98 +33 37 35 136 141 129 +33 91 37 32 116 135 +34 44 66 139 174 138 +34 66 83 137 95 140 +34 79 44 140 173 137 +34 83 79 138 106 139 +35 37 96 135 120 142 +35 96 98 141 128 143 +35 98 54 142 188 130 +36 76 92 146 181 108 +36 77 95 110 186 146 +36 95 76 145 170 144 +38 73 99 148 58 149 +38 89 73 134 55 147 +38 99 60 147 162 99 +39 65 99 151 165 53 +39 67 65 152 163 150 +39 88 67 56 196 151 +40 47 91 157 119 158 +40 63 88 156 196 157 +40 78 80 158 66 156 +40 80 63 155 197 154 +40 88 47 154 54 153 +40 91 78 153 30 155 +41 45 51 164 85 160 +41 51 56 159 184 161 +41 56 60 160 52 162 +41 60 99 161 149 165 +41 65 67 165 151 164 +41 67 45 163 176 159 +41 99 65 162 150 163 +42 80 46 167 64 71 +42 97 80 63 87 166 +43 48 76 169 181 170 +43 64 48 171 180 168 +43 76 95 168 146 16 +43 100 64 33 132 169 +44 59 81 175 78 174 +44 79 94 139 107 175 +44 81 66 172 82 137 +44 94 59 173 194 172 +45 67 84 164 198 84 +46 53 82 45 122 81 +46 81 101 83 79 72 +46 95 85 67 80 44 +48 64 92 169 187 181 +48 92 76 180 144 168 +50 61 55 183 189 124 +50 87 61 126 101 182 +51 52 56 86 51 160 +53 77 58 186 192 113 +53 95 77 47 145 185 +54 92 64 188 180 131 +54 98 92 143 13 187 +55 61 98 182 14 125 +57 71 62 92 73 21 +58 70 86 192 5 114 +58 77 70 185 109 191 +59 69 101 194 76 77 +59 94 69 175 105 193 +62 69 68 74 104 22 +63 67 88 198 152 154 +63 80 84 156 88 198 +63 84 67 197 176 196 +72 75 86 200 42 4 +72 83 75 24 94 199 + +2 +46 53 +46 95 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_ignore_auto.txt b/include/CDT/tests/expected/test_data_small__as-provided_ignore_auto.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_ignore_auto.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_ignore_outer.txt b/include/CDT/tests/expected/test_data_small__as-provided_ignore_outer.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_ignore_outer.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_ignore_super.txt b/include/CDT/tests/expected/test_data_small__as-provided_ignore_super.txt new file mode 100644 index 0000000..33b9921 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_ignore_super.txt @@ -0,0 +1,195 @@ +186 +0 10 87 3 50 2 +0 40 92 2 155 3 +0 87 40 0 14 1 +0 92 10 1 52 0 +1 21 80 8 91 9 +1 23 54 4294967295 12 6 +1 54 59 5 175 7 +1 59 65 6 180 8 +1 65 21 7 89 4 +1 80 69 4 185 4294967295 +2 7 54 11 33 12 +2 23 7 12 34 10 +2 54 23 10 5 11 +3 30 97 17 118 18 +3 40 87 18 2 16 +3 75 88 16 143 17 +3 87 75 14 50 15 +3 88 30 15 121 13 +3 97 40 13 156 14 +4 5 99 20 26 24 +4 11 5 23 25 19 +4 15 79 22 66 23 +4 63 15 24 67 21 +4 79 11 21 55 20 +4 99 63 19 78 22 +5 11 83 20 53 27 +5 72 99 27 81 19 +5 83 72 25 184 26 +6 14 92 31 65 32 +6 43 82 30 164 31 +6 50 43 32 162 29 +6 82 14 29 65 28 +6 92 50 28 171 30 +7 17 54 35 77 10 +7 23 57 11 4294967295 37 +7 49 17 36 76 33 +7 53 49 37 169 35 +7 57 53 34 146 36 +8 36 96 41 135 43 +8 44 85 42 142 41 +8 70 86 43 133 42 +8 85 36 39 137 38 +8 86 44 40 102 39 +8 96 70 38 132 40 +9 17 90 46 76 47 +9 39 68 48 60 46 +9 68 17 45 77 44 +9 90 94 44 75 48 +9 94 39 47 152 45 +10 43 77 52 151 51 +10 75 87 51 16 0 +10 77 75 49 140 50 +10 92 43 3 164 49 +11 24 83 54 99 25 +11 46 24 55 97 53 +11 79 46 23 106 54 +12 39 43 60 151 57 +12 43 98 56 163 61 +12 59 68 59 175 60 +12 66 59 61 180 58 +12 68 39 58 45 56 +12 98 66 57 178 59 +13 56 98 63 178 64 +13 78 56 64 157 62 +13 98 78 62 163 63 +14 82 92 31 164 28 +15 43 79 68 162 21 +15 63 78 22 159 68 +15 78 43 67 163 66 +16 42 81 70 161 73 +16 48 42 71 144 69 +16 49 48 74 169 70 +16 77 94 73 152 75 +16 81 77 69 182 72 +16 90 49 75 76 71 +16 94 90 72 47 74 +17 49 90 35 74 44 +17 68 54 46 175 33 +18 63 99 80 24 81 +18 72 80 81 185 80 +18 80 63 79 123 78 +18 99 72 78 26 79 +19 20 29 85 88 83 +19 29 35 82 119 84 +19 35 57 83 134 4294967295 +19 71 20 4294967295 87 82 +20 58 84 87 168 88 +20 71 58 85 4294967295 86 +20 84 29 86 108 82 +21 65 66 8 180 90 +21 66 91 89 179 92 +21 76 80 92 125 4 +21 91 76 90 158 91 +22 33 89 95 129 4294967295 +22 67 74 4294967295 177 95 +22 74 33 94 130 93 +24 26 50 97 107 98 +24 46 26 54 106 96 +24 50 55 96 170 99 +24 55 83 98 176 53 +25 29 93 103 112 105 +25 34 88 105 121 104 +25 44 86 104 42 103 +25 86 29 102 119 100 +25 88 44 101 138 102 +25 93 34 100 126 101 +26 46 79 97 55 107 +26 79 50 106 162 96 +27 29 84 112 88 111 +27 47 52 111 167 110 +27 52 95 109 174 113 +27 84 47 108 168 109 +27 93 29 113 100 108 +27 95 93 110 127 112 +28 30 32 118 120 115 +28 32 51 114 128 116 +28 51 61 115 172 117 +28 61 97 116 156 118 +28 97 30 117 13 114 +29 86 35 103 133 83 +30 34 32 121 126 114 +30 88 34 17 101 120 +31 41 63 124 159 123 +31 63 80 122 80 125 +31 76 41 125 158 122 +31 80 76 123 91 124 +32 34 93 120 105 127 +32 93 95 126 113 128 +32 95 51 127 173 115 +33 73 89 131 166 93 +33 74 92 95 171 131 +33 92 73 130 155 129 +35 70 96 133 43 134 +35 86 70 119 40 132 +35 96 57 132 147 84 +36 62 96 136 150 38 +36 64 62 137 148 135 +36 85 64 41 181 136 +37 44 88 142 104 143 +37 60 85 141 181 142 +37 75 77 143 51 141 +37 77 60 140 182 139 +37 85 44 139 39 138 +37 88 75 138 15 140 +38 42 48 149 70 145 +38 48 53 144 169 146 +38 53 57 145 37 147 +38 57 96 146 134 150 +38 62 64 150 136 149 +38 64 42 148 161 144 +38 96 62 147 135 148 +39 77 43 152 49 56 +39 94 77 48 72 151 +40 45 73 154 166 155 +40 61 45 156 165 153 +40 73 92 153 131 1 +40 97 61 18 117 154 +41 56 78 160 63 159 +41 76 91 124 92 160 +41 78 63 157 67 122 +41 91 56 158 179 157 +42 64 81 149 183 69 +43 50 79 30 107 66 +43 78 98 68 64 57 +43 92 82 52 65 29 +45 61 89 154 172 166 +45 89 73 165 129 153 +47 58 52 168 174 109 +47 84 58 111 86 167 +48 49 53 71 36 145 +50 74 55 171 177 98 +50 92 74 32 130 170 +51 89 61 173 165 116 +51 95 89 128 4294967295 172 +52 58 95 167 4294967295 110 +54 68 59 77 58 6 +55 67 83 177 4294967295 99 +55 74 67 170 94 176 +56 66 98 179 61 62 +56 91 66 160 90 178 +59 66 65 59 89 7 +60 64 85 183 137 139 +60 77 81 141 73 183 +60 81 64 182 161 181 +69 72 83 185 27 4294967295 +69 80 72 9 79 184 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_resolve_all.txt b/include/CDT/tests/expected/test_data_small__as-provided_resolve_all.txt new file mode 100644 index 0000000..1c6864d --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_resolve_all.txt @@ -0,0 +1,210 @@ +201 +0 1 26 4294967295 8 2 +0 4 72 2 24 4 +0 26 4 0 20 1 +0 70 2 5 12 4294967295 +0 72 86 1 199 5 +0 86 70 4 191 3 +1 2 74 4294967295 11 9 +1 22 60 9 99 8 +1 60 26 7 49 0 +1 74 22 6 100 7 +2 25 92 12 108 13 +2 61 74 14 102 6 +2 70 25 3 109 10 +2 92 98 10 188 14 +2 98 61 13 189 11 +3 13 90 18 65 17 +3 43 95 17 170 18 +3 90 43 15 29 16 +3 95 13 16 67 15 +4 24 83 23 106 24 +4 26 57 2 27 21 +4 57 62 20 190 22 +4 62 68 21 195 23 +4 68 24 22 104 19 +4 83 72 19 200 1 +5 10 57 26 48 27 +5 26 10 27 49 25 +5 57 26 25 20 26 +6 33 100 32 133 33 +6 43 90 33 17 31 +6 78 91 31 158 32 +6 90 78 29 65 30 +6 91 33 30 136 28 +6 100 43 28 171 29 +7 8 102 35 41 39 +7 14 8 38 40 34 +7 18 82 37 81 38 +7 66 18 39 82 36 +7 82 14 36 70 35 +7 102 66 34 93 37 +8 14 86 35 68 42 +8 75 102 42 96 34 +8 86 75 40 199 41 +9 17 95 46 80 47 +9 46 85 45 179 46 +9 53 46 47 177 44 +9 85 17 44 80 43 +9 95 53 43 186 45 +10 20 57 50 92 25 +10 26 60 26 8 52 +10 52 20 51 91 48 +10 56 52 52 184 50 +10 60 56 49 161 51 +11 39 99 56 150 58 +11 47 88 57 157 56 +11 73 89 58 148 57 +11 88 39 54 152 53 +11 89 47 55 117 54 +11 99 73 53 147 55 +12 20 93 61 91 62 +12 42 71 63 75 61 +12 71 20 60 92 59 +12 93 97 59 90 63 +12 97 42 62 167 60 +13 46 80 67 166 66 +13 78 90 66 31 15 +13 80 78 64 155 65 +13 95 46 18 179 64 +14 27 86 69 114 40 +14 49 27 70 112 68 +14 82 49 38 121 69 +15 42 46 75 166 72 +15 46 101 71 178 76 +15 62 71 74 190 75 +15 69 62 76 195 73 +15 71 42 73 60 71 +15 101 69 72 193 74 +16 59 101 78 193 79 +16 81 59 79 172 77 +16 101 81 77 178 78 +17 85 95 46 179 43 +18 46 82 83 177 36 +18 66 81 37 174 83 +18 81 46 82 178 81 +19 45 84 85 176 88 +19 51 45 86 159 84 +19 52 51 89 184 85 +19 80 97 88 167 90 +19 84 80 84 197 87 +19 93 52 90 91 86 +19 97 93 87 62 89 +20 52 93 50 89 59 +20 71 57 61 190 48 +21 66 102 95 39 96 +21 75 83 96 200 95 +21 83 66 94 138 93 +21 102 75 93 41 94 +22 23 32 100 103 98 +22 32 38 97 134 99 +22 38 60 98 149 7 +22 74 23 9 102 97 +23 61 87 102 183 103 +23 74 61 100 11 101 +23 87 32 101 123 97 +24 68 69 23 195 105 +24 69 94 104 194 107 +24 79 83 107 140 19 +24 94 79 105 173 106 +25 36 92 110 144 10 +25 70 77 12 192 110 +25 77 36 109 145 108 +27 29 53 112 122 113 +27 49 29 69 121 111 +27 53 58 111 185 114 +27 58 86 113 191 68 +28 32 96 118 127 120 +28 37 91 120 136 119 +28 47 89 119 57 118 +28 89 32 117 134 115 +28 91 47 116 153 117 +28 96 37 115 141 116 +29 49 82 112 70 122 +29 82 53 121 177 111 +30 32 87 127 103 126 +30 50 55 126 182 125 +30 55 98 124 189 128 +30 87 50 123 183 124 +30 96 32 128 115 123 +30 98 96 125 142 127 +31 33 35 133 135 130 +31 35 54 129 143 131 +31 54 64 130 187 132 +31 64 100 131 171 133 +31 100 33 132 28 129 +32 89 38 118 148 98 +33 37 35 136 141 129 +33 91 37 32 116 135 +34 44 66 139 174 138 +34 66 83 137 95 140 +34 79 44 140 173 137 +34 83 79 138 106 139 +35 37 96 135 120 142 +35 96 98 141 128 143 +35 98 54 142 188 130 +36 76 92 146 181 108 +36 77 95 110 186 146 +36 95 76 145 170 144 +38 73 99 148 58 149 +38 89 73 134 55 147 +38 99 60 147 162 99 +39 65 99 151 165 53 +39 67 65 152 163 150 +39 88 67 56 196 151 +40 47 91 157 119 158 +40 63 88 156 196 157 +40 78 80 158 66 156 +40 80 63 155 197 154 +40 88 47 154 54 153 +40 91 78 153 30 155 +41 45 51 164 85 160 +41 51 56 159 184 161 +41 56 60 160 52 162 +41 60 99 161 149 165 +41 65 67 165 151 164 +41 67 45 163 176 159 +41 99 65 162 150 163 +42 80 46 167 64 71 +42 97 80 63 87 166 +43 48 76 169 181 170 +43 64 48 171 180 168 +43 76 95 168 146 16 +43 100 64 33 132 169 +44 59 81 175 78 174 +44 79 94 139 107 175 +44 81 66 172 82 137 +44 94 59 173 194 172 +45 67 84 164 198 84 +46 53 82 45 122 81 +46 81 101 83 79 72 +46 95 85 67 80 44 +48 64 92 169 187 181 +48 92 76 180 144 168 +50 61 55 183 189 124 +50 87 61 126 101 182 +51 52 56 86 51 160 +53 77 58 186 192 113 +53 95 77 47 145 185 +54 92 64 188 180 131 +54 98 92 143 13 187 +55 61 98 182 14 125 +57 71 62 92 73 21 +58 70 86 192 5 114 +58 77 70 185 109 191 +59 69 101 194 76 77 +59 94 69 175 105 193 +62 69 68 74 104 22 +63 67 88 198 152 154 +63 80 84 156 88 198 +63 84 67 197 176 196 +72 75 86 200 42 4 +72 83 75 24 94 199 + +2 +46 53 +46 95 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_resolve_auto.txt b/include/CDT/tests/expected/test_data_small__as-provided_resolve_auto.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_resolve_auto.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_resolve_outer.txt b/include/CDT/tests/expected/test_data_small__as-provided_resolve_outer.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_resolve_outer.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__as-provided_resolve_super.txt b/include/CDT/tests/expected/test_data_small__as-provided_resolve_super.txt new file mode 100644 index 0000000..33b9921 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__as-provided_resolve_super.txt @@ -0,0 +1,195 @@ +186 +0 10 87 3 50 2 +0 40 92 2 155 3 +0 87 40 0 14 1 +0 92 10 1 52 0 +1 21 80 8 91 9 +1 23 54 4294967295 12 6 +1 54 59 5 175 7 +1 59 65 6 180 8 +1 65 21 7 89 4 +1 80 69 4 185 4294967295 +2 7 54 11 33 12 +2 23 7 12 34 10 +2 54 23 10 5 11 +3 30 97 17 118 18 +3 40 87 18 2 16 +3 75 88 16 143 17 +3 87 75 14 50 15 +3 88 30 15 121 13 +3 97 40 13 156 14 +4 5 99 20 26 24 +4 11 5 23 25 19 +4 15 79 22 66 23 +4 63 15 24 67 21 +4 79 11 21 55 20 +4 99 63 19 78 22 +5 11 83 20 53 27 +5 72 99 27 81 19 +5 83 72 25 184 26 +6 14 92 31 65 32 +6 43 82 30 164 31 +6 50 43 32 162 29 +6 82 14 29 65 28 +6 92 50 28 171 30 +7 17 54 35 77 10 +7 23 57 11 4294967295 37 +7 49 17 36 76 33 +7 53 49 37 169 35 +7 57 53 34 146 36 +8 36 96 41 135 43 +8 44 85 42 142 41 +8 70 86 43 133 42 +8 85 36 39 137 38 +8 86 44 40 102 39 +8 96 70 38 132 40 +9 17 90 46 76 47 +9 39 68 48 60 46 +9 68 17 45 77 44 +9 90 94 44 75 48 +9 94 39 47 152 45 +10 43 77 52 151 51 +10 75 87 51 16 0 +10 77 75 49 140 50 +10 92 43 3 164 49 +11 24 83 54 99 25 +11 46 24 55 97 53 +11 79 46 23 106 54 +12 39 43 60 151 57 +12 43 98 56 163 61 +12 59 68 59 175 60 +12 66 59 61 180 58 +12 68 39 58 45 56 +12 98 66 57 178 59 +13 56 98 63 178 64 +13 78 56 64 157 62 +13 98 78 62 163 63 +14 82 92 31 164 28 +15 43 79 68 162 21 +15 63 78 22 159 68 +15 78 43 67 163 66 +16 42 81 70 161 73 +16 48 42 71 144 69 +16 49 48 74 169 70 +16 77 94 73 152 75 +16 81 77 69 182 72 +16 90 49 75 76 71 +16 94 90 72 47 74 +17 49 90 35 74 44 +17 68 54 46 175 33 +18 63 99 80 24 81 +18 72 80 81 185 80 +18 80 63 79 123 78 +18 99 72 78 26 79 +19 20 29 85 88 83 +19 29 35 82 119 84 +19 35 57 83 134 4294967295 +19 71 20 4294967295 87 82 +20 58 84 87 168 88 +20 71 58 85 4294967295 86 +20 84 29 86 108 82 +21 65 66 8 180 90 +21 66 91 89 179 92 +21 76 80 92 125 4 +21 91 76 90 158 91 +22 33 89 95 129 4294967295 +22 67 74 4294967295 177 95 +22 74 33 94 130 93 +24 26 50 97 107 98 +24 46 26 54 106 96 +24 50 55 96 170 99 +24 55 83 98 176 53 +25 29 93 103 112 105 +25 34 88 105 121 104 +25 44 86 104 42 103 +25 86 29 102 119 100 +25 88 44 101 138 102 +25 93 34 100 126 101 +26 46 79 97 55 107 +26 79 50 106 162 96 +27 29 84 112 88 111 +27 47 52 111 167 110 +27 52 95 109 174 113 +27 84 47 108 168 109 +27 93 29 113 100 108 +27 95 93 110 127 112 +28 30 32 118 120 115 +28 32 51 114 128 116 +28 51 61 115 172 117 +28 61 97 116 156 118 +28 97 30 117 13 114 +29 86 35 103 133 83 +30 34 32 121 126 114 +30 88 34 17 101 120 +31 41 63 124 159 123 +31 63 80 122 80 125 +31 76 41 125 158 122 +31 80 76 123 91 124 +32 34 93 120 105 127 +32 93 95 126 113 128 +32 95 51 127 173 115 +33 73 89 131 166 93 +33 74 92 95 171 131 +33 92 73 130 155 129 +35 70 96 133 43 134 +35 86 70 119 40 132 +35 96 57 132 147 84 +36 62 96 136 150 38 +36 64 62 137 148 135 +36 85 64 41 181 136 +37 44 88 142 104 143 +37 60 85 141 181 142 +37 75 77 143 51 141 +37 77 60 140 182 139 +37 85 44 139 39 138 +37 88 75 138 15 140 +38 42 48 149 70 145 +38 48 53 144 169 146 +38 53 57 145 37 147 +38 57 96 146 134 150 +38 62 64 150 136 149 +38 64 42 148 161 144 +38 96 62 147 135 148 +39 77 43 152 49 56 +39 94 77 48 72 151 +40 45 73 154 166 155 +40 61 45 156 165 153 +40 73 92 153 131 1 +40 97 61 18 117 154 +41 56 78 160 63 159 +41 76 91 124 92 160 +41 78 63 157 67 122 +41 91 56 158 179 157 +42 64 81 149 183 69 +43 50 79 30 107 66 +43 78 98 68 64 57 +43 92 82 52 65 29 +45 61 89 154 172 166 +45 89 73 165 129 153 +47 58 52 168 174 109 +47 84 58 111 86 167 +48 49 53 71 36 145 +50 74 55 171 177 98 +50 92 74 32 130 170 +51 89 61 173 165 116 +51 95 89 128 4294967295 172 +52 58 95 167 4294967295 110 +54 68 59 77 58 6 +55 67 83 177 4294967295 99 +55 74 67 170 94 176 +56 66 98 179 61 62 +56 91 66 160 90 178 +59 66 65 59 89 7 +60 64 85 183 137 139 +60 77 81 141 73 183 +60 81 64 182 161 181 +69 72 83 185 27 4294967295 +69 80 72 9 79 184 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_ignore_all.txt b/include/CDT/tests/expected/test_data_small__auto_ignore_all.txt new file mode 100644 index 0000000..1f94734 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_ignore_all.txt @@ -0,0 +1,210 @@ +201 +0 1 26 4294967295 9 3 +0 4 72 3 24 5 +0 25 2 4 11 4294967295 +0 26 4 0 20 1 +0 70 25 6 109 2 +0 72 86 1 199 6 +0 86 70 5 191 4 +1 2 74 4294967295 12 10 +1 22 60 10 99 9 +1 60 26 8 49 0 +1 74 22 7 100 8 +2 25 92 2 108 13 +2 61 74 14 102 7 +2 92 98 11 188 14 +2 98 61 13 189 12 +3 13 90 18 65 17 +3 43 95 17 170 18 +3 90 43 15 29 16 +3 95 13 16 67 15 +4 24 83 23 106 24 +4 26 57 3 27 21 +4 57 62 20 190 22 +4 62 68 21 195 23 +4 68 24 22 104 19 +4 83 72 19 200 1 +5 10 57 26 48 27 +5 26 10 27 49 25 +5 57 26 25 20 26 +6 33 100 32 133 33 +6 43 90 33 17 31 +6 78 91 31 158 32 +6 90 78 29 65 30 +6 91 33 30 136 28 +6 100 43 28 171 29 +7 8 102 35 41 39 +7 14 8 38 40 34 +7 18 82 37 81 38 +7 66 18 39 82 36 +7 82 14 36 70 35 +7 102 66 34 93 37 +8 14 86 35 68 42 +8 75 102 42 96 34 +8 86 75 40 199 41 +9 17 95 46 80 47 +9 46 85 45 179 46 +9 53 46 47 177 44 +9 85 17 44 80 43 +9 95 53 43 186 45 +10 20 57 50 92 25 +10 26 60 26 9 52 +10 52 20 51 91 48 +10 56 52 52 184 50 +10 60 56 49 161 51 +11 39 99 56 150 58 +11 47 88 57 157 56 +11 73 89 58 148 57 +11 88 39 54 152 53 +11 89 47 55 117 54 +11 99 73 53 147 55 +12 20 93 61 91 62 +12 42 71 63 75 61 +12 71 20 60 92 59 +12 93 97 59 90 63 +12 97 42 62 167 60 +13 46 80 67 166 66 +13 78 90 66 31 15 +13 80 78 64 155 65 +13 95 46 18 179 64 +14 27 86 69 114 40 +14 49 27 70 112 68 +14 82 49 38 121 69 +15 42 46 75 166 72 +15 46 101 71 178 76 +15 62 71 74 190 75 +15 69 62 76 195 73 +15 71 42 73 60 71 +15 101 69 72 193 74 +16 59 101 78 193 79 +16 81 59 79 172 77 +16 101 81 77 178 78 +17 85 95 46 179 43 +18 46 82 83 177 36 +18 66 81 37 174 83 +18 81 46 82 178 81 +19 45 84 85 176 88 +19 51 45 86 159 84 +19 52 51 89 184 85 +19 80 97 88 167 90 +19 84 80 84 197 87 +19 93 52 90 91 86 +19 97 93 87 62 89 +20 52 93 50 89 59 +20 71 57 61 190 48 +21 66 102 95 39 96 +21 75 83 96 200 95 +21 83 66 94 138 93 +21 102 75 93 41 94 +22 23 32 100 103 98 +22 32 38 97 134 99 +22 38 60 98 149 8 +22 74 23 10 102 97 +23 61 87 102 183 103 +23 74 61 100 12 101 +23 87 32 101 123 97 +24 68 69 23 195 105 +24 69 94 104 194 107 +24 79 83 107 140 19 +24 94 79 105 173 106 +25 36 92 110 144 11 +25 70 77 4 192 110 +25 77 36 109 145 108 +27 29 53 112 122 113 +27 49 29 69 121 111 +27 53 58 111 185 114 +27 58 86 113 191 68 +28 32 96 118 127 120 +28 37 91 120 136 119 +28 47 89 119 57 118 +28 89 32 117 134 115 +28 91 47 116 153 117 +28 96 37 115 141 116 +29 49 82 112 70 122 +29 82 53 121 177 111 +30 32 87 127 103 126 +30 50 55 126 182 125 +30 55 98 124 189 128 +30 87 50 123 183 124 +30 96 32 128 115 123 +30 98 96 125 142 127 +31 33 35 133 135 130 +31 35 54 129 143 131 +31 54 64 130 187 132 +31 64 100 131 171 133 +31 100 33 132 28 129 +32 89 38 118 148 98 +33 37 35 136 141 129 +33 91 37 32 116 135 +34 44 66 139 174 138 +34 66 83 137 95 140 +34 79 44 140 173 137 +34 83 79 138 106 139 +35 37 96 135 120 142 +35 96 98 141 128 143 +35 98 54 142 188 130 +36 76 92 146 181 108 +36 77 95 110 186 146 +36 95 76 145 170 144 +38 73 99 148 58 149 +38 89 73 134 55 147 +38 99 60 147 162 99 +39 65 99 151 165 53 +39 67 65 152 163 150 +39 88 67 56 196 151 +40 47 91 157 119 158 +40 63 88 156 196 157 +40 78 80 158 66 156 +40 80 63 155 197 154 +40 88 47 154 54 153 +40 91 78 153 30 155 +41 45 51 164 85 160 +41 51 56 159 184 161 +41 56 60 160 52 162 +41 60 99 161 149 165 +41 65 67 165 151 164 +41 67 45 163 176 159 +41 99 65 162 150 163 +42 80 46 167 64 71 +42 97 80 63 87 166 +43 48 76 169 181 170 +43 64 48 171 180 168 +43 76 95 168 146 16 +43 100 64 33 132 169 +44 59 81 175 78 174 +44 79 94 139 107 175 +44 81 66 172 82 137 +44 94 59 173 194 172 +45 67 84 164 198 84 +46 53 82 45 122 81 +46 81 101 83 79 72 +46 95 85 67 80 44 +48 64 92 169 187 181 +48 92 76 180 144 168 +50 61 55 183 189 124 +50 87 61 126 101 182 +51 52 56 86 51 160 +53 77 58 186 192 113 +53 95 77 47 145 185 +54 92 64 188 180 131 +54 98 92 143 13 187 +55 61 98 182 14 125 +57 71 62 92 73 21 +58 70 86 192 6 114 +58 77 70 185 109 191 +59 69 101 194 76 77 +59 94 69 175 105 193 +62 69 68 74 104 22 +63 67 88 198 152 154 +63 80 84 156 88 198 +63 84 67 197 176 196 +72 75 86 200 42 5 +72 83 75 24 94 199 + +2 +46 53 +46 95 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_ignore_auto.txt b/include/CDT/tests/expected/test_data_small__auto_ignore_auto.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_ignore_auto.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_ignore_outer.txt b/include/CDT/tests/expected/test_data_small__auto_ignore_outer.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_ignore_outer.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_ignore_super.txt b/include/CDT/tests/expected/test_data_small__auto_ignore_super.txt new file mode 100644 index 0000000..33b9921 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_ignore_super.txt @@ -0,0 +1,195 @@ +186 +0 10 87 3 50 2 +0 40 92 2 155 3 +0 87 40 0 14 1 +0 92 10 1 52 0 +1 21 80 8 91 9 +1 23 54 4294967295 12 6 +1 54 59 5 175 7 +1 59 65 6 180 8 +1 65 21 7 89 4 +1 80 69 4 185 4294967295 +2 7 54 11 33 12 +2 23 7 12 34 10 +2 54 23 10 5 11 +3 30 97 17 118 18 +3 40 87 18 2 16 +3 75 88 16 143 17 +3 87 75 14 50 15 +3 88 30 15 121 13 +3 97 40 13 156 14 +4 5 99 20 26 24 +4 11 5 23 25 19 +4 15 79 22 66 23 +4 63 15 24 67 21 +4 79 11 21 55 20 +4 99 63 19 78 22 +5 11 83 20 53 27 +5 72 99 27 81 19 +5 83 72 25 184 26 +6 14 92 31 65 32 +6 43 82 30 164 31 +6 50 43 32 162 29 +6 82 14 29 65 28 +6 92 50 28 171 30 +7 17 54 35 77 10 +7 23 57 11 4294967295 37 +7 49 17 36 76 33 +7 53 49 37 169 35 +7 57 53 34 146 36 +8 36 96 41 135 43 +8 44 85 42 142 41 +8 70 86 43 133 42 +8 85 36 39 137 38 +8 86 44 40 102 39 +8 96 70 38 132 40 +9 17 90 46 76 47 +9 39 68 48 60 46 +9 68 17 45 77 44 +9 90 94 44 75 48 +9 94 39 47 152 45 +10 43 77 52 151 51 +10 75 87 51 16 0 +10 77 75 49 140 50 +10 92 43 3 164 49 +11 24 83 54 99 25 +11 46 24 55 97 53 +11 79 46 23 106 54 +12 39 43 60 151 57 +12 43 98 56 163 61 +12 59 68 59 175 60 +12 66 59 61 180 58 +12 68 39 58 45 56 +12 98 66 57 178 59 +13 56 98 63 178 64 +13 78 56 64 157 62 +13 98 78 62 163 63 +14 82 92 31 164 28 +15 43 79 68 162 21 +15 63 78 22 159 68 +15 78 43 67 163 66 +16 42 81 70 161 73 +16 48 42 71 144 69 +16 49 48 74 169 70 +16 77 94 73 152 75 +16 81 77 69 182 72 +16 90 49 75 76 71 +16 94 90 72 47 74 +17 49 90 35 74 44 +17 68 54 46 175 33 +18 63 99 80 24 81 +18 72 80 81 185 80 +18 80 63 79 123 78 +18 99 72 78 26 79 +19 20 29 85 88 83 +19 29 35 82 119 84 +19 35 57 83 134 4294967295 +19 71 20 4294967295 87 82 +20 58 84 87 168 88 +20 71 58 85 4294967295 86 +20 84 29 86 108 82 +21 65 66 8 180 90 +21 66 91 89 179 92 +21 76 80 92 125 4 +21 91 76 90 158 91 +22 33 89 95 129 4294967295 +22 67 74 4294967295 177 95 +22 74 33 94 130 93 +24 26 50 97 107 98 +24 46 26 54 106 96 +24 50 55 96 170 99 +24 55 83 98 176 53 +25 29 93 103 112 105 +25 34 88 105 121 104 +25 44 86 104 42 103 +25 86 29 102 119 100 +25 88 44 101 138 102 +25 93 34 100 126 101 +26 46 79 97 55 107 +26 79 50 106 162 96 +27 29 84 112 88 111 +27 47 52 111 167 110 +27 52 95 109 174 113 +27 84 47 108 168 109 +27 93 29 113 100 108 +27 95 93 110 127 112 +28 30 32 118 120 115 +28 32 51 114 128 116 +28 51 61 115 172 117 +28 61 97 116 156 118 +28 97 30 117 13 114 +29 86 35 103 133 83 +30 34 32 121 126 114 +30 88 34 17 101 120 +31 41 63 124 159 123 +31 63 80 122 80 125 +31 76 41 125 158 122 +31 80 76 123 91 124 +32 34 93 120 105 127 +32 93 95 126 113 128 +32 95 51 127 173 115 +33 73 89 131 166 93 +33 74 92 95 171 131 +33 92 73 130 155 129 +35 70 96 133 43 134 +35 86 70 119 40 132 +35 96 57 132 147 84 +36 62 96 136 150 38 +36 64 62 137 148 135 +36 85 64 41 181 136 +37 44 88 142 104 143 +37 60 85 141 181 142 +37 75 77 143 51 141 +37 77 60 140 182 139 +37 85 44 139 39 138 +37 88 75 138 15 140 +38 42 48 149 70 145 +38 48 53 144 169 146 +38 53 57 145 37 147 +38 57 96 146 134 150 +38 62 64 150 136 149 +38 64 42 148 161 144 +38 96 62 147 135 148 +39 77 43 152 49 56 +39 94 77 48 72 151 +40 45 73 154 166 155 +40 61 45 156 165 153 +40 73 92 153 131 1 +40 97 61 18 117 154 +41 56 78 160 63 159 +41 76 91 124 92 160 +41 78 63 157 67 122 +41 91 56 158 179 157 +42 64 81 149 183 69 +43 50 79 30 107 66 +43 78 98 68 64 57 +43 92 82 52 65 29 +45 61 89 154 172 166 +45 89 73 165 129 153 +47 58 52 168 174 109 +47 84 58 111 86 167 +48 49 53 71 36 145 +50 74 55 171 177 98 +50 92 74 32 130 170 +51 89 61 173 165 116 +51 95 89 128 4294967295 172 +52 58 95 167 4294967295 110 +54 68 59 77 58 6 +55 67 83 177 4294967295 99 +55 74 67 170 94 176 +56 66 98 179 61 62 +56 91 66 160 90 178 +59 66 65 59 89 7 +60 64 85 183 137 139 +60 77 81 141 73 183 +60 81 64 182 161 181 +69 72 83 185 27 4294967295 +69 80 72 9 79 184 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_resolve_all.txt b/include/CDT/tests/expected/test_data_small__auto_resolve_all.txt new file mode 100644 index 0000000..1f94734 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_resolve_all.txt @@ -0,0 +1,210 @@ +201 +0 1 26 4294967295 9 3 +0 4 72 3 24 5 +0 25 2 4 11 4294967295 +0 26 4 0 20 1 +0 70 25 6 109 2 +0 72 86 1 199 6 +0 86 70 5 191 4 +1 2 74 4294967295 12 10 +1 22 60 10 99 9 +1 60 26 8 49 0 +1 74 22 7 100 8 +2 25 92 2 108 13 +2 61 74 14 102 7 +2 92 98 11 188 14 +2 98 61 13 189 12 +3 13 90 18 65 17 +3 43 95 17 170 18 +3 90 43 15 29 16 +3 95 13 16 67 15 +4 24 83 23 106 24 +4 26 57 3 27 21 +4 57 62 20 190 22 +4 62 68 21 195 23 +4 68 24 22 104 19 +4 83 72 19 200 1 +5 10 57 26 48 27 +5 26 10 27 49 25 +5 57 26 25 20 26 +6 33 100 32 133 33 +6 43 90 33 17 31 +6 78 91 31 158 32 +6 90 78 29 65 30 +6 91 33 30 136 28 +6 100 43 28 171 29 +7 8 102 35 41 39 +7 14 8 38 40 34 +7 18 82 37 81 38 +7 66 18 39 82 36 +7 82 14 36 70 35 +7 102 66 34 93 37 +8 14 86 35 68 42 +8 75 102 42 96 34 +8 86 75 40 199 41 +9 17 95 46 80 47 +9 46 85 45 179 46 +9 53 46 47 177 44 +9 85 17 44 80 43 +9 95 53 43 186 45 +10 20 57 50 92 25 +10 26 60 26 9 52 +10 52 20 51 91 48 +10 56 52 52 184 50 +10 60 56 49 161 51 +11 39 99 56 150 58 +11 47 88 57 157 56 +11 73 89 58 148 57 +11 88 39 54 152 53 +11 89 47 55 117 54 +11 99 73 53 147 55 +12 20 93 61 91 62 +12 42 71 63 75 61 +12 71 20 60 92 59 +12 93 97 59 90 63 +12 97 42 62 167 60 +13 46 80 67 166 66 +13 78 90 66 31 15 +13 80 78 64 155 65 +13 95 46 18 179 64 +14 27 86 69 114 40 +14 49 27 70 112 68 +14 82 49 38 121 69 +15 42 46 75 166 72 +15 46 101 71 178 76 +15 62 71 74 190 75 +15 69 62 76 195 73 +15 71 42 73 60 71 +15 101 69 72 193 74 +16 59 101 78 193 79 +16 81 59 79 172 77 +16 101 81 77 178 78 +17 85 95 46 179 43 +18 46 82 83 177 36 +18 66 81 37 174 83 +18 81 46 82 178 81 +19 45 84 85 176 88 +19 51 45 86 159 84 +19 52 51 89 184 85 +19 80 97 88 167 90 +19 84 80 84 197 87 +19 93 52 90 91 86 +19 97 93 87 62 89 +20 52 93 50 89 59 +20 71 57 61 190 48 +21 66 102 95 39 96 +21 75 83 96 200 95 +21 83 66 94 138 93 +21 102 75 93 41 94 +22 23 32 100 103 98 +22 32 38 97 134 99 +22 38 60 98 149 8 +22 74 23 10 102 97 +23 61 87 102 183 103 +23 74 61 100 12 101 +23 87 32 101 123 97 +24 68 69 23 195 105 +24 69 94 104 194 107 +24 79 83 107 140 19 +24 94 79 105 173 106 +25 36 92 110 144 11 +25 70 77 4 192 110 +25 77 36 109 145 108 +27 29 53 112 122 113 +27 49 29 69 121 111 +27 53 58 111 185 114 +27 58 86 113 191 68 +28 32 96 118 127 120 +28 37 91 120 136 119 +28 47 89 119 57 118 +28 89 32 117 134 115 +28 91 47 116 153 117 +28 96 37 115 141 116 +29 49 82 112 70 122 +29 82 53 121 177 111 +30 32 87 127 103 126 +30 50 55 126 182 125 +30 55 98 124 189 128 +30 87 50 123 183 124 +30 96 32 128 115 123 +30 98 96 125 142 127 +31 33 35 133 135 130 +31 35 54 129 143 131 +31 54 64 130 187 132 +31 64 100 131 171 133 +31 100 33 132 28 129 +32 89 38 118 148 98 +33 37 35 136 141 129 +33 91 37 32 116 135 +34 44 66 139 174 138 +34 66 83 137 95 140 +34 79 44 140 173 137 +34 83 79 138 106 139 +35 37 96 135 120 142 +35 96 98 141 128 143 +35 98 54 142 188 130 +36 76 92 146 181 108 +36 77 95 110 186 146 +36 95 76 145 170 144 +38 73 99 148 58 149 +38 89 73 134 55 147 +38 99 60 147 162 99 +39 65 99 151 165 53 +39 67 65 152 163 150 +39 88 67 56 196 151 +40 47 91 157 119 158 +40 63 88 156 196 157 +40 78 80 158 66 156 +40 80 63 155 197 154 +40 88 47 154 54 153 +40 91 78 153 30 155 +41 45 51 164 85 160 +41 51 56 159 184 161 +41 56 60 160 52 162 +41 60 99 161 149 165 +41 65 67 165 151 164 +41 67 45 163 176 159 +41 99 65 162 150 163 +42 80 46 167 64 71 +42 97 80 63 87 166 +43 48 76 169 181 170 +43 64 48 171 180 168 +43 76 95 168 146 16 +43 100 64 33 132 169 +44 59 81 175 78 174 +44 79 94 139 107 175 +44 81 66 172 82 137 +44 94 59 173 194 172 +45 67 84 164 198 84 +46 53 82 45 122 81 +46 81 101 83 79 72 +46 95 85 67 80 44 +48 64 92 169 187 181 +48 92 76 180 144 168 +50 61 55 183 189 124 +50 87 61 126 101 182 +51 52 56 86 51 160 +53 77 58 186 192 113 +53 95 77 47 145 185 +54 92 64 188 180 131 +54 98 92 143 13 187 +55 61 98 182 14 125 +57 71 62 92 73 21 +58 70 86 192 6 114 +58 77 70 185 109 191 +59 69 101 194 76 77 +59 94 69 175 105 193 +62 69 68 74 104 22 +63 67 88 198 152 154 +63 80 84 156 88 198 +63 84 67 197 176 196 +72 75 86 200 42 5 +72 83 75 24 94 199 + +2 +46 53 +46 95 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_resolve_auto.txt b/include/CDT/tests/expected/test_data_small__auto_resolve_auto.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_resolve_auto.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_resolve_outer.txt b/include/CDT/tests/expected/test_data_small__auto_resolve_outer.txt new file mode 100644 index 0000000..33d6406 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_resolve_outer.txt @@ -0,0 +1,9 @@ +0 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/test_data_small__auto_resolve_super.txt b/include/CDT/tests/expected/test_data_small__auto_resolve_super.txt new file mode 100644 index 0000000..33b9921 --- /dev/null +++ b/include/CDT/tests/expected/test_data_small__auto_resolve_super.txt @@ -0,0 +1,195 @@ +186 +0 10 87 3 50 2 +0 40 92 2 155 3 +0 87 40 0 14 1 +0 92 10 1 52 0 +1 21 80 8 91 9 +1 23 54 4294967295 12 6 +1 54 59 5 175 7 +1 59 65 6 180 8 +1 65 21 7 89 4 +1 80 69 4 185 4294967295 +2 7 54 11 33 12 +2 23 7 12 34 10 +2 54 23 10 5 11 +3 30 97 17 118 18 +3 40 87 18 2 16 +3 75 88 16 143 17 +3 87 75 14 50 15 +3 88 30 15 121 13 +3 97 40 13 156 14 +4 5 99 20 26 24 +4 11 5 23 25 19 +4 15 79 22 66 23 +4 63 15 24 67 21 +4 79 11 21 55 20 +4 99 63 19 78 22 +5 11 83 20 53 27 +5 72 99 27 81 19 +5 83 72 25 184 26 +6 14 92 31 65 32 +6 43 82 30 164 31 +6 50 43 32 162 29 +6 82 14 29 65 28 +6 92 50 28 171 30 +7 17 54 35 77 10 +7 23 57 11 4294967295 37 +7 49 17 36 76 33 +7 53 49 37 169 35 +7 57 53 34 146 36 +8 36 96 41 135 43 +8 44 85 42 142 41 +8 70 86 43 133 42 +8 85 36 39 137 38 +8 86 44 40 102 39 +8 96 70 38 132 40 +9 17 90 46 76 47 +9 39 68 48 60 46 +9 68 17 45 77 44 +9 90 94 44 75 48 +9 94 39 47 152 45 +10 43 77 52 151 51 +10 75 87 51 16 0 +10 77 75 49 140 50 +10 92 43 3 164 49 +11 24 83 54 99 25 +11 46 24 55 97 53 +11 79 46 23 106 54 +12 39 43 60 151 57 +12 43 98 56 163 61 +12 59 68 59 175 60 +12 66 59 61 180 58 +12 68 39 58 45 56 +12 98 66 57 178 59 +13 56 98 63 178 64 +13 78 56 64 157 62 +13 98 78 62 163 63 +14 82 92 31 164 28 +15 43 79 68 162 21 +15 63 78 22 159 68 +15 78 43 67 163 66 +16 42 81 70 161 73 +16 48 42 71 144 69 +16 49 48 74 169 70 +16 77 94 73 152 75 +16 81 77 69 182 72 +16 90 49 75 76 71 +16 94 90 72 47 74 +17 49 90 35 74 44 +17 68 54 46 175 33 +18 63 99 80 24 81 +18 72 80 81 185 80 +18 80 63 79 123 78 +18 99 72 78 26 79 +19 20 29 85 88 83 +19 29 35 82 119 84 +19 35 57 83 134 4294967295 +19 71 20 4294967295 87 82 +20 58 84 87 168 88 +20 71 58 85 4294967295 86 +20 84 29 86 108 82 +21 65 66 8 180 90 +21 66 91 89 179 92 +21 76 80 92 125 4 +21 91 76 90 158 91 +22 33 89 95 129 4294967295 +22 67 74 4294967295 177 95 +22 74 33 94 130 93 +24 26 50 97 107 98 +24 46 26 54 106 96 +24 50 55 96 170 99 +24 55 83 98 176 53 +25 29 93 103 112 105 +25 34 88 105 121 104 +25 44 86 104 42 103 +25 86 29 102 119 100 +25 88 44 101 138 102 +25 93 34 100 126 101 +26 46 79 97 55 107 +26 79 50 106 162 96 +27 29 84 112 88 111 +27 47 52 111 167 110 +27 52 95 109 174 113 +27 84 47 108 168 109 +27 93 29 113 100 108 +27 95 93 110 127 112 +28 30 32 118 120 115 +28 32 51 114 128 116 +28 51 61 115 172 117 +28 61 97 116 156 118 +28 97 30 117 13 114 +29 86 35 103 133 83 +30 34 32 121 126 114 +30 88 34 17 101 120 +31 41 63 124 159 123 +31 63 80 122 80 125 +31 76 41 125 158 122 +31 80 76 123 91 124 +32 34 93 120 105 127 +32 93 95 126 113 128 +32 95 51 127 173 115 +33 73 89 131 166 93 +33 74 92 95 171 131 +33 92 73 130 155 129 +35 70 96 133 43 134 +35 86 70 119 40 132 +35 96 57 132 147 84 +36 62 96 136 150 38 +36 64 62 137 148 135 +36 85 64 41 181 136 +37 44 88 142 104 143 +37 60 85 141 181 142 +37 75 77 143 51 141 +37 77 60 140 182 139 +37 85 44 139 39 138 +37 88 75 138 15 140 +38 42 48 149 70 145 +38 48 53 144 169 146 +38 53 57 145 37 147 +38 57 96 146 134 150 +38 62 64 150 136 149 +38 64 42 148 161 144 +38 96 62 147 135 148 +39 77 43 152 49 56 +39 94 77 48 72 151 +40 45 73 154 166 155 +40 61 45 156 165 153 +40 73 92 153 131 1 +40 97 61 18 117 154 +41 56 78 160 63 159 +41 76 91 124 92 160 +41 78 63 157 67 122 +41 91 56 158 179 157 +42 64 81 149 183 69 +43 50 79 30 107 66 +43 78 98 68 64 57 +43 92 82 52 65 29 +45 61 89 154 172 166 +45 89 73 165 129 153 +47 58 52 168 174 109 +47 84 58 111 86 167 +48 49 53 71 36 145 +50 74 55 171 177 98 +50 92 74 32 130 170 +51 89 61 173 165 116 +51 95 89 128 4294967295 172 +52 58 95 167 4294967295 110 +54 68 59 77 58 6 +55 67 83 177 4294967295 99 +55 74 67 170 94 176 +56 66 98 179 61 62 +56 91 66 160 90 178 +59 66 65 59 89 7 +60 64 85 183 137 139 +60 77 81 141 73 183 +60 81 64 182 161 181 +69 72 83 185 27 4294967295 +69 80 72 9 79 184 + +2 +43 50 +43 92 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_all.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_all.txt new file mode 100644 index 0000000..0c663cf --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 10 4294967295 4 2 +0 3 2 2 5 4294967295 +0 10 3 0 12 1 +1 2 7 4294967295 7 4 +1 7 10 3 16 0 +2 3 4 1 9 6 +2 4 6 5 13 7 +2 6 7 6 13 3 +3 5 7 10 14 9 +3 7 4 8 13 5 +3 8 5 11 14 8 +3 9 8 12 15 10 +3 10 9 2 16 11 +4 7 6 9 7 6 +5 8 7 10 15 8 +7 8 9 14 11 16 +7 9 10 15 12 4 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_outer.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_super.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_super.txt new file mode 100644 index 0000000..b64032b --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_ignore_super.txt @@ -0,0 +1,17 @@ +9 +0 2 4 2 6 1 +0 4 1 0 5 4294967295 +0 5 2 3 6 0 +0 6 5 4 7 2 +0 7 6 4294967295 8 3 +1 4 3 1 4294967295 4294967295 +2 5 4 2 7 0 +4 5 6 6 3 8 +4 6 7 7 4 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_all.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_all.txt new file mode 100644 index 0000000..0c663cf --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 10 4294967295 4 2 +0 3 2 2 5 4294967295 +0 10 3 0 12 1 +1 2 7 4294967295 7 4 +1 7 10 3 16 0 +2 3 4 1 9 6 +2 4 6 5 13 7 +2 6 7 6 13 3 +3 5 7 10 14 9 +3 7 4 8 13 5 +3 8 5 11 14 8 +3 9 8 12 15 10 +3 10 9 2 16 11 +4 7 6 9 7 6 +5 8 7 10 15 8 +7 8 9 14 11 16 +7 9 10 15 12 4 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_auto.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_outer.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_super.txt b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_super.txt new file mode 100644 index 0000000..b64032b --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__as-provided_resolve_super.txt @@ -0,0 +1,17 @@ +9 +0 2 4 2 6 1 +0 4 1 0 5 4294967295 +0 5 2 3 6 0 +0 6 5 4 7 2 +0 7 6 4294967295 8 3 +1 4 3 1 4294967295 4294967295 +2 5 4 2 7 0 +4 5 6 6 3 8 +4 6 7 7 4 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_all.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_all.txt new file mode 100644 index 0000000..5378ead --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 4 2 +0 3 2 3 5 4294967295 +0 7 10 0 16 3 +0 10 3 2 12 1 +1 2 7 4294967295 7 0 +2 3 4 1 9 6 +2 4 6 5 13 7 +2 6 7 6 13 4 +3 5 7 10 14 9 +3 7 4 8 13 5 +3 8 5 11 14 8 +3 9 8 12 15 10 +3 10 9 3 16 11 +4 7 6 9 7 6 +5 8 7 10 15 8 +7 8 9 14 11 16 +7 9 10 15 12 2 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_outer.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_super.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_super.txt new file mode 100644 index 0000000..b64032b --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_ignore_super.txt @@ -0,0 +1,17 @@ +9 +0 2 4 2 6 1 +0 4 1 0 5 4294967295 +0 5 2 3 6 0 +0 6 5 4 7 2 +0 7 6 4294967295 8 3 +1 4 3 1 4294967295 4294967295 +2 5 4 2 7 0 +4 5 6 6 3 8 +4 6 7 7 4 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_all.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_all.txt new file mode 100644 index 0000000..5378ead --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 4 2 +0 3 2 3 5 4294967295 +0 7 10 0 16 3 +0 10 3 2 12 1 +1 2 7 4294967295 7 0 +2 3 4 1 9 6 +2 4 6 5 13 7 +2 6 7 6 13 4 +3 5 7 10 14 9 +3 7 4 8 13 5 +3 8 5 11 14 8 +3 9 8 12 15 10 +3 10 9 3 16 11 +4 7 6 9 7 6 +5 8 7 10 15 8 +7 8 9 14 11 16 +7 9 10 15 12 2 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_auto.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_outer.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_super.txt b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_super.txt new file mode 100644 index 0000000..b64032b --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__auto_resolve_super.txt @@ -0,0 +1,17 @@ +9 +0 2 4 2 6 1 +0 4 1 0 5 4294967295 +0 5 2 3 6 0 +0 6 5 4 7 2 +0 7 6 4294967295 8 3 +1 4 3 1 4294967295 4294967295 +2 5 4 2 7 0 +4 5 6 6 3 8 +4 6 7 7 4 4294967295 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging-flipped__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging-flipped__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..05e9935 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging-flipped__conforming_auto_ignore_auto.txt @@ -0,0 +1,31 @@ +0 + +6 +0 9 +4 11 +8 10 +8 12 +9 10 +11 12 + +0 + +6 +0 9 + 1 + 0 4 +4 11 + 1 + 0 4 +8 10 + 1 + 0 4 +8 12 + 1 + 0 4 +9 10 + 1 + 0 4 +11 12 + 1 + 0 4 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_ignore_all.txt b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_all.txt new file mode 100644 index 0000000..7d1c8c5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 10 1 13 7 +2 10 7 6 16 5 +3 4 6 2 3 10 +3 5 8 11 14 12 +3 6 7 8 4 11 +3 7 5 10 14 9 +3 8 9 9 15 13 +3 9 10 12 16 6 +5 7 8 11 15 9 +7 9 8 16 12 14 +7 10 9 7 13 15 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_ignore_outer.txt b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_ignore_super.txt b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_super.txt new file mode 100644 index 0000000..ef3bcfc --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_ignore_super.txt @@ -0,0 +1,17 @@ +9 +0 1 3 4294967295 4294967295 2 +0 2 5 3 6 4 +0 3 4 0 4294967295 3 +0 4 2 2 6 1 +0 5 6 1 7 5 +0 6 7 4 8 4294967295 +2 4 5 3 7 1 +4 6 5 8 4 6 +4 7 6 4294967295 5 7 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_resolve_all.txt b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_all.txt new file mode 100644 index 0000000..7d1c8c5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 7 4294967295 5 4 +0 3 2 2 6 4294967295 +0 4 3 3 8 1 +0 6 4 4 8 2 +0 7 6 0 10 3 +1 2 7 4294967295 7 0 +2 3 10 1 13 7 +2 10 7 6 16 5 +3 4 6 2 3 10 +3 5 8 11 14 12 +3 6 7 8 4 11 +3 7 5 10 14 9 +3 8 9 9 15 13 +3 9 10 12 16 6 +5 7 8 11 15 9 +7 9 8 16 12 14 +7 10 9 7 13 15 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_resolve_auto.txt b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_resolve_outer.txt b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__as-provided_resolve_super.txt b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_super.txt new file mode 100644 index 0000000..ef3bcfc --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__as-provided_resolve_super.txt @@ -0,0 +1,17 @@ +9 +0 1 3 4294967295 4294967295 2 +0 2 5 3 6 4 +0 3 4 0 4294967295 3 +0 4 2 2 6 1 +0 5 6 1 7 5 +0 6 7 4 8 4294967295 +2 4 5 3 7 1 +4 6 5 8 4 6 +4 7 6 4294967295 5 7 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_ignore_all.txt b/include/CDT/tests/expected/triple-hanging__auto_ignore_all.txt new file mode 100644 index 0000000..5bb2b2c --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_ignore_all.txt @@ -0,0 +1,25 @@ +17 +0 1 3 4294967295 3 1 +0 3 2 0 6 4294967295 +1 2 7 4294967295 7 5 +1 4 3 4 8 0 +1 6 4 5 8 3 +1 7 6 2 10 4 +2 3 10 1 13 7 +2 10 7 6 16 2 +3 4 6 3 4 10 +3 5 8 11 14 12 +3 6 7 8 5 11 +3 7 5 10 14 9 +3 8 9 9 15 13 +3 9 10 12 16 6 +5 7 8 11 15 9 +7 9 8 16 12 14 +7 10 9 7 13 15 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging__auto_ignore_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_ignore_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_ignore_outer.txt b/include/CDT/tests/expected/triple-hanging__auto_ignore_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_ignore_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_ignore_super.txt b/include/CDT/tests/expected/triple-hanging__auto_ignore_super.txt new file mode 100644 index 0000000..ef3bcfc --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_ignore_super.txt @@ -0,0 +1,17 @@ +9 +0 1 3 4294967295 4294967295 2 +0 2 5 3 6 4 +0 3 4 0 4294967295 3 +0 4 2 2 6 1 +0 5 6 1 7 5 +0 6 7 4 8 4294967295 +2 4 5 3 7 1 +4 6 5 8 4 6 +4 7 6 4294967295 5 7 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_resolve_all.txt b/include/CDT/tests/expected/triple-hanging__auto_resolve_all.txt new file mode 100644 index 0000000..5bb2b2c --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_resolve_all.txt @@ -0,0 +1,25 @@ +17 +0 1 3 4294967295 3 1 +0 3 2 0 6 4294967295 +1 2 7 4294967295 7 5 +1 4 3 4 8 0 +1 6 4 5 8 3 +1 7 6 2 10 4 +2 3 10 1 13 7 +2 10 7 6 16 2 +3 4 6 3 4 10 +3 5 8 11 14 12 +3 6 7 8 5 11 +3 7 5 10 14 9 +3 8 9 9 15 13 +3 9 10 12 16 6 +5 7 8 11 15 9 +7 9 8 16 12 14 +7 10 9 7 13 15 + +1 +3 7 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_resolve_auto.txt b/include/CDT/tests/expected/triple-hanging__auto_resolve_auto.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_resolve_auto.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_resolve_outer.txt b/include/CDT/tests/expected/triple-hanging__auto_resolve_outer.txt new file mode 100644 index 0000000..534ffb5 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_resolve_outer.txt @@ -0,0 +1,8 @@ +0 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__auto_resolve_super.txt b/include/CDT/tests/expected/triple-hanging__auto_resolve_super.txt new file mode 100644 index 0000000..ef3bcfc --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__auto_resolve_super.txt @@ -0,0 +1,17 @@ +9 +0 1 3 4294967295 4294967295 2 +0 2 5 3 6 4 +0 3 4 0 4294967295 3 +0 4 2 2 6 1 +0 5 6 1 7 5 +0 6 7 4 8 4294967295 +2 4 5 3 7 1 +4 6 5 8 4 6 +4 7 6 4294967295 5 7 + +1 +0 4 + +0 + +0 diff --git a/include/CDT/tests/expected/triple-hanging__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/triple-hanging__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..05e9935 --- /dev/null +++ b/include/CDT/tests/expected/triple-hanging__conforming_auto_ignore_auto.txt @@ -0,0 +1,31 @@ +0 + +6 +0 9 +4 11 +8 10 +8 12 +9 10 +11 12 + +0 + +6 +0 9 + 1 + 0 4 +4 11 + 1 + 0 4 +8 10 + 1 + 0 4 +8 12 + 1 + 0 4 +9 10 + 1 + 0 4 +11 12 + 1 + 0 4 diff --git a/include/CDT/tests/expected/unit square__as-provided_ignore_all.txt b/include/CDT/tests/expected/unit square__as-provided_ignore_all.txt new file mode 100644 index 0000000..c7c22d5 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_ignore_all.txt @@ -0,0 +1,20 @@ +9 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 7 0 +2 6 5 3 8 4 +3 4 5 2 5 8 +3 5 6 7 6 1 + +4 +3 4 +3 6 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_ignore_auto.txt b/include/CDT/tests/expected/unit square__as-provided_ignore_auto.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_ignore_auto.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_ignore_outer.txt b/include/CDT/tests/expected/unit square__as-provided_ignore_outer.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_ignore_outer.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_ignore_super.txt b/include/CDT/tests/expected/unit square__as-provided_ignore_super.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_ignore_super.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_resolve_all.txt b/include/CDT/tests/expected/unit square__as-provided_resolve_all.txt new file mode 100644 index 0000000..c7c22d5 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_resolve_all.txt @@ -0,0 +1,20 @@ +9 +0 1 4 4294967295 5 2 +0 3 6 2 8 3 +0 4 3 0 7 1 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 5 4 4 7 0 +2 6 5 3 8 4 +3 4 5 2 5 8 +3 5 6 7 6 1 + +4 +3 4 +3 6 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_resolve_auto.txt b/include/CDT/tests/expected/unit square__as-provided_resolve_auto.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_resolve_auto.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_resolve_outer.txt b/include/CDT/tests/expected/unit square__as-provided_resolve_outer.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_resolve_outer.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__as-provided_resolve_super.txt b/include/CDT/tests/expected/unit square__as-provided_resolve_super.txt new file mode 100644 index 0000000..1bd5e88 --- /dev/null +++ b/include/CDT/tests/expected/unit square__as-provided_resolve_super.txt @@ -0,0 +1,13 @@ +2 +0 1 2 4294967295 4294967295 1 +0 2 3 0 4294967295 4294967295 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_ignore_all.txt b/include/CDT/tests/expected/unit square__auto_ignore_all.txt new file mode 100644 index 0000000..e370d45 --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_ignore_all.txt @@ -0,0 +1,20 @@ +9 +0 1 3 4294967295 4 1 +0 3 6 0 7 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 8 4 +2 6 5 2 8 3 +3 4 6 4 8 1 +4 5 6 5 6 7 + +4 +3 4 +3 6 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_ignore_auto.txt b/include/CDT/tests/expected/unit square__auto_ignore_auto.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_ignore_auto.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_ignore_outer.txt b/include/CDT/tests/expected/unit square__auto_ignore_outer.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_ignore_outer.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_ignore_super.txt b/include/CDT/tests/expected/unit square__auto_ignore_super.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_ignore_super.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_resolve_all.txt b/include/CDT/tests/expected/unit square__auto_resolve_all.txt new file mode 100644 index 0000000..e370d45 --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_resolve_all.txt @@ -0,0 +1,20 @@ +9 +0 1 3 4294967295 4 1 +0 3 6 0 7 2 +0 6 2 1 6 4294967295 +1 2 5 4294967295 6 5 +1 4 3 5 7 0 +1 5 4 3 8 4 +2 6 5 2 8 3 +3 4 6 4 8 1 +4 5 6 5 6 7 + +4 +3 4 +3 6 +4 5 +5 6 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_resolve_auto.txt b/include/CDT/tests/expected/unit square__auto_resolve_auto.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_resolve_auto.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_resolve_outer.txt b/include/CDT/tests/expected/unit square__auto_resolve_outer.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_resolve_outer.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__auto_resolve_super.txt b/include/CDT/tests/expected/unit square__auto_resolve_super.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__auto_resolve_super.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/expected/unit square__conforming_auto_ignore_auto.txt b/include/CDT/tests/expected/unit square__conforming_auto_ignore_auto.txt new file mode 100644 index 0000000..70279cc --- /dev/null +++ b/include/CDT/tests/expected/unit square__conforming_auto_ignore_auto.txt @@ -0,0 +1,13 @@ +2 +0 1 3 4294967295 1 4294967295 +1 2 3 4294967295 4294967295 0 + +4 +0 1 +0 3 +1 2 +2 3 + +0 + +0 diff --git a/include/CDT/tests/inputs/Capital A.txt b/include/CDT/tests/inputs/Capital A.txt new file mode 100644 index 0000000..385d793 --- /dev/null +++ b/include/CDT/tests/inputs/Capital A.txt @@ -0,0 +1,59 @@ +29 29 +0.200000 -0.776400 +0.220000 -0.773200 +0.245600 -0.756400 +0.277600 -0.702000 +0.488800 -0.207600 +0.504800 -0.207600 +0.740800 -0.7396 +0.756000 -0.761200 +0.774400 -0.7724 +0.800000 -0.776400 +0.800000 -0.792400 +0.579200 -0.792400 +0.579200 -0.776400 +0.621600 -0.771600 +0.633600 -0.762800 +0.639200 -0.744400 +0.620800 -0.684400 +0.587200 -0.604400 +0.360800 -0.604400 +0.319200 -0.706800 +0.312000 -0.739600 +0.318400 -0.761200 +0.334400 -0.771600 +0.371200 -0.776400 +0.371200 -0.792400 +0.374400 -0.570000 +0.574400 -0.5700 +0.473600 -0.330800 +0.200000 -0.792400 +28 0 + 0 1 + 1 2 + 2 3 + 3 4 + 4 5 + 5 6 + 6 7 + 7 8 + 8 9 + 9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 28 +25 26 +26 27 +27 25 \ No newline at end of file diff --git a/include/CDT/tests/inputs/Constrained Sweden.txt b/include/CDT/tests/inputs/Constrained Sweden.txt new file mode 100644 index 0000000..ec794ca --- /dev/null +++ b/include/CDT/tests/inputs/Constrained Sweden.txt @@ -0,0 +1,5239 @@ +2619 2619 +16.836666 56.826942 +16.828053 56.825272 +16.816944 56.825829 +16.808331 56.824165 +16.785 56.809998 +16.779442 56.805832 +16.770275 56.79583 +16.726665 56.702217 +16.635555 56.518883 +16.576664 56.406944 +16.570553 56.39444 +16.569443 56.388054 +16.570274 56.376938 +16.571941 56.371666 +16.575275 56.367218 +16.575554 56.361382 +16.571663 56.354996 +16.553055 56.326385 +16.496109 56.240829 +16.486385 56.231384 +16.47361 56.224442 +16.437222 56.211388 +16.429722 56.208885 +16.42083 56.211105 +16.416111 56.215271 +16.410831 56.224998 +16.403332 56.274162 +16.391666 56.464996 +16.39333 56.52916 +16.395832 56.535828 +16.420277 56.586388 +16.5425 56.776382 +16.611942 56.868332 +16.616665 56.873604 +16.629166 56.879166 +16.644997 56.883606 +16.749443 56.93972 +16.848053 57.064163 +16.899998 57.134995 +16.959442 57.22361 +16.963055 57.229439 +16.965553 57.241661 +16.960278 57.256943 +16.959164 57.274162 +16.960552 57.280273 +16.96611 57.29361 +16.973331 57.305275 +16.982777 57.315552 +16.993053 57.324715 +17.009998 57.337494 +17.022221 57.344994 +17.035553 57.351944 +17.056664 57.359161 +17.09861 57.350555 +17.105553 57.348328 +17.124165 57.320831 +17.050552 57.186661 +17.008888 57.131943 +16.961109 57.075272 +16.926666 57.038055 +16.880276 56.929718 +16.848331 56.843887 +16.84111 56.832222 +18.206108 56.911942 +18.168888 56.909996 +18.147778 56.911942 +18.140274 56.914993 +18.142498 56.920273 +18.158333 56.941666 +18.209164 56.989166 +18.256664 57.032219 +18.254444 57.079163 +18.173332 57.141937 +18.148331 57.235275 +18.158054 57.315826 +18.142498 57.409439 +18.115276 57.480827 +18.110275 57.496109 +18.109997 57.513054 +18.111385 57.51944 +18.119164 57.531105 +18.138611 57.551109 +18.179165 57.588333 +18.191441 57.596138 +18.211941 57.605827 +18.227776 57.611382 +18.242222 57.617493 +18.249165 57.620827 +18.276108 57.634163 +18.29472 57.645828 +18.338886 57.681664 +18.355831 57.695831 +18.381943 57.718605 +18.401665 57.738609 +18.41972 57.760277 +18.456387 57.802773 +18.461388 57.807777 +18.46722 57.811943 +18.48111 57.818604 +18.681942 57.913605 +18.689999 57.916107 +18.71611 57.921104 +18.724998 57.922775 +18.881943 57.919716 +18.902496 57.918327 +18.914165 57.917496 +19.004719 57.908607 +19.006107 57.90361 +19.003887 57.898888 +19.033333 57.826942 +18.929443 57.739716 +18.848888 57.721107 +18.809166 57.703606 +18.793331 57.659164 +18.75972 57.508049 +18.768055 57.472221 +18.769444 57.467216 +18.78833 57.448326 +18.714443 57.246941 +18.711941 57.241661 +18.658054 57.220833 +18.551941 57.182777 +18.514721 57.169441 +18.498333 57.165276 +18.455555 57.156944 +18.439442 57.152771 +18.417221 57.144165 +18.397221 57.134163 +18.391388 57.129997 +18.386665 57.124992 +18.345554 57.07972 +18.341389 57.073883 +18.339165 57.068604 +18.335552 57.023331 +18.335831 57.017494 +18.34333 57.014442 +18.346664 56.998604 +18.302498 56.937492 +18.294998 56.934715 +18.215553 56.913055 +19.334442 57.955826 +19.286663 57.937492 +19.277496 57.940277 +19.274441 57.945 +19.268055 57.948608 +19.256664 57.94944 +19.238052 57.946938 +19.170555 57.929443 +19.162777 57.926941 +19.150833 57.91861 +19.145832 57.913605 +19.141666 57.907776 +19.139999 57.901665 +19.12611 57.839722 +19.09333 57.851944 +19.077774 57.85833 +19.073055 57.862495 +19.037498 57.896385 +19.034443 57.901108 +19.034443 57.912498 +19.03611 57.91861 +19.088886 57.970276 +19.095833 57.97361 +19.104721 57.975273 +19.285831 57.976662 +19.296387 57.976662 +19.307499 57.974442 +19.332497 57.965271 +19.335552 57.960548 +11.594444 57.932495 +11.584999 57.930832 +11.57472 57.931664 +11.528055 57.948051 +11.522499 57.951942 +11.518125 57.98069 +11.509722 57.989716 +11.498333 58.006943 +11.497221 58.012772 +11.498055 58.031387 +11.501944 58.036659 +11.520555 58.047775 +11.529999 58.049164 +11.735884 58.041714 +11.74111 58.030548 +11.742222 58.024994 +11.736944 58.00444 +11.734165 57.998604 +11.729166 57.993889 +11.722776 57.990273 +11.659443 57.957497 +11.646111 57.950829 +16.816666 58.116104 +16.783333 58.096664 +16.77861 58.100555 +16.778053 58.106384 +16.781944 58.112221 +16.787777 58.116386 +16.801109 58.123329 +16.810833 58.124443 +16.818886 58.121384 +11.806389 58.120552 +11.800278 58.116943 +11.714722 58.101105 +11.676388 58.098885 +11.624722 58.107498 +11.62361 58.113052 +11.606667 58.118607 +11.583055 58.118889 +11.553333 58.115273 +11.467222 58.101387 +11.465832 58.095833 +11.46361 58.071663 +11.464998 58.066109 +11.454721 58.072495 +11.450554 58.076942 +11.40111 58.130272 +11.402777 58.13694 +11.410555 58.147499 +11.668888 58.284439 +11.6775 58.286659 +11.708887 58.285828 +11.721666 58.284721 +11.736666 58.281662 +11.786665 58.245552 +11.809999 58.224442 +11.812498 58.219162 +11.81361 58.213608 +11.815832 58.171944 +11.814722 58.147217 +11.81111 58.133606 +19.236942 58.337219 +19.226109 58.337219 +19.21833 58.340271 +19.187222 58.381386 +19.184166 58.386108 +19.186665 58.391388 +19.224998 58.389717 +19.261665 58.384163 +19.305832 58.375275 +19.324718 58.36972 +19.331108 58.366104 +19.327499 58.361664 +19.315277 58.353333 +19.302219 58.346107 +19.294167 58.343605 +19.285275 58.341942 +17.691387 58.916939 +17.706387 58.904442 +17.695831 58.905548 +17.676388 58.916382 +17.671387 58.920555 +17.664444 58.929993 +17.641109 58.965828 +17.639164 58.971107 +17.639164 58.976662 +17.641941 58.989166 +17.660553 59.039719 +17.667774 59.052216 +17.675831 59.054718 +17.68222 59.051109 +17.696388 59.039719 +17.718052 59.018051 +17.721664 59.007774 +17.720276 59.001663 +17.71611 58.995552 +17.704166 58.987221 +17.69611 58.975555 +17.690277 58.950829 +17.687775 58.926941 +17.688053 58.921387 +18.40583 59.023888 +18.377499 59.01944 +18.365555 59.020271 +18.360554 59.024437 +18.357498 59.02916 +18.35722 59.034996 +18.396942 59.080826 +18.407219 59.090828 +18.41333 59.094994 +18.444164 59.115829 +18.450554 59.11805 +18.459721 59.11972 +18.469719 59.120552 +18.479164 59.119995 +18.491665 59.102776 +18.490555 59.098053 +18.424164 59.036385 +18.53722 59.223885 +18.527222 59.223053 +18.515274 59.223885 +18.503887 59.22583 +18.435555 59.253609 +18.428886 59.257217 +18.389442 59.284721 +18.391941 59.290276 +18.466663 59.29277 +18.478886 59.291939 +18.49472 59.290833 +18.503609 59.288887 +18.601944 59.2575 +18.610275 59.254166 +18.571941 59.232216 +18.56361 59.229721 +17.786942 59.310555 +17.777775 59.308609 +17.754444 59.309441 +17.721664 59.316109 +17.686943 59.328049 +17.671944 59.334717 +17.661942 59.343048 +17.617496 59.397774 +17.605553 59.416664 +17.610554 59.421661 +17.61861 59.424438 +17.627777 59.426109 +17.638885 59.426109 +17.650555 59.424164 +17.737499 59.393326 +17.744164 59.389717 +17.773888 59.372772 +17.777222 59.36805 +17.789165 59.321388 +17.789165 59.315826 +17.734722 59.296104 +17.817497 59.277771 +17.758053 59.28083 +17.681942 59.289719 +17.658886 59.293884 +17.649166 59.296387 +17.639164 59.299164 +17.622776 59.305275 +17.610832 59.313049 +17.520554 59.406944 +17.518887 59.411942 +17.520275 59.418327 +17.523609 59.422775 +17.531666 59.425278 +17.539165 59.426666 +17.570553 59.428604 +17.622776 59.378609 +17.629719 59.369438 +17.636944 59.348885 +17.637218 59.343048 +17.635555 59.336937 +17.636108 59.325554 +17.637775 59.320549 +17.647778 59.317772 +17.266388 59.374443 +17.256386 59.373329 +17.23111 59.375549 +17.155552 59.383606 +17.147221 59.386665 +17.070274 59.453888 +17.07 59.459442 +17.089722 59.459999 +17.150555 59.456665 +17.236111 59.449715 +17.256943 59.446663 +17.266941 59.44416 +17.280277 59.436943 +17.316109 59.408051 +17.318054 59.403053 +17.317219 59.398048 +17.309719 59.394165 +18.575554 59.448326 +18.565277 59.447495 +18.553055 59.448326 +18.526665 59.468605 +18.521664 59.472771 +18.519997 59.483604 +18.519997 59.489441 +18.522778 59.49472 +18.528889 59.498886 +18.570274 59.526382 +18.610832 59.546661 +18.63361 59.555832 +18.643608 59.556664 +18.738888 59.548332 +18.746944 59.544998 +18.732498 59.53833 +18.724442 59.535828 +18.715275 59.534164 +18.668053 59.526665 +18.591389 59.501106 +18.588608 59.495552 +18.590275 59.490555 +18.606941 59.467216 +18.605274 59.461105 +18.583611 59.450829 +18.57 60.307777 +18.561665 60.305275 +18.549164 60.306107 +18.521111 60.315826 +18.512775 60.31916 +18.401108 60.365273 +18.394165 60.374718 +18.392498 60.379715 +18.381943 60.416382 +18.371666 60.494164 +18.374165 60.499718 +18.380554 60.503883 +18.389999 60.505554 +18.408886 60.499718 +18.422497 60.486664 +18.456108 60.427498 +18.507221 60.348053 +18.53722 60.342499 +18.572777 60.313332 +17.509163 62.363327 +17.484722 62.363052 +17.456665 62.365273 +17.444164 62.367493 +17.422222 62.372498 +17.416664 62.376663 +17.412777 62.381386 +17.369164 62.46666 +17.367222 62.471664 +17.373333 62.474442 +17.463055 62.461662 +17.472221 62.458328 +17.514442 62.414444 +17.5425 62.366104 +18.060833 62.67083 +18.049721 62.669998 +18.041664 62.672218 +18.03611 62.676384 +18.026665 62.685272 +18.023052 62.689995 +18.019165 62.700272 +18.022499 62.712494 +18.039165 62.73555 +18.04583 62.739716 +18.060276 62.743889 +18.070553 62.745552 +18.129719 62.740555 +18.141388 62.739166 +18.146942 62.734993 +18.153053 62.728882 +18.156944 62.71833 +18.154999 62.712219 +18.114166 62.686943 +18.10722 62.682777 +18.099442 62.679443 +20.885555 63.751663 +20.875832 63.749161 +20.840832 63.763054 +20.837498 63.767776 +20.838055 63.773331 +20.84222 63.779999 +20.8475 63.785828 +20.855 63.789993 +20.873333 63.795555 +20.884998 63.796104 +20.899998 63.794167 +20.91111 63.791382 +20.921944 63.782776 +20.928608 63.773331 +20.927219 63.768608 +21.809166 68.570541 +21.824718 68.570267 +21.864719 68.573608 +21.881386 68.572495 +21.897221 68.569992 +21.933887 68.555267 +21.959442 68.543884 +21.997776 68.523605 +22.003887 68.51944 +22.022499 68.506653 +22.035 68.498047 +22.038055 68.487778 +22.041943 68.483047 +22.050552 68.479156 +22.063889 68.476105 +22.150833 68.465546 +22.1675 68.464432 +22.371944 68.463608 +22.430553 68.45166 +22.5 68.440132 +22.581665 68.427216 +22.659721 68.422485 +22.673885 68.420822 +22.823608 68.388046 +22.82972 68.383881 +22.863609 68.357498 +22.899719 68.331665 +22.910275 68.328323 +22.936386 68.32222 +22.969444 68.317764 +23.048054 68.293884 +23.058609 68.290268 +23.066944 68.286377 +23.353333 68.083603 +23.367496 68.064713 +23.376942 68.055542 +23.394444 68.042496 +23.531666 67.992493 +23.638332 67.958054 +23.648888 67.954712 +23.656944 67.950821 +23.666111 67.941666 +23.667221 67.936386 +23.665554 67.929993 +23.659721 67.923599 +23.652775 67.918045 +23.644722 67.913055 +23.607777 67.897491 +23.596386 67.895264 +23.545555 67.889999 +23.511108 67.883606 +23.492496 67.875824 +23.486942 67.869156 +23.48333 67.863052 +23.471107 67.822769 +23.469997 67.81694 +23.491386 67.712494 +23.507774 67.665543 +23.471943 67.556381 +23.433331 67.491943 +23.429996 67.485825 +23.428886 67.47583 +23.43111 67.465546 +23.44833 67.452499 +23.464165 67.444717 +23.474442 67.441101 +23.486942 67.438049 +23.500553 67.436386 +23.511944 67.438599 +23.527496 67.448044 +23.536663 67.451935 +23.549164 67.453323 +23.581944 67.449997 +23.734997 67.426102 +23.761944 67.420273 +23.767776 67.416107 +23.768887 67.410828 +23.783054 67.332214 +23.781944 67.326385 +23.773331 67.314438 +23.749722 67.289444 +23.741665 67.284714 +23.731667 67.281662 +23.708054 67.278046 +23.683052 67.275543 +23.63583 67.2686 +23.624722 67.266388 +23.614441 67.263321 +23.605553 67.25943 +23.594444 67.246384 +23.586666 67.234985 +23.570553 67.161942 +23.571663 67.156662 +23.580555 67.147491 +23.68111 67.047485 +23.73111 67.008331 +23.744442 67.0 +23.757774 66.991943 +23.787777 66.981384 +23.866943 66.931107 +23.935833 66.884155 +23.941109 66.87999 +23.949997 66.870819 +24.00111 66.810272 +24.007774 66.800552 +24.006386 66.794998 +23.999722 66.791382 +23.987778 66.790268 +23.948055 66.788879 +23.936943 66.786942 +23.893608 66.749161 +23.889999 66.743042 +23.891109 66.737778 +23.900833 66.712494 +23.902775 66.680267 +23.891941 66.581665 +23.887497 66.569992 +23.884163 66.563889 +23.878609 66.55722 +23.871944 66.551666 +23.861942 66.548599 +23.826942 66.543884 +23.80722 66.537766 +23.725277 66.500824 +23.666386 66.465271 +23.658886 66.460541 +23.652222 66.454712 +23.646664 66.448318 +23.640274 66.436096 +23.639164 66.430542 +23.660831 66.317215 +23.661942 66.31221 +23.666386 66.302216 +23.684719 66.263321 +23.719166 66.204987 +23.722221 66.200272 +23.727776 66.195831 +23.735275 66.19194 +23.754719 66.184998 +23.808331 66.169708 +23.820274 66.166656 +23.848053 66.161377 +23.864166 66.159164 +23.879444 66.158051 +23.89333 66.155273 +23.912498 66.148331 +23.925552 66.139999 +23.930832 66.135544 +23.940277 66.121384 +23.948608 66.101379 +23.967777 66.072495 +24.031387 66.020264 +24.160553 65.839996 +24.166664 65.830551 +24.16861 65.819992 +24.167007 65.814026 +24.153053 65.805542 +24.144444 65.801666 +24.121109 65.798874 +24.10611 65.800278 +24.08083 65.806107 +24.052219 65.808044 +24.040276 65.806656 +23.986111 65.792496 +23.956108 65.784164 +23.951942 65.778885 +23.948608 65.772766 +23.943333 65.766388 +23.936943 65.760818 +23.928333 65.756943 +23.916664 65.757767 +23.773888 65.79277 +23.772778 65.797775 +23.653889 65.806381 +23.51833 65.800827 +23.434719 65.760544 +23.394444 65.767487 +23.249722 65.800827 +23.234444 65.763611 +23.141109 65.714722 +23.131664 65.711655 +23.081108 65.698883 +23.073608 65.702774 +23.000275 65.752777 +22.828888 65.815277 +22.826385 65.825546 +22.823055 65.830551 +22.790276 65.856384 +22.723331 65.886108 +22.675831 65.902222 +22.644722 65.905548 +22.637218 65.902771 +22.638611 65.897766 +22.649719 65.888885 +22.666943 65.881653 +22.674442 65.877777 +22.679996 65.873596 +22.683331 65.868881 +22.70472 65.807495 +22.684998 65.763885 +22.677776 65.759155 +22.669441 65.75499 +22.66 65.751938 +22.648609 65.750549 +22.651386 65.756653 +22.656387 65.763321 +22.657219 65.768875 +22.650555 65.77832 +22.608608 65.796936 +22.479164 65.851105 +22.451385 65.85611 +22.41861 65.859436 +22.375553 65.860825 +22.363888 65.859161 +22.357777 65.85582 +22.329166 65.829712 +22.257774 65.691101 +22.249054 65.632492 +22.27272 65.627655 +22.281054 65.626152 +22.289387 65.625992 +22.300554 65.629822 +22.316666 65.618042 +22.321388 65.62471 +22.32222 65.630264 +22.316666 65.63472 +22.309166 65.638611 +22.298054 65.647217 +22.286942 65.659988 +22.283607 65.664993 +22.289719 65.66832 +22.303608 65.665833 +22.323055 65.659164 +22.385555 65.628876 +22.423611 65.558884 +22.426388 65.548599 +22.423332 65.542221 +22.416386 65.537491 +22.40583 65.535263 +22.394165 65.53833 +22.379166 65.545822 +22.366108 65.554153 +22.241833 65.577271 +22.206329 65.578773 +22.07972 65.607208 +21.863888 65.666656 +21.854164 65.669998 +21.846386 65.673874 +21.840832 65.678055 +21.826942 65.69722 +21.821388 65.701385 +21.766941 65.722488 +21.76083 65.716934 +21.762497 65.711655 +21.773052 65.697495 +21.828053 65.665268 +21.84333 65.657776 +21.853054 65.654434 +22.022499 65.598053 +22.057777 65.589157 +22.116108 65.583054 +22.125832 65.579712 +22.199165 65.545273 +22.194164 65.540833 +22.184998 65.537766 +22.164165 65.533051 +22.053848 65.517441 +22.000275 65.513611 +21.987499 65.515274 +21.909164 65.526657 +21.899441 65.529999 +21.891666 65.533875 +21.887218 65.537216 +21.879997 65.536652 +21.859165 65.532211 +21.852497 65.529999 +21.858055 65.525833 +21.901108 65.496658 +21.914165 65.488602 +21.925831 65.48555 +21.93972 65.485275 +21.922497 65.506943 +21.925278 65.510818 +21.936943 65.508041 +21.979164 65.489716 +22.030277 65.462219 +22.031666 65.457214 +22.017498 65.428604 +22.010555 65.423874 +21.929443 65.398041 +21.675831 65.391098 +21.66222 65.391388 +21.647499 65.392487 +21.635555 65.395554 +21.628052 65.399155 +21.611385 65.412216 +21.601665 65.415543 +21.586941 65.416382 +21.54472 65.408051 +21.474163 65.386658 +21.46833 65.380829 +21.497276 65.35527 +21.506275 65.344604 +21.534277 65.327271 +21.54311 65.326775 +21.57972 65.314713 +21.587776 65.318878 +21.590275 65.324997 +21.586941 65.329712 +21.588886 65.332214 +21.612221 65.326385 +21.621944 65.323044 +21.69722 65.291382 +21.70472 65.287491 +21.704166 65.281937 +21.700832 65.270264 +21.695 65.264435 +21.663887 65.247498 +21.65472 65.244156 +21.588055 65.234711 +21.565277 65.231659 +21.553608 65.234711 +21.548054 65.238876 +21.541111 65.248322 +21.538055 65.258881 +21.493887 65.286713 +21.468887 65.310883 +21.464222 65.31321 +21.338055 65.36972 +21.324444 65.371933 +21.314163 65.36972 +21.266388 65.34111 +21.260555 65.337494 +21.266109 65.333328 +21.32111 65.323608 +21.336941 65.321655 +21.417221 65.306107 +21.505276 65.248596 +21.548054 65.219437 +21.559166 65.210831 +21.613609 65.162491 +21.620552 65.153046 +21.621944 65.147766 +21.621387 65.142212 +21.583885 65.062775 +21.577221 65.05777 +21.56583 65.056381 +21.533703 65.058746 +21.494164 65.061096 +21.483055 65.059708 +21.472775 65.05722 +21.46833 65.050552 +21.467499 65.044998 +21.470554 65.034439 +21.48 65.031097 +21.466663 65.007217 +21.373333 64.975555 +21.300831 64.954437 +21.254997 64.949432 +21.243889 64.947769 +21.205276 64.891663 +21.206665 64.886383 +21.208885 64.862488 +21.183052 64.829987 +21.131664 64.818878 +21.122776 64.818054 +21.109165 64.820267 +21.0975 64.823318 +21.091942 64.827499 +21.084999 64.836929 +21.086109 64.848328 +21.082497 64.853043 +21.073055 64.856384 +21.060555 64.85582 +21.044998 64.847763 +21.039444 64.841934 +21.036942 64.835831 +21.03611 64.824432 +21.039444 64.819717 +21.044998 64.815277 +21.082497 64.788605 +21.089996 64.784714 +21.0975 64.781097 +21.106941 64.777771 +21.125608 64.775826 +21.134275 64.775154 +21.159443 64.775543 +21.214996 64.782776 +21.229443 64.781937 +21.258331 64.777496 +21.292774 64.768875 +21.302219 64.765549 +21.307777 64.761383 +21.310833 64.750824 +21.304996 64.661942 +21.289719 64.663879 +21.278332 64.666656 +21.268608 64.669998 +21.238888 64.685272 +21.161942 64.722763 +21.143721 64.724442 +21.136221 64.725433 +21.121721 64.724602 +21.105 64.722763 +21.104443 64.716934 +21.111942 64.691101 +21.118889 64.681381 +21.133888 64.673874 +21.271385 64.615265 +21.356941 64.59082 +21.361385 64.597214 +21.366943 64.603043 +21.373333 64.60527 +21.465275 64.575546 +21.554165 64.532486 +21.584999 64.439713 +21.458054 64.361099 +21.390553 64.335266 +21.32222 64.309998 +21.313332 64.306931 +21.28611 64.298325 +21.276108 64.295822 +21.26722 64.294998 +21.25972 64.298599 +21.258331 64.303879 +21.254997 64.308609 +21.242775 64.310272 +21.234997 64.306107 +20.971664 64.148605 +20.957497 64.139435 +20.954166 64.134155 +20.904999 64.049438 +20.895554 64.002487 +20.793888 63.886383 +20.777775 63.869164 +20.770275 63.864998 +20.728611 63.848053 +20.638332 63.813332 +20.535 63.799164 +20.508053 63.820274 +20.499722 63.822777 +20.494164 63.81916 +20.447777 63.758331 +20.417774 63.697777 +20.413609 63.691109 +20.386944 63.674164 +20.379166 63.672493 +20.369999 63.675552 +20.316666 63.659996 +20.298611 63.646385 +20.263885 63.665833 +20.099998 63.65583 +20.011944 63.635826 +19.899441 63.609161 +19.893055 63.606384 +19.775276 63.533333 +19.749165 63.516663 +19.747219 63.510551 +19.748886 63.505272 +19.754166 63.501106 +19.761665 63.497215 +19.768887 63.487778 +19.779163 63.462494 +19.772644 63.457535 +19.704998 63.431938 +19.683052 63.429718 +19.668053 63.431389 +19.641109 63.442497 +19.63583 63.446663 +19.639999 63.45916 +19.643055 63.464439 +19.64333 63.469994 +19.639721 63.474716 +19.616386 63.49472 +19.501663 63.549438 +19.475555 63.559715 +19.463608 63.561104 +19.453053 63.559441 +19.428055 63.549438 +19.422775 63.54583 +19.424442 63.54055 +19.47361 63.453049 +19.44722 63.440277 +19.365833 63.434998 +19.351665 63.435272 +19.318333 63.449165 +19.312775 63.453331 +19.309185 63.463608 +19.296665 63.463608 +19.289444 63.459442 +19.283333 63.454437 +19.278332 63.448608 +19.274441 63.44194 +19.275833 63.419716 +19.277496 63.408882 +19.230553 63.327499 +19.158607 63.315277 +19.139999 63.310272 +19.058609 63.253609 +19.045555 63.244438 +19.040554 63.238609 +19.044167 63.22805 +19.049721 63.21833 +19.059719 63.216385 +19.085278 63.214165 +19.108608 63.213608 +19.110275 63.208328 +19.066666 63.178604 +19.058331 63.175278 +19.046944 63.174438 +19.036942 63.176384 +18.9725 63.209999 +18.966942 63.214439 +18.963333 63.218887 +18.964996 63.225273 +18.965275 63.230827 +18.956108 63.245277 +18.90361 63.272774 +18.889721 63.273605 +18.811554 63.251774 +18.806053 63.250275 +18.802887 63.248108 +18.801054 63.244942 +18.803387 63.242107 +18.810055 63.24044 +18.847219 63.234104 +18.883886 63.227104 +18.908054 63.210274 +18.915276 63.206665 +18.897499 63.191666 +18.784721 63.161942 +18.775833 63.162773 +18.761108 63.170273 +18.751942 63.184715 +18.748665 63.192436 +18.752163 63.195606 +18.757664 63.197105 +18.765331 63.197105 +18.78083 63.194439 +18.793999 63.195938 +18.791832 63.198772 +18.787331 63.200939 +18.780664 63.202606 +18.771832 63.203606 +18.736164 63.207607 +18.728664 63.207607 +18.722332 63.206604 +18.719831 63.203773 +18.720997 63.200775 +18.735554 63.172493 +18.739166 63.16777 +18.647221 63.140549 +18.566944 63.117493 +18.382221 63.051666 +18.289165 62.997215 +18.346664 62.988052 +18.367222 62.991386 +18.389999 62.993332 +18.402496 62.993332 +18.524998 62.985832 +18.539719 62.984444 +18.552498 62.982216 +18.561943 62.978882 +18.567497 62.974716 +18.576664 62.965828 +18.580276 62.955551 +18.576385 62.951111 +18.473888 62.862495 +18.466942 62.85833 +18.208611 62.77861 +18.199444 62.776108 +18.12611 62.765831 +18.082775 62.781105 +18.104443 62.804161 +18.129166 62.804443 +18.138332 62.806938 +18.145275 62.811104 +18.144997 62.816666 +18.137775 62.820549 +18.07333 62.836662 +18.03722 62.839165 +17.984997 62.82222 +17.978333 62.818054 +17.97472 62.811386 +17.927498 62.842499 +17.872219 62.91861 +17.862499 62.933052 +17.84333 62.962219 +17.828331 62.993332 +17.820274 62.995827 +17.701664 62.995552 +17.696663 62.991943 +17.702221 62.987778 +17.730553 62.972771 +17.752777 62.961937 +17.771385 62.955551 +17.79361 62.950554 +17.834721 62.933327 +17.881943 62.883606 +17.99472 62.730553 +18.004444 62.70472 +18.004719 62.693329 +17.996387 62.656662 +17.991386 62.653053 +17.979164 62.652771 +17.964443 62.660271 +17.956944 62.669441 +17.946388 62.669998 +17.879719 62.669441 +17.874165 62.664444 +17.877777 62.659721 +17.885277 62.656105 +17.966389 62.634438 +18.034721 62.626389 +18.045555 62.623604 +18.048054 62.601387 +18.04472 62.589165 +17.978054 62.555275 +17.84333 62.487221 +17.835552 62.483887 +17.825275 62.482216 +17.811943 62.482773 +17.789719 62.499443 +17.780552 62.502495 +17.76722 62.503326 +17.72361 62.498886 +17.693333 62.493607 +17.685555 62.490273 +17.658607 62.473328 +17.654163 62.467216 +17.661663 62.458054 +17.676388 62.450829 +17.671387 62.437775 +17.619164 62.434166 +17.605831 62.434998 +17.564163 62.440277 +17.54583 62.446388 +17.53833 62.449997 +17.528889 62.458885 +17.513885 62.477219 +17.504444 62.486107 +17.47472 62.506386 +17.437496 62.529999 +17.422497 62.537216 +17.409164 62.538055 +17.401386 62.534439 +17.334442 62.491943 +17.328888 62.486938 +17.325554 62.48027 +17.359722 62.360275 +17.371944 62.329163 +17.375832 62.32444 +17.465275 62.265549 +17.502497 62.258495 +17.552164 62.25016 +17.576998 62.247162 +17.623886 62.239441 +17.645554 62.234161 +17.65472 62.23111 +17.649719 62.227493 +17.599998 62.209442 +17.556664 62.195549 +17.545277 62.196938 +17.537777 62.200554 +17.535831 62.205551 +17.538609 62.211105 +17.555641 62.216953 +17.567001 62.226334 +17.557865 62.235104 +17.542677 62.231522 +17.532429 62.230038 +17.519958 62.230782 +17.509464 62.228928 +17.510036 62.204578 +17.508038 62.200584 +17.483253 62.125145 +17.463608 62.006386 +17.451664 61.996941 +17.445 61.992775 +17.437222 61.989441 +17.427498 61.987778 +17.418331 61.990829 +17.408607 61.992493 +17.399998 61.989998 +17.39333 61.98555 +17.354164 61.951111 +17.34972 61.945274 +17.345276 61.926384 +17.336388 61.818054 +17.385666 61.756496 +17.440277 61.726944 +17.469719 61.732216 +17.483887 61.730827 +17.49472 61.72805 +17.5 61.723885 +17.523609 61.70166 +17.523609 61.696106 +17.50111 61.639717 +17.498886 61.635826 +17.49361 61.630829 +17.487221 61.626389 +17.477219 61.624718 +17.445274 61.628883 +17.432777 61.631104 +17.421944 61.63916 +17.419998 61.64444 +17.414165 61.65416 +17.389999 61.687218 +17.386108 61.69194 +17.368111 61.700386 +17.354109 61.706551 +17.339443 61.712494 +17.326942 61.714439 +17.233887 61.722496 +17.220833 61.723053 +17.149998 61.721382 +17.140274 61.719719 +17.14222 61.714439 +17.149441 61.710831 +17.158333 61.707771 +17.183887 61.704994 +17.194721 61.706108 +17.207775 61.705276 +17.220276 61.703331 +17.26083 61.691109 +17.269722 61.688049 +17.271664 61.683052 +17.268608 61.676384 +17.263054 61.671104 +17.189999 61.636108 +17.18111 61.633331 +17.171387 61.63166 +17.158333 61.632217 +17.146111 61.634163 +17.128052 61.640549 +17.09861 61.602776 +17.117775 61.55555 +17.162777 61.52166 +17.168053 61.517494 +17.222775 61.44194 +17.219719 61.429443 +17.213333 61.425278 +17.171387 61.420555 +17.154163 61.428055 +17.150555 61.432777 +17.139721 61.431664 +17.109444 61.408051 +17.104164 61.403053 +17.102776 61.396942 +17.104721 61.391663 +17.144997 61.357773 +17.20472 61.328606 +17.213608 61.325554 +17.203609 61.278885 +17.18111 61.190277 +17.162754 61.046661 +17.150555 60.945 +17.154442 60.940552 +17.201664 60.916939 +17.241108 60.895828 +17.24472 60.891106 +17.276108 60.843048 +17.283607 60.77166 +17.285275 60.731941 +17.275276 60.676109 +17.359722 60.640549 +17.377098 60.618988 +17.397499 60.629166 +17.406109 60.63166 +17.520554 60.643051 +17.555275 60.643326 +17.578331 60.639999 +17.609165 60.632217 +17.63583 60.618607 +17.649719 60.611382 +17.656944 60.601944 +17.651665 60.596939 +17.644165 60.593605 +17.609444 60.58416 +17.602219 60.580551 +17.602497 60.574997 +17.607777 60.556107 +17.609722 60.550827 +17.629444 60.522499 +17.63472 60.518326 +17.65361 60.506943 +17.66222 60.503883 +17.682777 60.498604 +17.693054 60.496109 +17.73111 60.491661 +17.740555 60.493607 +17.740276 60.499161 +17.734997 60.508888 +17.727776 60.518326 +17.726109 60.523331 +17.725555 60.534721 +17.728886 60.541382 +17.733055 60.547493 +17.773052 60.571106 +17.842499 60.589996 +17.880554 60.596939 +17.891109 60.597771 +17.937222 60.598053 +17.949718 60.597221 +17.958332 60.594162 +17.965275 60.590553 +17.970554 60.586388 +17.993332 60.558884 +18.099998 60.453049 +18.214165 60.343048 +18.227776 60.330276 +18.234444 60.32666 +18.243889 60.328331 +18.25222 60.330826 +18.25861 60.334999 +18.266666 60.345276 +18.273052 60.349442 +18.282497 60.351387 +18.313889 60.353882 +18.431942 60.343887 +18.440277 60.340828 +18.44722 60.331383 +18.465832 60.299438 +18.574165 60.25 +18.601109 60.241104 +18.607777 60.237221 +18.60611 60.23111 +18.59861 60.227776 +18.579998 60.224442 +18.556942 60.224442 +18.531109 60.226944 +18.470833 60.234993 +18.448887 60.239716 +18.440552 60.242775 +18.425278 60.249718 +18.388332 60.266937 +18.374722 60.274162 +18.354164 60.290833 +18.325554 60.310829 +18.315277 60.313332 +18.31361 60.30722 +18.313889 60.301384 +18.396111 60.208054 +18.421665 60.187218 +18.507431 60.152657 +18.531666 60.153053 +18.62611 60.145828 +18.639442 60.144165 +18.711388 60.128052 +18.776665 60.110832 +18.816387 60.096382 +18.81472 60.090271 +18.81472 60.078888 +18.816387 60.073883 +18.823055 60.058884 +18.886665 59.962776 +18.89333 59.953331 +18.904999 59.939995 +18.909721 59.935829 +18.929722 59.924721 +18.95022 59.92033 +18.96372 59.92033 +19.007221 59.912773 +19.045555 59.899162 +19.070553 59.889717 +19.07 59.838608 +19.068333 59.832497 +19.065552 59.827217 +19.059166 59.823051 +19.050552 59.822777 +19.040554 59.825272 +19.025833 59.832222 +18.969221 59.865608 +18.936108 59.869995 +18.864719 59.79805 +18.934719 59.783607 +18.968609 59.783607 +19.073887 59.774162 +19.080555 59.770554 +19.082222 59.765274 +19.081944 59.75972 +19.075275 59.740555 +19.07 59.735832 +19.032219 59.719994 +18.991386 59.71666 +18.98 59.71666 +18.953609 59.719994 +18.841389 59.712494 +18.745552 59.689163 +18.71722 59.671387 +18.694443 59.645271 +18.699997 59.642494 +18.710278 59.643326 +18.728611 59.64666 +18.739998 59.64666 +18.74472 59.642494 +18.734165 59.6325 +18.666386 59.591385 +18.645554 59.580551 +18.37833 59.467499 +18.368332 59.466385 +18.317219 59.47361 +18.27972 59.476662 +18.270554 59.474998 +18.259443 59.448051 +18.259443 59.444717 +18.276665 59.41777 +18.281666 59.413605 +18.28833 59.409996 +18.299721 59.407776 +18.326111 59.404442 +18.335831 59.401939 +18.337498 59.39666 +18.331387 59.392494 +18.32222 59.390831 +18.311108 59.390831 +18.174999 59.405548 +18.164997 59.408051 +18.16 59.412216 +18.162498 59.417496 +18.176941 59.424438 +18.188053 59.424438 +18.198055 59.421661 +18.203777 59.427719 +18.199276 59.442551 +18.198277 59.445721 +18.195831 59.455276 +18.186943 59.45694 +18.124443 59.45472 +18.115555 59.453049 +18.089722 59.437218 +18.084721 59.431938 +18.05722 59.391388 +18.088886 59.367218 +18.091389 59.334442 +18.00736 59.344963 +17.941109 59.335548 +17.928886 59.336388 +17.9175 59.338608 +17.897778 59.343887 +17.859165 59.35611 +17.832775 59.364998 +17.816109 59.371109 +17.801388 59.377777 +17.782776 59.38916 +17.764442 59.400551 +17.757774 59.409996 +17.7575 59.421387 +17.758888 59.427498 +17.779999 59.48555 +17.78722 59.498329 +17.791386 59.504166 +17.801941 59.514717 +17.816387 59.52166 +17.841663 59.528328 +17.845276 59.533051 +17.822777 59.580826 +17.816109 59.590271 +17.809166 59.593887 +17.751942 59.638611 +17.71722 59.66333 +17.724163 59.653885 +17.722221 59.626106 +17.718052 59.620277 +17.710552 59.618889 +17.642498 59.637497 +17.603962 59.650627 +17.59222 59.656105 +17.598331 59.660271 +17.607498 59.661942 +17.628052 59.662216 +17.640274 59.66333 +17.648331 59.665833 +17.652496 59.671661 +17.653339 59.682129 +17.654163 59.718048 +17.631298 59.784073 +17.628052 59.788887 +17.594166 59.806938 +17.587776 59.804718 +17.588055 59.79361 +17.586666 59.787216 +17.583611 59.780548 +17.579441 59.774719 +17.574444 59.769722 +17.5425 59.749443 +17.534443 59.746941 +17.513885 59.744995 +17.448055 59.73555 +17.444721 59.676109 +17.510555 59.587219 +17.520832 59.579163 +17.527496 59.575554 +17.535831 59.57222 +17.543152 59.573006 +17.521664 59.611382 +17.515553 59.638329 +17.513332 59.654716 +17.508888 59.687775 +17.50861 59.693329 +17.509998 59.69944 +17.513054 59.706383 +17.537498 59.732216 +17.588886 59.736938 +17.599998 59.736938 +17.611664 59.734993 +17.618332 59.731384 +17.620277 59.726387 +17.616108 59.695549 +17.561171 59.668449 +17.589706 59.639427 +17.694164 59.607498 +17.742222 59.590553 +17.757221 59.583885 +17.767498 59.569717 +17.786663 59.535828 +17.785 59.529442 +17.737221 59.446938 +17.73111 59.442772 +17.719997 59.442772 +17.551941 59.488609 +17.543888 59.491661 +17.525276 59.503052 +17.520275 59.507217 +17.519089 59.510254 +17.51833 59.512215 +17.522499 59.518051 +17.546082 59.536987 +17.500275 59.539719 +17.490276 59.542496 +17.446941 59.55722 +17.43861 59.560272 +17.377777 59.604721 +17.372776 59.608887 +17.370831 59.614166 +17.370552 59.61972 +17.386108 59.651108 +17.38361 59.654999 +17.375553 59.652222 +17.344166 59.622772 +17.353333 59.60611 +17.370831 59.583054 +17.403332 59.553329 +17.406666 59.548607 +17.408607 59.543327 +17.419167 59.492775 +17.419441 59.487221 +17.418053 59.48111 +17.41 59.469162 +17.398888 59.469162 +17.325554 59.488052 +17.261944 59.50444 +17.255276 59.508049 +17.185276 59.538605 +17.117222 59.547775 +17.068054 59.54361 +17.061943 59.539444 +17.031387 59.536385 +17.019165 59.537216 +16.949718 59.54361 +16.93972 59.546104 +16.864964 59.584732 +16.826385 59.585274 +16.786942 59.558884 +16.661663 59.54805 +16.658054 59.552498 +16.623055 59.581665 +16.616386 59.585274 +16.565277 59.609161 +16.551941 59.61055 +16.541943 59.609444 +16.533886 59.606941 +16.501663 59.596382 +16.495552 59.591942 +16.497498 59.586937 +16.521664 59.571663 +16.542221 59.561104 +16.547497 59.556938 +16.546108 59.550827 +16.543331 59.543884 +16.53833 59.538887 +16.489166 59.502014 +16.4725 59.497498 +16.329998 59.467773 +16.178055 59.464996 +16.16861 59.465271 +16.101665 59.471107 +16.091663 59.473328 +16.066387 59.482498 +16.044167 59.492493 +16.035553 59.495552 +16.025555 59.497772 +16.020275 59.494995 +16.022221 59.489716 +16.026108 59.485275 +16.041664 59.473053 +16.066109 59.457771 +16.072777 59.454437 +16.081387 59.451385 +16.101387 59.446388 +16.113052 59.444443 +16.169167 59.439995 +16.181389 59.439438 +16.261387 59.442497 +16.276417 59.443985 +16.304722 59.450272 +16.313889 59.451942 +16.334999 59.453331 +16.659443 59.474159 +16.669998 59.473053 +16.679996 59.470551 +16.686665 59.467216 +16.690277 59.462494 +16.700554 59.454437 +16.75 59.424164 +16.80611 59.390549 +16.812775 59.38694 +16.822777 59.384438 +16.869999 59.381386 +16.881107 59.38166 +16.889999 59.383331 +16.893055 59.389999 +16.894165 59.396111 +16.89222 59.401382 +16.885555 59.404999 +16.862221 59.405273 +16.85083 59.407494 +16.84222 59.410553 +16.808887 59.422493 +16.792221 59.428604 +16.726665 59.453606 +16.697777 59.467216 +16.692776 59.471382 +16.693333 59.476105 +16.828888 59.491386 +16.840275 59.489441 +16.848888 59.486382 +16.897499 59.467499 +16.924442 59.453331 +16.935555 59.446388 +16.945831 59.438332 +16.954441 59.429718 +16.961388 59.420273 +17.111664 59.374443 +17.174442 59.373055 +17.280552 59.356667 +17.302219 59.351944 +17.310555 59.348885 +17.315552 59.344719 +17.317497 59.339722 +17.316109 59.333328 +17.311943 59.327499 +17.30611 59.323326 +17.298054 59.320831 +17.287777 59.319717 +17.263885 59.290833 +17.251942 59.269722 +17.253887 59.258888 +17.286942 59.259048 +17.291943 59.257217 +17.365276 59.248604 +17.375832 59.247498 +17.387775 59.246941 +17.398052 59.247772 +17.396111 59.252777 +17.386108 59.261108 +17.379444 59.264717 +17.364166 59.277222 +17.358887 59.286942 +17.355 59.297218 +17.349442 59.318329 +17.35083 59.32444 +17.361942 59.324715 +17.413055 59.312218 +17.442776 59.304718 +17.470833 59.296387 +17.585831 59.282219 +17.740276 59.26944 +17.847221 59.264442 +17.908054 59.297218 +17.940552 59.316666 +17.947498 59.32 +17.976387 59.331383 +17.984444 59.333885 +17.996666 59.333054 +18.016666 59.32222 +18.026386 59.319717 +18.052498 59.316383 +18.074718 59.316666 +18.13361 59.318054 +18.206944 59.329437 +18.242092 59.347084 +18.250832 59.354439 +18.272221 59.364441 +18.280277 59.366943 +18.289444 59.368607 +18.34861 59.373329 +18.39222 59.368607 +18.40361 59.366661 +18.43972 59.354996 +18.444721 59.35083 +18.441275 59.344772 +18.436943 59.342773 +18.432108 59.341278 +18.434998 59.336388 +18.45472 59.331108 +18.466663 59.330276 +18.474163 59.334442 +18.478611 59.340271 +18.478333 59.345833 +18.468609 59.365555 +18.450275 59.394165 +18.431389 59.421104 +18.428055 59.425827 +18.428055 59.431389 +18.434444 59.433609 +18.477219 59.435272 +18.498333 59.43055 +18.523052 59.421104 +18.52972 59.417496 +18.607777 59.371941 +18.612778 59.36805 +18.640274 59.338882 +18.648609 59.32444 +18.650276 59.31916 +18.646942 59.312492 +18.639721 59.309166 +18.630554 59.307495 +18.593052 59.301666 +18.522221 59.29583 +18.389164 59.301941 +18.37722 59.302498 +18.353611 59.30555 +18.343609 59.307495 +18.335278 59.310555 +18.337776 59.316109 +18.336498 59.322052 +18.328833 59.325054 +18.318886 59.328331 +18.277222 59.310829 +18.269444 59.268608 +18.309998 59.219719 +18.311386 59.1325 +18.230274 59.118607 +18.221386 59.116943 +18.140274 59.090828 +18.021385 59.041939 +17.895832 58.909721 +17.892776 58.903053 +17.891388 58.89666 +17.891941 58.874161 +17.894722 58.858887 +17.789444 58.943054 +17.756664 59.018326 +17.768887 59.096664 +17.76833 59.113609 +17.766666 59.118889 +17.764721 59.123886 +17.759163 59.126663 +17.66861 59.166382 +17.663887 59.168327 +17.624165 59.07444 +17.611664 59.04055 +17.610275 59.034439 +17.612221 59.029442 +17.617222 59.025276 +17.625553 59.016388 +17.628887 59.011665 +17.613609 58.974716 +17.578327 58.950508 +17.591389 58.943604 +17.630554 58.914993 +17.629166 58.908882 +17.62611 58.901939 +17.583332 58.849442 +17.578888 58.845551 +17.349998 58.75222 +17.271111 58.736938 +17.22361 58.730553 +17.156666 58.732773 +17.093609 58.762497 +17.083332 58.763611 +17.032776 58.750549 +17.02861 58.746941 +17.033607 58.742775 +17.082222 58.723053 +17.134163 58.702217 +17.145554 58.700272 +17.143055 58.694717 +17.138332 58.68972 +17.034443 58.637215 +16.915276 58.616943 +16.905277 58.616104 +16.89333 58.616661 +16.789719 58.623604 +16.736122 58.62899 +16.677776 58.63694 +16.461388 58.655548 +16.436386 58.657494 +16.412777 58.658882 +16.298332 58.663055 +16.242222 58.664719 +16.233608 58.663055 +16.193607 58.627495 +16.293331 58.613609 +16.370552 58.60527 +16.411663 58.613327 +16.432499 58.637772 +16.436665 58.641388 +16.649441 58.620552 +16.710831 58.606667 +16.727219 58.600555 +16.777496 58.581383 +16.928608 58.492493 +16.93861 58.484161 +16.834721 58.445 +16.826942 58.442215 +16.809166 58.438606 +16.754444 58.429443 +16.737778 58.428604 +16.600555 58.446938 +16.578053 58.450829 +16.568619 58.453239 +16.548885 58.458328 +16.532497 58.464439 +16.514721 58.469994 +16.496666 58.475273 +16.475555 58.479721 +16.435555 58.479996 +16.425552 58.479164 +16.416943 58.477219 +16.41333 58.474716 +16.573055 58.435829 +16.683609 58.410828 +16.693886 58.409721 +16.709999 58.40361 +16.769997 58.367218 +16.788887 58.32222 +16.824718 58.19944 +16.825832 58.176666 +16.802818 58.138672 +16.764471 58.125179 +16.742811 58.086124 +16.731806 58.049198 +16.750275 58.012772 +16.74361 58.009163 +16.639252 57.987495 +16.622498 57.988609 +16.613888 57.986938 +16.621944 57.983887 +16.655502 57.977745 +16.671944 57.98027 +16.725277 57.974159 +16.733055 57.971107 +16.739998 57.961937 +16.744164 57.953049 +16.742561 57.950333 +16.773331 57.923607 +16.778053 57.919441 +16.779999 57.914444 +16.770554 57.884438 +16.763885 57.881104 +16.749443 57.874992 +16.741665 57.872498 +16.732498 57.872772 +16.659164 57.883331 +16.622219 57.890274 +16.613609 57.89222 +16.602497 57.922775 +16.60611 57.925278 +16.602776 57.940277 +16.518608 57.996941 +16.510555 57.996384 +16.502777 57.993889 +16.498608 57.990273 +16.495552 57.98555 +16.494442 57.979439 +16.522331 57.877831 +16.564331 57.854164 +16.677219 57.765549 +16.693333 57.753883 +16.703331 57.745552 +16.700706 57.74015 +16.692219 57.738884 +16.684444 57.742218 +16.618889 57.771385 +16.615555 57.776108 +16.611385 57.786385 +16.602776 57.794716 +16.590553 57.802773 +16.561108 57.821388 +16.554722 57.824997 +16.41861 57.893326 +16.418888 57.887215 +16.42083 57.8825 +16.463421 57.849297 +16.469753 57.844627 +16.476418 57.839966 +16.593775 57.773163 +16.605442 57.76683 +16.660553 57.741104 +16.692219 57.721939 +16.701942 57.713882 +16.710278 57.705276 +16.712498 57.699997 +16.625553 57.61972 +16.6325 57.552216 +16.689163 57.485275 +16.693333 57.475273 +16.693333 57.469162 +16.671387 57.410828 +16.664719 57.407494 +16.65583 57.404999 +16.636944 57.403053 +16.632221 57.38166 +16.631107 57.376938 +16.624165 57.374443 +16.60083 57.377495 +16.566387 57.383331 +16.554996 57.383606 +16.546108 57.38166 +16.541943 57.376938 +16.472221 57.290276 +16.46722 57.276665 +16.464722 57.264442 +16.455555 57.205276 +16.455276 57.200554 +16.458054 57.178329 +16.460278 57.167496 +16.46722 57.158607 +16.513885 57.117218 +16.523331 57.116661 +16.530277 57.119438 +16.539997 57.120552 +16.546108 57.116943 +16.563332 57.093887 +16.584164 57.049438 +16.584721 57.043884 +16.501663 57.036659 +16.492775 57.039162 +16.454441 56.955276 +16.440552 56.893883 +16.426666 56.843605 +16.407776 56.795555 +16.374996 56.720833 +16.308052 56.654999 +16.300552 56.658333 +16.290554 56.659164 +16.272499 56.656662 +16.253609 56.646111 +16.21611 56.607216 +16.123886 56.461662 +16.117222 56.449715 +16.104164 56.425552 +16.090553 56.394997 +16.054722 56.313606 +16.043331 56.268883 +16.008331 56.217773 +15.99861 56.208328 +15.865555 56.092216 +15.78861 56.111938 +15.775833 56.147774 +15.658888 56.178886 +15.598055 56.194717 +15.375277 56.138054 +15.225832 56.151108 +15.088888 56.159996 +14.848055 56.161385 +14.717222 56.161659 +14.696665 56.16111 +14.690554 56.157776 +14.686666 56.152771 +14.679722 56.1325 +14.679443 56.120552 +14.681944 56.115555 +14.686666 56.111382 +14.692778 56.108055 +14.709999 56.102776 +14.714722 56.099159 +14.750832 56.059715 +14.767776 56.036385 +14.766666 56.030273 +14.738333 56.010826 +14.719999 56.000275 +14.635277 56.0075 +14.620832 56.029442 +14.603611 56.051941 +14.558887 56.05722 +14.551388 56.055275 +14.541388 56.051109 +14.511665 56.037498 +14.369444 55.958885 +14.330276 55.936943 +14.263611 55.886108 +14.24472 55.866943 +14.232777 55.851662 +14.217222 55.830276 +14.207777 55.812492 +14.202776 55.799721 +14.200554 55.79277 +14.196665 55.779716 +14.193333 55.766663 +14.190832 55.741661 +14.191111 55.731384 +14.192221 55.72583 +14.19611 55.715828 +14.203333 55.70694 +14.217777 55.694717 +14.276943 55.647217 +14.341389 55.578606 +14.363333 55.551941 +14.370277 55.54277 +14.372776 55.537773 +14.369165 55.531662 +14.361944 55.522774 +14.336666 55.501106 +14.312498 55.486664 +14.193546 55.386147 +14.163055 55.380272 +14.122499 55.37944 +14.058887 55.386108 +14.037498 55.389442 +14.004721 55.40583 +13.969444 55.421104 +13.935833 55.431389 +13.911943 55.433884 +13.891388 55.433609 +13.730555 55.425552 +13.710278 55.424164 +13.641666 55.417496 +13.632221 55.415833 +13.497776 55.382217 +13.465832 55.373604 +13.429722 55.356667 +13.418333 55.352493 +13.375555 55.339996 +13.344721 55.339165 +13.300833 55.340828 +13.289999 55.341942 +12.982222 55.400551 +12.918055 55.538605 +12.916388 55.544167 +12.914444 55.562218 +12.914721 55.565552 +12.916388 55.568329 +12.922499 55.574715 +12.93111 55.581108 +12.960278 55.59111 +12.981943 55.599159 +13.034721 55.623886 +13.040554 55.627495 +13.044998 55.6325 +13.058887 55.662773 +13.063332 55.68222 +13.062498 55.684998 +13.059721 55.693054 +12.928055 55.823051 +12.912777 55.838051 +12.681389 56.061943 +12.66361 56.078606 +12.633888 56.10305 +12.623888 56.107773 +12.615 56.109444 +12.609722 56.111664 +12.58111 56.141663 +12.453054 56.293327 +12.451666 56.297775 +12.461666 56.298332 +12.473888 56.297218 +12.629166 56.258888 +12.645277 56.253326 +12.718681 56.222778 +12.787222 56.222221 +12.794443 56.223053 +12.801943 56.225555 +12.813332 56.232773 +12.824165 56.241661 +12.830089 56.25 +12.831665 56.25222 +12.834721 56.258049 +12.834999 56.26416 +12.833055 56.269165 +12.740833 56.352219 +12.730555 56.359444 +12.723888 56.363052 +12.676109 56.379715 +12.663887 56.380272 +12.644722 56.38472 +12.636665 56.387772 +12.62611 56.395271 +12.622776 56.399994 +12.622221 56.411942 +12.626389 56.424721 +12.628611 56.431389 +12.631943 56.436943 +12.635555 56.442215 +12.641388 56.446106 +12.672777 56.463608 +12.679722 56.466385 +12.721943 56.467499 +12.732498 56.467499 +12.749166 56.464722 +12.785831 56.450272 +12.793333 56.447777 +12.812498 56.443329 +12.832777 56.43972 +12.85265 56.439919 +12.86861 56.441383 +12.87611 56.443604 +12.88361 56.446388 +12.90111 56.457222 +12.910831 56.466942 +12.918055 56.478333 +12.930277 56.501106 +12.937498 56.521111 +12.936943 56.532494 +12.933332 56.543327 +12.931389 56.548332 +12.917221 56.578606 +12.887499 56.638329 +12.876665 56.646385 +12.869165 56.648888 +12.821665 56.658333 +12.813332 56.656662 +12.785 56.643608 +12.758055 56.639999 +12.725277 56.639717 +12.718611 56.643326 +12.670832 56.676109 +12.613609 56.746941 +12.599998 56.777771 +12.598331 56.783333 +12.599165 56.79583 +12.601387 56.802498 +12.599998 56.808052 +12.5975 56.813332 +12.593332 56.817497 +12.579443 56.830276 +12.573889 56.833885 +12.484722 56.88166 +12.468332 56.887772 +12.418055 56.897217 +12.350277 56.914444 +12.3475 56.919167 +12.349998 56.969994 +12.28611 57.032494 +12.253611 57.04805 +12.237778 57.059715 +12.149443 57.183884 +12.146666 57.188332 +12.109999 57.25 +12.134722 57.275551 +12.148611 57.281105 +12.151388 57.287216 +12.145832 57.309166 +12.094999 57.426941 +12.058332 57.45472 +12.051388 57.457771 +12.043888 57.459717 +12.036943 57.45694 +12.011665 57.434166 +12.007776 57.428886 +12.005833 57.422218 +12.00861 57.411385 +12.007776 57.404999 +11.989443 57.347496 +11.986111 57.341385 +11.979166 57.343605 +11.942778 57.376106 +11.917776 57.402222 +11.904165 57.421944 +11.901388 57.426666 +11.906666 57.514999 +11.911112 57.526649 +11.913332 57.52861 +11.915833 57.534439 +11.922222 57.563889 +11.913332 57.613609 +11.910555 57.618607 +11.906387 57.623329 +11.897499 57.624443 +11.894444 57.618332 +11.862499 57.607773 +11.83 57.661385 +11.86861 57.68055 +11.887777 57.693886 +11.750555 57.688889 +11.741388 57.688606 +11.704443 57.693329 +11.698889 57.69722 +11.69972 57.715828 +11.723055 57.80722 +11.668055 57.845833 +11.688055 57.88166 +11.694166 57.885277 +11.702221 57.887215 +11.711666 57.88916 +11.741388 57.89222 +11.757221 57.897217 +11.795555 58.006104 +11.801388 58.026382 +11.800554 58.038055 +11.799166 58.043884 +11.79361 58.04805 +11.776667 58.053143 +11.776667 58.059441 +11.79611 58.095276 +11.837221 58.154716 +11.870277 58.191109 +11.880833 58.199997 +11.884722 58.205276 +11.88611 58.211937 +11.798054 58.318329 +11.734999 58.328331 +11.723331 58.328888 +11.622776 58.276108 +11.607498 58.262772 +11.594721 58.255272 +11.53611 58.23027 +11.526388 58.230553 +11.515833 58.231941 +11.495277 58.236107 +11.405554 58.261108 +11.384165 58.311943 +11.238333 58.346939 +11.201387 58.399437 +11.235554 58.505272 +11.254166 58.551109 +11.257221 58.556938 +11.266388 58.579437 +11.26111 58.632217 +11.259443 58.637772 +11.252222 58.653053 +11.247776 58.657494 +11.210278 58.679718 +11.180832 58.70916 +11.178055 58.713882 +11.176943 58.730827 +11.181665 58.747772 +11.200832 58.769997 +11.218054 58.784164 +11.229166 58.792221 +11.233889 58.796944 +11.236111 58.803604 +11.233055 58.833054 +11.231388 58.845276 +11.194166 58.917496 +11.166666 58.924438 +11.131943 58.935272 +11.123055 58.938332 +11.115833 58.941383 +11.106943 58.949997 +11.113333 59.003609 +11.119165 59.015831 +11.127499 59.026382 +11.166388 59.064438 +11.172499 59.068604 +11.186666 59.074997 +11.204166 59.079437 +11.265554 59.093887 +11.314999 59.101387 +11.324999 59.099159 +11.338333 59.091942 +11.349998 59.084442 +11.373333 59.050827 +11.401667 59.012772 +11.419443 58.989716 +11.427082 58.985786 +11.429192 58.98764 +11.423054 58.926666 +11.422777 58.920273 +11.424999 58.903053 +11.426109 58.897217 +11.427776 58.893051 +11.431944 58.888611 +11.439165 58.885277 +11.450832 58.883888 +11.463055 58.883606 +11.496666 58.88472 +11.585833 58.89666 +11.599968 58.899185 +11.621387 58.904716 +11.626665 58.909164 +11.75111 59.090271 +11.753054 59.097221 +11.751944 59.102776 +11.746387 59.112778 +11.742222 59.117493 +11.739443 59.122498 +11.739443 59.12722 +11.750832 59.174438 +11.754444 59.188049 +11.759165 59.200829 +11.764721 59.211662 +11.769547 59.217537 +11.784721 59.23027 +11.792288 59.236641 +11.795277 59.239166 +11.798332 59.245277 +11.798887 59.257774 +11.796944 59.275276 +11.790833 59.303329 +11.783054 59.324715 +11.739166 59.429718 +11.667776 59.59166 +11.666248 59.595482 +11.756388 59.635551 +11.764166 59.638329 +11.781666 59.642776 +11.811666 59.646942 +11.820555 59.648888 +11.828333 59.651939 +11.896387 59.695 +11.900833 59.701111 +11.902777 59.707771 +11.903332 59.720276 +11.903055 59.738327 +11.898848 59.772469 +11.896387 59.784721 +11.891109 59.794716 +11.886665 59.799164 +11.881109 59.803886 +11.869444 59.811661 +11.81596 59.8461 +11.852777 59.861382 +11.875832 59.869995 +11.956944 59.896942 +11.968054 59.897774 +11.98 59.896111 +11.998055 59.890549 +12.008333 59.888611 +12.034166 59.886108 +12.107222 59.885826 +12.129721 59.88694 +12.139999 59.888329 +12.163055 59.896942 +12.191944 59.910271 +12.310276 59.968887 +12.32361 59.976387 +12.461943 60.063606 +12.476944 60.076385 +12.489166 60.098328 +12.494165 60.111107 +12.496387 60.11805 +12.498333 60.124718 +12.502777 60.144722 +12.5075 60.169441 +12.508055 60.175552 +12.508333 60.181938 +12.507776 60.193604 +12.504444 60.210548 +12.527777 60.33416 +12.537777 60.343887 +12.571943 60.378052 +12.589722 60.399162 +12.5975 60.424995 +12.602777 60.442772 +12.607498 60.462494 +12.608055 60.468605 +12.605833 60.479996 +12.594444 60.516937 +12.5875 60.526665 +12.505833 60.629997 +12.424999 60.710274 +12.38611 60.750832 +12.378887 60.760277 +12.364721 60.779442 +12.353611 60.799721 +12.35111 60.804718 +12.336111 60.835831 +12.308611 60.887215 +12.271944 60.946106 +12.245554 60.973053 +12.23361 60.980827 +12.217222 60.99305 +12.212776 60.997498 +12.209999 61.002495 +12.215555 61.006943 +12.2225 61.010826 +12.247776 61.018608 +12.294167 61.029442 +12.388054 61.050552 +12.407776 61.053886 +12.432499 61.054443 +12.458055 61.053886 +12.500277 61.050827 +12.567221 61.04805 +12.602221 61.049721 +12.621944 61.053055 +12.637825 61.057541 +12.670277 61.087776 +12.772221 61.200829 +12.796665 61.244995 +12.83111 61.312218 +12.85611 61.362495 +12.773888 61.414719 +12.529999 61.566109 +12.523054 61.567215 +12.481388 61.569443 +12.468332 61.569717 +12.444721 61.568604 +12.430277 61.569443 +12.406666 61.573326 +12.392776 61.580551 +12.144444 61.717499 +12.124443 61.728607 +12.159443 61.844444 +12.169998 61.878609 +12.181665 61.912498 +12.200277 61.963333 +12.214998 62.006104 +12.25861 62.142494 +12.294617 62.258217 +12.295832 62.261665 +12.291666 62.272499 +12.271387 62.308052 +12.256388 62.327217 +12.245344 62.337982 +12.209999 62.389999 +12.19972 62.404716 +12.184444 62.423882 +12.172222 62.437775 +12.149166 62.460274 +12.084721 62.52916 +12.047499 62.589996 +12.046665 62.665276 +12.072777 62.715828 +12.089443 62.749443 +12.066666 62.803055 +12.050278 62.838882 +12.028889 62.892494 +12.058332 62.91861 +12.113333 62.967216 +12.15111 62.999443 +12.16861 63.015831 +12.144165 63.045273 +12.036943 63.173882 +12.027491 63.182449 +11.936388 63.272217 +11.998888 63.323883 +12.078333 63.388329 +12.13722 63.436661 +12.195 63.485275 +12.17861 63.512215 +12.139444 63.58416 +12.153889 63.594994 +12.346666 63.728882 +12.473055 63.833328 +12.530832 63.872772 +12.633888 63.942772 +12.681944 63.967216 +12.794443 64.007217 +12.846943 64.025269 +12.938055 64.053329 +12.988333 64.064438 +13.032221 64.071106 +13.135555 64.083603 +13.193609 64.089996 +13.23 64.093048 +13.291388 64.086655 +13.981667 64.013046 +13.988333 64.018051 +14.146666 64.173874 +14.154722 64.185822 +14.151388 64.333603 +14.149721 64.344986 +14.116388 64.470551 +14.032499 64.488052 +13.900833 64.507492 +13.820276 64.529434 +13.68222 64.571106 +13.663332 64.577209 +13.662498 64.582764 +13.664999 64.589722 +13.676943 64.607773 +13.696943 64.62944 +13.707499 64.639709 +13.725571 64.652267 +13.832777 64.733322 +13.879166 64.771103 +13.955832 64.835541 +14.091389 64.949158 +14.235277 65.048874 +14.296438 65.102127 +14.308832 65.115234 +14.319443 65.12999 +14.329166 65.149719 +14.35611 65.208603 +14.368889 65.246658 +14.493055 65.313599 +14.494444 65.358887 +14.49361 65.376389 +14.495277 65.446381 +14.497221 65.516098 +14.500555 65.585831 +14.532221 65.696106 +14.535 65.702774 +14.539444 65.708878 +14.565277 65.736374 +14.588055 65.756943 +14.603888 65.773331 +14.621387 65.797211 +14.631666 65.816666 +14.634722 65.826935 +14.608889 65.876389 +14.580276 65.931107 +14.569443 65.949432 +14.540554 66.007492 +14.534721 66.025269 +14.519165 66.078888 +14.509165 66.114716 +14.504999 66.132492 +14.717777 66.140549 +14.981388 66.149155 +15.025276 66.149994 +15.468054 66.283875 +15.446854 66.321381 +15.400555 66.406937 +15.371387 66.461655 +15.362778 66.479996 +15.527777 66.558044 +15.625832 66.60582 +15.73111 66.684998 +16.009998 66.890823 +16.353886 67.017776 +16.40583 67.16333 +16.399166 67.177765 +16.361385 67.237778 +16.337498 67.260818 +16.261944 67.305542 +16.220554 67.329987 +16.20472 67.337494 +16.161663 67.35582 +16.138611 67.367493 +16.111111 67.383606 +16.104164 67.387772 +16.089722 67.401657 +16.086941 67.406662 +16.085831 67.411652 +16.192219 67.5 +16.206108 67.501663 +16.3825 67.515549 +16.403332 67.529999 +16.508331 67.609161 +16.570274 67.656937 +16.576942 67.665543 +16.588055 67.68222 +16.620277 67.732208 +16.684719 67.832214 +16.726944 67.899155 +17.188332 68.030273 +17.234547 68.062103 +17.252583 68.07457 +17.273609 68.090546 +17.592499 68.029709 +17.648888 68.01416 +17.680275 68.00444 +17.743332 67.984711 +17.801941 67.964157 +17.82 67.95694 +17.831108 67.953598 +17.858055 67.948608 +17.884163 67.945541 +17.93972 67.997772 +18.135555 68.150269 +18.155277 68.166107 +18.103886 68.280823 +18.085831 68.317764 +18.069443 68.354431 +18.053333 68.391098 +18.04583 68.409439 +18.058052 68.439987 +18.081665 68.490829 +18.090832 68.507767 +18.099541 68.508926 +18.149441 68.515274 +18.358055 68.539154 +18.611942 68.475266 +18.952221 68.487778 +19.41333 68.419434 +19.543888 68.399719 +19.71722 68.372772 +19.860554 68.349991 +19.898331 68.341385 +19.923885 68.336655 +19.937775 68.337494 +19.948055 68.34082 +19.956665 68.344711 +19.964165 68.349716 +19.976665 68.361374 +20.006664 68.381104 +20.030277 68.394989 +20.048054 68.40332 +20.075832 68.414719 +20.167221 68.443878 +20.175831 68.448044 +20.198608 68.462769 +20.208611 68.47583 +20.211109 68.482208 +20.088055 68.501663 +19.956387 68.543884 +20.063053 68.583054 +20.177219 68.646942 +20.202499 68.662216 +20.238331 68.691376 +20.313889 68.754715 +20.350277 68.786652 +20.31472 68.928329 +20.238888 68.968597 +20.096943 69.042221 +20.535275 69.056381 +20.580929 69.060303 +20.604164 69.053055 +20.650063 69.043793 +20.744164 69.031097 +20.791664 69.023331 +20.846386 69.011932 +20.866665 69.00499 +20.884441 68.997498 +20.908886 68.98555 +20.928608 68.973053 +20.932777 68.968323 +20.938889 68.958328 +20.938332 68.952774 +20.93111 68.946381 +20.915554 68.939438 +20.888885 68.925827 +20.883053 68.91333 +20.882774 68.907776 +20.888611 68.898041 +20.895275 68.8936 +20.904163 68.889999 +20.915276 68.886658 +20.944721 68.881378 +20.959442 68.87999 +20.990833 68.87944 +21.024719 68.877487 +21.058887 68.873322 +21.081387 68.866653 +21.207775 68.819717 +21.216663 68.816101 +21.420555 68.724152 +21.448608 68.691101 +21.452774 68.686661 +21.465553 68.678055 +21.487499 68.671387 +21.500832 68.66832 +21.550552 68.661652 +21.585278 68.6586 +21.601109 68.656097 +21.623055 68.649429 +21.642776 68.642487 +21.701664 68.620819 +21.710278 68.617218 +21.714165 68.612488 +21.711109 68.606384 +21.710552 68.600555 +21.71833 68.59111 +21.735554 68.583603 +21.7575 68.576935 +21.773331 68.574432 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 0 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +139 64 +140 141 +141 142 +142 143 +143 144 +144 145 +145 146 +146 147 +147 148 +148 149 +149 150 +150 151 +151 152 +152 153 +153 154 +154 155 +155 156 +156 157 +157 158 +158 159 +159 160 +160 161 +161 162 +162 163 +163 164 +164 165 +165 166 +166 167 +167 168 +168 140 +169 170 +170 171 +171 172 +172 173 +173 174 +174 175 +175 176 +176 177 +177 178 +178 179 +179 180 +180 181 +181 182 +182 183 +183 184 +184 185 +185 186 +186 187 +187 188 +188 189 +189 190 +190 169 +191 192 +192 193 +193 194 +194 195 +195 196 +196 197 +197 198 +198 199 +199 191 +200 201 +201 202 +202 203 +203 204 +204 205 +205 206 +206 207 +207 208 +208 209 +209 210 +210 211 +211 212 +212 213 +213 214 +214 215 +215 216 +216 217 +217 218 +218 219 +219 220 +220 221 +221 222 +222 223 +223 224 +224 225 +225 226 +226 227 +227 228 +228 229 +229 200 +230 231 +231 232 +232 233 +233 234 +234 235 +235 236 +236 237 +237 238 +238 239 +239 240 +240 241 +241 242 +242 243 +243 244 +244 245 +245 230 +246 247 +247 248 +248 249 +249 250 +250 251 +251 252 +252 253 +253 254 +254 255 +255 256 +256 257 +257 258 +258 259 +259 260 +260 261 +261 262 +262 263 +263 264 +264 265 +265 266 +266 267 +267 268 +268 269 +269 246 +270 271 +271 272 +272 273 +273 274 +274 275 +275 276 +276 277 +277 278 +278 279 +279 280 +280 281 +281 282 +282 283 +283 284 +284 285 +285 286 +286 270 +287 288 +288 289 +289 290 +290 291 +291 292 +292 293 +293 294 +294 295 +295 296 +296 297 +297 298 +298 299 +299 300 +300 301 +301 302 +302 287 +303 304 +304 305 +305 306 +306 307 +307 308 +308 309 +309 310 +310 311 +311 312 +312 313 +313 314 +314 315 +315 316 +316 317 +317 318 +318 319 +319 320 +320 321 +321 322 +322 303 +323 324 +324 325 +325 326 +326 327 +327 328 +328 329 +329 330 +330 331 +331 332 +332 333 +333 334 +334 335 +335 336 +336 337 +337 338 +338 339 +339 340 +340 341 +341 342 +342 343 +343 344 +344 345 +345 346 +346 323 +347 348 +348 349 +349 350 +350 351 +351 352 +352 353 +353 354 +354 355 +355 356 +356 357 +357 358 +358 359 +359 360 +360 361 +361 362 +362 363 +363 347 +364 365 +365 366 +366 367 +367 368 +368 369 +369 370 +370 371 +371 372 +372 373 +373 374 +374 375 +375 376 +376 377 +377 378 +378 379 +379 380 +380 381 +381 382 +382 383 +383 384 +384 385 +385 386 +386 387 +387 388 +388 364 +389 390 +390 391 +391 392 +392 393 +393 394 +394 395 +395 396 +396 397 +397 398 +398 399 +399 400 +400 401 +401 402 +402 403 +403 404 +404 405 +405 406 +406 407 +407 389 +408 409 +409 410 +410 411 +411 412 +412 413 +413 414 +414 415 +415 416 +416 417 +417 418 +418 419 +419 420 +420 421 +421 408 +422 423 +423 424 +424 425 +425 426 +426 427 +427 428 +428 429 +429 430 +430 431 +431 432 +432 433 +433 434 +434 435 +435 436 +436 437 +437 438 +438 439 +439 440 +440 441 +441 442 +442 422 +443 444 +444 445 +445 446 +446 447 +447 448 +448 449 +449 450 +450 451 +451 452 +452 453 +453 454 +454 455 +455 456 +456 457 +457 443 +458 459 +459 460 +460 461 +461 462 +462 463 +463 464 +464 465 +465 466 +466 467 +467 468 +468 469 +469 470 +470 471 +471 472 +472 473 +473 474 +474 475 +475 476 +476 477 +477 478 +478 479 +479 480 +480 481 +481 482 +482 483 +483 484 +484 485 +485 486 +486 487 +487 488 +488 489 +489 490 +490 491 +491 492 +492 493 +493 494 +494 495 +495 496 +496 497 +497 498 +498 499 +499 500 +500 501 +501 502 +502 503 +503 504 +504 505 +505 506 +506 507 +507 508 +508 509 +509 510 +510 511 +511 512 +512 513 +513 514 +514 515 +515 516 +516 517 +517 518 +518 519 +519 520 +520 521 +521 522 +522 523 +523 524 +524 525 +525 526 +526 527 +527 528 +528 529 +529 530 +530 531 +531 532 +532 533 +533 534 +534 535 +535 536 +536 537 +537 538 +538 539 +539 540 +540 541 +541 542 +542 543 +543 544 +544 545 +545 546 +546 547 +547 548 +548 549 +549 550 +550 551 +551 552 +552 553 +553 554 +554 555 +555 556 +556 557 +557 558 +558 559 +559 560 +560 561 +561 562 +562 563 +563 564 +564 565 +565 566 +566 567 +567 568 +568 569 +569 570 +570 571 +571 572 +572 573 +573 574 +574 575 +575 576 +576 577 +577 578 +578 579 +579 580 +580 581 +581 582 +582 583 +583 584 +584 585 +585 586 +586 587 +587 588 +588 589 +589 590 +590 591 +591 592 +592 593 +593 594 +594 595 +595 596 +596 597 +597 598 +598 599 +599 600 +600 601 +601 602 +602 603 +603 604 +604 605 +605 606 +606 607 +607 608 +608 609 +609 610 +610 611 +611 612 +612 613 +613 614 +614 615 +615 616 +616 617 +617 618 +618 619 +619 620 +620 621 +621 622 +622 623 +623 624 +624 625 +625 626 +626 627 +627 628 +628 629 +629 630 +630 631 +631 632 +632 633 +633 634 +634 635 +635 636 +636 637 +637 638 +638 639 +639 640 +640 641 +641 642 +642 643 +643 644 +644 645 +645 646 +646 647 +647 648 +648 649 +649 650 +650 651 +651 652 +652 653 +653 654 +654 655 +655 656 +656 657 +657 658 +658 659 +659 660 +660 661 +661 662 +662 663 +663 664 +664 665 +665 666 +666 667 +667 668 +668 669 +669 670 +670 671 +671 672 +672 673 +673 674 +674 675 +675 676 +676 677 +677 678 +678 679 +679 680 +680 681 +681 682 +682 683 +683 684 +684 685 +685 686 +686 687 +687 688 +688 689 +689 690 +690 691 +691 692 +692 693 +693 694 +694 695 +695 696 +696 697 +697 698 +698 699 +699 700 +700 701 +701 702 +702 703 +703 704 +704 705 +705 706 +706 707 +707 708 +708 709 +709 710 +710 711 +711 712 +712 713 +713 714 +714 715 +715 716 +716 717 +717 718 +718 719 +719 720 +720 721 +721 722 +722 723 +723 724 +724 725 +725 726 +726 727 +727 728 +728 729 +729 730 +730 731 +731 732 +732 733 +733 734 +734 735 +735 736 +736 737 +737 738 +738 739 +739 740 +740 741 +741 742 +742 743 +743 744 +744 745 +745 746 +746 747 +747 748 +748 749 +749 750 +750 751 +751 752 +752 753 +753 754 +754 755 +755 756 +756 757 +757 758 +758 759 +759 760 +760 761 +761 762 +762 763 +763 764 +764 765 +765 766 +766 767 +767 768 +768 769 +769 770 +770 771 +771 772 +772 773 +773 774 +774 775 +775 776 +776 777 +777 778 +778 779 +779 780 +780 781 +781 782 +782 783 +783 784 +784 785 +785 786 +786 787 +787 788 +788 789 +789 790 +790 791 +791 792 +792 793 +793 794 +794 795 +795 796 +796 797 +797 798 +798 799 +799 800 +800 801 +801 802 +802 803 +803 804 +804 805 +805 806 +806 807 +807 808 +808 809 +809 810 +810 811 +811 812 +812 813 +813 814 +814 815 +815 816 +816 817 +817 818 +818 819 +819 820 +820 821 +821 822 +822 823 +823 824 +824 825 +825 826 +826 827 +827 828 +828 829 +829 830 +830 831 +831 832 +832 833 +833 834 +834 835 +835 836 +836 837 +837 838 +838 839 +839 840 +840 841 +841 842 +842 843 +843 844 +844 845 +845 846 +846 847 +847 848 +848 849 +849 850 +850 851 +851 852 +852 853 +853 854 +854 855 +855 856 +856 857 +857 858 +858 859 +859 860 +860 861 +861 862 +862 863 +863 864 +864 865 +865 866 +866 867 +867 868 +868 869 +869 870 +870 871 +871 872 +872 873 +873 874 +874 875 +875 876 +876 877 +877 878 +878 879 +879 880 +880 881 +881 882 +882 883 +883 884 +884 885 +885 886 +886 887 +887 888 +888 889 +889 890 +890 891 +891 892 +892 893 +893 894 +894 895 +895 896 +896 897 +897 898 +898 899 +899 900 +900 901 +901 902 +902 903 +903 904 +904 905 +905 906 +906 907 +907 908 +908 909 +909 910 +910 911 +911 912 +912 913 +913 914 +914 915 +915 916 +916 917 +917 918 +918 919 +919 920 +920 921 +921 922 +922 923 +923 924 +924 925 +925 926 +926 927 +927 928 +928 929 +929 930 +930 931 +931 932 +932 933 +933 934 +934 935 +935 936 +936 937 +937 938 +938 939 +939 940 +940 941 +941 942 +942 943 +943 944 +944 945 +945 946 +946 947 +947 948 +948 949 +949 950 +950 951 +951 952 +952 953 +953 954 +954 955 +955 956 +956 957 +957 958 +958 959 +959 960 +960 961 +961 962 +962 963 +963 964 +964 965 +965 966 +966 967 +967 968 +968 969 +969 970 +970 971 +971 972 +972 973 +973 974 +974 975 +975 976 +976 977 +977 978 +978 979 +979 980 +980 981 +981 982 +982 983 +983 984 +984 985 +985 986 +986 987 +987 988 +988 989 +989 990 +990 991 +991 992 +992 993 +993 994 +994 995 +995 996 +996 997 +997 998 +998 999 +999 1000 +1000 1001 +1001 1002 +1002 1003 +1003 1004 +1004 1005 +1005 1006 +1006 1007 +1007 1008 +1008 1009 +1009 1010 +1010 1011 +1011 1012 +1012 1013 +1013 1014 +1014 1015 +1015 1016 +1016 1017 +1017 1018 +1018 1019 +1019 1020 +1020 1021 +1021 1022 +1022 1023 +1023 1024 +1024 1025 +1025 1026 +1026 1027 +1027 1028 +1028 1029 +1029 1030 +1030 1031 +1031 1032 +1032 1033 +1033 1034 +1034 1035 +1035 1036 +1036 1037 +1037 1038 +1038 1039 +1039 1040 +1040 1041 +1041 1042 +1042 1043 +1043 1044 +1044 1045 +1045 1046 +1046 1047 +1047 1048 +1048 1049 +1049 1050 +1050 1051 +1051 1052 +1052 1053 +1053 1054 +1054 1055 +1055 1056 +1056 1057 +1057 1058 +1058 1059 +1059 1060 +1060 1061 +1061 1062 +1062 1063 +1063 1064 +1064 1065 +1065 1066 +1066 1067 +1067 1068 +1068 1069 +1069 1070 +1070 1071 +1071 1072 +1072 1073 +1073 1074 +1074 1075 +1075 1076 +1076 1077 +1077 1078 +1078 1079 +1079 1080 +1080 1081 +1081 1082 +1082 1083 +1083 1084 +1084 1085 +1085 1086 +1086 1087 +1087 1088 +1088 1089 +1089 1090 +1090 1091 +1091 1092 +1092 1093 +1093 1094 +1094 1095 +1095 1096 +1096 1097 +1097 1098 +1098 1099 +1099 1100 +1100 1101 +1101 1102 +1102 1103 +1103 1104 +1104 1105 +1105 1106 +1106 1107 +1107 1108 +1108 1109 +1109 1110 +1110 1111 +1111 1112 +1112 1113 +1113 1114 +1114 1115 +1115 1116 +1116 1117 +1117 1118 +1118 1119 +1119 1120 +1120 1121 +1121 1122 +1122 1123 +1123 1124 +1124 1125 +1125 1126 +1126 1127 +1127 1128 +1128 1129 +1129 1130 +1130 1131 +1131 1132 +1132 1133 +1133 1134 +1134 1135 +1135 1136 +1136 1137 +1137 1138 +1138 1139 +1139 1140 +1140 1141 +1141 1142 +1142 1143 +1143 1144 +1144 1145 +1145 1146 +1146 1147 +1147 1148 +1148 1149 +1149 1150 +1150 1151 +1151 1152 +1152 1153 +1153 1154 +1154 1155 +1155 1156 +1156 1157 +1157 1158 +1158 1159 +1159 1160 +1160 1161 +1161 1162 +1162 1163 +1163 1164 +1164 1165 +1165 1166 +1166 1167 +1167 1168 +1168 1169 +1169 1170 +1170 1171 +1171 1172 +1172 1173 +1173 1174 +1174 1175 +1175 1176 +1176 1177 +1177 1178 +1178 1179 +1179 1180 +1180 1181 +1181 1182 +1182 1183 +1183 1184 +1184 1185 +1185 1186 +1186 1187 +1187 1188 +1188 1189 +1189 1190 +1190 1191 +1191 1192 +1192 1193 +1193 1194 +1194 1195 +1195 1196 +1196 1197 +1197 1198 +1198 1199 +1199 1200 +1200 1201 +1201 1202 +1202 1203 +1203 1204 +1204 1205 +1205 1206 +1206 1207 +1207 1208 +1208 1209 +1209 1210 +1210 1211 +1211 1212 +1212 1213 +1213 1214 +1214 1215 +1215 1216 +1216 1217 +1217 1218 +1218 1219 +1219 1220 +1220 1221 +1221 1222 +1222 1223 +1223 1224 +1224 1225 +1225 1226 +1226 1227 +1227 1228 +1228 1229 +1229 1230 +1230 1231 +1231 1232 +1232 1233 +1233 1234 +1234 1235 +1235 1236 +1236 1237 +1237 1238 +1238 1239 +1239 1240 +1240 1241 +1241 1242 +1242 1243 +1243 1244 +1244 1245 +1245 1246 +1246 1247 +1247 1248 +1248 1249 +1249 1250 +1250 1251 +1251 1252 +1252 1253 +1253 1254 +1254 1255 +1255 1256 +1256 1257 +1257 1258 +1258 1259 +1259 1260 +1260 1261 +1261 1262 +1262 1263 +1263 1264 +1264 1265 +1265 1266 +1266 1267 +1267 1268 +1268 1269 +1269 1270 +1270 1271 +1271 1272 +1272 1273 +1273 1274 +1274 1275 +1275 1276 +1276 1277 +1277 1278 +1278 1279 +1279 1280 +1280 1281 +1281 1282 +1282 1283 +1283 1284 +1284 1285 +1285 1286 +1286 1287 +1287 1288 +1288 1289 +1289 1290 +1290 1291 +1291 1292 +1292 1293 +1293 1294 +1294 1295 +1295 1296 +1296 1297 +1297 1298 +1298 1299 +1299 1300 +1300 1301 +1301 1302 +1302 1303 +1303 1304 +1304 1305 +1305 1306 +1306 1307 +1307 1308 +1308 1309 +1309 1310 +1310 1311 +1311 1312 +1312 1313 +1313 1314 +1314 1315 +1315 1316 +1316 1317 +1317 1318 +1318 1319 +1319 1320 +1320 1321 +1321 1322 +1322 1323 +1323 1324 +1324 1325 +1325 1326 +1326 1327 +1327 1328 +1328 1329 +1329 1330 +1330 1331 +1331 1332 +1332 1333 +1333 1334 +1334 1335 +1335 1336 +1336 1337 +1337 1338 +1338 1339 +1339 1340 +1340 1341 +1341 1342 +1342 1343 +1343 1344 +1344 1345 +1345 1346 +1346 1347 +1347 1348 +1348 1349 +1349 1350 +1350 1351 +1351 1352 +1352 1353 +1353 1354 +1354 1355 +1355 1356 +1356 1357 +1357 1358 +1358 1359 +1359 1360 +1360 1361 +1361 1362 +1362 1363 +1363 1364 +1364 1365 +1365 1366 +1366 1367 +1367 1368 +1368 1369 +1369 1370 +1370 1371 +1371 1372 +1372 1373 +1373 1374 +1374 1375 +1375 1376 +1376 1377 +1377 1378 +1378 1379 +1379 1380 +1380 1381 +1381 1382 +1382 1383 +1383 1384 +1384 1385 +1385 1386 +1386 1387 +1387 1388 +1388 1389 +1389 1390 +1390 1391 +1391 1392 +1392 1393 +1393 1394 +1394 1395 +1395 1396 +1396 1397 +1397 1398 +1398 1399 +1399 1400 +1400 1401 +1401 1402 +1402 1403 +1403 1404 +1404 1405 +1405 1406 +1406 1407 +1407 1408 +1408 1409 +1409 1410 +1410 1411 +1411 1412 +1412 1413 +1413 1414 +1414 1415 +1415 1416 +1416 1417 +1417 1418 +1418 1419 +1419 1420 +1420 1421 +1421 1422 +1422 1423 +1423 1424 +1424 1425 +1425 1426 +1426 1427 +1427 1428 +1428 1429 +1429 1430 +1430 1431 +1431 1432 +1432 1433 +1433 1434 +1434 1435 +1435 1436 +1436 1437 +1437 1438 +1438 1439 +1439 1440 +1440 1441 +1441 1442 +1442 1443 +1443 1444 +1444 1445 +1445 1446 +1446 1447 +1447 1448 +1448 1449 +1449 1450 +1450 1451 +1451 1452 +1452 1453 +1453 1454 +1454 1455 +1455 1456 +1456 1457 +1457 1458 +1458 1459 +1459 1460 +1460 1461 +1461 1462 +1462 1463 +1463 1464 +1464 1465 +1465 1466 +1466 1467 +1467 1468 +1468 1469 +1469 1470 +1470 1471 +1471 1472 +1472 1473 +1473 1474 +1474 1475 +1475 1476 +1476 1477 +1477 1478 +1478 1479 +1479 1480 +1480 1481 +1481 1482 +1482 1483 +1483 1484 +1484 1485 +1485 1486 +1486 1487 +1487 1488 +1488 1489 +1489 1490 +1490 1491 +1491 1492 +1492 1493 +1493 1494 +1494 1495 +1495 1496 +1496 1497 +1497 1498 +1498 1499 +1499 1500 +1500 1501 +1501 1502 +1502 1503 +1503 1504 +1504 1505 +1505 1506 +1506 1507 +1507 1508 +1508 1509 +1509 1510 +1510 1511 +1511 1512 +1512 1513 +1513 1514 +1514 1515 +1515 1516 +1516 1517 +1517 1518 +1518 1519 +1519 1520 +1520 1521 +1521 1522 +1522 1523 +1523 1524 +1524 1525 +1525 1526 +1526 1527 +1527 1528 +1528 1529 +1529 1530 +1530 1531 +1531 1532 +1532 1533 +1533 1534 +1534 1535 +1535 1536 +1536 1537 +1537 1538 +1538 1539 +1539 1540 +1540 1541 +1541 1542 +1542 1543 +1543 1544 +1544 1545 +1545 1546 +1546 1547 +1547 1548 +1548 1549 +1549 1550 +1550 1551 +1551 1552 +1552 1553 +1553 1554 +1554 1555 +1555 1556 +1556 1557 +1557 1558 +1558 1559 +1559 1560 +1560 1561 +1561 1562 +1562 1563 +1563 1564 +1564 1565 +1565 1566 +1566 1567 +1567 1568 +1568 1569 +1569 1570 +1570 1571 +1571 1572 +1572 1573 +1573 1574 +1574 1575 +1575 1576 +1576 1577 +1577 1578 +1578 1579 +1579 1580 +1580 1581 +1581 1582 +1582 1583 +1583 1584 +1584 1585 +1585 1586 +1586 1587 +1587 1588 +1588 1589 +1589 1590 +1590 1591 +1591 1592 +1592 1593 +1593 1594 +1594 1595 +1595 1596 +1596 1597 +1597 1598 +1598 1599 +1599 1600 +1600 1601 +1601 1602 +1602 1603 +1603 1604 +1604 1605 +1605 1606 +1606 1607 +1607 1608 +1608 1609 +1609 1610 +1610 1611 +1611 1612 +1612 1613 +1613 1614 +1614 1615 +1615 1616 +1616 1617 +1617 1618 +1618 1619 +1619 1620 +1620 1621 +1621 1622 +1622 1623 +1623 1624 +1624 1625 +1625 1626 +1626 1627 +1627 1628 +1628 1629 +1629 1630 +1630 1631 +1631 1632 +1632 1633 +1633 1634 +1634 1635 +1635 1636 +1636 1637 +1637 1638 +1638 1639 +1639 1640 +1640 1641 +1641 1642 +1642 1643 +1643 1644 +1644 1645 +1645 1646 +1646 1647 +1647 1648 +1648 1649 +1649 1650 +1650 1651 +1651 1652 +1652 1653 +1653 1654 +1654 1655 +1655 1656 +1656 1657 +1657 1658 +1658 1659 +1659 1660 +1660 1661 +1661 1662 +1662 1663 +1663 1664 +1664 1665 +1665 1666 +1666 1667 +1667 1668 +1668 1669 +1669 1670 +1670 1671 +1671 1672 +1672 1673 +1673 1674 +1674 1675 +1675 1676 +1676 1677 +1677 1678 +1678 1679 +1679 1680 +1680 1681 +1681 1682 +1682 1683 +1683 1684 +1684 1685 +1685 1686 +1686 1687 +1687 1688 +1688 1689 +1689 1690 +1690 1691 +1691 1692 +1692 1693 +1693 1694 +1694 1695 +1695 1696 +1696 1697 +1697 1698 +1698 1699 +1699 1700 +1700 1701 +1701 1702 +1702 1703 +1703 1704 +1704 1705 +1705 1706 +1706 1707 +1707 1708 +1708 1709 +1709 1710 +1710 1711 +1711 1712 +1712 1713 +1713 1714 +1714 1715 +1715 1716 +1716 1717 +1717 1718 +1718 1719 +1719 1720 +1720 1721 +1721 1722 +1722 1723 +1723 1724 +1724 1725 +1725 1726 +1726 1727 +1727 1728 +1728 1729 +1729 1730 +1730 1731 +1731 1732 +1732 1733 +1733 1734 +1734 1735 +1735 1736 +1736 1737 +1737 1738 +1738 1739 +1739 1740 +1740 1741 +1741 1742 +1742 1743 +1743 1744 +1744 1745 +1745 1746 +1746 1747 +1747 1748 +1748 1749 +1749 1750 +1750 1751 +1751 1752 +1752 1753 +1753 1754 +1754 1755 +1755 1756 +1756 1757 +1757 1758 +1758 1759 +1759 1760 +1760 1761 +1761 1762 +1762 1763 +1763 1764 +1764 1765 +1765 1766 +1766 1767 +1767 1768 +1768 1769 +1769 1770 +1770 1771 +1771 1772 +1772 1773 +1773 1774 +1774 1775 +1775 1776 +1776 1777 +1777 1778 +1778 1779 +1779 1780 +1780 1781 +1781 1782 +1782 1783 +1783 1784 +1784 1785 +1785 1786 +1786 1787 +1787 1788 +1788 1789 +1789 1790 +1790 1791 +1791 1792 +1792 1793 +1793 1794 +1794 1795 +1795 1796 +1796 1797 +1797 1798 +1798 1799 +1799 1800 +1800 1801 +1801 1802 +1802 1803 +1803 1804 +1804 1805 +1805 1806 +1806 1807 +1807 1808 +1808 1809 +1809 1810 +1810 1811 +1811 1812 +1812 1813 +1813 1814 +1814 1815 +1815 1816 +1816 1817 +1817 1818 +1818 1819 +1819 1820 +1820 1821 +1821 1822 +1822 1823 +1823 1824 +1824 1825 +1825 1826 +1826 1827 +1827 1828 +1828 1829 +1829 1830 +1830 1831 +1831 1832 +1832 1833 +1833 1834 +1834 1835 +1835 1836 +1836 1837 +1837 1838 +1838 1839 +1839 1840 +1840 1841 +1841 1842 +1842 1843 +1843 1844 +1844 1845 +1845 1846 +1846 1847 +1847 1848 +1848 1849 +1849 1850 +1850 1851 +1851 1852 +1852 1853 +1853 1854 +1854 1855 +1855 1856 +1856 1857 +1857 1858 +1858 1859 +1859 1860 +1860 1861 +1861 1862 +1862 1863 +1863 1864 +1864 1865 +1865 1866 +1866 1867 +1867 1868 +1868 1869 +1869 1870 +1870 1871 +1871 1872 +1872 1873 +1873 1874 +1874 1875 +1875 1876 +1876 1877 +1877 1878 +1878 1879 +1879 1880 +1880 1881 +1881 1882 +1882 1883 +1883 1884 +1884 1885 +1885 1886 +1886 1887 +1887 1888 +1888 1889 +1889 1890 +1890 1891 +1891 1892 +1892 1893 +1893 1894 +1894 1895 +1895 1896 +1896 1897 +1897 1898 +1898 1899 +1899 1900 +1900 1901 +1901 1902 +1902 1903 +1903 1904 +1904 1905 +1905 1906 +1906 1907 +1907 1908 +1908 1909 +1909 1910 +1910 1911 +1911 1912 +1912 1913 +1913 1914 +1914 1915 +1915 1916 +1916 1917 +1917 1918 +1918 1919 +1919 1920 +1920 1921 +1921 1922 +1922 1923 +1923 1924 +1924 1925 +1925 1926 +1926 1927 +1927 1928 +1928 1929 +1929 1930 +1930 1931 +1931 1932 +1932 1933 +1933 1934 +1934 1935 +1935 1936 +1936 1937 +1937 1938 +1938 1939 +1939 1940 +1940 1941 +1941 1942 +1942 1943 +1943 1944 +1944 1945 +1945 1946 +1946 1947 +1947 1948 +1948 1949 +1949 1950 +1950 1951 +1951 1952 +1952 1953 +1953 1954 +1954 1955 +1955 1956 +1956 1957 +1957 1958 +1958 1959 +1959 1960 +1960 1961 +1961 1962 +1962 1963 +1963 1964 +1964 1965 +1965 1966 +1966 1967 +1967 1968 +1968 1969 +1969 1970 +1970 1971 +1971 1972 +1972 1973 +1973 1974 +1974 1975 +1975 1976 +1976 1977 +1977 1978 +1978 1979 +1979 1980 +1980 1981 +1981 1982 +1982 1983 +1983 1984 +1984 1985 +1985 1986 +1986 1987 +1987 1988 +1988 1989 +1989 1990 +1990 1991 +1991 1992 +1992 1993 +1993 1994 +1994 1995 +1995 1996 +1996 1997 +1997 1998 +1998 1999 +1999 2000 +2000 2001 +2001 2002 +2002 2003 +2003 2004 +2004 2005 +2005 2006 +2006 2007 +2007 2008 +2008 2009 +2009 2010 +2010 2011 +2011 2012 +2012 2013 +2013 2014 +2014 2015 +2015 2016 +2016 2017 +2017 2018 +2018 2019 +2019 2020 +2020 2021 +2021 2022 +2022 2023 +2023 2024 +2024 2025 +2025 2026 +2026 2027 +2027 2028 +2028 2029 +2029 2030 +2030 2031 +2031 2032 +2032 2033 +2033 2034 +2034 2035 +2035 2036 +2036 2037 +2037 2038 +2038 2039 +2039 2040 +2040 2041 +2041 2042 +2042 2043 +2043 2044 +2044 2045 +2045 2046 +2046 2047 +2047 2048 +2048 2049 +2049 2050 +2050 2051 +2051 2052 +2052 2053 +2053 2054 +2054 2055 +2055 2056 +2056 2057 +2057 2058 +2058 2059 +2059 2060 +2060 2061 +2061 2062 +2062 2063 +2063 2064 +2064 2065 +2065 2066 +2066 2067 +2067 2068 +2068 2069 +2069 2070 +2070 2071 +2071 2072 +2072 2073 +2073 2074 +2074 2075 +2075 2076 +2076 2077 +2077 2078 +2078 2079 +2079 2080 +2080 2081 +2081 2082 +2082 2083 +2083 2084 +2084 2085 +2085 2086 +2086 2087 +2087 2088 +2088 2089 +2089 2090 +2090 2091 +2091 2092 +2092 2093 +2093 2094 +2094 2095 +2095 2096 +2096 2097 +2097 2098 +2098 2099 +2099 2100 +2100 2101 +2101 2102 +2102 2103 +2103 2104 +2104 2105 +2105 2106 +2106 2107 +2107 2108 +2108 2109 +2109 2110 +2110 2111 +2111 2112 +2112 2113 +2113 2114 +2114 2115 +2115 2116 +2116 2117 +2117 2118 +2118 2119 +2119 2120 +2120 2121 +2121 2122 +2122 2123 +2123 2124 +2124 2125 +2125 2126 +2126 2127 +2127 2128 +2128 2129 +2129 2130 +2130 2131 +2131 2132 +2132 2133 +2133 2134 +2134 2135 +2135 2136 +2136 2137 +2137 2138 +2138 2139 +2139 2140 +2140 2141 +2141 2142 +2142 2143 +2143 2144 +2144 2145 +2145 2146 +2146 2147 +2147 2148 +2148 2149 +2149 2150 +2150 2151 +2151 2152 +2152 2153 +2153 2154 +2154 2155 +2155 2156 +2156 2157 +2157 2158 +2158 2159 +2159 2160 +2160 2161 +2161 2162 +2162 2163 +2163 2164 +2164 2165 +2165 2166 +2166 2167 +2167 2168 +2168 2169 +2169 2170 +2170 2171 +2171 2172 +2172 2173 +2173 2174 +2174 2175 +2175 2176 +2176 2177 +2177 2178 +2178 2179 +2179 2180 +2180 2181 +2181 2182 +2182 2183 +2183 2184 +2184 2185 +2185 2186 +2186 2187 +2187 2188 +2188 2189 +2189 2190 +2190 2191 +2191 2192 +2192 2193 +2193 2194 +2194 2195 +2195 2196 +2196 2197 +2197 2198 +2198 2199 +2199 2200 +2200 2201 +2201 2202 +2202 2203 +2203 2204 +2204 2205 +2205 2206 +2206 2207 +2207 2208 +2208 2209 +2209 2210 +2210 2211 +2211 2212 +2212 2213 +2213 2214 +2214 2215 +2215 2216 +2216 2217 +2217 2218 +2218 2219 +2219 2220 +2220 2221 +2221 2222 +2222 2223 +2223 2224 +2224 2225 +2225 2226 +2226 2227 +2227 2228 +2228 2229 +2229 2230 +2230 2231 +2231 2232 +2232 2233 +2233 2234 +2234 2235 +2235 2236 +2236 2237 +2237 2238 +2238 2239 +2239 2240 +2240 2241 +2241 2242 +2242 2243 +2243 2244 +2244 2245 +2245 2246 +2246 2247 +2247 2248 +2248 2249 +2249 2250 +2250 2251 +2251 2252 +2252 2253 +2253 2254 +2254 2255 +2255 2256 +2256 2257 +2257 2258 +2258 2259 +2259 2260 +2260 2261 +2261 2262 +2262 2263 +2263 2264 +2264 2265 +2265 2266 +2266 2267 +2267 2268 +2268 2269 +2269 2270 +2270 2271 +2271 2272 +2272 2273 +2273 2274 +2274 2275 +2275 2276 +2276 2277 +2277 2278 +2278 2279 +2279 2280 +2280 2281 +2281 2282 +2282 2283 +2283 2284 +2284 2285 +2285 2286 +2286 2287 +2287 2288 +2288 2289 +2289 2290 +2290 2291 +2291 2292 +2292 2293 +2293 2294 +2294 2295 +2295 2296 +2296 2297 +2297 2298 +2298 2299 +2299 2300 +2300 2301 +2301 2302 +2302 2303 +2303 2304 +2304 2305 +2305 2306 +2306 2307 +2307 2308 +2308 2309 +2309 2310 +2310 2311 +2311 2312 +2312 2313 +2313 2314 +2314 2315 +2315 2316 +2316 2317 +2317 2318 +2318 2319 +2319 2320 +2320 2321 +2321 2322 +2322 2323 +2323 2324 +2324 2325 +2325 2326 +2326 2327 +2327 2328 +2328 2329 +2329 2330 +2330 2331 +2331 2332 +2332 2333 +2333 2334 +2334 2335 +2335 2336 +2336 2337 +2337 2338 +2338 2339 +2339 2340 +2340 2341 +2341 2342 +2342 2343 +2343 2344 +2344 2345 +2345 2346 +2346 2347 +2347 2348 +2348 2349 +2349 2350 +2350 2351 +2351 2352 +2352 2353 +2353 2354 +2354 2355 +2355 2356 +2356 2357 +2357 2358 +2358 2359 +2359 2360 +2360 2361 +2361 2362 +2362 2363 +2363 2364 +2364 2365 +2365 2366 +2366 2367 +2367 2368 +2368 2369 +2369 2370 +2370 2371 +2371 2372 +2372 2373 +2373 2374 +2374 2375 +2375 2376 +2376 2377 +2377 2378 +2378 2379 +2379 2380 +2380 2381 +2381 2382 +2382 2383 +2383 2384 +2384 2385 +2385 2386 +2386 2387 +2387 2388 +2388 2389 +2389 2390 +2390 2391 +2391 2392 +2392 2393 +2393 2394 +2394 2395 +2395 2396 +2396 2397 +2397 2398 +2398 2399 +2399 2400 +2400 2401 +2401 2402 +2402 2403 +2403 2404 +2404 2405 +2405 2406 +2406 2407 +2407 2408 +2408 2409 +2409 2410 +2410 2411 +2411 2412 +2412 2413 +2413 2414 +2414 2415 +2415 2416 +2416 2417 +2417 2418 +2418 2419 +2419 2420 +2420 2421 +2421 2422 +2422 2423 +2423 2424 +2424 2425 +2425 2426 +2426 2427 +2427 2428 +2428 2429 +2429 2430 +2430 2431 +2431 2432 +2432 2433 +2433 2434 +2434 2435 +2435 2436 +2436 2437 +2437 2438 +2438 2439 +2439 2440 +2440 2441 +2441 2442 +2442 2443 +2443 2444 +2444 2445 +2445 2446 +2446 2447 +2447 2448 +2448 2449 +2449 2450 +2450 2451 +2451 2452 +2452 2453 +2453 2454 +2454 2455 +2455 2456 +2456 2457 +2457 2458 +2458 2459 +2459 2460 +2460 2461 +2461 2462 +2462 2463 +2463 2464 +2464 2465 +2465 2466 +2466 2467 +2467 2468 +2468 2469 +2469 2470 +2470 2471 +2471 2472 +2472 2473 +2473 2474 +2474 2475 +2475 2476 +2476 2477 +2477 2478 +2478 2479 +2479 2480 +2480 2481 +2481 2482 +2482 2483 +2483 2484 +2484 2485 +2485 2486 +2486 2487 +2487 2488 +2488 2489 +2489 2490 +2490 2491 +2491 2492 +2492 2493 +2493 2494 +2494 2495 +2495 2496 +2496 2497 +2497 2498 +2498 2499 +2499 2500 +2500 2501 +2501 2502 +2502 2503 +2503 2504 +2504 2505 +2505 2506 +2506 2507 +2507 2508 +2508 2509 +2509 2510 +2510 2511 +2511 2512 +2512 2513 +2513 2514 +2514 2515 +2515 2516 +2516 2517 +2517 2518 +2518 2519 +2519 2520 +2520 2521 +2521 2522 +2522 2523 +2523 2524 +2524 2525 +2525 2526 +2526 2527 +2527 2528 +2528 2529 +2529 2530 +2530 2531 +2531 2532 +2532 2533 +2533 2534 +2534 2535 +2535 2536 +2536 2537 +2537 2538 +2538 2539 +2539 2540 +2540 2541 +2541 2542 +2542 2543 +2543 2544 +2544 2545 +2545 2546 +2546 2547 +2547 2548 +2548 2549 +2549 2550 +2550 2551 +2551 2552 +2552 2553 +2553 2554 +2554 2555 +2555 2556 +2556 2557 +2557 2558 +2558 2559 +2559 2560 +2560 2561 +2561 2562 +2562 2563 +2563 2564 +2564 2565 +2565 2566 +2566 2567 +2567 2568 +2568 2569 +2569 2570 +2570 2571 +2571 2572 +2572 2573 +2573 2574 +2574 2575 +2575 2576 +2576 2577 +2577 2578 +2578 2579 +2579 2580 +2580 2581 +2581 2582 +2582 2583 +2583 2584 +2584 2585 +2585 2586 +2586 2587 +2587 2588 +2588 2589 +2589 2590 +2590 2591 +2591 2592 +2592 2593 +2593 2594 +2594 2595 +2595 2596 +2596 2597 +2597 2598 +2598 2599 +2599 2600 +2600 2601 +2601 2602 +2602 2603 +2603 2604 +2604 2605 +2605 2606 +2606 2607 +2607 2608 +2608 2609 +2609 2610 +2610 2611 +2611 2612 +2612 2613 +2613 2614 +2614 2615 +2615 2616 +2616 2617 +2617 2618 +2618 458 \ No newline at end of file diff --git a/include/CDT/tests/inputs/Hanging.txt b/include/CDT/tests/inputs/Hanging.txt new file mode 100644 index 0000000..83a6cb0 --- /dev/null +++ b/include/CDT/tests/inputs/Hanging.txt @@ -0,0 +1,9 @@ +7 1 +725.0 415.0 +855.0 390.0 +945.0 455.0 +1100.0 373.0 +1215.0 410.0 +1250.0 510.0 +943.0 540.0 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/Hanging2.txt b/include/CDT/tests/inputs/Hanging2.txt new file mode 100644 index 0000000..3e248e7 --- /dev/null +++ b/include/CDT/tests/inputs/Hanging2.txt @@ -0,0 +1,23 @@ +13 9 +111 344 +157 282 +151 306 +272 304 +266 340 +362 301 +341 328 +380 330 +370 236 +426 344 +269 422 +248 356 +288 356 +0 1 +1 2 +2 3 +3 5 +5 6 +6 7 +7 8 +8 9 +0 9 \ No newline at end of file diff --git a/include/CDT/tests/inputs/HangingIntersection.txt b/include/CDT/tests/inputs/HangingIntersection.txt new file mode 100644 index 0000000..a006e50 --- /dev/null +++ b/include/CDT/tests/inputs/HangingIntersection.txt @@ -0,0 +1,10 @@ +7 2 +725.0 415.0 +855.0 390.0 +945.0 455.0 +1100.0 373.0 +1215.0 410.0 +1250.0 510.0 +943.0 540.0 +3 5 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/Letter u.txt b/include/CDT/tests/inputs/Letter u.txt new file mode 100644 index 0000000..7dccc01 --- /dev/null +++ b/include/CDT/tests/inputs/Letter u.txt @@ -0,0 +1,17 @@ +8 8 +0 0 +4 0 +4 1 +2 1 +2 2 +4 2 +4 3 +0 3 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/OnEdge.txt b/include/CDT/tests/inputs/OnEdge.txt new file mode 100644 index 0000000..50f382c --- /dev/null +++ b/include/CDT/tests/inputs/OnEdge.txt @@ -0,0 +1,21 @@ +20 0 +0 0 +1 0 +1 1 +0 1 +0.01 0.01 +0.03 0.03 +0.06 0.06 +0.12 0.12 +0.24 0.24 +0.5 0.5 +0.96 0.96 +0.001 0.001 +0.02 0.02 +0.4 0.4 +0.8 0.8 +0.9 0.1 +0.8 0.2 +0.6 0.4 +0.3 0.7 +0.1 0.9 \ No newline at end of file diff --git a/include/CDT/tests/inputs/ProblematicCase1.txt b/include/CDT/tests/inputs/ProblematicCase1.txt new file mode 100644 index 0000000..254faba --- /dev/null +++ b/include/CDT/tests/inputs/ProblematicCase1.txt @@ -0,0 +1,10 @@ +8 1 +0 0 +6 2 +8 1 +10 2 +16 0 +10 -2 +8 -1 +6 -2 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/cdt.txt b/include/CDT/tests/inputs/cdt.txt new file mode 100644 index 0000000..9aa25ca --- /dev/null +++ b/include/CDT/tests/inputs/cdt.txt @@ -0,0 +1,205 @@ +101 103 +765 1970 +640.016 1942.47 +530.875 1900.5 +433.547 1842.03 +344 1765 +269.5 1681.12 +216 1589 +147.75 1407.25 +123 1197 +129.445 982.248 +166.875 795.422 +234.305 637.541 +330.75 509.625 +455.227 412.693 +606.75 347.766 +784.336 315.861 +987 318 +1148.38 339.875 +1258 370 +1276.5 390 +1280 455 +1279.23 504.359 +1268.62 525.875 +1168 509 +937.375 482.375 +730 494 +619.781 533.922 +526.25 593.625 +449.594 673.016 +390 772 +332.375 951.125 +322 1179 +330.75 1317.5 +350 1405 +397.844 1521 +461.25 1619 +539.281 1697.5 +631 1755 +759 1800 +863.391 1810.11 +977.625 1805.12 +1091.3 1786.08 +1194 1754 +1257 1730 +1300 1809 +1339 1888 +1267 1914 +1125 1955 +940.875 1974.12 +3080 1875 +3080 1790 +3335 1790 +3590 1790 +3590 1065 +3590 340 +3685 340 +3780 340 +3780 1065 +3780 1790 +4035 1790 +4290 1790 +4290 1875 +4290 1960 +3685 1960 +3080 1960 +1630 1141 +1630 330 +1883 330 +2196.38 338.875 +2389 371 +2527.62 424.547 +2651.25 503.875 +2753.5 604.016 +2828 720 +2896.5 915.625 +2914 1160 +2909.38 1317.38 +2892 1414 +2819.53 1595.61 +2711.25 1740.38 +2566.59 1848.95 +2385 1922 +2265 1941 +1968 1948 +1630 1952 +2320 1767 +2458.41 1708.47 +2567.75 1622.75 +2648.22 1509.66 +2700 1369 +2721 1150 +2700 931 +2644.95 783.922 +2558.12 665.625 +2439.98 576.766 +2291 518 +2018 493 +1820 487 +1820 1140 +1820 1792 +2043 1787 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +0 48 +0 0 +0 0 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +49 64 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +65 84 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +85 100 \ No newline at end of file diff --git a/include/CDT/tests/inputs/corner cases.txt b/include/CDT/tests/inputs/corner cases.txt new file mode 100644 index 0000000..600fb72 --- /dev/null +++ b/include/CDT/tests/inputs/corner cases.txt @@ -0,0 +1,19 @@ +12 6 +0 1 +2 2 +4 2 +2 0 +4 0 +6 1 +8 1 +10 2 +12 2 +10 0 +12 0 +14 1 +0 11 +0 6 +1 3 +2 4 +7 9 +8 10 \ No newline at end of file diff --git a/include/CDT/tests/inputs/crossing-edges.txt b/include/CDT/tests/inputs/crossing-edges.txt new file mode 100644 index 0000000..f5dcfef --- /dev/null +++ b/include/CDT/tests/inputs/crossing-edges.txt @@ -0,0 +1,7 @@ +4 2 +0 0.2 +1 0 +1 1 +0 1 +0 2 +1 3 \ No newline at end of file diff --git a/include/CDT/tests/inputs/debug2.txt b/include/CDT/tests/inputs/debug2.txt new file mode 100644 index 0000000..0febdff --- /dev/null +++ b/include/CDT/tests/inputs/debug2.txt @@ -0,0 +1,20001 @@ +10000 10000 +1.7978594 0.0 +2.169727 0.0013632799 +2.0489786 0.0025748236 +1.6864972 0.0031789762 +1.0627707 0.00267104 +1.6071618 0.005049064 +1.6630353 0.006269525 +1.6853083 0.007412421 +2.3962605 0.01204502 +2.69772 0.01525541 +1.8586487 0.011678387 +1.2379591 0.008556296 +0.99997157 0.007539751 +0.9999666 0.00816805 +0.9999613 0.008796346 +1.094976 0.010320211 +0.99994946 0.010052927 +1.6568905 0.017698608 +0.99993604 0.011309492 +1.1163418 0.01332758 +1.8877816 0.02372381 +2.2771854 0.030048497 +1.6972358 0.023462398 +2.6236942 0.0379185 +2.1719406 0.032754574 +2.360686 0.03708462 +1.4552166 0.023774944 +1.4864751 0.025219876 +1.76546 0.031062799 +2.5270119 0.04605038 +3.2688243 0.061623186 +3.4130046 0.066486485 +2.6731117 0.053753342 +2.2180197 0.04599615 +3.164733 0.06761794 +3.9363818 0.08657952 +3.3517597 0.07582795 +4.044233 0.0940364 +3.7059002 0.08849928 +4.0557427 0.09940354 +4.361124 0.10963009 +4.0949254 0.10551296 +4.6946487 0.12391763 +4.998175 0.13507205 +4.655135 0.12872873 +3.7623806 0.106407166 +3.1308353 0.09051465 +3.2166011 0.09501698 +3.5193026 0.10617186 +4.3538027 0.13408554 +3.9907873 0.12541555 +4.7500095 0.15226258 +4.866436 0.15905555 +4.9972277 0.16647364 +4.9971223 0.16961345 +4.9970145 0.1727532 +4.9969053 0.17589289 +4.1949663 0.15030344 +3.4655058 0.12634754 +3.3054788 0.12259288 +3.9340208 0.14837939 +3.8695972 0.14838438 +3.068128 0.11958172 +3.946806 0.15631229 +3.8481493 0.15482672 +4.718885 0.19282982 +4.9957013 0.20728569 +4.3171177 0.18184662 +4.2851877 0.18319896 +4.636052 0.20111732 +3.843115 0.1691381 +4.362732 0.19475336 +4.594191 0.20797822 +4.9947414 0.22925586 +4.9945965 0.2323941 +4.8435216 0.22841468 +4.9943004 0.23867032 +4.7408743 0.22954512 +3.9247332 0.19250078 +4.220373 0.20965958 +3.699524 0.18611513 +4.1924624 0.21355477 +3.2451725 0.16734627 +3.4447136 0.17980635 +3.5150497 0.18569241 +3.6776235 0.19659807 +3.592833 0.19432932 +3.3920538 0.18560717 +3.2720444 0.18110257 +3.7714345 0.21112004 +4.365902 0.24714944 +4.3015323 0.24621701 +3.7550535 0.21730411 +3.7551496 0.21967708 +2.968291 0.17551716 +2.7835357 0.1663476 +2.0111475 0.12145689 +1.3024743 0.0794802 +2.0550237 0.1266987 +1.2980847 0.08084976 +0.9980267 0.06279052 +1.6367681 0.10400925 +2.5889218 0.16614762 +2.7922206 0.1809563 +2.8847034 0.18877007 +2.8067324 0.18543893 +2.543304 0.16963944 +1.6103534 0.1084276 +2.3174198 0.15749823 +2.7633264 0.18954761 +3.5593708 0.24639851 +3.5086868 0.24510513 +3.6978762 0.26065615 +2.8584502 0.20329167 +3.46055 0.24829815 +3.6293004 0.26269835 +3.513185 0.2565127 +4.1487064 0.30553558 +4.3572793 0.32364884 +4.105765 0.30756098 +4.4923887 0.33936146 +3.7916536 0.28882298 +4.734978 0.3636717 +3.9604273 0.30668524 +2.9980001 0.23405246 +2.008754 0.15809236 +2.0184345 0.16013038 +1.0236973 0.081861235 +1.493009 0.12033446 +1.6629218 0.13508089 +2.1296542 0.17434105 +1.6722152 0.13795125 +1.16575 0.096907325 +0.9965104 0.08346914 +1.1110308 0.09376455 +1.6951773 0.14413588 +1.8663319 0.15986983 +2.419661 0.20879953 +3.3382773 0.2901828 +2.9300597 0.25655314 +3.5598826 0.31395382 +2.7737353 0.24637821 +2.417626 0.21627775 +2.6684914 0.24041003 +3.2134857 0.29154533 +2.953762 0.26985303 +3.2648394 0.30034137 +3.1519868 0.2919571 +3.81286 0.35558775 +3.301635 0.31000352 +2.3776062 0.22474995 +1.4221512 0.13533446 +1.6646197 0.15946366 +1.1452565 0.11043706 +1.9464625 0.18893176 +2.335352 0.22816026 +1.7261636 0.16973852 +1.908468 0.18887581 +1.5438403 0.1537692 +2.1087697 0.21137536 +2.815288 0.28398097 +2.909063 0.2952867 +2.1796808 0.2226339 +2.2038903 0.22650595 +2.9517286 0.30523977 +2.4489138 0.25479868 +3.0541894 0.31971484 +3.604426 0.37960368 +3.5199506 0.3729434 +3.4725618 0.37012905 +4.338221 0.46515378 +3.7667542 0.40627387 +4.255329 0.46167552 +4.4500594 0.48563167 +4.9701486 0.54554886 +4.4272385 0.48877168 +4.0468373 0.44934887 +3.1114953 0.3474705 +2.8025632 0.31475407 +2.3611517 0.2666818 +2.0342784 0.23105745 +2.209237 0.25233573 +1.4970498 0.17194374 +2.0685868 0.23890463 +2.812904 0.3266582 +1.8440902 0.21532574 +1.5586461 0.18298852 +1.8387069 0.21703959 +2.2585914 0.26804143 +3.0188284 0.36018726 +3.3462064 0.40138048 +2.8746135 0.34664476 +3.8334138 0.4647087 +2.973372 0.36234525 +2.1962414 0.269042 +2.7351553 0.33680403 +2.4315257 0.30096644 +2.7863553 0.34666383 +3.1124835 0.38922504 +3.4862185 0.4381866 +3.401166 0.42966717 +3.164649 0.40180844 +4.0720315 0.5196167 +3.3039744 0.42371777 +3.6049 0.4646124 +3.9105535 0.50650424 +3.6513877 0.47526935 +3.0658374 0.4010125 +2.3510714 0.3090235 +2.2356977 0.29528797 +2.051136 0.27222267 +1.4195482 0.18930729 +1.5313287 0.20519342 +1.1483685 0.15461247 +1.1887667 0.16081208 +1.9749589 0.26842904 +2.1299717 0.29086095 +3.0370753 0.4166756 +3.2544174 0.4485776 +3.0264945 0.41909942 +2.6480925 0.36839542 +2.995139 0.41859403 +2.4384887 0.34236002 +2.5218391 0.35567823 +2.3373678 0.3311585 +2.9618657 0.4215359 +3.7591395 0.5374148 +3.5042036 0.50321555 +3.2728717 0.4720945 +2.6581032 0.38512242 +2.5648456 0.3732562 +3.4547172 0.504974 +2.8496995 0.4183679 +3.2387965 0.47757074 +3.4215693 0.506718 +3.3476143 0.49791527 +2.6557877 0.3967206 +1.9565938 0.29353216 +1.7260344 0.2600522 +1.3675108 0.20691422 +0.98865175 0.1502256 +1.4348994 0.21895538 +2.3353188 0.35785457 +2.310307 0.3555077 +2.7435153 0.42393416 +1.8700575 0.29016864 +1.3502214 0.21037684 +1.9542744 0.30575165 +2.8409932 0.44631016 +2.3778741 0.37508687 +1.7225031 0.2728177 +0.98758984 0.15705502 +0.98749095 0.1576755 +1.7092874 0.27402827 +1.4915646 0.24008493 +0.98719203 0.1595366 +1.471602 0.23876926 +1.9423537 0.316402 +2.2024422 0.3601901 +1.52263 0.24999517 +1.6398091 0.2702926 +2.169337 0.3589758 +3.1275113 0.5195509 +3.3453982 0.5579071 +2.5238473 0.42252833 +1.7089231 0.28720227 +2.5076237 0.42305243 +2.368479 0.4011085 +3.2069638 0.5451812 +2.5432236 0.43399027 +1.9066827 0.32660028 +2.7750745 0.4771442 +2.3823018 0.41115242 +1.8909991 0.32758403 +1.3251514 0.23041807 +1.8546113 0.3236815 +1.0022409 0.17556801 +1.8663952 0.32815546 +2.5136034 0.44357798 +2.3740668 0.4204921 +2.6883235 0.47789523 +3.2369087 0.57751393 +2.7310317 0.4890285 +3.6290631 0.6521869 +4.3791394 0.78982544 +3.6309483 0.6572369 +3.1841025 0.57841986 +2.3923588 0.43614566 +1.9028279 0.34813583 +1.7964793 0.3298453 +2.1843839 0.40248603 +1.91568 0.35422036 +2.0612435 0.38247547 +2.288435 0.4261197 +2.2109392 0.413127 +2.0968287 0.39316842 +2.26562 0.4262916 +2.2647018 0.42759237 +2.8728158 0.5442784 +2.2691731 0.43139043 +3.1297777 0.597037 +3.2370496 0.6196084 +3.4137802 0.65566045 +3.5809062 0.6900924 +3.3848536 0.6545162 +4.174081 0.8098471 +4.7632465 0.9272618 +4.907268 0.9584991 +3.9453518 0.7731892 +3.879609 0.7628368 +3.019923 0.5957702 +2.2460012 0.44455728 +3.142536 0.624063 +3.5244336 0.7022045 +4.4598913 0.891498 +4.7694073 0.95648474 +4.315288 0.86823386 +3.9150803 0.790272 +3.609739 0.73099864 +3.557117 0.7226692 +4.2731667 0.8709391 +3.9823153 0.8142654 +4.8624544 0.997411 +4.3784466 0.9009961 +3.9309776 0.81149083 +2.9527123 0.6114773 +2.14933 0.44651335 +2.6959157 0.5618313 +2.1077273 0.4406343 +2.5878174 0.5426976 +1.9436481 0.40888235 +0.9784514 0.20647743 +0.97832143 0.20709217 +0.97819114 0.20770682 +1.1636518 0.24785133 +0.97792935 0.20893589 +0.97779787 0.2095503 +0.977666 0.21016462 +1.5163323 0.32695627 +2.4749475 0.53528345 +1.5372257 0.3334835 +1.1757843 0.25584656 +1.0587689 0.23108123 +0.9768668 0.21384884 +1.0292624 0.22599672 +0.97659725 0.21507624 +0.97646195 0.21568981 +0.9763262 0.21630329 +0.9761901 0.2169167 +1.1959568 0.26653916 +1.9829297 0.4432373 +1.8061746 0.40491956 +0.97564185 0.21936944 +1.0991518 0.24786584 +1.2951998 0.29293123 +1.2490584 0.28332064 +1.0841316 0.24662705 +1.807471 0.4123728 +1.7709599 0.4052136 +1.0186008 0.23373984 +0.9745269 0.22427076 +1.605955 0.37064585 +1.9085783 0.44175294 +0.9741024 0.2261073 +0.97396016 0.2267193 +0.97381747 0.22733122 +1.1999203 0.28090855 +0.97353107 0.22855477 +1.1219231 0.26413646 +1.1970744 0.28262344 +1.0431523 0.24697527 +1.5585235 0.37002814 +1.1337168 0.26992217 +1.7079694 0.40777785 +1.6279383 0.38975173 +0.9723699 0.23344536 +0.97222304 0.23405628 +1.4879118 0.35919416 +1.0101056 0.24451956 +1.7490194 0.42455435 +2.6311376 0.6404293 +2.7688339 0.67578816 +2.316097 0.56683105 +2.4760728 0.607632 +1.885832 0.46404243 +1.9268844 0.47542834 +2.6793559 0.662875 +2.1001904 0.52098954 +1.5351951 0.38185656 +0.97243726 0.24252795 +1.4979419 0.3745898 +1.3776293 0.34542316 +0.969821 0.24381813 +0.9696676 0.24442744 +0.96951383 0.24503666 +1.515931 0.3841526 +1.6917683 0.429843 +1.4225403 0.36238948 +1.6172713 0.4130791 +0.9687392 0.24808125 +1.32757 0.34086204 +1.8165203 0.46761993 +2.3618917 0.6095955 +2.2278407 0.57649064 +1.4268856 0.370187 +0.9677971 0.25173154 +1.189134 0.31010085 +1.2229975 0.31975254 +1.9383314 0.5080778 +2.7298617 0.7173881 +2.285532 0.60215694 +2.0891106 0.5518108 +2.4027889 0.63628006 +2.646619 0.7026283 +3.0643604 0.81559235 +3.930643 1.0488021 +3.3861978 0.90580887 +3.1714125 0.8504894 +3.1441312 0.8452912 +4.0889444 1.102057 +4.2228537 1.1409949 +3.5391355 0.958644 +3.5459704 0.96288717 +3.2266219 0.8783472 +2.3974903 0.6542603 +2.6669226 0.72958744 +1.7332101 0.47532335 +2.0662954 0.5680663 +1.2359722 0.34062913 +0.9638912 0.26629642 +1.6107224 0.44608745 +1.3820707 0.38369778 +1.4907835 0.41488826 +1.1619334 0.32415533 +2.0359986 0.56938046 +2.986793 0.8373002 +3.915106 1.1001918 +3.4092553 0.96035326 +2.7529624 0.7773494 +2.0575368 0.5823794 +2.0706255 0.5874896 +1.2820276 0.36461464 +1.4607663 0.41644102 +1.1652926 0.33299804 +0.96133864 0.2753689 +1.1682689 0.33543712 +0.96099186 0.27657676 +0.9608179 0.2771805 +0.96064353 0.27778414 +0.96046877 0.2783877 +1.2909551 0.37505713 +1.1271492 0.32823527 +0.95994234 0.28019762 +1.5557005 0.45515448 +1.108276 0.32500666 +1.7281823 0.5079763 +1.8342141 0.5403952 +2.3484 0.6934883 +2.1278443 0.62981147 +2.7856095 0.8264045 +2.9875348 0.88835216 +2.9213316 0.8706647 +2.9576478 0.8835121 +2.9189067 0.8739373 +3.519893 1.0562863 +4.3827176 1.318214 +3.658694 1.1029528 +3.548141 1.0720578 +3.8746955 1.1733824 +4.571144 1.3874255 +4.7807264 1.4543188 +4.2728057 1.3027407 +3.5578845 1.0872113 +2.7211077 0.8333804 +3.0184896 0.926533 +3.9577606 1.2175661 +4.289314 1.3225158 +4.777114 1.476206 +4.7761855 1.4792072 +4.775255 1.4822078 +4.7743225 1.4852079 +4.7733884 1.4882075 +4.269101 1.3339286 +4.1581864 1.3021402 +3.4188561 1.0729775 +4.2682214 1.3424897 +3.4481142 1.0869216 +4.3052626 1.360088 +4.1099696 1.3012332 +3.9496782 1.2532152 +4.5472355 1.4459629 +3.7598891 1.1981986 +3.2544775 1.0393873 +3.0284321 0.9692922 +2.2257023 0.7139093 +2.9584422 0.9509911 +3.141587 1.0120413 +2.4778132 0.79992986 +2.1899364 0.70851225 +3.1379118 1.01739 +3.4305053 1.1146387 +3.7503629 1.2211725 +2.8050103 0.9153017 +1.8742265 0.6128813 +2.5472276 0.834728 +3.3059897 1.0856755 +4.117569 1.3550621 +4.677414 1.5425608 +4.03874 1.3347473 +3.6831825 1.219808 +3.9631345 1.3152871 +4.396915 1.462318 +3.9418855 1.3137364 +3.2063816 1.0708494 +2.5352135 0.84846735 +2.629554 0.88187826 +2.9117227 0.9785453 +2.4636118 0.82967144 +2.4242506 0.818112 +1.7266248 0.58389294 +1.0385877 0.35194665 +1.3951782 0.47376212 +2.308482 0.7855117 +2.1035564 0.7172563 +2.5601642 0.87474334 +2.1819015 0.74703187 +1.6913478 0.58026534 +2.558827 0.8796763 +3.4778833 1.1980745 +4.10909 1.4184036 +3.3727376 1.1665968 +2.6437325 0.91630137 +2.8932164 1.0048076 +3.183496 1.1078631 +3.9439282 1.3752738 +4.6397095 1.6211677 +4.0762677 1.4271692 +4.718081 1.6552073 +4.505009 1.5836366 +4.715997 1.661135 +4.1207705 1.4543868 +4.7139063 1.6670599 +4.7128577 1.6700214 +4.7118077 1.6729822 +4.7107553 1.6759424 +4.42769 1.5783713 +4.708646 1.6818608 +4.707588 1.684819 +4.2440753 1.5219393 +4.348868 1.5626029 +4.340696 1.5627466 +3.870543 1.396229 +3.468687 1.2537303 +3.6389868 1.3178695 +3.1226826 1.1331084 +2.6496017 0.96332884 +3.3357477 1.2151679 +3.929802 1.4343714 +4.5872283 1.6775978 +4.4900208 1.6452472 +3.9029922 1.4329287 +3.9661381 1.4589404 +4.130899 1.5224948 +3.6131608 1.3342552 +3.8965902 1.4417018 +3.1698172 1.1750674 +2.5272985 0.93868905 +2.2999072 0.85587615 +1.7086034 0.6370538 +1.7243489 0.64415884 +2.1950116 0.82155466 +1.3649942 0.5118716 +1.7505327 0.65770304 +0.93588746 0.35229906 +1.7160228 0.6471991 +2.2986014 0.8685691 +1.7687538 0.6696267 +1.3869529 0.5260785 +2.304934 0.8759306 +2.2646096 0.86223507 +2.7306697 1.0416493 +2.8227773 1.0788171 +2.2458112 0.8599282 +2.2310796 0.85589516 +1.9119325 0.7348411 +2.1168745 0.81513643 +2.366108 0.91281533 +2.7656474 1.0689496 +2.3264747 0.9008856 +3.1644244 1.2276535 +3.0518215 1.1861752 +3.5498362 1.3823106 +3.468015 1.3529594 +3.343269 1.3067138 +3.7198324 1.4565881 +3.2378404 1.2701998 +2.3080647 0.907124 +2.0463448 0.8057466 +1.8714985 0.73825955 +2.7892187 1.102303 +2.2052078 0.8731035 +1.89721 0.75253785 +1.7970448 0.7141139 +1.0208031 0.406392 +0.9288483 0.37046018 +0.9286154 0.3710437 +1.2137998 0.48587853 +1.5194892 0.6093526 +1.5682077 0.63003397 +1.8151246 0.73055875 +1.2874146 0.51910406 +1.173059 0.47385132 +0.9269745 0.37512437 +0.9574809 0.38816988 +0.92650235 0.37628895 +1.7473938 0.71096456 +1.662899 0.6778041 +0.92579144 0.37803468 +1.6704122 0.68331563 +1.1589345 0.47493562 +0.9250772 0.3797791 +0.9248384 0.38036028 +1.0153565 0.41833395 +0.9243597 0.38152215 +1.4366477 0.5940217 +0.9238795 0.38268343 +1.6714215 0.6935562 +2.239308 0.9308503 +2.9039066 1.2092553 +2.3752859 0.99087685 +2.071595 0.8657174 +2.1031287 0.880448 +2.2424738 0.94043934 +2.7706454 1.1639893 +2.4689934 1.0390865 +1.5904393 0.67051977 +1.0954818 0.46265948 +0.92096794 0.38963836 +0.92072296 0.39021695 +1.4533303 0.61702186 +1.0232942 0.43520597 +1.0152315 0.43253037 +1.828848 0.7805225 +1.3762673 0.58839095 +1.7584302 0.753083 +2.0018003 0.85879993 +1.6088858 0.69143146 +2.3997042 1.0330787 +1.5769618 0.6800608 +0.918004 0.39657116 +1.7136126 0.74154633 +1.071171 0.4643364 +0.9172548 0.39830086 +0.9170044 0.3988771 +1.4550998 0.63402456 +2.006214 0.87565947 +1.6271213 0.711413 +0.9562896 0.4188266 +1.3462148 0.59061074 +0.96599144 0.4245233 +1.3272212 0.5842678 +0.91498786 0.40348142 +1.2580457 0.55570376 +0.935957 0.41413382 +0.9142257 0.4052054 +1.4789567 0.6566191 +0.9304905 0.41381413 +1.5800515 0.70388085 +2.096393 0.9354796 +1.4349637 0.64140946 +1.5701797 0.7030332 +2.4310076 1.090295 +3.328631 1.4953874 +3.9792604 1.7906885 +3.4711866 1.564676 +2.7058342 1.2217311 +2.055824 0.9297957 +1.2999138 0.5889012 +1.0418243 0.47276792 +0.9103662 0.41380367 +1.7347316 0.7898316 +1.8038285 0.82266045 +1.2330812 0.5632996 +0.9093233 0.41609034 +1.1145065 0.5108257 +1.7096679 0.7849138 +2.0457432 0.9407637 +2.3898022 1.1008037 +2.3623104 1.08994 +1.7584624 0.81267273 +0.9074844 0.42008573 +0.9841163 0.45631063 +0.90695584 0.4212258 +1.2739191 0.5926313 +0.9064258 0.42236516 +0.90616024 0.4229346 +1.5739856 0.73583525 +1.8023695 0.84398466 +2.620792 1.2292309 +2.8305428 1.3297807 +2.5558875 1.2027093 +2.0153499 0.9498988 +2.781071 1.3129438 +3.5513093 1.6793029 +2.8122807 1.3320022 +3.120871 1.4805638 +2.2361488 1.0625669 +1.4778477 0.703378 +1.8559327 0.8847574 +2.635857 1.2585949 +3.4783714 1.6635716 +3.1908507 1.5285257 +3.0440784 1.460569 +3.3543944 1.6120543 +3.8541152 1.8551918 +3.0609953 1.4757904 +3.306596 1.5967627 +3.2540731 1.5739212 +2.7140832 1.3148453 +2.8334954 1.3748937 +2.1109688 1.0259421 +1.4724158 0.716746 +0.89885527 0.43824565 +0.8985797 0.43881032 +0.8983038 0.43937483 +0.8980276 0.43993917 +0.897751 0.44050333 +1.2299082 0.60444343 +1.1978995 0.5896474 +0.8969191 0.44219476 +1.1177208 0.5519267 +0.89636266 0.44332153 +1.3721923 0.67972994 +0.8958049 0.44444758 +0.89552546 0.44501033 +0.8952457 0.4455729 +1.0535387 0.5251832 +1.519475 0.75864214 +0.8944042 0.44725963 +1.426163 0.7142937 +1.3225026 0.6634152 +1.6976193 0.8529228 +1.2603624 0.63422704 +0.89299464 0.45006728 +1.5825158 0.79883164 +1.1279798 0.57027787 +0.89214474 0.4517497 +0.89186066 0.45231017 +0.89157635 0.45287046 +0.8912916 0.45343056 +0.8910065 0.4539905 +1.114321 0.5686571 +1.6921301 0.8648635 +2.500839 1.2801846 +2.0879452 1.0704796 +2.7103324 1.3917259 +2.5724864 1.3229867 +3.220882 1.6590054 +3.4974222 1.8042266 +3.1304405 1.6174017 +2.9286013 1.5154498 +2.7701728 1.4356759 +2.0285754 1.0529515 +2.4801552 1.2893271 +2.6549516 1.382316 +3.2794027 1.7100599 +3.8415852 2.0062838 +3.5335345 1.8482296 +3.881661 2.0334258 +3.8043938 1.9959964 +4.1566577 2.1841452 +3.7682106 1.9830555 +3.9232051 2.0677714 +4.421765 2.3340943 +4.420297 2.336872 +4.3379364 2.296819 +4.256645 2.257203 +4.4158845 2.3452 +4.41441 2.3479743 +4.412934 2.3507473 +4.0087924 2.1386979 +3.7601042 2.0090582 +4.408495 2.3590615 +3.800802 2.0369475 +4.1985803 2.2535238 +4.4040403 2.367367 +4.402552 2.3701336 +3.918058 2.1124804 +3.9575863 2.1370032 +3.2237618 1.7433723 +3.1257467 1.6929061 +3.9693415 2.1530242 +3.7410421 2.0322347 +2.9518816 1.6059444 +2.9781113 1.6226403 +3.3260956 1.8149526 +3.284658 1.7950206 +3.0883856 1.6902813 +3.168912 1.7369419 +4.0198665 2.2066524 +3.3618097 1.8481706 +4.2213783 2.3241775 +3.361082 1.8532745 +4.166711 2.3009071 +4.375466 2.4197729 +4.3669696 2.4186585 +4.13807 2.2952807 +4.370897 2.428016 +3.7231703 2.0712688 +3.1246142 1.7408527 +3.5136647 1.9605029 +2.7712493 1.548545 +2.178269 1.2189904 +2.4612024 1.3793554 +1.9134221 1.073938 +1.1737542 0.65975803 +1.0335116 0.58178365 +0.871111 0.4910862 +0.8708022 0.49163345 +1.3040606 0.7373214 +1.6048046 0.9086944 +0.869874 0.493274 +1.6040796 0.9109478 +1.5713996 0.89369524 +1.8402959 1.0481544 +1.8153397 1.0354515 +2.070515 1.1827257 +1.7682629 1.0115465 +1.2059673 0.69088763 +2.0020537 1.1486295 +1.6048021 0.9220569 +2.3045058 1.326006 +1.6598548 0.9564644 +1.8877786 1.0893824 +1.4103254 0.81503963 +1.0093496 0.5841584 +1.0867001 0.6298366 +1.8567394 1.0777001 +2.387558 1.3878074 +2.914767 1.6967074 +3.4585385 2.0161512 +3.6284137 2.1182353 +3.6363704 2.125945 +3.9323137 2.30228 +3.5932891 2.1068218 +2.7855825 1.6355989 +2.2502267 1.3231583 +1.7506571 1.0308865 +0.88992035 0.5247891 +1.5221841 0.89892673 +2.225589 1.3162097 +1.5977887 0.9462851 +1.4520203 0.86118704 +1.5340043 0.9111148 +1.1920197 0.7090082 +0.8591386 0.511743 +1.3038596 0.77774984 +0.8584948 0.5128222 +1.2362045 0.73950154 +0.8578497 0.51390064 +0.85752666 0.5144395 +1.3910952 0.8357221 +2.0826216 1.252949 +2.5299358 1.5242283 +2.2090771 1.3328109 +2.3378963 1.4125363 +2.382626 1.4416058 +1.5520866 0.9404214 +0.87345135 0.5299816 +1.171591 0.71189046 +0.85427743 0.51981735 +0.869193 0.5296419 +0.8536235 0.5208905 +0.9993737 0.61069083 +0.8529683 0.5219627 +0.85264015 0.52249855 +0.96086633 0.58965045 +0.8519829 0.5235696 +0.85165375 0.52410483 +0.8513243 0.52463984 +1.2336671 0.7613336 +0.8506643 0.5257092 +1.0791866 0.667873 +1.6254963 1.0073792 +1.3940661 0.86516625 +2.16277 1.3441117 +2.8365436 1.7653182 +2.7924933 1.7403387 +2.1424913 1.3371139 +2.351822 1.4698097 +1.873582 1.1725636 +1.2860074 0.8059605 +1.5322478 0.96162444 +1.0408278 0.65412575 +1.0120251 0.6369116 +0.8460071 0.5331716 +0.84567195 0.5337031 +0.99252564 0.6272547 +1.3838509 0.87578106 +1.4028668 0.8890504 +2.0208602 1.2824769 +2.8454282 1.8082726 +3.582145 2.2796178 +3.9256334 2.501675 +3.9344838 2.5107925 +3.328603 2.1270936 +3.5935364 2.2995765 +4.2098155 2.6976757 +4.2081194 2.7003202 +3.7577164 2.4146345 +4.003587 2.5761814 +4.203022 2.7082477 +4.0929065 2.6409347 +3.8120565 2.463111 +3.9963377 2.5857425 +4.1962023 2.7188025 +4.1944933 2.7214384 +3.5218787 2.2881837 +2.9080763 1.8919923 +2.391494 1.5580438 +2.3000958 1.5005579 +2.8543937 1.8647338 +2.5914962 1.695311 +2.3892677 1.5651611 +3.1815293 2.0870137 +2.5245826 1.6583407 +1.889886 1.2431235 +1.4209831 0.93596965 +1.3901759 0.9169307 +1.201744 0.79372895 +1.5409954 1.0191892 +1.4501168 0.96039385 +0.98181313 0.65113014 +0.83303714 0.5532171 +0.83268934 0.5537404 +0.83234125 0.5542635 +0.83199286 0.5547863 +1.0285753 0.6868047 +1.424756 0.95263916 +1.460165 0.9776429 +2.1555653 1.4452055 +1.8631268 1.2508367 +2.686381 1.80599 +2.932774 1.9743108 +3.3343117 2.247667 +3.2857752 2.2179525 +3.9908228 2.6975229 +3.4661698 2.3460677 +3.993195 2.7064433 +3.909818 2.6535199 +3.5846207 2.4361057 +3.354467 2.2827759 +3.943907 2.6875277 +3.9362729 2.6859488 +3.5062773 2.395768 +4.126553 2.8233948 +4.1247783 2.825987 +4.123002 2.828578 +4.121224 2.8311682 +3.458125 2.3788369 +2.91048 2.0048082 +3.3954132 2.3419888 +3.420969 2.3627894 +3.4276493 2.3705857 +3.6627555 2.5365906 +4.108732 2.8492668 +3.3387108 2.3183908 +2.8500233 1.9817032 +3.0148258 2.0991063 +2.6420565 1.8420274 +2.364812 1.650943 +2.6781573 1.8722025 +2.1223786 1.4856639 +2.6856246 1.8824513 +2.4286509 1.7046056 +3.0023167 2.1100636 +3.7412488 2.6329072 +3.8369756 2.7038813 +3.6211998 2.5552328 +2.9313366 2.0712037 +2.491012 1.7624298 +2.9616017 2.098173 +2.2590654 1.6025876 +1.4877988 1.0568547 +1.8596044 1.3227247 +2.2111075 1.5748397 +2.9804876 2.1256473 +3.2258937 2.303727 +3.6300287 2.5957801 +4.0653005 2.9108987 +3.723731 2.6698637 +2.9658284 2.1292808 +2.6380186 1.8964466 +2.8246162 2.033283 +2.6087956 1.8804154 +3.0123816 2.174197 +2.992567 2.162757 +3.1223862 2.2595663 +2.702701 1.9584428 +2.237624 1.6235818 +1.6666157 1.2108672 +1.8218614 1.3254095 +2.2220566 1.6186888 +2.538928 1.8519611 +2.510145 1.8333836 +2.5252042 1.8468168 +2.0736353 1.5185611 +1.7741346 1.3009446 +2.1673265 1.5913608 +2.6119158 1.9203279 +2.1475303 1.5809828 +2.0752592 1.5297894 +1.5992464 1.1804454 +1.9290835 1.42578 +2.290591 1.6951957 +2.6107626 1.9346848 +2.3130462 1.7163168 +1.7363796 1.2901137 +1.3328755 0.9916143 +1.108827 0.8260126 +1.4086615 1.0507491 +1.7679226 1.3204589 +1.6147411 1.2076291 +1.3044006 0.9768109 +1.370609 1.0277363 +1.0176797 0.7640955 +0.7993072 0.6009226 +1.1796039 0.88799185 +1.1670997 0.8797282 +0.7981731 0.60242814 +0.79779446 0.60292953 +0.79741544 0.6034307 +1.5320954 1.160902 +1.3497285 1.0240542 +0.8903745 0.6764191 +1.6462171 1.252266 +1.1334765 0.86335266 +0.90216017 0.6880585 +1.0100831 0.7713733 +0.7943722 0.6074313 +0.9542167 0.7306099 +1.5941595 1.222181 +1.9977447 1.5335883 +1.7450275 1.3413309 +2.0089703 1.5462217 +2.5310278 1.9505616 +2.0556276 1.5862494 +2.1673498 1.6746349 +1.5657048 1.2113369 +2.2392933 1.7347214 +2.8645444 2.2219684 +3.06327 2.3792002 +3.3278196 2.5880258 +3.1370432 2.442825 +3.7318227 2.90975 +3.0674312 2.3948162 +3.047767 2.3825474 +2.6280653 2.0571134 +2.3490043 1.8410604 +2.1922643 1.7204381 +1.4947642 1.1745746 +1.6868064 1.3271952 +2.077668 1.6368432 +2.3455048 1.8502419 +3.0910645 2.441526 +3.2117088 2.5400975 +2.7576265 2.1837878 +2.684448 2.1285827 +3.2457604 2.5769882 +2.8933287 2.3001387 +2.9759297 2.3688579 +3.004834 2.3949516 +3.7634218 3.00344 +3.8995273 3.116073 +3.9041154 3.123761 +3.902152 3.1262133 +3.5099556 2.8156276 +3.8982205 3.1311145 +3.8962524 3.133563 +3.870094 3.1165318 +3.1017447 2.5010052 +2.9951372 2.4181523 +2.3534782 1.9025468 +2.7951953 2.2625353 +3.1254117 2.533077 +3.2722514 2.6554954 +3.4205616 2.7794185 +3.8784702 3.1555457 +3.8764868 3.1579819 +3.227223 2.6324341 +2.6975665 2.2032192 +2.9503536 2.4127734 +2.5915496 2.1220653 +2.080479 1.7057649 +1.4172858 1.163509 +1.7783313 1.4617777 +2.4764588 2.0382428 +2.9715905 2.4488933 +3.1228583 2.57685 +3.2930615 2.7207742 +3.1591153 2.6134474 +2.89422 2.3973718 +2.3425288 1.9428718 +2.2802672 1.8936522 +1.9328476 1.60719 +1.7174869 1.4299407 +2.0711687 1.7266128 +1.4011773 1.169573 +0.921033 0.76977545 +0.76689637 0.6417709 +1.2345463 1.0344394 +1.4649453 1.2290608 +0.80646044 0.67746854 +1.0802625 0.90863484 +0.8040733 0.6771885 +1.4272584 1.2035671 +1.4351081 1.2117302 +1.4942706 1.2632931 +2.1567898 1.825728 +1.999086 1.6943887 +2.0740693 1.7601837 +2.0288093 1.7239672 +2.1371088 1.8183078 +2.6279428 2.23877 +2.889041 2.4643364 +3.0737903 2.6252651 +3.5300138 3.0187545 +3.2856183 2.8133316 +2.8595393 2.4516144 +3.324984 2.854288 +3.236296 2.781689 +2.9102783 2.5046484 +3.2390778 2.7911649 +3.654085 3.1527863 +3.5254965 3.0457048 +3.3320768 2.8822663 +3.2247112 2.7929385 +3.0655444 2.658456 +2.650014 2.301025 +2.6854355 2.3347425 +3.3849676 2.9466588 +3.0047708 2.619013 +3.06376 2.6738183 +2.4857316 2.1721117 +2.102052 1.8391708 +2.171673 1.9024956 +1.6168164 1.4182094 +1.6036425 1.4084377 +2.3182194 2.0386136 +2.7124684 2.3883352 +3.3832362 2.982724 +2.7765768 2.450984 +3.0726116 2.7157412 +3.4197354 3.0263777 +3.1536717 2.7944536 +3.4026341 3.0188766 +3.7380633 3.3206751 +3.5137482 3.125359 +3.199602 2.8495393 +2.90264 2.5883398 +2.4042823 2.1466582 +2.1715105 1.9412817 +2.3579023 2.1105788 +1.9701841 1.7657598 +1.3621117 1.2223245 +1.9207443 1.7258073 +2.1310353 1.9171771 +2.239307 2.0171304 +2.139016 1.9292258 +1.4412057 1.3014984 +1.9886774 1.7981693 +2.7080116 2.4516883 +3.022158 2.7395566 +2.9733405 2.6987095 +3.0739217 2.793525 +3.6981554 3.3650625 +3.6960404 3.3673856 +3.693924 3.369707 +3.6918058 3.3720274 +3.6896865 3.3743465 +3.6875656 3.376664 +3.6854432 3.3789804 +3.4186242 3.1383045 +2.9260545 2.6895142 +2.890012 2.6597373 +2.5571408 2.3563583 +2.597348 2.396428 +2.3825955 2.201061 +2.2380722 2.0701568 +2.2006419 2.0381021 +2.1517644 1.9953479 +1.7856477 1.657933 +1.7553356 1.6318437 +1.2957007 1.2060637 +0.85376924 0.79570705 +0.81245655 0.7581584 +0.83340305 0.7786852 +0.7450814 0.6970397 +0.7298283 0.6836305 +1.2643405 1.1858007 +1.2079283 1.1343201 +0.7285384 0.685005 +0.7281078 0.6854626 +1.1494004 1.0834432 +0.94426733 0.8912026 +0.72681445 0.68683386 +0.7263828 0.6872904 +0.7259508 0.68774664 +1.2408897 1.1770664 +1.1466435 1.0890373 +1.144574 1.0884404 +1.1664368 1.1106275 +1.4226317 1.3562697 +2.0864997 1.9916742 +1.4420837 1.3782778 +1.1225103 1.0741944 +1.6976573 1.6266303 +2.0107632 1.929061 +2.4647257 2.367554 +1.7916914 1.7232198 +1.8728042 1.8034992 +2.18542 2.1071947 +2.1309416 2.0572515 +2.100414 2.030331 +1.5798849 1.5290912 +1.7367224 1.683001 +1.7028834 1.6522847 +1.3778745 1.3386148 +1.4912698 1.4506017 +0.9427044 0.91814953 +1.1047618 1.0773393 +1.5746007 1.5374472 +2.028844 1.9834641 +2.152725 2.1072211 +2.2557466 2.2108421 +1.8788813 1.843795 +1.9106051 1.8772842 +1.9680116 1.9361215 +2.394869 2.359025 +1.8973619 1.8713142 +1.8002565 1.7777747 +2.283471 2.2577906 +2.1406868 2.1192737 +2.4876971 2.46591 +2.8751519 2.8535552 +3.220457 3.2002857 +3.5444086 3.526637 +3.542192 3.5288632 +3.504816 3.4960184 +3.5377545 3.5333118 +3.1716843 3.1716843 +2.774709 2.778198 +2.566618 2.5730767 +1.8804818 1.8875846 +2.5803833 2.5933864 +2.6286771 2.6452458 +2.1407564 2.1569586 +2.477466 2.4993553 +3.0334225 3.0640721 +2.3960295 2.4232824 +1.9842918 2.009385 +1.9117408 1.9383512 +2.536894 2.575441 +3.008452 3.0580046 +3.1596699 3.2157524 +2.6235206 2.6734447 +3.2010243 3.2660406 +3.4975684 3.573096 +3.0240269 3.0932143 +3.171197 3.2478313 +3.1339877 3.21376 +2.9663024 3.0456328 +3.486326 3.5840664 +3.1913822 3.2849808 +2.8773842 2.9654994 +3.0686147 3.1665647 +3.3469572 3.4581368 +3.385456 3.5023158 +3.4727895 3.597184 +2.858571 2.9646897 +3.22535 3.3492937 +3.466003 3.6037235 +3.463738 3.6059005 +3.4614716 3.6080763 +3.406177 3.5549083 +3.456935 3.6124232 +3.4546645 3.6145945 +3.4523926 3.6167645 +2.8486197 2.9880018 +3.026127 3.1781907 +3.1729443 3.336581 +3.443292 3.6254299 +2.9001505 3.0574033 +3.1158855 3.2889721 +3.436452 3.631914 +3.4341693 3.6340723 +2.9839256 3.161597 +3.320941 3.523111 +3.0319407 3.2205691 +2.7698421 2.9458709 +3.4187682 3.6406183 +3.4204447 3.646993 +3.4181526 3.6491413 +3.415859 3.6512883 +3.4135642 3.6534338 +3.0709443 3.2908807 +2.4333827 2.6109447 +2.2393677 2.4058018 +2.4485037 2.6337974 +2.922772 3.1479206 +3.399767 3.6662767 +3.0934112 3.3401124 +3.3402843 3.6112227 +3.3928502 3.6726787 +3.3905418 3.6748097 +3.3861866 3.6747193 +3.2365968 3.5168147 +3.2113242 3.493757 +2.581181 2.8117375 +2.4392781 2.660513 +1.9880546 2.171102 +1.4282458 1.5617186 +1.8769286 2.0549228 +2.246378 2.4625134 +2.8914084 3.1736083 +2.4842727 2.73018 +2.6742196 2.942641 +3.2640564 3.5962193 +2.941901 3.2453752 +3.0516977 3.370752 +2.6292932 2.9078553 +2.3995507 2.6571267 +2.4533439 2.7201283 +2.4879618 2.761998 +1.8783275 2.0878522 +1.9683876 2.190725 +1.789277 1.9939017 +1.1377871 1.2695101 +1.4477501 1.6174015 +1.2616621 1.4112906 +1.0419742 1.1670233 +1.5764364 1.767862 +1.996154 2.241379 +2.2556355 2.5359437 +2.3174858 2.6087794 +1.9569268 2.20569 +2.0061677 2.2640543 +1.7605743 1.9894074 +1.7835349 2.0179057 +1.8702629 2.1187117 +2.3353717 2.6489592 +2.2057483 2.5051017 +2.2315836 2.5376563 +1.8950047 2.1576462 +2.5038233 2.85446 +2.994268 3.4179165 +2.9747715 3.3999693 +2.3830779 2.7271578 +2.1571686 2.4717636 +2.243586 2.5740466 +2.8512592 3.2753775 +3.1596591 3.6342597 +3.278187 3.7753794 +2.6583405 3.065411 +2.2955868 2.6504717 +2.2742412 2.6291625 +2.053397 2.3768697 +1.9322903 2.239528 +1.8396915 2.1349163 +1.3728074 1.5951346 +1.4467871 1.6832333 +1.2252754 1.4273335 +1.6012143 1.867641 +1.8767155 2.1917684 +2.2148004 2.5899012 +2.0563781 2.4077094 +2.5602567 3.0014923 +2.2455974 2.635957 +2.4047534 2.8263752 +1.871606 2.2025542 +2.3303914 2.7459595 +2.9712543 3.505567 +3.2304866 3.8162751 +2.6807876 3.1709363 +2.9099991 3.4464462 +3.2232873 3.8223577 +3.0996048 3.6803777 +2.5922554 3.0818942 +3.1736872 3.777966 +3.2136707 3.8304465 +3.0362618 3.6236105 +3.1823974 3.8028662 +3.037627 3.634508 +2.496561 2.990942 +2.5317917 3.0370257 +2.201598 2.6443164 +2.6057887 3.1337876 +2.8584888 3.4420884 +2.7230637 3.2832096 +2.9162984 3.5206928 +3.18712 3.8525662 +3.1846986 3.854568 +3.1822762 3.8565683 +3.1798525 3.858567 +3.1774273 3.8605642 +2.615319 3.1816766 +2.252396 2.7436736 +2.857967 3.485791 +2.225784 2.718215 +2.5158145 3.076353 +1.9064295 2.3341846 +1.3045124 1.5992622 +1.3991094 1.717435 +0.9578494 1.1772894 +1.145601 1.4098629 +0.9887125 1.2183473 +0.6296459 0.7768823 +0.7491021 0.9254603 +0.6286691 0.7776729 +1.0564902 1.3085748 +1.4727576 1.8265127 +1.1868753 1.4738561 +1.8055731 2.245038 +1.3945854 1.7362512 +0.8843284 1.1024021 +1.2126175 1.5135942 +0.7357983 0.91960996 +0.75424874 0.9438847 +1.3031043 1.6328381 +1.2783469 1.6038821 +1.0763401 1.3521758 +1.2905864 1.6234196 +1.8666109 2.351028 +1.3869716 1.74917 +0.8313622 1.0498211 +1.36189 1.7219788 +0.94752264 1.1995996 +0.61934066 0.7851224 +1.0791442 1.3697728 +0.951633 1.2094835 +0.64274514 0.81795776 +0.8569778 1.092002 +0.8902411 1.1358564 +1.1195142 1.4302354 +0.85156184 1.0893223 +0.61538637 0.7882256 +0.64568573 0.8281071 +1.0451281 1.3421395 +1.4275135 1.8355718 +1.3147254 1.6927365 +1.1015428 1.4201005 +0.68828046 0.888478 +1.1913874 1.5399193 +1.0633335 1.3761898 +0.61091924 0.7916929 +0.6104217 0.7920766 +0.6099239 0.79246 +0.60942584 0.79284304 +0.60892755 0.7932258 +1.020379 1.3309377 +0.6405245 0.8365602 +0.6074313 0.7943722 +0.60693204 0.79475373 +0.73011714 0.95730615 +1.0058233 1.3205229 +0.6054329 0.79589635 +0.6049327 0.79627657 +0.6044323 0.79665655 +1.0953702 1.44561 +0.6034307 0.79741544 +0.60292953 0.79779446 +0.60242814 0.7981731 +0.6019265 0.7985515 +0.6014247 0.7989295 +0.92419714 1.2293056 +1.0713164 1.4268595 +0.59991765 0.80006176 +0.5994148 0.8004385 +1.191861 1.5936574 +1.0112176 1.3538889 +1.0740272 1.4398688 +1.1683106 1.5683229 +1.6202326 2.177831 +2.159926 2.9070706 +1.891113 2.5486155 +1.5123839 2.0408883 +1.4030088 1.8957807 +0.9314976 1.2603182 +1.0770642 1.4591873 +1.0552334 1.431493 +0.8606975 1.1691296 +0.5923507 0.8056802 +0.5918444 0.80605227 +0.5913378 0.80642396 +0.7814907 1.0671462 +0.5903239 0.8071664 +0.76243335 1.0438722 +0.9337501 1.2801155 +1.3276631 1.8225508 +0.8054395 1.1071287 +1.36132 1.8736963 +1.5958747 2.1994379 +1.4556069 2.0087745 +1.7210038 2.3781726 +1.1481605 1.5886886 +1.3123071 1.8182206 +0.8423571 1.1686447 +1.1240345 1.5614974 +0.68453115 0.952205 +1.0674658 1.4868497 +0.74448776 1.0383573 +1.1769415 1.6436921 +1.0186635 1.4245343 +1.3747869 1.9251049 +1.775383 2.4893627 +1.9948071 2.8007503 +1.4321995 2.0135138 +1.9343654 2.7231243 +1.9531552 2.7532382 +1.5888646 2.2427056 +1.1912792 1.6837499 +1.007489 1.4258807 +0.82161474 1.1643679 +0.9682999 1.3740778 +0.90429753 1.2849683 +0.72530776 1.0320085 +1.1871866 1.6914537 +1.3018028 1.8572346 +1.7090282 2.4414709 +2.1843913 3.1247385 +1.893463 2.7121975 +1.5764381 2.2611165 +2.0300899 2.9157012 +1.7154261 2.467072 +1.7426271 2.5095544 +1.2679819 1.8284698 +1.636525 2.3630898 +1.8499234 2.6748192 +1.5855504 2.2956421 +1.5059466 2.18332 +1.5954052 2.3161292 +1.3584889 1.9748411 +0.9598363 1.3971972 +1.132764 1.6511434 +1.3086532 1.9100955 +1.121379 1.6389596 +1.3965672 2.0439177 +0.8475161 1.2420396 +1.0595295 1.5548439 +0.56260294 0.8267273 +0.56208336 0.82708055 +0.5615636 0.8274336 +0.5610436 0.82778627 +0.5605234 0.8281386 +0.5600029 0.8284906 +0.6608057 0.97894746 +0.5589614 0.8291937 +0.55844027 0.8295447 +0.5579189 0.82989544 +1.0784895 1.6064149 +1.1884799 1.7726518 +1.2602503 1.8822552 +1.444232 2.1599767 +1.1449158 1.7146535 +0.93885255 1.4079629 +0.57985914 0.87077844 +0.6784455 1.0202153 +0.91533315 1.3783133 +0.6116436 0.922273 +0.5521698 0.83373165 +0.9249087 1.398445 +0.8542078 1.2933118 +0.8117148 1.2306563 +1.3425186 2.038203 +1.1929635 1.813629 +1.0698413 1.6286777 +1.1045699 1.6838516 +1.408971 2.1508384 +1.9191043 2.9335928 +1.4116055 2.160779 +1.4397174 2.2068377 +1.2568011 1.9291064 +1.6670411 2.5623162 +1.7844911 2.7466156 +1.3533655 2.0859125 +1.2117977 1.8702898 +1.5030302 2.3229752 +1.3340229 2.0646129 +1.5404327 2.3873544 +1.5532178 2.4104917 +1.5877863 2.4675436 +1.0706129 1.6661154 +0.8978995 1.3992668 +1.1681696 1.8229687 +1.1384106 1.7789882 +1.2371991 1.9360429 +0.7475013 1.171356 +0.53741735 0.84331644 +0.63190275 0.99295914 +0.9984188 1.5710735 +1.2381856 1.9510684 +1.2533435 1.9776988 +1.0806892 1.7076331 +1.0618438 1.6801901 +1.4587235 2.3114004 +1.814246 2.8787448 +2.0820308 3.308257 +1.5977023 2.542222 +1.8972543 3.0230758 +2.108432 3.3642585 +2.5077436 4.007001 +2.4090025 3.854611 +2.2996457 3.6847801 +2.5861228 4.149612 +2.6015897 4.1802793 +2.6392276 4.246702 +2.3598466 3.8024857 +2.5453413 4.107136 +2.631218 4.2516694 +2.628546 4.2533216 +2.5397353 4.115394 +2.6231992 4.2566214 +2.1290119 3.459577 +2.113366 3.4389918 +2.249323 3.6653898 +2.2720459 3.7076418 +2.6098137 4.2648416 +2.6071334 4.2664804 +2.6044521 4.268118 +2.1345196 3.5029507 +1.7511722 2.8779087 +1.8777752 3.0903413 +1.8436484 3.0384777 +2.0886722 3.4471781 +1.7663091 2.9192822 +1.92031 3.1783154 +2.1570683 3.5752485 +2.4582233 4.080194 +2.5775836 4.2843976 +2.537957 4.224538 +2.5721977 4.2876334 +2.569503 4.2892485 +2.5668077 4.290862 +2.1769211 3.6442952 +2.1948745 3.6795998 +1.7846085 2.996086 +1.836931 3.0883393 +1.9343029 3.2567015 +2.015202 3.3977683 +2.4174137 4.081768 +2.545207 4.30371 +2.5425024 4.3053083 +2.095033 3.5526888 +1.8489013 3.139814 +1.6734437 2.845939 +1.5696487 2.673263 +1.798896 3.0681067 +1.3211436 2.2565246 +0.9709517 1.660786 +1.1959795 2.048643 +1.1241429 1.928373 +1.3611047 2.3382366 +1.4874257 2.5589395 +1.0345968 1.7824779 +1.335812 2.3047674 +1.0699723 1.8487726 +0.9260284 1.6023778 +0.9211401 1.5962334 +0.71583515 1.2422651 +0.4987298 0.8667575 +0.4981851 0.8670707 +0.6847103 1.1934456 +0.4970951 0.86769605 +0.68099815 1.1904384 +1.1281816 1.9750284 +0.70984584 1.2444923 +1.114684 1.9571053 +1.4455817 2.541791 +1.5956029 2.8096824 +1.2257986 2.1616592 +1.426978 2.520122 +1.8473455 3.2673006 +1.5729707 2.7861133 +1.3881208 2.4623115 +1.0628916 1.8881776 +1.1981425 2.1315765 +1.2217771 2.176825 +1.0613539 1.8937881 +1.505257 2.6898115 +1.4642884 2.620465 +1.0690261 1.9159366 +1.1900407 2.1359751 +1.6037576 2.8828044 +2.0534906 3.6966789 +1.7686024 3.1885428 +1.8690721 3.374673 +1.9271841 3.48476 +2.0203884 3.6587198 +2.275921 4.12759 +2.411521 4.380019 +2.3470778 4.2693186 +2.406015 4.383046 +2.2531686 4.1107264 +1.8364779 3.3555076 +2.11156 3.863885 +1.9274555 3.5322692 +1.5607336 2.864491 +1.4630494 2.6892266 +1.5621337 2.875656 +1.8221778 3.3593888 +1.9168087 3.5391557 +1.4863888 2.74856 +1.2328721 2.2831962 +1.0760967 1.9958572 +1.4385507 2.6721256 +1.3606659 2.5312629 +1.3040065 2.4295175 +1.2671722 2.364455 +1.5016658 2.8062375 +1.3915492 2.6043894 +1.6974072 3.1816337 +1.9382166 3.6385117 +1.7121546 3.21901 +1.9592468 3.6891553 +2.2799213 4.299487 +2.339649 4.418828 +2.2877488 4.3273783 +2.3340943 4.421765 +1.9982151 3.7912352 +2.328536 4.4246945 +2.2995079 4.376205 +2.322974 4.427617 +2.3201914 4.4290757 +2.317408 4.4305325 +1.9425725 3.7195923 +1.5730274 3.0166137 +1.8950708 3.6397767 +2.2991977 4.422747 +2.238978 4.313528 +2.223051 4.2894335 +2.2978992 4.4406824 +2.1046455 4.073488 +2.2923172 4.4435663 +2.190735 4.2532105 +2.2867315 4.4464436 +2.1529243 4.192737 +2.2253015 4.340398 +2.278346 4.450746 +2.2755492 4.4521766 +2.0743437 4.0648127 +2.2249312 4.3666735 +2.2671528 4.456458 +2.2643523 4.4578815 +1.8713195 3.6898491 +1.8157396 3.5858407 +1.9315505 3.8205059 +1.898079 3.7601666 +1.6175588 3.2094564 +1.8738364 3.7237659 +2.0226388 4.0257697 +1.8315876 3.6512268 +1.7482415 3.4905488 +1.800997 3.6015306 +1.7574941 3.520063 +2.0859632 4.1845264 +1.8142216 3.6451364 +1.6859248 3.3927042 +1.2622188 2.5440612 +1.4551362 2.9375293 +1.7082968 3.4540472 +2.0612462 4.1742826 +2.2109737 4.4845953 +2.2081556 4.4859834 +2.106255 4.2857614 +2.2025166 4.4887547 +2.1688757 4.427226 +2.1968741 4.491519 +2.1940517 4.4928985 +2.1912282 4.494276 +1.810199 3.7187033 +1.5312724 3.1507316 +1.1418866 2.353295 +1.3507661 2.7882302 +1.5495882 3.2037647 +1.4844304 3.0739772 +1.8635929 3.865352 +1.8455952 3.8341784 +1.7238319 3.5869837 +1.7374661 3.6211798 +1.4187008 2.9615877 +1.6250994 3.3979297 +2.048328 4.2897835 +2.1516101 4.513377 +2.148774 4.514728 +2.145937 4.5160775 +2.1359038 4.5022583 +2.1402602 4.5187707 +2.111058 4.4643645 +2.13458 4.5214562 +1.8367294 3.8968914 +1.5066378 3.2017684 +1.2698334 2.7029405 +1.5487319 3.3019872 +1.6157986 3.450615 +1.6466227 3.5222018 +1.624773 3.4811637 +1.4395885 3.08946 +1.5604255 3.3542879 +1.2147514 2.615523 +1.5433445 3.3285012 +1.5606664 3.3714085 +1.3486943 2.9183068 +1.4748279 3.1965075 +1.37836 2.9923663 +1.1496289 2.4999323 +1.5108222 3.2908127 +1.6418619 3.5821722 +1.4501797 3.1692207 +1.669875 3.6554112 +1.4113809 3.0947022 +1.4212743 3.121589 +1.0887289 2.3951986 +1.3648746 3.007733 +1.4813018 3.269758 +1.1637309 2.5730662 +0.8514114 1.8856672 +0.5797278 1.2861087 +0.41036874 0.91191965 +0.68561757 1.5261382 +0.59377056 1.3239176 +0.6809952 1.5209593 +1.0709338 2.3958974 +0.9753917 2.1858354 +1.0636187 2.3875806 +0.8386036 1.8856599 +1.122433 2.5281475 +1.1112132 2.5071225 +1.4667547 3.3149173 +1.3974665 3.163694 +1.7238386 3.9092042 +2.0119832 4.5704155 +2.0116565 4.577471 +2.00878 4.578734 +1.7383454 3.9690924 +1.9990659 4.5722003 +1.9959599 4.5729218 +1.997266 4.583768 +1.7933292 4.1228004 +1.410726 3.2487884 +1.0358337 2.38955 +0.9841058 2.2741344 +1.0832714 2.507614 +1.3440595 3.1166775 +1.011436 2.3494308 +0.8561455 1.9921573 +0.9608926 2.239771 +1.1954645 2.7913804 +0.98968506 2.3149083 +1.2050307 2.823516 +0.83966434 1.9708527 +1.14952 2.7028515 +0.7850089 1.8490062 +0.47947034 1.1313176 +0.38963836 0.92096794 +0.38905963 0.92121255 +0.67765784 1.6073704 +0.9579811 2.2762775 +1.1724988 2.7909005 +0.79319423 1.8913685 +0.7326963 1.750194 +0.50489277 1.2081693 +0.3850042 0.9229148 +0.57634866 1.384044 +0.75051266 1.8054774 +0.9557466 2.303282 +0.66042405 1.5944048 +0.7698978 1.862006 +1.1331275 2.7453644 +1.3481774 3.2722204 +1.0036514 2.4403584 +1.3473605 3.2819407 +1.4874957 3.629776 +1.3858917 3.387908 +1.3016757 3.18775 +1.3368253 3.2797167 +1.4348873 3.5266364 +1.459223 3.5929134 +1.1986357 2.9566197 +1.5046065 3.7180517 +1.5529859 3.8445477 +1.1866267 2.9429176 +1.5219402 3.7813675 +1.4165325 3.5258691 +1.3168726 3.28377 +1.0608432 2.6501508 +0.95651966 2.393893 +1.1359453 2.848136 +1.377366 3.4597616 +1.1170069 2.8109121 +0.99857277 2.5174844 +1.1082232 2.7990522 +1.3792164 3.489908 +1.249748 3.168129 +1.5964067 4.054374 +1.5730245 4.002366 +1.5682325 3.9975498 +1.8150954 4.6353874 +1.5108445 3.865544 +1.7435392 4.469181 +1.5560658 3.9960475 +1.8113768 4.6603556 +1.8084483 4.661493 +1.805519 4.662628 +1.7488381 4.524694 +1.7996584 4.664893 +1.5149716 3.9343166 +1.1787539 3.0669184 +1.3876173 3.617131 +1.2127266 3.1671891 +1.1936214 3.1231682 +1.032508 2.7067058 +1.2199408 3.2041025 +0.9386081 2.4698644 +1.0097362 2.6620677 +0.6621241 1.7489364 +0.7229326 1.9131856 +0.55258894 1.4651678 +0.35229906 0.93588746 +0.35171095 0.93610865 +0.3511227 0.9363295 +0.5084334 1.3584212 +0.79984856 2.1411147 +0.7510721 2.014405 +0.63520646 1.7069244 +0.49760187 1.3397285 +0.83171386 2.2435997 +0.5148309 1.3914702 +0.7110542 1.9255337 +0.5572266 1.5118912 +0.73105276 1.9873713 +0.574274 1.5641999 +0.78201336 2.1341815 +1.0872693 2.9730322 +0.8581847 2.3512015 +1.0669087 2.9287624 +0.7876515 2.1664073 +0.653624 1.8012931 +0.81329286 2.245717 +0.6601287 1.8263736 +0.83785355 2.3226478 +0.83536804 2.320324 +0.8977491 2.4985187 +1.0002327 2.7892458 +1.2831054 3.5851514 +1.3124678 3.6744692 +1.0960968 3.0748003 +1.040357 2.9242458 +0.8629761 2.4304962 +0.969333 2.735491 +0.87786096 2.4823067 +0.8532788 2.417628 +1.034688 2.9375012 +1.2346413 3.512214 +1.2952347 3.6919982 +1.0133305 2.8942652 +1.0222969 2.925768 +0.91025496 2.610375 +1.0901128 3.13249 +1.4004283 4.0323563 +1.6374089 4.7242875 +1.5734134 4.5488815 +1.3950727 4.0415 +1.2234081 3.5514243 +1.0318234 3.001397 +0.97871864 2.852753 +0.7689037 2.245784 +1.0818149 3.166213 +1.343743 3.9409049 +1.031877 3.0325067 +1.1964864 3.523523 +1.4961708 4.4151707 +1.3752903 4.0668592 +1.2212249 3.6187649 +1.3148694 3.90435 +1.4899828 4.433537 +1.5898331 4.7405095 +1.4303969 4.274014 +1.5838748 4.7425036 +1.5808947 4.743498 +1.3077997 3.9323075 +1.5749326 4.7454805 +1.3436986 4.0572677 +1.3546095 4.09884 +1.2326814 3.737785 +1.0963548 3.3314464 +0.9289621 2.8287818 +1.2156078 3.7095075 +0.93747824 2.8668628 +1.1501883 3.524838 +1.1577075 3.5554545 +0.95881224 2.9509206 +0.76087296 2.3467424 +0.73863417 2.28304 +0.78064215 2.418069 +0.5927187 1.8399223 +0.7821331 2.433141 +0.8249242 2.5718052 +0.97555465 3.0479982 +0.8105759 2.5380344 +1.0545249 3.309048 +1.1230502 3.5317461 +0.8905643 2.8067346 +0.79982156 2.5262516 +1.0836942 3.4303572 +1.3761979 4.3658047 +1.1192217 3.558378 +0.92021954 2.9321194 +0.72678274 2.3208697 +0.7184326 2.2992697 +0.4830799 1.5494668 +0.5697992 1.8316664 +0.6622063 2.1334414 +0.70368207 2.2721064 +0.9435739 3.0534763 +1.0262264 3.3283584 +1.0422518 3.3878925 +1.0984248 3.5784845 +0.9698094 3.166568 +1.1627301 3.8050191 +1.2122831 3.9761178 +1.4042253 4.6160564 +1.4521749 4.7844734 +1.4491684 4.785385 +1.2548078 4.1529803 +1.1977569 3.9731762 +0.9120226 3.032237 +0.90715 3.0229216 +0.753527 2.5167422 +0.72782165 2.436458 +0.58419687 1.9601493 +0.4762083 1.6014918 +0.28441694 0.95870066 +0.30200756 1.0203451 +0.53164333 1.800335 +0.69296104 2.3520544 +0.93433267 3.1786861 +1.0678263 3.6412985 +1.0679452 3.6501958 +1.1731635 4.019197 +1.2221146 4.196702 +1.2302324 4.2344875 +1.3919384 4.802344 +1.3889208 4.8032174 +1.3859025 4.8040895 +1.3828838 4.8049593 +1.3798645 4.805827 +1.2676355 4.425434 +1.3738241 4.807557 +1.2650062 4.4373116 +1.1714375 4.118911 +1.03592 3.6511328 +1.0521207 3.7171252 +1.2756019 4.5175104 +1.3556904 4.812702 +1.3526661 4.8135533 +1.3496414 4.814402 +1.3011693 4.6527395 +1.3435905 4.8160944 +1.3405641 4.8169374 +1.3375373 4.817779 +1.33451 4.8186183 +1.331482 4.819456 +1.3284537 4.8202915 +1.3254247 4.8211255 +1.3223952 4.821957 +1.3193653 4.8227873 +1.1058335 4.052248 +1.2181642 4.474945 +1.0290502 3.7896254 +0.98488224 3.6360025 +1.1608154 4.29621 +1.2188311 4.522209 +0.972968 3.6190357 +1.0313317 3.84576 +0.80434865 3.0069075 +0.71235 2.669706 +0.6429403 2.4156685 +0.6956962 2.6205075 +0.70437765 2.6599462 +0.64886576 2.4565527 +0.6236026 2.3669307 +0.58848196 2.239338 +0.75743383 2.8896315 +0.82760525 3.1654453 +0.6512567 2.4973538 +0.5604388 2.1546407 +0.4861638 1.8739182 +0.69702685 2.6936512 +0.5544416 2.1481967 +0.70053476 2.7213032 +0.4824273 1.8789303 +0.51680094 2.01807 +0.6107063 2.3910139 +0.7334488 2.879114 +0.97287726 3.8290327 +0.77186704 3.0459177 +1.0072263 3.9851992 +0.86774886 3.4424446 +0.94512594 3.7593715 +1.0069366 4.015901 +0.8070418 3.227268 +0.8385283 3.3621533 +0.9901143 3.9806013 +1.0191853 4.108495 +0.91773176 3.7094927 +0.8928095 3.618507 +0.7191213 2.9224522 +0.7599499 3.0967617 +0.9932894 4.058625 +1.1054741 4.52934 +1.182495 4.8581586 +1.088631 4.4847894 +1.1641384 4.809034 +0.9976479 4.1326175 +0.84102064 3.4934318 +0.7422419 3.09166 +0.8014513 3.3475497 +0.6462743 2.706907 +0.7086089 2.9762723 +0.608423 2.5626204 +0.42460027 1.7933892 +0.32602152 1.3808904 +0.4465167 1.8965853 +0.65471935 2.7887828 +0.5207663 2.2244895 +0.4597184 1.9692932 +0.3044873 1.3080425 +0.23996621 1.0338086 +0.34719437 1.5000412 +0.27207407 1.1788577 +0.22427076 0.9745269 +0.4008407 1.7467997 +0.2593498 1.1334715 +0.22243342 0.97494787 +0.2218208 0.97508746 +0.2212081 0.97522664 +0.2205953 0.9753654 +0.21998242 0.97550386 +0.34876886 1.5511436 +0.32030332 1.4287374 +0.43632105 1.9519881 +0.53749776 2.4117436 +0.40679902 1.8307174 +0.34201622 1.5437554 +0.21568981 0.97646195 +0.21507624 0.97659725 +0.24277273 1.1056658 +0.25884023 1.1823885 +0.3695258 1.6930946 +0.37624973 1.7291166 +0.2120071 0.9772681 +0.21139303 0.97740114 +0.3051501 1.4152013 +0.47706652 2.2192683 +0.35407567 1.6521782 +0.28272536 1.3233027 +0.3079063 1.4456074 +0.24003597 1.1304445 +0.36215255 1.7108402 +0.39515972 1.8725754 +0.5797689 2.755968 +0.65139765 3.1061463 +0.65783197 3.1466691 +0.69251186 3.322979 +0.86140114 4.146427 +0.8705927 4.2039332 +0.70426166 3.4115443 +0.78060395 3.7933936 +0.6872982 3.3506308 +0.6751955 3.3021686 +0.78060967 3.8299754 +0.93112504 4.5831766 +0.9923925 4.900526 +0.98931324 4.901149 +0.8502913 4.2261105 +0.98315346 4.902388 +0.98007303 4.9030046 +0.9769922 4.90362 +0.97033817 4.8862414 +0.9708293 4.9048433 +0.91519207 4.639053 +0.87108564 4.430137 +0.81913865 4.179818 +0.7961998 4.076338 +0.8396877 4.3133874 +0.95233166 4.9084687 +0.8011742 4.1433005 +0.6823798 3.5408854 +0.5488951 2.857893 +0.5344948 2.7923868 +0.40227947 2.1088228 +0.29200497 1.5359863 +0.29323593 1.547761 +0.33671838 1.7833966 +0.35665706 1.8955319 +0.28748316 1.5331925 +0.3391257 1.8149049 +0.25597215 1.374674 +0.18244146 0.9832167 +0.18182364 0.98333114 +0.18120576 0.9834452 +0.18058781 0.9835589 +0.27994227 1.5300981 +0.17935169 0.98378503 +0.33952245 1.8690131 +0.23487145 1.2975627 +0.1916157 1.0624018 +0.20783576 1.1564924 +0.32917696 1.8383237 +0.4235365 2.3738806 +0.5237041 2.946014 +0.66891414 3.7766387 +0.66092 3.7452059 +0.5828266 3.3148458 +0.5984842 3.4164844 +0.6216494 3.5618904 +0.6271431 3.6067464 +0.6525241 3.766736 +0.7143864 4.139302 +0.8472636 4.9276915 +0.84416723 4.928223 +0.8410706 4.9287524 +0.8379736 4.92928 +0.83487624 4.9298053 +0.75040716 4.4480033 +0.7618563 4.53323 +0.8255823 4.9313703 +0.82248366 4.931888 +0.73374027 4.416855 +0.6295044 3.8041759 +0.5661563 3.434753 +0.57028776 3.4734163 +0.62557894 3.8252063 +0.6045092 3.711009 +0.6112744 3.7674558 +0.63183326 3.9097028 +0.6514308 4.0471144 +0.79147965 4.936959 +0.7883775 4.9374547 +0.6793255 4.2717195 +0.7678791 4.848198 +0.6639372 4.209049 +0.7062833 4.4958553 +0.6864128 4.387348 +0.7697582 4.940392 +0.7384734 4.7592587 +0.6474971 4.1903167 +0.733145 4.7644258 +0.6937771 4.5275116 +0.7542337 4.9427857 +0.75112796 4.943259 +0.74802184 4.94373 +0.7449155 4.9441986 +0.618129 4.120255 +0.5060476 3.3876617 +0.59456927 3.9974444 +0.732487 4.9460554 +0.7293792 4.9465146 +0.72627103 4.946972 +0.62679476 4.2881384 +0.6458497 4.4379835 +0.683568 4.7179656 +0.5394047 3.7395105 +0.6503142 4.5285435 +0.70761627 4.9496746 +0.5807565 4.080608 +0.5767167 4.0705557 +0.46318716 3.284102 +0.5364607 3.8209872 +0.5457341 3.9048557 +0.41879255 3.0103562 +0.484247 3.4969528 +0.5403065 3.9199076 +0.53161395 3.8748405 +0.46958718 3.4387822 +0.51561856 3.793649 +0.57560444 4.255025 +0.6447322 4.7886834 +0.6529048 4.872534 +0.66093594 4.956124 +0.5663193 4.2670875 +0.6547074 4.9569507 +0.6462981 4.917079 +0.6484778 4.9577694 +0.5817924 4.4697804 +0.64224714 4.9585805 +0.6391314 4.958983 +0.5456247 4.254554 +0.46311396 3.6292415 +0.4156848 3.2739391 +0.51768243 4.097878 +0.55356556 4.4041753 +0.60063493 4.803047 +0.58415884 4.695252 +0.6141969 4.962133 +0.611079 4.9625177 +0.60068804 4.9035316 +0.5182163 4.2524357 +0.5008638 4.1316595 +0.5651671 4.686749 +0.58985007 4.9174294 +0.5146395 4.313335 +0.5264615 4.4361105 +0.579533 4.9096637 +0.583007 4.9658937 +0.57988673 4.9662595 +0.55954885 4.8183613 +0.5736455 4.9669843 +0.5705245 4.9673433 +0.5674033 4.967701 +0.56428194 4.9680567 +0.5525303 4.8920016 +0.51533175 4.5885024 +0.40640828 3.6392655 +0.41169962 3.707768 +0.42280492 3.829719 +0.4665034 4.250016 +0.4926091 4.513997 +0.5393027 4.97083 +0.53617936 4.971168 +0.51858276 4.8365226 +0.45216507 4.2422266 +0.52680796 4.97217 +0.52134544 4.950297 +0.5205594 4.972828 +0.5174347 4.973154 +0.48729506 4.7122393 +0.5111849 4.9738 +0.4213666 4.125359 +0.37304282 3.67509 +0.40776134 4.0424037 +0.4603602 4.5927477 +0.4955567 4.975382 +0.4924305 4.9756923 +0.4346115 4.4198017 +0.48617747 4.976307 +0.48305067 4.9766116 +0.47992367 4.976914 +0.4767965 4.977215 +0.45789123 4.8117123 +0.47054157 4.97781 +0.45913574 4.8899403 +0.4642859 4.9783974 +0.39390483 4.2526207 +0.3560773 3.870713 +0.41652915 4.5592523 +0.41325542 4.555005 +0.35177606 3.9046266 +0.4204179 4.6995735 +0.35591215 4.0068727 +0.31881803 3.6150374 +0.23752233 2.7127113 +0.27240938 3.1338112 +0.31128398 3.6072962 +0.30856758 3.60224 +0.256409 3.0156178 +0.30724016 3.6405365 +0.26364255 3.1475408 +0.2302679 2.7700155 +0.23021719 2.7906427 +0.2406707 2.9399004 +0.2908637 3.5806959 +0.23043267 2.8590152 +0.19279353 2.410936 +0.14597534 1.840011 +0.19326623 2.4556801 +0.21356194 2.7355351 +0.19834553 2.5613658 +0.162287 2.1129646 +0.13163133 1.7280493 +0.16159667 2.1391795 +0.09043528 1.2072597 +0.12855126 1.7306836 +0.11185575 1.5188304 +0.11469841 1.5709037 +0.13058989 1.8041601 +0.09408646 1.3112901 +0.10655664 1.4982753 +0.12301127 1.745136 +0.13965662 1.9991883 +0.16040248 2.3171077 +0.20354104 2.9673302 +0.2012328 2.9609277 +0.14879744 2.2099211 +0.12626629 1.8930359 +0.11722986 1.7743461 +0.12324644 1.8833994 +0.13993555 2.1592557 +0.0791708 1.233644 +0.108307436 1.7044077 +0.08043041 1.2784048 +0.062163427 0.998066 +0.069552526 1.128126 +0.081186384 1.3304342 +0.06028201 0.9981814 +0.05965482 0.9982191 +0.05902761 0.9982563 +0.07724332 1.3203936 +0.09401728 1.6246353 +0.057145838 0.9983658 +0.071223296 1.2581617 +0.06888751 1.2306019 +0.06451778 1.1656656 +0.11029713 2.0157292 +0.12721363 2.3519728 +0.08314495 1.5553348 +0.09537794 1.805449 +0.14028658 2.6875973 +0.09340937 1.8113909 +0.05718451 1.1226343 +0.050244316 0.998737 +0.054818835 1.1034838 +0.04898923 0.9987993 +0.06901514 1.4253935 +0.06562835 1.3733075 +0.047106452 0.99888986 +0.066092744 1.4204602 +0.08396617 1.8293505 +0.09084883 2.00683 +0.11997825 2.6876707 +0.08810363 2.0018694 +0.09489986 2.1875823 +0.08564193 2.0032413 +0.063971505 1.5187113 +0.04145714 0.99914026 +0.06975337 1.7069879 +0.07655389 1.9027128 +0.1100607 2.778977 +0.13736467 3.5243883 +0.1203153 3.1376061 +0.14062811 3.7285094 +0.16156213 4.356209 +0.1800908 4.939595 +0.16213256 4.5251164 +0.13550204 3.8494499 +0.10038565 2.9037294 +0.13163029 3.8780687 +0.10430447 3.1310253 +0.097730435 2.9901435 +0.12097541 3.7739697 +0.13828824 4.400403 +0.110373005 3.5838487 +0.10921794 3.6202717 +0.1002888 3.3950677 +0.09399312 3.251153 +0.09985701 3.530778 +0.075989455 2.7479582 +0.09328635 3.4519467 +0.10461179 3.9632425 +0.08903525 3.4554305 +0.0663768 2.6404927 +0.07736586 3.1565883 +0.06484384 2.7153308 +0.07115218 3.060049 +0.07247153 3.2033985 +0.07294136 3.3163161 +0.053828225 2.5193307 +0.03771548 1.8187104 +0.020104839 0.9997979 +0.02827934 1.4516864 +0.024162782 1.2817236 +0.01822023 0.999834 +0.019618796 1.115038 +0.016963787 0.9998561 +0.030819234 1.8863834 +0.0316215 2.0129218 +0.02115695 1.4029075 +0.024611935 1.7029732 +0.013822568 0.99990445 +0.018978415 1.4382539 +0.018469512 1.4696798 +0.011937768 0.9999287 +0.011309492 0.99993604 +0.010681212 0.99994296 +0.01761934 1.7525691 +0.013938056 1.47883 +0.008796346 0.9999613 +0.00816805 0.9999666 +0.007539751 0.99997157 +0.0069114487 0.9999761 +0.006283144 0.9999803 +0.0056548365 0.999984 +0.0062720166 1.2477676 +0.0067817112 1.5419085 +0.0065855714 1.7468688 +0.0051465444 1.6381905 +0.0042002285 1.6712143 +0.00428081 2.2710376 +0.0029636493 2.358396 +8.658769E-4 1.3780857 +1.2682258E-16 2.0711699 +-9.595922E-4 1.5272381 +-0.0020427802 1.625592 +-0.0018899165 1.0026307 +-0.0025132715 0.99999684 +-0.00525245 1.6719011 +-0.006739233 1.7876287 +-0.011316271 2.5728981 +-0.017828446 3.5468266 +-0.023311198 4.122281 +-0.026326848 4.189993 +-0.02359119 3.4132679 +-0.029267523 3.8816524 +-0.03777699 4.6248164 +-0.04398173 4.9998064 +-0.047123194 4.999778 +-0.050264634 4.9997473 +-0.047786567 4.473635 +-0.056085847 4.958866 +-0.05410502 4.531933 +-0.059153188 4.707013 +-0.056681238 4.295512 +-0.05776255 4.1784587 +-0.06036576 4.176887 +-0.06730425 4.4629135 +-0.062165204 3.9572344 +-0.07653357 4.6844664 +-0.068018116 4.00903 +-0.07491733 4.257941 +-0.07297372 4.004429 +-0.06960046 3.691982 +-0.06351027 3.260224 +-0.062974416 3.1316686 +-0.076826476 3.7047153 +-0.08316763 3.8925076 +-0.0661278 3.006534 +-0.060234357 2.6624892 +-0.08514169 3.6616971 +-0.07549321 3.1612723 +-0.074726485 3.0488997 +-0.08585094 3.4151812 +-0.07031451 2.7288845 +-0.08704553 3.2977405 +-0.09167031 3.3921473 +-0.11522974 4.1669793 +-0.10831159 3.829718 +-0.13013668 4.5013323 +-0.14763339 4.99782 +-0.13409325 4.4448195 +-0.15383305 4.9950113 +-0.1296202 4.124582 +-0.1601938 4.997433 +-0.14841746 4.540955 +-0.14876178 4.465551 +-0.14893676 4.387949 +-0.16397925 4.7432213 +-0.13850842 3.9348576 +-0.15541244 4.3375583 +-0.16056876 4.4041376 +-0.18224369 4.913847 +-0.18350413 4.865292 +-0.19159023 4.996328 +-0.15856345 4.0682883 +-0.14310266 3.6132698 +-0.16021624 3.9821033 +-0.17504878 4.283752 +-0.20728569 4.9957013 +-0.21042454 4.99557 +-0.21356331 4.995437 +-0.182516 4.207264 +-0.17414309 3.9568372 +-0.17754006 3.9771314 +-0.1903266 4.204271 +-0.22925586 4.9947414 +-0.2323941 4.9945965 +-0.19426349 4.119347 +-0.16434057 3.438912 +-0.17205015 3.553411 +-0.12545076 2.5577078 +-0.10891655 2.1924517 +-0.13936333 2.7702098 +-0.19068655 3.7435186 +-0.19780938 3.8359122 +-0.16699748 3.1993225 +-0.14521661 2.7488663 +-0.16258033 3.0412772 +-0.12283313 2.270985 +-0.09036955 1.651544 +-0.11886448 2.1475666 +-0.089799404 1.6041707 +-0.12012855 2.1220744 +-0.12096765 2.1133642 +-0.0820887 1.4185075 +-0.058400374 0.9982932 +-0.05902761 0.9982563 +-0.071522616 1.1968058 +-0.06028201 0.9981814 +-0.060909174 0.9981433 +-0.065704465 1.0657113 +-0.062163427 0.998066 +-0.06279052 0.9980267 +-0.06341758 0.9979871 +-0.064044625 0.99794704 +-0.10696937 1.6505756 +-0.10844456 1.6572033 +-0.12318781 1.8645234 +-0.12022781 1.8025047 +-0.06717945 0.9977409 +-0.06780633 0.9976985 +-0.068433195 0.9976557 +-0.117138304 1.6921314 +-0.1234918 1.7677886 +-0.083582856 1.185773 +-0.07094036 0.9974806 +-0.07156708 0.9974358 +-0.07219377 0.9973906 +-0.07414599 1.0154997 +-0.12571394 1.7070034 +-0.11909864 1.6034231 +-0.07470026 0.99720603 +-0.07532681 0.9971589 +-0.0819535 1.0758815 +-0.07657981 0.99706346 +-0.07720627 0.9970151 +-0.0778327 0.9969664 +-0.14966442 1.9016666 +-0.15616927 1.9685048 +-0.21147479 2.6445503 +-0.1978884 2.455233 +-0.15594678 1.9197927 +-0.12554578 1.5335981 +-0.18914269 2.2927468 +-0.10861949 1.3066418 +-0.10155907 1.2124801 +-0.17097011 2.0258515 +-0.19473949 2.2903247 +-0.18450516 2.1539266 +-0.21184385 2.45494 +-0.17927736 2.0624156 +-0.15709417 1.7941519 +-0.16175465 1.8341155 +-0.2226217 2.5062835 +-0.30560747 3.4161835 +-0.2326091 2.581903 +-0.15303795 1.6868227 +-0.12386073 1.3557569 +-0.0916059 0.99579537 +-0.16822198 1.8161348 +-0.20558691 2.2044463 +-0.19293338 2.0548012 +-0.22415292 2.3712902 +-0.20367344 2.1402857 +-0.12623909 1.317793 +-0.095984735 0.9953828 +-0.14978783 1.5431834 +-0.12766668 1.3067422 +-0.20415497 2.0761635 +-0.23131612 2.3373 +-0.32185662 3.2314355 +-0.40128893 4.0034275 +-0.33936033 3.3642998 +-0.38354456 3.7785497 +-0.43825993 4.2907515 +-0.40515745 3.9421597 +-0.35236385 3.407428 +-0.3996916 3.8415048 +-0.43146613 4.121733 +-0.43004042 4.0833344 +-0.4416172 4.1681137 +-0.38268107 3.5903254 +-0.404835 3.7756627 +-0.45220348 4.192589 +-0.39861244 3.6740677 +-0.37541464 3.4400916 +-0.45964745 4.187556 +-0.39475384 3.5756357 +-0.3340389 3.0083554 +-0.29178974 2.6128905 +-0.37193877 3.3117344 +-0.41025707 3.6323407 +-0.5196796 4.5753684 +-0.4787125 4.1911993 +-0.55399877 4.82346 +-0.45682472 3.9554763 +-0.5576221 4.8017697 +-0.57988673 4.9662595 +-0.52399015 4.463205 +-0.44709578 3.7876873 +-0.53189194 4.4818687 +-0.5461135 4.5771275 +-0.44245917 3.6886692 +-0.3465259 2.873628 +-0.35118645 2.896961 +-0.46896708 3.848301 +-0.46833727 3.8231268 +-0.43962467 3.5701525 +-0.51831746 4.187517 +-0.49097517 3.9462764 +-0.59443337 4.7534556 +-0.6235492 4.960966 +-0.6266662 4.9605737 +-0.62978286 4.960179 +-0.5217305 4.088596 +-0.41112593 3.2057884 +-0.39918995 3.097291 +-0.5179924 3.9992497 +-0.56156474 4.314376 +-0.6373038 4.8723416 +-0.5945804 4.5236073 +-0.5515301 4.1757703 +-0.6314741 4.7580137 +-0.55704665 4.177095 +-0.5010291 3.7391074 +-0.6192805 4.5996437 +-0.5813802 4.297721 +-0.5014848 3.68966 +-0.42058042 3.079906 +-0.44637784 3.2535698 +-0.52420825 3.8031151 +-0.6403899 4.624527 +-0.58946043 4.237148 +-0.6920629 4.9518733 +-0.69517416 4.9514375 +-0.5889504 4.1757917 +-0.6509018 4.594166 +-0.6414811 4.507281 +-0.70761627 4.9496746 +-0.58649963 4.0841627 +-0.5904227 4.093201 +-0.53204864 3.6721838 +-0.39839107 2.737561 +-0.31644472 2.1649172 +-0.38286743 2.6078892 +-0.4488899 3.0442884 +-0.5269982 3.55851 +-0.48592424 3.2669954 +-0.6083745 4.0726733 +-0.7418088 4.944666 +-0.6412046 4.255842 +-0.5461904 3.609811 +-0.6615499 4.3537354 +-0.6276918 4.1135073 +-0.70601165 4.607353 +-0.7604444 4.941834 +-0.7467822 4.8328457 +-0.7666539 4.9408746 +-0.69130474 4.436869 +-0.7728622 4.939907 +-0.63080525 4.015399 +-0.730657 4.632021 +-0.67631835 4.270106 +-0.73847777 4.643679 +-0.787703 4.9332304 +-0.79147965 4.936959 +-0.7945815 4.9364605 +-0.797683 4.9359603 +-0.7810431 4.813788 +-0.73870814 4.5348406 +-0.6845806 4.1859818 +-0.70323426 4.283145 +-0.8131858 4.9334297 +-0.81628543 4.9329176 +-0.79358983 4.777128 +-0.822028 4.9291553 +-0.7576309 4.5254827 +-0.82868063 4.9308505 +-0.8317786 4.930329 +-0.83487624 4.9298053 +-0.7031722 4.136327 +-0.8410706 4.9287524 +-0.68616164 4.005791 +-0.7246348 4.214482 +-0.60428214 3.5013351 +-0.7191965 4.151606 +-0.61253446 3.5227313 +-0.7542011 4.3213778 +-0.6119963 3.4936187 +-0.6961373 3.9593046 +-0.5455695 3.091554 +-0.6324265 3.5706322 +-0.52019984 2.9263012 +-0.36435568 2.042178 +-0.50979954 2.8470297 +-0.528542 2.9410472 +-0.47550872 2.6364295 +-0.3953221 2.1839828 +-0.27572456 1.5178165 +-0.22467306 1.2323831 +-0.21777676 1.1903161 +-0.18058781 0.9835589 +-0.18120576 0.9834452 +-0.25203246 1.3630316 +-0.20236288 1.0905776 +-0.28399765 1.5251822 +-0.26649383 1.4261997 +-0.38851014 2.0719852 +-0.47239566 2.51065 +-0.6155251 3.2600696 +-0.7674559 4.0507936 +-0.86722356 4.561715 +-0.9369066 4.911436 +-0.91939145 4.8032203 +-0.94307774 4.910255 +-0.9383641 4.869194 +-0.94924736 4.909066 +-0.95233166 4.9084687 +-0.95541555 4.9078693 +-0.9584991 4.907268 +-0.83827937 4.2774873 +-0.8196871 4.1687365 +-0.8678309 4.398982 +-0.9326608 4.712008 +-0.93852395 4.7260375 +-0.9769922 4.90362 +-0.98007303 4.9030046 +-0.9753944 4.8636985 +-0.9772777 4.8572574 +-0.98931324 4.901149 +-0.9923925 4.900526 +-0.9954714 4.899902 +-0.905276 4.441637 +-1.001628 4.898647 +-0.913101 4.4514365 +-0.8777249 4.265359 +-0.72147167 3.494912 +-0.57759464 2.789099 +-0.38499033 1.8531835 +-0.3923087 1.8824712 +-0.3419872 1.6358593 +-0.2052477 0.97871006 +-0.40948814 1.9465278 +-0.51949185 2.4617584 +-0.68323946 3.2276828 +-0.5858898 2.7592363 +-0.50323737 2.362679 +-0.444044 2.0783584 +-0.38210768 1.7829803 +-0.21016462 0.977666 +-0.21077888 0.97753376 +-0.39075494 1.8067025 +-0.38863042 1.7914311 +-0.22807479 1.0481547 +-0.22798528 1.0445838 +-0.21384884 0.9768668 +-0.21446258 0.9767322 +-0.21507624 0.97659725 +-0.34822303 1.5764608 +-0.21630329 0.9763262 +-0.2169167 0.9761901 +-0.4204684 1.8866348 +-0.41130206 1.8400595 +-0.5547889 2.474678 +-0.4055017 1.8034619 +-0.6080576 2.696409 +-0.7509461 3.3203194 +-0.85950994 3.789269 +-1.0228944 4.496474 +-1.025455 4.4946713 +-1.1152298 4.8740396 +-0.94884336 4.1349077 +-1.0365523 4.504145 +-1.1244152 4.8719287 +-1.1274761 4.8712215 +-1.1305366 4.870512 +-1.1335965 4.8698006 +-1.136656 4.8690877 +-0.9280559 3.964255 +-1.0237898 4.3608418 +-0.91761565 3.8975842 +-0.93855226 3.9753137 +-1.131452 4.778927 +-1.155004 4.864768 +-1.1580604 4.8640413 +-1.0756075 4.505161 +-0.96623814 4.035841 +-0.7621622 3.174634 +-0.9600278 3.987764 +-1.0704848 4.4343343 +-0.9164859 3.7859855 +-1.0767872 4.435997 +-0.96433586 3.9618745 +-1.0306426 4.2227407 +-0.9478515 3.8729637 +-1.0994425 4.4801784 +-1.0760516 4.372989 +-1.1977515 4.8544197 +-1.2008014 4.8536663 +-1.2038507 4.852911 +-1.2068998 4.8521533 +-1.2099482 4.851394 +-0.9799777 3.918819 +-0.80094564 3.1943607 +-0.63037884 2.5074205 +-0.64031416 2.540189 +-0.7357421 2.9110427 +-0.88094324 3.4763505 +-0.74114436 2.9169827 +-0.9545926 3.747202 +-0.80518574 3.1524322 +-0.7615133 2.9736538 +-0.94221073 3.6696687 +-1.0869509 4.2223787 +-1.1936002 4.624632 +-1.0600493 4.0965466 +-1.255617 4.8397756 +-1.2586577 4.8389854 +-1.2170036 4.6668057 +-1.1954079 4.572226 +-1.134609 4.3285656 +-1.1602403 4.4150376 +-1.2738537 4.8350077 +-1.2768914 4.834206 +-1.2799284 4.8334026 +-1.2829652 4.8325977 +-1.2860013 4.8317904 +-1.289037 4.8309817 +-1.1091379 4.146305 +-0.9241649 3.4461432 +-1.126688 4.19081 +-0.87999874 3.2650454 +-0.9135245 3.3809795 +-0.8709738 3.2154737 +-1.0820961 3.9849744 +-1.2522446 4.6001396 +-1.3163347 4.823615 +-1.3193653 4.8227873 +-1.3223952 4.821957 +-1.2933934 4.7046137 +-1.1649987 4.2271957 +-1.3266853 4.8020935 +-1.2894623 4.655961 +-1.0281836 3.7034938 +-1.2838705 4.613225 +-1.1958482 4.286513 +-1.3466163 4.815249 +-1.1049033 3.941379 +-0.9452122 3.363601 +-0.9941986 3.5294063 +-0.80418587 2.848003 +-0.6652374 2.350273 +-0.50468475 1.7787772 +-0.43710834 1.5369239 +-0.27590787 0.9678127 +-0.45920545 1.6069425 +-0.48263696 1.6849308 +-0.49472833 1.7230525 +-0.68794113 2.390316 +-0.49016666 1.6991127 +-0.49639174 1.7166405 +-0.5500707 1.8978058 +-0.46211964 1.5906262 +-0.27959442 0.9601182 +-0.28019762 0.95994234 +-0.35790598 1.2233089 +-0.46100223 1.5720223 +-0.66136134 2.2500126 +-0.7006224 2.3780587 +-0.816388 2.7645824 +-0.65144515 2.2009346 +-0.46156138 1.5558116 +-0.28501925 0.9585218 +-0.28562146 0.9583425 +-0.28622356 0.95816284 +-0.39885524 1.3321565 +-0.30676264 1.0222338 +-0.28802913 0.95762163 +-0.28863078 0.9574405 +-0.46061298 1.5244699 +-0.607242 2.00521 +-0.4477503 1.4752008 +-0.62890476 2.0673747 +-0.71772623 2.3540409 +-0.51518387 1.6859324 +-0.61026275 1.9925961 +-0.46071166 1.5009216 +-0.31099072 1.0108912 +-0.38977098 1.2641437 +-0.53820026 1.7416568 +-0.40912986 1.321032 +-0.44629312 1.4378304 +-0.3257501 1.0471505 +-0.2976415 0.9546777 +-0.29824126 0.95449054 +-0.36297908 1.1591183 +-0.29944047 0.954115 +-0.30003992 0.9539266 +-0.3006392 0.9537379 +-0.34074616 1.0786078 +-0.51964784 1.6413175 +-0.52789897 1.6637453 +-0.30303526 0.9529793 +-0.33678472 1.0568142 +-0.30423257 0.9525978 +-0.30483106 0.95240647 +-0.3054294 0.9522147 +-0.30602765 0.9520226 +-0.45808336 1.4219861 +-0.3711941 1.1497879 +-0.30782163 0.9514441 +-0.30841938 0.9512505 +-0.5472467 1.6842523 +-0.33794168 1.0378582 +-0.3102119 0.95066744 +-0.31080914 0.95047235 +-0.31140628 0.95027685 +-0.55660236 1.6949095 +-0.3126002 0.9498848 +-0.31319696 0.9496882 +-0.3137936 0.9494912 +-0.5099316 1.539727 +-0.80267435 2.418564 +-0.92185533 2.7718453 +-1.1122425 3.3372998 +-1.204485 3.6065192 +-0.91102576 2.7221375 +-1.1534014 3.439172 +-1.2801231 3.8090863 +-1.1434501 3.3953407 +-1.1156117 3.305809 +-0.81823874 2.419607 +-1.0519323 3.1042318 +-1.0228195 3.0120928 +-0.76945335 2.2612891 +-0.8795785 2.5796118 +-0.6460486 1.8908296 +-0.6560984 1.9163067 +-0.8030177 2.3406227 +-0.9113347 2.6509159 +-1.1986026 3.4794164 +-1.1404101 3.3037472 +-1.3781925 3.9844801 +-1.4431673 4.163858 +-1.4884255 4.285733 +-1.4045533 4.0360494 +-1.1993959 3.4395561 +-1.2727757 3.642627 +-1.1766381 3.3607032 +-1.3605341 3.8781307 +-1.3629965 3.877349 +-1.5755236 4.472945 +-1.6640977 4.7149525 +-1.4103571 3.988034 +-1.2279235 3.4652426 +-1.2041552 3.3913975 +-1.2841195 3.6094158 +-1.4098979 3.955084 +-1.3077602 3.6612897 +-1.5122786 4.225489 +-1.5232548 4.2477436 +-1.3205849 3.6753097 +-1.5185764 4.218008 +-1.6966451 4.7033386 +-1.403122 3.882008 +-1.1136202 3.0750003 +-1.2751211 3.514049 +-0.97522396 2.6823187 +-0.7277741 1.9978068 +-0.8320809 2.2796838 +-1.0434976 2.8533428 +-0.7809355 2.13124 +-0.6102713 1.6622488 +-0.34523267 0.93851715 +-0.3458223 0.9383 +-0.48720056 1.3193383 +-0.34700114 0.9378647 +-0.34759033 0.9376465 +-0.3481794 0.93742794 +-0.38958097 1.0468805 +-0.34935713 0.93698967 +-0.3499458 0.93676996 +-0.35053432 0.9365499 +-0.54611784 1.4563177 +-0.37741393 1.0045193 +-0.47530073 1.2626432 +-0.5541121 1.4692062 +-0.38975444 1.0314552 +-0.35406253 0.93522173 +-0.61578715 1.6234607 +-0.5646037 1.4857048 +-0.35582474 0.93455267 +-0.36044064 0.9448903 +-0.6182265 1.6176198 +-0.38597447 1.0080211 +-0.6499598 1.6942637 +-0.4669995 1.2150538 +-0.3593454 0.93320465 +-0.35993168 0.9329787 +-0.3983472 1.0306268 +-0.6392991 1.6509457 +-0.7821406 2.0160613 +-0.7018653 1.8057766 +-0.5211781 1.3384091 +-0.36344635 0.9316151 +-0.36403164 0.9313866 +-0.61124074 1.5609856 +-0.6442316 1.6421977 +-0.5439386 1.3839844 +-0.8241848 2.093172 +-0.993049 2.5173934 +-0.665766 1.6846247 +-0.83977836 2.1210382 +-0.9718182 2.450034 +-0.89974856 2.2641885 +-1.2645322 3.1763382 +-1.432571 3.5918605 +-1.2932014 3.2365103 +-1.1563611 2.8887694 +-1.3748596 3.4283671 +-1.005499 2.502772 +-0.97244877 2.4161174 +-0.88911825 2.205076 +-0.5873503 1.4540353 +-0.8053589 1.9901325 +-0.7509142 1.8522458 +-0.53325033 1.3129742 +-0.37687102 0.9262658 +-0.7522145 1.8454547 +-0.6557484 1.605901 +-0.77338433 1.8905914 +-0.99319655 2.423591 +-0.789135 1.9221984 +-0.60000014 1.4588884 +-0.45087242 1.0943321 +-0.6684289 1.6194834 +-0.8299445 2.0072296 +-1.206941 2.9138134 +-1.3333966 3.2133918 +-1.3781257 3.3153 +-1.152667 2.7680151 +-0.87332296 2.0934908 +-0.830587 1.9875307 +-0.9385946 2.2420237 +-0.8153492 1.9441968 +-0.6094499 1.4506745 +-0.3879017 0.9217008 +-0.38848075 0.9214568 +-0.38905963 0.92121255 +-0.38963836 0.92096794 +-0.39021695 0.92072296 +-0.51492906 1.2128614 +-0.7072355 1.6629137 +-0.5573287 1.3081571 +-0.9087339 2.129261 +-0.7333205 1.7152625 +-0.9244534 2.1585758 +-1.0810987 2.5199625 +-0.92335016 2.1485353 +-0.84269476 1.9574677 +-0.94893265 2.2004364 +-0.8381915 1.9402901 +-0.5218073 1.2058256 +-0.51364046 1.1849098 +-0.65508604 1.5086105 +-0.83907855 1.9290121 +-0.57974267 1.3305217 +-0.8530605 1.9544376 +-1.133425 2.5923338 +-0.7741569 1.7676007 +-0.9222403 2.1021183 +-0.9096707 2.0699315 +-0.52862805 1.2008301 +-0.70001 1.5874352 +-0.74262714 1.6812174 +-0.7744578 1.750302 +-1.1395648 2.5710895 +-0.81775326 1.8418924 +-0.6874069 1.5456833 +-0.85083574 1.9099317 +-1.0201668 2.2861757 +-0.74989784 1.6776743 +-0.61212516 1.3671424 +-0.8582712 1.9136691 +-1.2266394 2.730416 +-1.2394719 2.7543492 +-1.5091817 3.3480744 +-1.226204 2.715741 +-1.4297174 3.1611757 +-1.3949178 3.0790782 +-1.3941038 3.0721443 +-1.4451002 3.1792138 +-1.7670075 3.8809335 +-2.0747366 4.549227 +-1.954038 4.2774534 +-1.9524645 4.266913 +-1.9983488 4.3599463 +-1.6978688 3.6982303 +-1.4474106 3.147475 +-1.1896427 2.582668 +-1.3034652 2.8251002 +-1.5181552 3.2849865 +-1.5685133 3.3883593 +-1.8589561 4.009175 +-1.8922414 4.07425 +-1.5165056 3.259878 +-1.7738096 3.806722 +-1.6374032 3.508225 +-1.2796746 2.737283 +-1.6110615 3.4404984 +-1.8479872 3.9400165 +-1.6985482 3.6154933 +-1.3473426 2.8632488 +-1.7633711 3.741251 +-1.7010369 3.6031277 +-1.7676518 3.7381454 +-1.8324134 3.8688083 +-2.0330625 4.2854795 +-2.145937 4.5160775 +-2.148774 4.514728 +-2.1516101 4.513377 +-2.1544456 4.5120244 +-1.8238691 3.8135386 +-1.7913337 3.7394717 +-1.6853397 3.5125396 +-1.2794863 2.6623805 +-1.5240444 3.1661646 +-1.5652858 3.2466214 +-1.7303337 3.5831966 +-1.79467 3.7104697 +-1.9590434 4.0438266 +-1.7448889 3.596012 +-1.6199033 3.3330977 +-2.041972 4.1948357 +-2.0849988 4.2763963 +-1.7755245 3.635854 +-1.4227748 2.9088695 +-1.2896471 2.6324973 +-1.6460559 3.3546815 +-1.5718937 3.1984544 +-1.3495058 2.7415915 +-1.0785587 2.1876783 +-1.0935752 2.2146273 +-0.6599713 1.3344121 +-0.44388464 0.89608395 +-0.44444758 0.8958049 +-0.44501033 0.89552546 +-0.58139324 1.168136 +-0.44613534 0.8949655 +-0.44669756 0.89468503 +-0.8496784 1.6991382 +-1.0915262 2.1793475 +-0.79010546 1.5750568 +-0.9421186 1.8751507 +-0.54949 1.0919694 +-0.45006728 0.89299464 +-0.73084176 1.4478253 +-0.9678079 1.9142734 +-0.69903994 1.3805095 +-0.9770309 1.9264997 +-1.0232761 2.0145466 +-1.0212822 2.0074964 +-0.88927966 1.7453096 +-1.2053373 2.3619375 +-1.2344239 2.4151855 +-0.7807713 1.5252358 +-0.56898713 1.1097959 +-0.8943608 1.7417331 +-1.1948711 2.3233716 +-0.9586843 1.861241 +-1.1855334 2.2981098 +-0.8535919 1.6521057 +-0.4837415 0.93482876 +-0.4601378 0.8878475 +-0.46069556 0.8875582 +-0.70575976 1.3576026 +-0.46181053 0.88697857 +-0.68184906 1.3075902 +-0.4840037 0.926759 +-0.60264486 1.1521654 +-0.5153963 0.9838538 +-0.46459478 0.8855234 +-0.51833355 0.98644316 +-0.46570718 0.8849389 +-0.5033914 0.95509 +-0.46681887 0.8843529 +-0.89639306 1.6955673 +-1.0568185 1.9959826 +-1.4894876 2.8088837 +-1.2368625 2.3289452 +-1.1836776 2.225424 +-0.85901546 1.6125844 +-0.54718554 1.025649 +-0.7858962 1.470864 +-0.6495067 1.2137654 +-0.83005 1.5488155 +-1.1258605 2.0976107 +-0.8581789 1.5964804 +-0.57767564 1.0730395 +-0.4745799 0.8802124 +-0.47513285 0.87991405 +-0.47568563 0.87961537 +-0.4762382 0.87931633 +-0.7558013 1.3934045 +-0.4773428 0.8787172 +-0.9296406 1.7087697 +-0.6054631 1.1112361 +-0.4789983 0.87781584 +-0.75058186 1.3734688 +-0.5523003 1.0091316 +-0.6097811 1.1124969 +-0.5139707 0.93630224 +-0.8275395 1.5052888 +-0.5410248 0.9826575 +-0.4828545 0.8757006 +-0.8089865 1.464993 +-0.9338553 1.6886097 +-1.0045048 1.8136674 +-1.4683155 2.6471674 +-1.4464967 2.603973 +-1.3054503 2.346588 +-1.1160483 2.003168 +-1.2732303 2.2819169 +-0.9813359 1.7561817 +-1.2867901 2.2994235 +-1.1149235 1.9893728 +-0.6981599 1.2439028 +-0.8427696 1.4993441 +-0.9674839 1.7186902 +-1.1028142 1.9562218 +-1.5563992 2.756761 +-1.291267 2.2837946 +-0.8684105 1.5336611 +-0.50066674 0.88291085 +-0.76273185 1.3430876 +-0.54094094 0.9511457 +-0.70094156 1.2306775 +-0.49545866 0.86863154 +-0.49600434 0.86832005 +-0.90697366 1.5854615 +-1.0148678 1.7714854 +-0.9404728 1.6392378 +-0.94688904 1.6480215 +-0.7449298 1.2946359 +-0.6314003 1.0957363 +-0.49981862 0.8661301 +-0.63393205 1.0969411 +-0.50090665 0.86550134 +-0.50145036 0.86518645 +-0.50199383 0.8648712 +-0.5025372 0.8645556 +-0.5030803 0.8642397 +-0.7485358 1.2840505 +-0.73123455 1.2525622 +-0.6456961 1.1044453 +-0.50525075 0.86297256 +-0.50579286 0.8626549 +-0.85749936 1.460404 +-1.0193326 1.7335263 +-1.248696 2.120542 +-1.3272067 2.250634 +-0.9400402 1.591803 +-0.70886254 1.1986212 +-1.0479363 1.7694253 +-0.7384809 1.2451293 +-0.72729355 1.2245123 +-0.5112031 0.85945994 +-0.53372663 0.89604574 +-0.5122827 0.85881686 +-0.83913887 1.4047683 +-1.0920142 1.8254902 +-0.7878877 1.3152139 +-1.1406354 1.9013416 +-1.3634261 2.269481 +-1.1393238 1.8937566 +-1.6009172 2.6572251 +-1.3162163 2.1815724 +-1.8301352 3.0290666 +-1.8423717 3.044995 +-1.661816 2.7426877 +-1.4037617 2.31351 +-1.163337 1.9145573 +-0.8456453 1.3897492 +-0.520354 0.8539507 +-0.5208905 0.8536235 +-0.5214267 0.8532961 +-0.5219627 0.8529683 +-1.0108945 1.6496298 +-1.3126069 2.138962 +-1.7182567 2.7960472 +-1.5277219 2.4824998 +-1.8740431 3.0409784 +-1.9660074 3.185724 +-1.8023401 2.9164155 +-2.0763109 3.355019 +-2.5117605 4.05295 +-2.2051792 3.5532658 +-2.5702622 4.1357317 +-2.6074204 4.189648 +-2.644562 4.243382 +-2.5719101 4.121036 +-2.6498923 4.2400556 +-2.652556 4.2383895 +-2.5650883 4.092909 +-2.6351721 4.1988707 +-2.6605403 4.233382 +-2.2890313 3.637172 +-2.665858 4.2300353 +-2.6685154 4.2283597 +-2.6711717 4.226682 +-2.4026046 3.7964356 +-2.3917933 3.7741027 +-2.679134 4.2216396 +-2.681786 4.2199554 +-2.684437 4.21827 +-2.6870868 4.2165823 +-2.6897357 4.214893 +-2.4372714 3.8139875 +-2.3706934 3.7046704 +-2.2450814 3.5035267 +-2.220231 3.459959 +-2.6964643 4.196307 +-2.5303183 3.9323118 +-2.2675183 3.5190392 +-2.59479 4.021392 +-2.6561275 4.1107802 +-2.585104 3.9953506 +-2.5837302 3.9877317 +-2.08825 3.2185736 +-2.50617 3.8573947 +-2.25406 3.4645903 +-1.8720447 2.8734646 +-1.685355 2.5833576 +-2.1462405 3.285303 +-1.8290267 2.7958977 +-1.9701402 3.007481 +-1.9690853 3.0017543 +-1.475725 2.2465768 +-1.35414 2.0586612 +-0.82585937 1.2538143 +-0.88590723 1.3431407 +-0.71801215 1.0871052 +-0.5516459 0.83407843 +-0.5521698 0.83373165 +-0.55269355 0.8333846 +-1.014423 1.5275234 +-1.3046658 1.9618965 +-1.160574 1.742842 +-1.106697 1.6596731 +-1.2510897 1.8736621 +-1.7496051 2.616689 +-1.405783 2.0996165 +-1.415027 2.1105533 +-1.0846401 1.6155761 +-1.5540142 2.3115711 +-2.052254 3.048556 +-1.7518528 2.5987937 +-1.2405845 1.837858 +-1.7509892 2.5904832 +-1.340547 1.9805753 +-1.7385174 2.5650785 +-1.9724426 2.9062874 +-1.5557501 2.2892168 +-1.0529279 1.5472442 +-0.6948328 1.0196568 +-0.56364137 0.8260196 +-0.5641603 0.8256653 +-0.56467897 0.82531065 +-0.64509463 0.94157284 +-0.77879524 1.1351904 +-1.3011845 1.894085 +-1.3836793 2.0114603 +-1.5776073 2.290291 +-1.8018447 2.6123128 +-1.5365746 2.2247324 +-1.5043316 2.1751254 +-1.0486672 1.5142418 +-1.4965725 2.1581044 +-1.4222733 2.0482132 +-1.1243854 1.6170558 +-1.6312367 2.3428514 +-1.5936996 2.2858748 +-2.021382 2.8954291 +-1.9108561 2.7334507 +-2.2469208 3.2098892 +-1.7807955 2.5405962 +-1.9445894 2.7705696 +-1.9227836 2.7358444 +-1.5231061 2.164269 +-1.3760263 1.9526668 +-1.5429946 2.186686 +-1.0802333 1.5288345 +-0.92984 1.3142327 +-1.2676344 1.7892846 +-1.4110966 1.9891328 +-1.8648268 2.6252303 +-2.1446867 3.0151918 +-2.4435437 3.4307857 +-2.06074 2.8894775 +-2.2611887 3.1663275 +-1.933117 2.703338 +-1.8496176 2.5831375 +-2.3431897 3.26811 +-1.9206327 2.6752071 +-1.4578317 2.0278912 +-1.18327 1.6437867 +-1.619864 2.2473195 +-1.7248478 2.3898017 +-1.5042497 2.0814028 +-1.1708078 1.6178832 +-0.6417747 0.8856654 +-1.0519993 1.4498677 +-0.65031993 0.89508855 +-0.7294945 1.0027375 +-0.58880144 0.8082777 +-0.8241412 1.1298482 +-0.5898167 0.8075372 +-0.5927384 0.8104677 +-0.9630513 1.3150721 +-1.3565483 1.8499631 +-1.0654845 1.4511184 +-0.91292876 1.2417114 +-0.59391767 0.80674887 +-0.5933627 0.8049352 +-0.5938683 0.8045623 +-0.80545837 1.0897869 +-0.5948789 0.8038153 +-0.73775864 0.9955692 +-0.7848135 1.0576775 +-1.0179096 1.3700169 +-0.66847736 0.8985319 +-0.8885347 1.1927557 +-0.8007975 1.07357 +-0.80993104 1.0843923 +-0.9131592 1.2210004 +-0.5994148 0.8004385 +-0.86655045 1.1556485 +-0.60042024 0.79968464 +-0.6047829 0.804442 +-0.6014247 0.7989295 +-1.0485022 1.3910053 +-1.0746661 1.4238538 +-1.0499591 1.3893025 +-1.0646114 1.4068519 +-1.4899241 1.9663209 +-1.9412857 2.5586622 +-2.4702342 3.251584 +-2.7294154 3.5880637 +-3.0296643 3.9775789 +-3.032163 3.9756746 +-3.0163198 3.9497523 +-3.0371566 3.9718611 +-3.0396514 3.969952 +-3.0421453 3.9680414 +-2.8803644 3.7521367 +-2.7058775 3.520258 +-3.0328975 3.9405735 +-2.9489295 3.8264995 +-2.9150615 3.777641 +-3.0477297 3.9444396 +-3.0595682 3.954623 +-3.0620522 3.9527 +-2.6313524 3.3923192 +-2.7796137 3.5788112 +-2.8489516 3.6633313 +-2.2950087 2.9472194 +-2.2164564 2.8426573 +-2.3128386 2.9624293 +-1.7802567 2.2773137 +-1.8660364 2.3839548 +-2.0280209 2.5875466 +-1.8708578 2.3839364 +-1.3049233 1.660646 +-1.7425523 2.2147071 +-2.3111444 2.9335678 +-1.7846209 2.2623186 +-1.4438776 1.8280038 +-1.465189 1.8525904 +-1.8348631 2.317014 +-1.2808963 1.6153938 +-1.2948042 1.6308279 +-1.5425367 1.9403464 +-1.2199538 1.5325937 +-1.3196125 1.6556561 +-1.876468 2.351284 +-1.4362166 1.7973154 +-1.9066912 2.3830066 +-1.6965183 2.1176012 +-2.0633633 2.5721848 +-2.4838128 3.0923333 +-2.4093428 2.9957612 +-2.1843686 2.7125385 +-2.414196 2.9940836 +-2.5988302 3.218926 +-2.6352265 3.2598138 +-2.3383412 2.8888478 +-2.8106496 3.467892 +-2.2263217 2.7433994 +-2.589083 3.1863203 +-2.5354648 3.1163309 +-2.9881659 3.6680343 +-3.160417 3.8745017 +-3.1628509 3.8725152 +-3.1652834 3.8705273 +-3.1677146 3.8685377 +-3.1701448 3.8665466 +-3.1725736 3.864554 +-3.151468 3.8339305 +-2.999704 3.6446307 +-3.1563299 3.8300238 +-3.1822762 3.8565683 +-2.6674652 3.2285397 +-2.7744224 3.3537006 +-2.8479831 3.4382195 +-3.147375 3.7948036 +-2.6569865 3.1994467 +-3.0429337 3.6595097 +-2.7063909 3.2506177 +-3.0577993 3.6680014 +-3.2040336 3.8385112 +-3.2064447 3.8364973 +-3.0260086 3.6159868 +-2.9981728 3.5781534 +-3.2136707 3.8304465 +-2.9391448 3.4987662 +-3.2184815 3.826405 +-3.220885 3.824382 +-3.2232873 3.8223577 +-3.2256885 3.8203316 +-3.2280881 3.818304 +-2.8483226 3.3648126 +-2.6552165 3.1326969 +-2.3684142 2.790763 +-2.19515 2.5833092 +-1.8095572 2.1268241 +-1.8396467 2.1594386 +-2.4209585 2.8381872 +-3.0637796 3.587225 +-2.6104243 3.0525284 +-2.0824535 2.4320445 +-2.1261644 2.4799378 +-2.5777466 3.0028386 +-2.3099294 2.6874378 +-2.3105905 2.6847925 +-1.9501579 2.26311 +-2.4168262 2.801106 +-3.042256 3.5215044 +-3.0396817 3.5140588 +-3.2734401 3.779496 +-3.2758143 3.7774384 +-2.6330194 3.032361 +-3.1527557 3.6263192 +-2.6688583 3.0658448 +-3.1192899 3.5787342 +-2.8533244 3.2694447 +-3.063316 3.5056124 +-2.4942946 2.8508158 +-2.882597 3.2904458 +-3.2971227 3.7588537 +-3.2994838 3.7567813 +-3.0689034 3.4898186 +-2.908 3.3026593 +-3.1244278 3.5439677 +-3.3089151 3.748477 +-3.3112698 3.7463973 +-2.80233 3.1665668 +-3.315975 3.7422333 +-3.3000872 3.719592 +-3.1349144 3.5289538 +-2.938336 3.303484 +-2.6496723 2.9751813 +-2.9659412 3.3260932 +-3.3300593 3.7297058 +-3.3324022 3.7276127 +-3.1218162 3.4876392 +-3.1297872 3.4921267 +-3.333933 3.7152073 +-2.8196313 3.1381202 +-2.6664484 2.9638867 +-2.1825466 2.4229429 +-2.1580563 2.3927302 +-1.6015699 1.7734878 +-2.2461395 2.4841082 +-1.841389 2.0339057 +-2.0995986 2.3161845 +-2.7178972 2.9944808 +-3.3627384 3.700269 +-3.2245235 3.5437052 +-2.567102 2.8176496 +-2.6962013 2.9556167 +-2.1034997 2.3029802 +-1.5456839 1.6901314 +-0.95787007 1.0460646 +-1.5700856 1.7124875 +-1.5116091 1.646629 +-1.0496454 1.1419607 +-1.6150678 1.7548971 +-1.6285036 1.7672664 +-1.9240093 2.085321 +-2.4577243 2.6604273 +-2.4926345 2.694818 +-2.812454 3.036749 +-2.4798565 2.6742542 +-2.515484 2.709258 +-2.900832 3.1203563 +-2.8789108 3.092877 +-2.3183334 2.4875004 +-2.9294672 3.1392713 +-3.4135642 3.6534338 +-3.415859 3.6512883 +-3.4181526 3.6491413 +-2.8505666 3.0393698 +-3.228196 3.4376793 +-2.5802448 2.7442243 +-2.9802542 3.1656668 +-2.4446166 2.5934384 +-2.4544132 2.600556 +-2.3410482 2.4773207 +-2.6161532 2.7649574 +-2.8991716 3.0602198 +-2.4130316 2.5438716 +-1.9819634 2.0868022 +-1.8842574 1.9814334 +-1.390207 1.4600654 +-1.4888929 1.561744 +-2.1072302 2.2075574 +-2.6173174 2.7384837 +-3.1958454 3.3395903 +-3.459204 3.6102505 +-2.984333 3.1107292 +-2.88316 3.0014942 +-2.5061092 2.6056888 +-1.8504263 1.9215345 +-1.6634117 1.7251626 +-1.119604 1.1597079 +-1.0047263 1.0394076 +-0.69546145 0.71856344 +-0.6959128 0.7181263 +-0.69636387 0.7176889 +-0.69681466 0.71725124 +-0.8511017 0.8749626 +-0.69771546 0.716375 +-1.1141834 1.1425438 +-0.69861513 0.7154977 +-0.69906455 0.71505857 +-1.1937685 1.219547 +-0.8500107 0.86727536 +-1.0085655 1.027758 +-0.7008595 0.7132994 +-1.268217 1.289106 +-0.8494173 0.8623238 +-0.70220274 0.711977 +-1.2366036 1.2522417 +-0.9384002 0.94907373 +-0.95395404 0.96359277 +-1.3727771 1.3849062 +-1.0275193 1.035296 +-0.70488185 0.7093247 +-0.8177372 0.821858 +-0.70577264 0.7084384 +-0.70621765 0.7079948 +-0.70666236 0.70755094 +-0.70710677 0.70710677 +-0.70755094 0.70666236 +-0.7079948 0.70621765 +-0.81966436 0.8165801 +-0.7088817 0.7053274 +-0.7468286 0.74215084 +-0.70976746 0.704436 +-0.71020997 0.7039899 +-0.7106521 0.70354354 +-1.3281058 1.3131695 +-1.2929311 1.2767849 +-1.8474187 1.8220567 +-1.7886187 1.7618483 +-2.5013938 2.4608605 +-3.11125 3.05699 +-3.568698 3.5020556 +-3.5708978 3.4998128 +-3.0593956 2.9947267 +-3.2973464 3.223593 +-3.5774884 3.4930756 +-2.8970814 2.8251696 +-2.2637355 2.2047718 +-1.6727302 1.6271135 +-2.0563455 1.9977542 +-2.2548337 2.1878347 +-2.633899 2.5524256 +-2.654943 2.569586 +-3.1835625 3.0773387 +-3.597184 3.4727895 +-3.5993652 3.4705288 +-3.1649337 3.0478122 +-3.274836 3.1496842 +-2.8688269 2.7557232 +-3.11953 2.992776 +-3.2222655 3.0874515 +-3.0908968 2.9578562 +-3.5075448 3.3523512 +-3.056124 2.9172318 +-3.4611187 3.299667 +-3.4758818 3.3095748 +-3.6148305 3.4375474 +-3.6254299 3.443292 +-3.6275926 3.441013 +-3.629754 3.4387333 +-3.631914 3.436452 +-3.6340723 3.4341693 +-3.6362293 3.4318852 +-3.3638918 3.1708581 +-2.9835715 2.808824 +-2.6673617 2.507975 +-3.1363804 2.9452572 +-3.315541 3.1095822 +-3.2805161 3.072861 +-3.6512883 3.415859 +-3.6534338 3.4135642 +-3.655578 3.411268 +-3.5867195 3.342798 +-3.6598618 3.4066715 +-3.6620016 3.4043715 +-3.63916 3.3788764 +-3.4199054 3.1713047 +-2.7005177 2.501057 +-2.3872392 2.2081325 +-2.8792691 2.659892 +-3.4333663 3.1677754 +-2.8199565 2.5985382 +-2.9202414 2.687558 +-3.5182605 3.2338467 +-3.6833193 3.3812952 +-3.6854432 3.3789804 +-3.3823788 3.0972078 +-2.653367 2.4265962 +-3.3851974 3.091977 +-3.5303085 3.2204523 +-3.280338 2.9886477 +-3.6981554 3.3650625 +-3.5278096 3.20601 +-2.8328485 2.571194 +-2.4131927 2.1875355 +-2.639892 2.3900163 +-2.6420252 2.3889287 +-2.2808332 2.0597343 +-2.0355208 1.8358812 +-1.6294878 1.4678154 +-1.4222461 1.2795179 +-1.8860567 1.69464 +-1.8745363 1.6821615 +-2.3879156 2.1401482 +-1.7966439 1.6081915 +-1.5141803 1.3536433 +-2.0702279 1.8483983 +-1.9678767 1.7547933 +-2.6886199 2.394463 +-3.1929214 2.8399944 +-3.2437558 2.8815615 +-2.920873 2.5914497 +-2.3472295 2.079869 +-3.0221624 2.6745358 +-2.3619382 2.0876095 +-1.9459177 1.7177315 +-2.647372 2.3339725 +-2.1970806 1.934535 +-2.408873 2.1183333 +-2.5004034 2.1960394 +-3.1423151 2.7563186 +-3.0992064 2.7150617 +-3.4349442 3.0053723 +-3.476172 3.0375903 +-3.4261563 2.9900906 +-3.2172287 2.8041952 +-3.1343372 2.7284818 +-2.405556 2.0914128 +-1.9012183 1.6508405 +-1.3404596 1.1624537 +-1.2422081 1.0758826 +-1.6440114 1.4220796 +-1.5776718 1.3629633 +-1.7176594 1.4820161 +-0.99566364 0.85797924 +-0.7579522 0.6523101 +-0.75836194 0.6518337 +-0.9481392 0.8139174 +-1.2486161 1.070496 +-1.1176276 0.95697576 +-0.7599977 0.6499257 +-1.0159446 0.86769867 +-1.177037 1.0040063 +-1.4853863 1.2654151 +-1.0377197 0.88291895 +-1.6401787 1.393731 +-0.98317647 0.8343845 +-0.8844917 0.74967897 +-0.98441696 0.8333115 +-0.7734608 0.65390277 +-0.7792146 0.65792817 +-1.1845279 0.99887925 +-0.7648764 0.644177 +-0.9781127 0.82271415 +-1.3664584 1.1478959 +-2.0866327 1.7506446 +-1.964479 1.6460578 +-1.2848166 1.0751882 +-1.5634964 1.3067296 +-0.9073191 0.7573459 +-1.602202 1.3356626 +-2.0331626 1.6927652 +-2.711688 2.2548068 +-2.5381072 2.107776 +-2.900868 2.4059532 +-2.951396 2.4447322 +-2.356721 1.9496491 +-2.4493876 2.0237188 +-2.3906322 1.972648 +-2.8207223 2.3245628 +-3.4524126 2.8414993 +-3.5767055 2.9400306 +-3.864554 3.1725736 +-3.8665466 3.1701448 +-3.8685377 3.1677146 +-3.2229724 2.6357186 +-2.7507608 2.2466652 +-2.7359974 2.231743 +-3.0100791 2.4521625 +-2.4298406 1.9769323 +-2.485128 2.0193205 +-1.8149401 1.4728591 +-1.5358497 1.2447721 +-1.3926617 1.1272724 +-0.9094576 0.73520356 +-0.77806777 0.6281804 +-1.1430734 0.9216854 +-1.411254 1.1364629 +-0.9572691 0.76988417 +-1.0845948 0.8711643 +-1.3068119 1.0483025 +-1.7512788 1.4030389 +-1.1013359 0.88120085 +-1.2945627 1.034472 +-0.78160757 0.6237705 +-1.0698588 0.85271275 +-0.8257834 0.65732855 +-0.78278196 0.6222961 +-0.7831728 0.6218041 +-0.7835634 0.6213119 +-0.78395355 0.62081945 +-1.5307977 1.2106874 +-2.164076 1.7093296 +-2.0254319 1.5977539 +-1.4772038 1.1637814 +-1.5376021 1.2097996 +-2.2856398 1.7960389 +-1.8628548 1.4619253 +-1.5352294 1.2032546 +-2.09277 1.6381121 +-2.4916298 1.9477953 +-2.8110647 2.1946647 +-3.2397923 2.5261075 +-3.8942926 3.0324974 +-3.9469209 3.0694976 +-3.9488487 3.067017 +-3.9507751 3.0645354 +-3.635038 2.815968 +-3.3060155 2.557761 +-2.5762823 1.9906026 +-2.236101 1.7255138 +-1.4872823 1.1461889 +-1.119981 0.8620034 +-1.7479932 1.3436105 +-1.8119456 1.3909577 +-1.1324542 0.86820924 +-0.8671829 0.6639712 +-1.5082787 1.153333 +-1.2332941 0.9418336 +-0.7951349 0.60643256 +-0.9163382 0.69796157 +-0.79589635 0.6054329 +-1.0750589 0.8167241 +-0.9814305 0.74462235 +-0.7970362 0.6039316 +-0.79741544 0.6034307 +-1.2646383 0.95574474 +-0.7981731 0.60242814 +-1.2038604 0.90743744 +-0.7989295 0.6014247 +-0.7993072 0.6009226 +-1.5943906 1.1971023 +-1.5252184 1.1436685 +-1.4985124 1.1221731 +-2.0372646 1.5236251 +-2.5728781 1.9216789 +-2.3083746 1.7218632 +-1.7876891 1.331726 +-2.0241516 1.5059003 +-2.6646702 1.9798248 +-3.1377587 2.3282666 +-3.8187158 2.829829 +-3.2244165 2.386291 +-2.5973008 1.9196576 +-1.9925506 1.4707534 +-1.4485481 1.0678056 +-0.80530787 0.5928568 +-1.215722 0.8938208 +-0.96587145 0.7091917 +-1.5963075 1.1705468 +-0.95406455 0.6986789 +-1.2130282 0.8871524 +-1.8549174 1.3548123 +-1.1762136 0.85796136 +-1.3132354 0.9566451 +-0.8086475 0.58829343 +-0.809017 0.58778524 +-0.80938613 0.5872768 +-0.9993482 0.724152 +-0.8101235 0.58625925 +-0.8104917 0.5857501 +-0.81085956 0.5852408 +-0.81122714 0.58473116 +-1.4813093 1.0663116 +-1.4363247 1.0325602 +-1.4689837 1.0546391 +-1.1609097 0.83235615 +-1.014934 0.7267285 +-0.8134258 0.58166873 +-0.81379104 0.58115757 +-0.81415606 0.5806461 +-0.8145207 0.58013445 +-0.873994 0.6216663 +-1.5205103 1.0800912 +-1.5873078 1.1260408 +-2.2754712 1.6120776 +-2.3509185 1.6633114 +-2.07872 1.4687678 +-2.7942019 1.9716768 +-2.7771156 1.9570078 +-2.772745 1.9513216 +-3.2599173 2.2911081 +-3.566122 2.5029666 +-3.1993132 2.242514 +-2.5359733 1.77518 +-2.4554393 1.7165085 +-2.042465 1.4259034 +-2.5677052 1.7901901 +-1.8714273 1.3030024 +-1.7430168 1.2119697 +-1.3079739 0.90825325 +-1.5571004 1.0797964 +-1.1652364 0.8069683 +-1.0552391 0.7298106 +-1.5135549 1.0453796 +-1.3814104 0.9528289 +-0.8235326 0.56726897 +-0.82388884 0.5667514 +-1.4705135 1.0102025 +-2.189247 1.5019288 +-2.9658535 2.031979 +-3.1715941 2.17001 +-2.6121266 1.7848129 +-2.64592 1.8054657 +-2.9171774 1.9878752 +-2.516473 1.7125058 +-2.7997143 1.9026839 +-2.6839626 1.8215549 +-2.7510931 1.8645915 +-3.3972197 2.299399 +-3.3080156 2.235992 +-4.127933 2.7864227 +-4.1459684 2.794807 +-4.1477237 2.7922013 +-4.1494775 2.7895947 +-3.995303 2.6823037 +-4.1529794 2.784378 +-3.917068 2.6226444 +-4.156475 2.7791572 +-4.158221 2.776545 +-4.1231937 2.7494128 +-4.1617064 2.7713175 +-3.3910937 2.2550855 +-3.0916333 2.053143 +-2.948153 1.9551901 +-2.7973354 1.8526396 +-1.9758056 1.3067657 +-2.4009955 1.5858116 +-2.4146426 1.5926472 +-2.335568 1.5383861 +-1.9182619 1.2617886 +-1.4593675 0.9586253 +-0.8946579 0.58687603 +-0.83649665 0.5479721 +-1.4023899 0.9174186 +-2.103218 1.3740017 +-2.6916282 1.7559896 +-3.191071 2.0789635 +-3.7192233 2.4197242 +-4.0948462 2.6604438 +-3.9760346 2.5796998 +-4.0181503 2.603439 +-3.4764555 2.2493641 +-3.2426522 2.0951977 +-2.8678794 1.85049 +-3.6324053 2.3405666 +-4.204723 2.7056062 +-4.173048 2.6815186 +-3.6544824 2.3450553 +-3.310571 2.1214342 +-3.2149403 2.0573053 +-3.4685695 2.2165372 +-4.1485195 2.6473794 +-4.0368323 2.5725384 +-4.21827 2.684437 +-3.6111674 2.2949007 +-3.344874 2.1227214 +-2.9549491 1.8726645 +-3.264254 2.0658092 +-3.9686599 2.5081072 +-3.4651687 2.186866 +-2.7337952 1.7228957 +-2.9386737 1.8494358 +-2.3926408 1.5036955 +-1.5501403 0.97285366 +-1.7605082 1.1033373 +-1.6006532 1.0017536 +-1.0611545 0.6631859 +-1.4565855 0.90904486 +-1.1497267 0.71653306 +-1.9095778 1.1884226 +-1.0852973 0.6744873 +-0.8496719 0.52731174 +-0.85000306 0.5267778 +-0.85033387 0.5262436 +-0.8506643 0.5257092 +-1.5118687 0.93302023 +-2.1027539 1.2958498 +-1.5965579 0.9825163 +-1.5028139 0.9235252 +-1.2867439 0.7896302 +-0.85264015 0.52249855 +-0.8529683 0.5219627 +-0.8532961 0.5214267 +-1.1448684 0.69861126 +-0.8539507 0.520354 +-0.85427743 0.51981735 +-0.8546039 0.5192805 +-1.0855261 0.65866154 +-1.0985124 0.66559726 +-0.85558116 0.51766866 +-1.2950758 0.7824733 +-0.9304228 0.5613555 +-0.85655546 0.51605505 +-0.85687953 0.5155167 +-0.85720325 0.51497823 +-0.85752666 0.5144395 +-1.1665459 0.69882715 +-1.5440688 0.92366695 +-1.9764849 1.180654 +-1.259231 0.75112903 +-1.9396064 1.15532 +-1.1047643 0.657109 +-0.909474 0.54017794 +-1.5836004 0.9392266 +-0.860422 0.50958216 +-1.491252 0.881924 +-2.2678564 1.339284 +-1.564742 0.9227337 +-1.7316635 1.0197021 +-1.017152 0.59809667 +-1.8001059 1.0569607 +-1.6557026 0.9707735 +-0.88555163 0.5184703 +-0.8914711 0.52118415 +-1.4982888 0.8746876 +-1.0451766 0.6092846 +-1.2227314 0.71176094 +-0.91796255 0.53358084 +-0.8648712 0.50199383 +-1.2516928 0.7254642 +-1.5961225 0.9237517 +-0.8658159 0.5003627 +-1.4301225 0.8252823 +-2.210678 1.2738675 +-2.1660407 1.2463336 +-1.3907951 0.79909676 +-1.7318832 0.9936259 +-1.579591 0.9049332 +-1.7864698 1.0219619 +-1.0777907 0.6156589 +-0.86863154 0.49545866 +-1.2811493 0.72968817 +-1.9595199 1.1144292 +-2.7699795 1.5730559 +-2.4092255 1.3661844 +-1.5746173 0.89160126 +-0.98478544 0.5568018 +-0.8708022 0.49163345 +-1.6059806 0.9053668 +-2.4462852 1.3770612 +-2.7216895 1.5298404 +-2.2907064 1.2856947 +-1.9518301 1.093883 +-1.4534171 0.813353 +-1.7788782 0.99401844 +-2.431371 1.3566206 +-2.0965402 1.1680698 +-2.9629993 1.6483716 +-3.5190284 1.9548064 +-3.2096162 1.7802911 +-2.4909303 1.3796089 +-2.755575 1.5239213 +-2.058228 1.136578 +-2.8018756 1.5449324 +-3.6119254 1.9886291 +-2.9153888 1.6027486 +-2.8711104 1.5760579 +-2.5953338 1.4225526 +-1.7735201 0.97065204 +-1.1877488 0.64908844 +-0.87781584 0.4789983 +-1.0606774 0.57791597 +-1.7436454 0.9486144 +-1.3621279 0.7399445 +-1.7426826 0.9452545 +-1.8288819 0.99052346 +-2.3654103 1.279186 +-2.7065203 1.4614571 +-2.1830828 1.1770422 +-2.0281737 1.0918764 +-1.9111357 1.0273201 +-2.188146 1.1744541 +-2.630526 1.4097664 +-1.8470141 0.9883689 +-1.1896625 0.6356476 +-0.8822912 0.47070393 +-0.8825868 0.4701495 +-1.5388505 0.81849694 +-1.533062 0.81418276 +-2.1121447 1.1200228 +-1.4435031 0.7642956 +-1.6461339 0.8702592 +-2.2667356 1.1965301 +-2.4389095 1.285456 +-1.585499 0.83438337 +-1.3570095 0.71305025 +-1.5990291 0.8389395 +-2.2506835 1.1790309 +-2.488896 1.3018271 +-2.5832567 1.3491164 +-3.3561642 1.7500875 +-2.6598632 1.3848733 +-1.9471896 1.0122609 +-1.3832476 0.71798784 +-1.3658485 0.7078677 +-1.3240807 0.68516594 +-1.0689195 0.5522777 +-1.67798 0.865625 +-1.8826901 0.9697322 +-2.3774962 1.2227066 +-2.1835299 1.1212187 +-2.2063897 1.1312056 +-2.5587687 1.309839 +-2.7032633 1.3816631 +-3.2669098 1.66716 +-2.4190712 1.2325784 +-2.9779177 1.5149688 +-2.0998204 1.0665903 +-2.6087518 1.3230374 +-2.0152948 1.0204722 +-1.5964314 0.80711514 +-1.4388648 0.72631866 +-1.0271538 0.5176832 +-0.92722017 0.4665865 +-1.1455835 0.57556736 +-0.89384145 0.4483832 +-1.613831 0.8082873 +-1.0177487 0.5089398 +-0.89468503 0.44669756 +-1.484129 0.73983 +-1.7656989 0.8788064 +-0.9219904 0.45816147 +-0.8958049 0.44444758 +-1.4587264 0.7225955 +-1.7784226 0.87956923 +-1.621036 0.800462 +-2.1188817 1.044641 +-1.9920074 0.9805347 +-2.2138138 1.087988 +-2.2998078 1.1284566 +-2.805206 1.3742563 +-2.0702965 1.0126153 +-2.6908946 1.3140652 +-2.209808 1.0774134 +-2.849628 1.3871485 +-3.2118874 1.5609945 +-3.6000032 1.7468255 +-2.866271 1.3885732 +-3.2466455 1.5703287 +-3.9682577 1.9162804 +-3.6416783 1.7557538 +-3.4728725 1.6716793 +-3.9781911 1.9118384 +-3.5707517 1.7132703 +-3.8182094 1.8290517 +-3.3268778 1.591118 +-2.82738 1.3500451 +-2.524076 1.2032737 +-2.0235782 0.9631171 +-1.1211872 0.5327626 +-1.9416864 0.92115 +-1.0680937 0.5058895 +-0.9040229 0.4274841 +-0.9042913 0.426916 +-1.098836 0.5179165 +-1.350583 0.6355361 +-0.9050944 0.42521068 +-0.9053614 0.4246419 +-0.905628 0.42407298 +-0.96527314 0.45126337 +-0.90616024 0.4229346 +-0.9064258 0.42236516 +-0.90669096 0.42179555 +-0.90695584 0.4212258 +-0.9072203 0.42065585 +-0.9074844 0.42008573 +-1.257988 0.58137864 +-0.9215594 0.42519578 +-1.2548057 0.5779954 +-1.3882085 0.63838714 +-0.9087997 0.41723272 +-0.9090617 0.41666162 +-0.9093233 0.41609034 +-1.1925844 0.54479975 +-1.5212809 0.69380075 +-1.6875948 0.7683699 +-0.9758696 0.443578 +-0.91125053 0.413515 +-1.3567969 0.614671 +-1.1079589 0.50110096 +-0.9114033 0.41151437 +-1.465124 0.66042095 +-1.075006 0.48375845 +-1.3446596 0.6040883 +-0.91243464 0.40922245 +-1.1320033 0.50684386 +-1.6260102 0.7268046 +-1.4736162 0.657576 +-2.0083625 0.89468473 +-2.275551 1.0119987 +-1.7527424 0.7781729 +-1.0949365 0.4853005 +-0.9144801 0.4046309 +-0.9147341 0.40405625 +-1.821412 0.8031865 +-1.9296838 0.84948325 +-1.9158177 0.8419425 +-2.7954266 1.2264082 +-2.0806143 0.91124773 +-2.4189441 1.0576152 +-2.4765506 1.080949 +-3.1869292 1.3886273 +-3.4894314 1.5178273 +-4.1592917 1.8060951 +-4.5875244 1.9886223 +-4.5887733 1.9857395 +-4.5900197 1.9828558 +-4.5912647 1.9799714 +-4.592508 1.9770863 +-4.417339 1.8983865 +-4.594989 1.9713136 +-4.0358067 1.728415 +-4.009914 1.7143451 +-4.5986967 1.9626487 +-4.5446773 1.9362196 +-4.601159 1.9568683 +-4.602388 1.953977 +-4.0377827 1.7112763 +-4.3455443 1.8384906 +-4.606063 1.9452982 +-4.602927 1.9405669 +-3.6884062 1.5522815 +-3.3451383 1.4053423 +-4.252555 1.7834188 +-3.98692 1.6690732 +-3.9925733 1.6684922 +-3.5100048 1.4642375 +-4.308133 1.7940085 +-4.47106 1.8585595 +-4.6181946 1.9163193 +-4.3151298 1.7873852 +-4.140385 1.7119567 +-4.320664 1.7833198 +-3.4585488 1.4249461 +-3.1983078 1.3153749 +-2.3530896 0.966032 +-2.5729117 1.0543888 +-2.5424814 1.040053 +-3.000704 1.2252978 +-3.257198 1.3276466 +-2.4193478 0.9843634 +-2.336185 0.94881636 +-2.8433855 1.1527296 +-3.354629 1.3575381 +-3.614937 1.4602358 +-4.18475 1.6873513 +-4.242824 1.707669 +-4.6395717 1.8639673 +-3.859488 1.5477496 +-4.5949645 1.8393433 +-4.643077 1.8552185 +-3.8811398 1.5479466 +-3.7812636 1.505359 +-3.9827306 1.5826669 +-3.6315446 1.4404703 +-3.4388504 1.3615372 +-2.8129404 1.1116779 +-2.560316 1.0099809 +-3.4425318 1.3554941 +-3.465625 1.3620726 +-4.344084 1.7041773 +-4.6557884 1.8230839 +-4.656933 1.8201581 +-4.658076 1.8172318 +-4.564826 1.7775489 +-4.6603556 1.8113768 +-4.0361676 1.5658505 +-4.607017 1.7839845 +-4.6605 1.8013285 +-4.664893 1.7996584 +-4.585791 1.7658323 +-4.667151 1.7937949 +-4.3713684 1.6769607 +-4.0911126 1.5664998 +-4.4489913 1.7003284 +-3.651844 1.3930433 +-3.8760026 1.4757624 +-2.9886742 1.1357684 +-3.7966366 1.4400842 +-4.337324 1.6420534 +-4.671039 1.7650385 +-4.6783295 1.764435 +-4.2605615 1.6038165 +-4.6805434 1.7585547 +-4.6816473 1.7556136 +-4.6827493 1.7526716 +-4.1975923 1.5680796 +-3.5573118 1.3263458 +-4.315265 1.6058615 +-3.4526036 1.2823658 +-3.6088183 1.3378074 +-3.298629 1.2204617 +-2.5069585 0.9257607 +-2.8123982 1.0365448 +-2.5304818 0.9308354 +-2.3123252 0.84893763 +-2.0102515 0.73660254 +-2.6296887 0.9617049 +-2.1458764 0.78324145 +-2.444194 0.89038694 +-1.6713018 0.6076435 +-2.156213 0.78241163 +-1.5948387 0.57757545 +-2.1714478 0.78485304 +-2.0287864 0.7318483 +-1.1962166 0.43066448 +-0.94109344 0.3381467 +-1.6003356 0.5738856 +-0.9415176 0.3369638 +-0.9417291 0.33637217 +-0.9419403 0.33578038 +-0.94215107 0.33518848 +-1.0638566 0.3777347 +-0.9425716 0.33400428 +-1.851549 0.6547952 +-1.6449926 0.58058447 +-2.302498 0.8110182 +-2.5263832 0.8880943 +-2.4636054 0.8642874 +-2.005237 0.7020669 +-2.8357534 0.9908448 +-1.9039093 0.66390574 +-1.0680158 0.37167165 +-0.94465154 0.32807538 +-1.6137087 0.5593015 +-1.3297156 0.45993555 +-1.7344924 0.59872395 +-1.3307453 0.45842022 +-1.1423382 0.39271423 +-0.94588166 0.3245118 +-1.0858084 0.3717553 +-0.9462887 0.32332292 +-1.7154537 0.5849237 +-1.5966939 0.54331017 +-1.7212466 0.58448553 +-2.00833 0.6805636 +-1.6791298 0.5678315 +-1.5810301 0.5335504 +-0.9477016 0.3191578 +-0.9479019 0.31856227 +-1.0410527 0.3491397 +-1.3254243 0.44358367 +-0.94850075 0.31677496 +-0.9486996 0.31617895 +-0.948898 0.31558278 +-0.94909614 0.31498653 +-1.4774668 0.4893121 +-1.5484067 0.5117268 +-1.4224528 0.46910962 +-2.2615042 0.74424464 +-2.1871305 0.718246 +-1.7626095 0.57760817 +-1.4132973 0.4621552 +-1.1844925 0.38651124 +-2.1340425 0.6948751 +-1.5091329 0.490347 +-2.4502099 0.7944197 +-2.920962 0.9450216 +-3.3517733 1.0820765 +-3.945674 1.2710726 +-4.1457233 1.3326426 +-4.7610736 1.527147 +-4.573075 1.4636768 +-4.402077 1.405898 +-4.243088 1.3521839 +-4.7576885 1.5128843 +-4.360342 1.383517 +-3.8257043 1.2112336 +-4.1605783 1.3143805 +-4.5507197 1.4344871 +-4.3665433 1.3734151 +-4.770575 1.4972024 +-4.771515 1.4942046 +-4.7724524 1.4912063 +-3.998601 1.2466506 +-3.185787 0.9910423 +-3.126533 0.97045535 +-3.7482448 1.1608491 +-4.6966634 1.4513454 +-3.8128836 1.1756191 +-4.5106807 1.3876665 +-4.005178 1.2293994 +-3.6885695 1.1296802 +-3.845997 1.1752522 +-2.9436653 0.89749753 +-2.3701866 0.72102153 +-2.1228518 0.6443242 +-2.171486 0.65759575 +-2.9827583 0.9012295 +-2.8149707 0.84860337 +-3.3674662 1.0128514 +-4.243185 1.2733394 +-4.1708155 1.248766 +-3.8416305 1.1475763 +-3.668656 1.093395 +-4.2969027 1.2776966 +-3.9188766 1.1626099 +-3.3734617 0.9984964 +-3.7172403 1.0977101 +-4.207872 1.239721 +-4.7970624 1.4100329 +-4.767502 1.3980902 +-4.7988305 1.4040036 +-4.7997117 1.4009881 +-4.800591 1.3979721 +-4.668672 1.3563746 +-4.802344 1.3919384 +-4.8032174 1.3889208 +-4.8040895 1.3859025 +-4.8049593 1.3828838 +-4.805827 1.3798645 +-4.806693 1.3768445 +-3.904512 1.1157668 +-4.2084074 1.1997495 +-3.4723282 0.9875464 +-2.992261 0.8489812 +-2.0954607 0.5931136 +-2.0427818 0.5768169 +-2.9896545 0.84215593 +-3.653346 1.0266341 +-3.7094378 1.0398822 +-2.8240407 0.7897616 +-3.191735 0.8904279 +-4.15253 1.1556581 +-4.0995417 1.1381364 +-4.8186183 1.33451 +-4.819456 1.331482 +-4.422101 1.2187139 +-4.7501245 1.3059052 +-4.1924224 1.1497488 +-4.6675987 1.2769105 +-4.823615 1.3163347 +-4.8244414 1.3133037 +-4.8252654 1.3102722 +-4.106605 1.1123542 +-3.2086656 0.86696607 +-4.0275745 1.0855165 +-4.57061 1.2287962 +-4.829358 1.2951068 +-4.3603144 1.1663854 +-3.8312657 1.0222856 +-4.6140604 1.2280514 +-4.238678 1.1252904 +-4.4835343 1.1872802 +-4.4482775 1.1749533 +-4.3947253 1.1578548 +-4.835807 1.2708155 +-4.8366046 1.2677767 +-3.9085479 1.0218893 +-4.7870426 1.2483588 +-4.8389854 1.2586577 +-4.8397756 1.255617 +-4.8405633 1.2525759 +-4.8413496 1.2495342 +-4.0266767 1.0365721 +-3.2682145 0.8391349 +-2.9371052 0.75215364 +-2.0687582 0.52839667 +-1.7047145 0.43427283 +-1.8635291 0.47348383 +-2.7626007 0.70007163 +-2.4956822 0.63076323 +-1.7783893 0.44828472 +-2.1237338 0.53391796 +-2.7728941 0.6952682 +-3.4716992 0.8681666 +-3.208738 0.8002662 +-4.161729 1.0351671 +-4.852911 1.2038507 +-4.8536663 1.2008014 +-4.8544197 1.1977515 +-3.9303498 0.9671324 +-4.8099356 1.1803654 +-4.7521806 1.163027 +-4.8091197 1.1737598 +-4.8581586 1.182495 +-4.326441 1.0501937 +-3.578731 0.86631507 +-2.7242548 0.65765756 +-2.4503179 0.5898978 +-3.2601297 0.7826879 +-3.6308715 0.86928266 +-4.218608 1.007193 +-3.6516852 0.86941534 +-3.2369716 0.768529 +-4.1148553 0.9742273 +-4.4507656 1.0508041 +-4.866936 1.1458321 +-4.8676553 1.1427739 +-4.8660893 1.1391807 +-4.8690877 1.136656 +-4.8698006 1.1335965 +-4.870512 1.1305366 +-4.6610703 1.0788352 +-4.8719287 1.1244152 +-4.8726344 1.1213537 +-4.8733377 1.118292 +-4.135994 0.9463575 +-4.874739 1.1121671 +-4.7230473 1.074437 +-4.36981 0.9911925 +-4.4990034 1.0175253 +-4.877519 1.099912 +-4.1408696 0.9310591 +-3.6308665 0.81399053 +-4.522784 1.0109621 +-4.153847 0.92575485 +-3.865301 0.8588986 +-3.4295764 0.7598164 +-2.4871807 0.54939115 +-3.267999 0.71971214 +-3.0074837 0.6603578 +-2.342698 0.51284707 +-1.9673263 0.42937815 +-2.7798164 0.6048783 +-2.7768466 0.6024051 +-3.0362656 0.6566857 +-2.800971 0.6039541 +-2.2742963 0.48889562 +-2.556194 0.54781383 +-3.1069663 0.66380745 +-3.377091 0.71930146 +-2.4280543 0.51556736 +-1.6403234 0.34722546 +-1.826532 0.38544342 +-2.47584 0.5208388 +-1.8609157 0.3902572 +-1.3410022 0.28034538 +-1.4369584 0.29946345 +-2.0531414 0.42653066 +-1.3355074 0.2765703 +-0.97935003 0.202172 +-1.6800843 0.3457275 +-2.0379343 0.4180313 +-1.7533246 0.3585029 +-1.2977725 0.2645066 +-2.037756 0.41399357 +-2.1482277 0.4350319 +-1.3066496 0.26375157 +-1.5879862 0.31950203 +-2.4605274 0.49344853 +-1.8165942 0.36312324 +-2.4389873 0.48594135 +-3.37703 0.6706302 +-3.7876847 0.749707 +-2.8993607 0.57198566 +-2.6577766 0.52259123 +-2.244355 0.4398368 +-2.7514322 0.53741616 +-2.410116 0.46917757 +-1.9635025 0.38095498 +-2.8211298 0.5455111 +-1.9324484 0.37241074 +-1.8041881 0.34651756 +-1.5406779 0.2949034 +-1.0580574 0.20183524 +-0.98240477 0.18676409 +-0.98252195 0.1861468 +-1.7387897 0.32829627 +-1.3180997 0.24800932 +-1.0076681 0.18894404 +-1.3517069 0.2525744 +-1.2882273 0.23987529 +-1.217896 0.22598752 +-1.1116109 0.20554331 +-1.4874449 0.27407077 +-1.5524594 0.28504166 +-2.061573 0.37717938 +-1.7578722 0.32047382 +-2.624531 0.47676885 +-2.5872626 0.46831962 +-3.0293348 0.5463735 +-3.7939649 0.6818217 +-3.7017589 0.66285044 +-4.476917 0.7987502 +-3.5053766 0.6231403 +-4.1182246 0.7294154 +-4.224919 0.7455754 +-3.3067334 0.5814002 +-2.7117863 0.4750384 +-1.9627248 0.3425503 +-1.0398606 0.18081154 +-1.1255866 0.19498909 +-1.1513741 0.19871128 +-0.9855383 0.16945271 +-0.9856446 0.16883345 +-0.9857505 0.16821411 +-1.0116256 0.17197554 +-1.6610795 0.28130844 +-1.7121518 0.28885114 +-0.9861701 0.16573612 +-0.98627406 0.16511646 +-1.8701025 0.3118742 +-2.1519902 0.35749462 +-2.8642387 0.4739662 +-2.6836574 0.44235194 +-3.3405166 0.54846746 +-3.7100317 0.60674316 +-3.693766 0.60170037 +-4.6210146 0.7497654 +-4.9359603 0.797683 +-4.9364605 0.7945815 +-4.004462 0.64198434 +-4.1245356 0.65857637 +-4.9261904 0.78340507 +-4.9384418 0.7821723 +-4.9389324 0.77906924 +-4.5390086 0.7130625 +-4.5646586 0.7141535 +-4.400175 0.68558747 +-4.079511 0.63299996 +-3.0996299 0.4789618 +-3.666878 0.5642555 +-3.9971583 0.612508 +-3.4704764 0.52956986 +-3.5006635 0.5319257 +-2.5928116 0.39231107 +-3.3864932 0.51022446 +-4.1325927 0.6199799 +-3.7169716 0.55523986 +-3.4096758 0.5071461 +-3.6831384 0.5454551 +-2.9918132 0.4411523 +-2.8850777 0.4235618 +-3.4888434 0.50996226 +-3.045979 0.44327447 +-3.0207558 0.43766576 +-2.6020327 0.3753295 +-2.9076746 0.41755193 +-2.1270816 0.30409223 +-2.4162006 0.34387627 +-2.5930681 0.3673861 +-2.181977 0.30774432 +-2.1961231 0.3083323 +-1.845282 0.25789255 +-1.428402 0.19871537 +-1.3952671 0.1932122 +-1.3426746 0.18506962 +-0.9907194 0.13592307 +-1.8011224 0.24595453 +-2.6495554 0.36011767 +-2.5575552 0.34597686 +-1.7476981 0.23530418 +-2.3392045 0.31344634 +-2.1942837 0.29262403 +-1.380068 0.18315984 +-2.2609394 0.29862183 +-2.1172786 0.2782939 +-2.7189426 0.35563853 +-3.1487043 0.40983945 +-2.2083306 0.28602824 +-1.5805287 0.2037042 +-1.9670901 0.25226924 +-1.9942203 0.25447503 +-2.3157473 0.29402527 +-2.6185539 0.3308003 +-2.034996 0.25578085 +-2.856019 0.35715342 +-2.6635683 0.33138728 +-1.8242136 0.22579533 +-1.4115945 0.1738222 +-1.11955 0.13714612 +-1.0477371 0.12768082 +-1.2745523 0.15450864 +-1.4231861 0.1716196 +-1.6070307 0.19276479 +-0.99295723 0.11847329 +-0.9930315 0.11784937 +-0.99310535 0.11722541 +-1.4828907 0.17409466 +-0.99325186 0.11597735 +-0.9933245 0.11535324 +-0.9933968 0.1147291 +-1.494104 0.17160541 +-2.3855665 0.2724758 +-3.1390662 0.35654148 +-2.2199845 0.25073758 +-1.9201397 0.21564965 +-1.7366518 0.19393739 +-2.6184525 0.29074526 +-1.912561 0.21114871 +-2.2739756 0.24960315 +-2.4616163 0.26863435 +-3.0818794 0.33436385 +-3.0803475 0.33223957 +-2.8715048 0.30788916 +-3.6315823 0.38707852 +-3.9473624 0.41822827 +-3.3265648 0.3503405 +-3.5021133 0.36660385 +-4.3403373 0.45159292 +-3.9631374 0.40983006 +-3.9257698 0.40347302 +-3.3048654 0.33756092 +-2.4255395 0.24620624 +-1.6079419 0.16219471 +-1.0073408 0.100972146 +-0.99507636 0.09911134 +-0.9951384 0.098486096 +-0.9952001 0.09786081 +-0.99526143 0.09723549 +-0.9953223 0.09661014 +-0.9953828 0.095984735 +-1.4098324 0.1350561 +-1.4544431 0.13840742 +-1.3668549 0.12920584 +-1.6909274 0.15876783 +-1.4923706 0.13917866 +-1.3541374 0.12542884 +-2.244447 0.20647272 +-3.1471364 0.28751954 +-3.3104346 0.30034107 +-3.4670856 0.3123571 +-3.626316 0.32440564 +-4.582743 0.40706408 +-4.3756833 0.38590106 +-3.5484676 0.3107003 +-3.0498354 0.26510972 +-2.0644155 0.17814437 +-1.9521556 0.16722149 +-1.298514 0.110408776 +-1.6758723 0.1414339 +-2.1456106 0.17971942 +-2.3636773 0.19648951 +-2.6994293 0.22269242 +-3.40602 0.2788289 +-3.4642236 0.28140253 +-3.6593118 0.2949355 +-3.06795 0.24533246 +-3.012941 0.2390285 +-2.4836626 0.19546849 +-1.8854223 0.14719403 +-1.3127952 0.10165946 +-2.0510736 0.15753342 +-2.5024872 0.19062285 +-1.8649482 0.14088084 +-1.1494513 0.08610488 +-0.99725276 0.07407368 +-0.99729913 0.07344707 +-1.5331511 0.11194193 +-1.464325 0.10599171 +-2.1439264 0.153829 +-2.5944498 0.18451606 +-1.7013679 0.11992613 +-1.4619156 0.102124535 +-1.2312423 0.08523312 +-1.3851777 0.09501488 +-0.9976985 0.06780633 +-0.9977409 0.06717945 +-1.4273579 0.095205374 +-1.9158349 0.12657793 +-1.6273875 0.106493466 +-1.3345613 0.08648933 +-1.0889502 0.069884874 +-1.6760943 0.10650824 +-2.5814393 0.1624104 +-1.8257641 0.113715686 +-2.7503846 0.1695699 +-1.8689767 0.11404958 +-1.8790523 0.11347943 +-0.9982191 0.05965482 +-1.5372081 0.09089621 +-0.9982932 0.058400374 +-1.3320642 0.077086255 +-1.8237151 0.10438831 +-2.6604524 0.1506056 +-2.084096 0.11666501 +-1.3839531 0.07659965 +-0.9985063 0.054636493 +-1.8338352 0.099188566 +-2.6687257 0.1426645 +-3.2508621 0.17173596 +-2.3169103 0.12093755 +-1.7205601 0.088725425 +-2.0275588 0.10327937 +-1.7720246 0.08914676 +-1.3501506 0.06707274 +-1.3193569 0.06471197 +-2.245229 0.1087102 +-1.4274457 0.06821554 +-0.99888986 0.047106452 +-1.58436 0.07371885 +-2.0573587 0.094431624 +-1.3873779 0.062806346 +-2.0663154 0.0922408 +-2.5536544 0.11238807 +-3.3996654 0.14748143 +-3.8041463 0.16263364 +-4.3763466 0.18434148 +-3.623165 0.1503353 +-4.1238403 0.16851425 +-4.995958 0.20100775 +-4.141692 0.1640307 +-4.9962068 0.19472948 +-4.996328 0.19159023 +-4.2883916 0.16174519 +-3.6635826 0.13587415 +-3.145462 0.11467919 +-3.0205922 0.10822624 +-3.3488722 0.11788153 +-2.6697268 0.09229588 +-3.3507624 0.11373233 +-2.7630258 0.092045225 +-2.9104958 0.09512721 +-3.481394 0.111596845 +-4.3236065 0.13587481 +-3.6560311 0.11259603 +-4.120141 0.124298215 +-4.99782 0.14763339 +-4.997912 0.14449315 +-4.9980016 0.14135283 +-4.846082 0.134009 +-4.998175 0.13507205 +-4.5835114 0.12098409 +-4.976949 0.12823986 +-4.9984207 0.12565048 +-4.998499 0.12250985 +-4.9985747 0.11936918 +-4.403888 0.1023991 +-4.140619 0.09367457 +-4.933651 0.108514145 +-4.580448 0.09786623 +-4.0327644 0.08362939 +-4.1809144 0.0840736 +-3.2801988 0.06389938 +-2.679321 0.050509993 +-3.38276 0.061644897 +-2.8131855 0.04949725 +-3.0337427 0.05147117 +-2.5590115 0.041808452 +-1.8386697 0.028884131 +-2.4544153 0.037014518 +-2.039291 0.02947251 +-1.685488 0.023299998 +-1.8700422 0.024676057 +-1.2019871 0.015105411 +-1.4563909 0.017387295 +-2.1959848 0.024837062 +-2.517522 0.026891721 +-1.7444981 0.0175382 +-1.0891569 0.010265365 +-1.7127566 0.015066583 +-2.1157498 0.017282126 +-2.2725568 0.017134998 +-1.5647615 0.010815027 +-0.9999803 0.006283144 +-0.999984 0.0056548365 +-0.99998736 0.005026527 +-1.6310133 0.0071736174 +-2.1949227 0.008274702 +-1.3698987 0.004303678 +-0.99999684 0.0025132715 +-0.9999982 0.0018849545 +-0.9999992 0.0012566367 +-1.9295467 0.0012123701 +-1.008038 1.2344906E-16 +-0.9999998 -6.2831846E-4 +-0.9999992 -0.0012566367 +-1.9183855 -0.003616076 +-1.1119745 -0.0027947028 +-1.3075716 -0.0041078706 +-2.1432893 -0.008080049 +-2.4356377 -0.010712563 +-1.688679 -0.008488298 +-1.7203428 -0.009728413 +-2.448597 -0.015385191 +-2.077721 -0.014360406 +-2.9999883 -0.022619808 +-3.8806434 -0.031698346 +-4.6822286 -0.041188095 +-4.999778 -0.047123194 +-4.9997473 -0.050264634 +-4.999715 -0.05340606 +-4.85332 -0.054892097 +-4.4632325 -0.053284835 +-4.999605 -0.0628302 +-4.601683 -0.0607213 +-4.999522 -0.06911284 +-4.999478 -0.072254114 +-4.293534 -0.064749874 +-4.981989 -0.078263335 +-4.5270524 -0.07396179 +-4.0963993 -0.06950044 +-3.3963048 -0.05975708 +-3.8427825 -0.070028 +-3.332634 -0.06282611 +-3.1285186 -0.060944602 +-2.6127856 -0.05254025 +-2.262758 -0.046923906 +-1.4956431 -0.031956032 +-0.9997582 -0.021989375 +-1.727196 -0.039074916 +-2.301362 -0.053511214 +-2.2317517 -0.053295664 +-2.047841 -0.05019121 +-2.6633744 -0.066952 +-1.6646786 -0.042893372 +-1.660274 -0.04382377 +-2.5683246 -0.069407105 +-3.2535343 -0.08997018 +-3.398488 -0.096115604 +-3.616843 -0.10456547 +-2.796973 -0.08262135 +-3.317357 -0.10007948 +-3.0481472 -0.09387482 +-3.677019 -0.11555497 +-4.3249955 -0.13863866 +-3.8453393 -0.12568182 +-3.137743 -0.10452825 +-3.8828542 -0.13179272 +-4.848642 -0.16762377 +-4.9969053 -0.17589289 +-4.9967937 -0.1790325 +-4.9966803 -0.18217205 +-4.7471604 -0.17606166 +-4.760508 -0.179552 +-4.396967 -0.16860703 +-4.9620776 -0.1933993 +-4.9960833 -0.19786866 +-4.6334877 -0.1864241 +-4.9958305 -0.20414676 +-4.9957013 -0.20728569 +-4.99557 -0.21042454 +-4.797918 -0.20511903 +-4.1306324 -0.17919163 +-3.2472951 -0.14291567 +-2.8081527 -0.12535658 +-3.0282888 -0.13709009 +-2.2578447 -0.10363382 +-2.9197063 -0.13585132 +-3.789742 -0.1787197 +-2.9542294 -0.1411783 +-3.0922587 -0.14972194 +-3.767489 -0.18478826 +-3.5158489 -0.17466024 +-4.480833 -0.22542112 +-4.993526 -0.25435916 +-4.149356 -0.21397299 +-4.7530255 -0.24809732 +-4.9930377 -0.2637713 +-4.992871 -0.26690844 +-4.992702 -0.27004552 +-4.992532 -0.27318245 +-4.954845 -0.27424297 +-4.992184 -0.27945605 +-4.776443 -0.27038977 +-4.155151 -0.23783825 +-3.2720206 -0.1893511 +-3.43565 -0.2009863 +-2.4534726 -0.14507557 +-2.7290275 -0.16309011 +-2.4947271 -0.15066116 +-1.8093798 -0.11041283 +-2.6376472 -0.16261926 +-1.7001929 -0.105894625 +-0.9980267 -0.06279052 +-0.9979871 -0.06341758 +-0.99794704 -0.064044625 +-1.100937 -0.071348764 +-1.1825653 -0.07738506 +-0.99782455 -0.0659256 +-1.6628779 -0.11091465 +-2.2112973 -0.1488901 +-3.1781049 -0.21599275 +-3.4908066 -0.23944838 +-4.3586345 -0.30172777 +-4.4098325 -0.30805618 +-4.6574383 -0.32829383 +-4.399452 -0.312887 +-4.987179 -0.35783538 +-4.9869533 -0.36096886 +-4.6774926 -0.34152377 +-4.2081037 -0.30990994 +-4.2442856 -0.31525594 +-4.5300937 -0.33934727 +-4.0958133 -0.3094036 +-4.985557 -0.3797666 +-4.985317 -0.38289908 +-4.9850755 -0.38603136 +-4.9848323 -0.3891635 +-4.9845867 -0.39229548 +-4.984339 -0.39542732 +-4.7868795 -0.38278884 +-3.8243823 -0.30823994 +-3.2897913 -0.26723322 +-3.1996589 -0.26193544 +-3.9226785 -0.32360572 +-3.71325 -0.3086778 +-3.157091 -0.26444247 +-2.4250011 -0.20465602 +-2.8733668 -0.24431384 +-2.4452314 -0.20945832 +-1.5078195 -0.1301141 +-1.2522835 -0.10885588 +-0.99618864 -0.08722529 +-0.9961336 -0.0878512 +-0.9960782 -0.08847707 +-1.5130615 -0.13535658 +-0.99596626 -0.089728706 +-0.9959097 -0.09035447 +-1.3928424 -0.12724882 +-1.8094633 -0.1664574 +-0.9957376 -0.09223156 +-1.621927 -0.15126109 +-1.776174 -0.16677196 +-2.373209 -0.22433431 +-2.2086163 -0.2101759 +-1.6425866 -0.15735298 +-1.0165713 -0.09802794 +-0.9953223 -0.09661014 +-0.99526143 -0.09723549 +-1.4609056 -0.14365493 +-2.4278798 -0.24028055 +-2.2597547 -0.22507551 +-1.674965 -0.16789237 +-1.7063302 -0.17211926 +-1.8411081 -0.18688308 +-2.8247259 -0.28851917 +-3.2361238 -0.33259428 +-3.8723094 -0.40043747 +-4.4443645 -0.46241653 +-3.4873962 -0.36506325 +-2.587911 -0.2725484 +-2.3588681 -0.2499252 +-1.7393256 -0.18538906 +-1.7441412 -0.18701074 +-1.3392998 -0.14445396 +-0.994166 -0.10786054 +-1.129835 -0.12329804 +-1.009577 -0.110816315 +-1.9852751 -0.21917641 +-1.1755587 -0.13053057 +-1.2287722 -0.13722086 +-1.2916803 -0.14506778 +-0.993682 -0.11223206 +-1.1319956 -0.12857434 +-1.6288778 -0.18604797 +-1.8803755 -0.21597064 +-2.7128909 -0.3133164 +-2.445308 -0.28396985 +-2.8155997 -0.32876432 +-2.6098144 -0.30639803 +-3.3087113 -0.3905578 +-3.74802 -0.4448014 +-3.0285466 -0.36134675 +-2.492781 -0.29901132 +-3.2567122 -0.39272138 +-3.997159 -0.48455885 +-3.24632 -0.39560762 +-3.22098 -0.3945736 +-3.027883 -0.37285018 +-2.276649 -0.2817963 +-1.6156043 -0.20100509 +-0.9922714 -0.12408641 +-1.5718842 -0.19757183 +-0.9921147 -0.12533323 +-1.9271305 -0.24468347 +-1.9401506 -0.24757539 +-1.3691725 -0.17558935 +-2.085136 -0.26873976 +-1.2958292 -0.16783889 +-2.0459032 -0.26629743 +-2.2741694 -0.29746208 +-1.9670446 -0.25854725 +-1.2106488 -0.15990087 +-0.9913076 -0.13156436 +-0.99122477 -0.13218719 +-1.1392009 -0.15264948 +-0.9910579 -0.1334327 +-0.99097383 -0.13405538 +-0.99088943 -0.13467799 +-0.9908046 -0.13530056 +-1.6964651 -0.2327488 +-0.9906338 -0.13654554 +-1.8245412 -0.2526567 +-1.6701887 -0.2323521 +-1.5699987 -0.21941958 +-0.9902875 -0.13903484 +-1.0429227 -0.147093 +-1.0955956 -0.15522408 +-1.6261916 -0.23144133 +-2.5715165 -0.3676296 +-1.6363461 -0.23498484 +-2.4149544 -0.34834448 +-2.9834764 -0.43226448 +-3.8473902 -0.559902 +-3.4210663 -0.5000553 +-3.2679675 -0.47977433 +-2.6847663 -0.39587727 +-3.0392244 -0.45009452 +-2.447619 -0.36405236 +-3.1294372 -0.46747416 +-2.8599327 -0.4290529 +-1.8927026 -0.2851632 +-2.7120676 -0.41035533 +-2.41204 -0.36650935 +-2.3640103 -0.36073107 +-1.535166 -0.23524247 +-1.961096 -0.30177146 +-2.7845318 -0.4302721 +-2.8376184 -0.44030085 +-2.9568458 -0.4607036 +-2.1211863 -0.3318655 +-2.0863004 -0.32775056 +-2.3160572 -0.36533582 +-2.6780746 -0.42416534 +-2.0522273 -0.3263628 +-1.5288635 -0.24411802 +-2.2533424 -0.36124966 +-1.4686196 -0.23639163 +-2.1049902 -0.34018 +-2.7920675 -0.45301643 +-2.5405116 -0.41383964 +-1.947276 -0.3184599 +-1.861766 -0.3056767 +-0.98668593 -0.16263716 +-1.8800646 -0.3111078 +-2.5951786 -0.4311183 +-2.9657192 -0.4945886 +-3.6277294 -0.6073341 +-4.1287956 -0.69388694 +-4.852632 -0.81867063 +-4.308526 -0.7296608 +-4.7256784 -0.80336154 +-4.9287524 -0.8410706 +-4.928223 -0.84416723 +-4.9276915 -0.8472636 +-4.9271584 -0.85035956 +-4.5080256 -0.7809402 +-3.7477434 -0.65165967 +-3.4655328 -0.6048323 +-2.7568944 -0.48294026 +-2.5125253 -0.4417601 +-3.1578007 -0.5572601 +-4.0252714 -0.71295166 +-4.7376947 -0.8422058 +-4.922271 -0.8782082 +-4.0172195 -0.719338 +-4.637399 -0.83339715 +-4.9206066 -0.8874849 +-4.920048 -0.8905764 +-4.5227385 -0.8215947 +-3.8469427 -0.7013277 +-3.6188147 -0.6620878 +-3.8604052 -0.70879555 +-4.704497 -0.8668322 +-4.916656 -0.90911824 +-4.00622 -0.74337685 +-3.7881315 -0.70537174 +-3.3620684 -0.6282223 +-3.4196289 -0.6412017 +-2.7533023 -0.51805234 +-3.3066337 -0.62431675 +-3.8117893 -0.7221745 +-3.9674323 -0.754245 +-4.115859 -0.78514206 +-4.9108467 -0.9399923 +-4.0311356 -0.7742315 +-3.2474425 -0.6258291 +-2.436748 -0.47118467 +-2.6977398 -0.5234103 +-2.526377 -0.49181014 +-2.876119 -0.56177026 +-2.549103 -0.49955973 +-2.8753574 -0.56537354 +-3.0695894 -0.60556835 +-2.1005826 -0.41577414 +-2.3742557 -0.47149345 +-2.339243 -0.46606836 +-1.5393298 -0.3077002 +-2.2455764 -0.45034096 +-2.1499953 -0.43257797 +-2.6753376 -0.5400258 +-2.6200807 -0.5305856 +-2.5240188 -0.51278347 +-3.205939 -0.65342116 +-3.4081469 -0.69686496 +-2.594199 -0.53213507 +-3.257206 -0.6702674 +-3.8311434 -0.7908816 +-3.9096515 -0.8096499 +-2.943035 -0.6114019 +-3.8879204 -0.81024617 +-3.210737 -0.6712258 +-3.7327178 -0.7827975 +-4.542602 -0.95562047 +-4.3443227 -0.9167595 +-3.596255 -0.76125926 +-3.098857 -0.65800405 +-3.6932304 -0.7866374 +-3.1637254 -0.6759341 +-3.0354557 -0.65052366 +-2.9055328 -0.6245898 +-3.0022013 -0.647344 +-3.7182772 -0.8041917 +-4.619139 -1.0020694 +-4.8856735 -1.0631055 +-3.989875 -0.87080884 +-3.1052063 -0.67977005 +-2.5495725 -0.5598135 +-2.5242748 -0.5559216 +-1.8470823 -0.40800038 +-2.0465841 -0.45341697 +-1.3219386 -0.2937446 +-1.1921041 -0.2656805 +-2.0891747 -0.4669859 +-2.5888975 -0.5803953 +-3.2918487 -0.7401599 +-2.5555675 -0.576297 +-2.7036219 -0.6114695 +-1.8973813 -0.430378 +-1.8127545 -0.4123801 +-2.0326111 -0.4637383 +-2.2424936 -0.51310533 +-3.0168908 -0.69229037 +-2.527902 -0.58175355 +-2.0765467 -0.47925588 +-2.209532 -0.51141065 +-2.9877927 -0.69352233 +-2.4699335 -0.5749533 +-2.4512181 -0.57222056 +-2.839841 -0.6648238 +-3.2287595 -0.7580122 +-2.7183363 -0.6399831 +-3.0205834 -0.7131451 +-2.8685458 -0.67915285 +-3.1663487 -0.75176156 +-3.070841 -0.73112446 +-3.7589312 -0.89744514 +-3.0928102 -0.740463 +-2.4797492 -0.5953351 +-3.287031 -0.79133093 +-3.1125364 -0.75139195 +-3.1221976 -0.7558006 +-3.491875 -0.8476125 +-4.0006666 -0.97377807 +-4.0684376 -0.992982 +-4.440494 -1.0867462 +-4.6241302 -1.1347684 +-4.508196 -1.1093216 +-4.8544197 -1.1977515 +-4.8536663 -1.2008014 +-4.0824018 -1.0127122 +-4.7188478 -1.1737419 +-4.4723845 -1.1154224 +-4.4735403 -1.1186968 +-4.626606 -1.1600631 +-4.849105 -1.2190907 +-4.732165 -1.1928531 +-4.062965 -1.0268811 +-3.8321304 -0.9711015 +-3.7022696 -0.94066936 +-2.7952585 -0.71208686 +-3.643961 -0.9307307 +-3.2983942 -0.844675 +-2.4699323 -0.63417083 +-2.0059319 -0.5163794 +-2.445763 -0.63124233 +-2.93253 -0.7588407 +-2.9881694 -0.77524185 +-3.3176801 -0.86295444 +-3.7579436 -0.9799917 +-3.8393347 -1.0037936 +-3.435232 -0.9004473 +-4.0488315 -1.064004 +-4.6445036 -1.2236625 +-3.7013345 -0.9776583 +-2.948906 -0.7808968 +-2.385828 -0.6333931 +-1.5636141 -0.41616246 +-0.96619636 -0.25780737 +-0.9660342 -0.25841442 +-1.6434323 -0.44072527 +-1.6887933 -0.45402753 +-1.5468193 -0.41690055 +-1.7000443 -0.45934385 +-2.0733647 -0.56161135 +-2.5699027 -0.69784176 +-2.2235823 -0.60530096 +-1.6398847 -0.4475144 +-1.241878 -0.33973938 +-1.43808 -0.39438552 +-2.355572 -0.64759433 +-3.2862837 -0.90568703 +-4.2441177 -1.1725321 +-3.3593633 -0.93037117 +-2.727688 -0.7572752 +-3.0742655 -0.8555747 +-3.8641994 -1.0780315 +-3.2614386 -0.91208285 +-2.3798254 -0.6671464 +-1.9995077 -0.56188565 +-2.6896217 -0.7576397 +-1.7382164 -0.4908173 +-2.02871 -0.57422 +-1.410635 -0.40023336 +-1.2589997 -0.3580654 +-0.9616839 -0.27416065 +-0.96151143 -0.27476484 +-1.3002102 -0.37243637 +-0.9611654 -0.27597287 +-1.1968793 -0.34446597 +-1.4512242 -0.41865483 +-1.5934739 -0.46077633 +-2.0627103 -0.59786755 +-2.8655474 -0.8325185 +-2.8923128 -0.84226555 +-2.3418005 -0.6835483 +-3.006135 -0.879511 +-3.3421 -0.980085 +-3.6893094 -1.0844235 +-4.497818 -1.3251448 +-4.7952867 -1.41606 +-4.5367184 -1.3428037 +-3.8585663 -1.1447177 +-4.449201 -1.3229829 +-3.508517 -1.0456676 +-3.2417364 -0.9683753 +-2.8849869 -0.8637815 +-3.52716 -1.058467 +-3.3665397 -1.0125726 +-3.4146907 -1.0293953 +-3.4356284 -1.0380626 +-2.665154 -0.8070943 +-2.999321 -0.9103486 +-2.356148 -0.7167509 +-2.5583756 -0.78002614 +-2.5547495 -0.7806753 +-3.4573905 -1.0588782 +-3.5277586 -1.0828544 +-3.7175105 -1.1436555 +-3.65905 -1.1281879 +-3.6417599 -1.1253631 +-3.3345191 -1.0327163 +-3.9511487 -1.2264106 +-3.1508405 -0.9801711 +-3.058416 -0.95352745 +-3.0130703 -0.94146764 +-3.1106267 -0.9740959 +-3.6341348 -1.1405407 +-3.7321758 -1.1738865 +-2.9662154 -0.9350165 +-2.9985468 -0.9472797 +-2.2289503 -0.70569474 +-1.7154701 -0.544311 +-1.1864424 -0.37727356 +-2.0195446 -0.64358693 +-1.3332497 -0.42580193 +-1.6689446 -0.53416914 +-1.356881 -0.4352289 +-0.9520226 -0.30602765 +-1.8332187 -0.5905592 +-2.6779752 -0.8645495 +-2.0892262 -0.67592937 +-2.9148488 -0.94506735 +-2.0438986 -0.6641029 +-1.0960441 -0.35688782 +-1.0696903 -0.3490502 +-1.9632211 -0.641983 +-2.5509214 -0.83593845 +-3.3061705 -1.0857348 +-3.114056 -1.0248133 +-2.5456681 -0.839534 +-2.6187572 -0.8654627 +-2.8487458 -0.9434566 +-3.5137436 -1.1661431 +-3.4496758 -1.1472869 +-3.0630662 -1.0208468 +-3.180671 -1.0622627 +-2.383846 -0.7978088 +-1.4623652 -0.49043602 +-1.0988269 -0.36928377 +-1.6159272 -0.54419637 +-1.5918539 -0.5372031 +-2.0891197 -0.7064778 +-3.0003412 -1.0167269 +-3.0305579 -1.0290897 +-3.6078007 -1.2276335 +-4.4972644 -1.5334466 +-4.7314434 -1.6166146 +-4.730427 -1.6195871 +-4.728236 -1.6221569 +-4.1666684 -1.4324218 +-4.1700573 -1.4365172 +-4.7263412 -1.6314708 +-4.7253156 -1.6344402 +-4.374587 -1.5162048 +-4.1884465 -1.4546381 +-3.27963 -1.1413178 +-2.924619 -1.0198339 +-2.7934234 -0.9760542 +-3.0097735 -1.0537719 +-3.3708649 -1.182574 +-2.7317007 -0.9602691 +-3.1234694 -1.1001923 +-2.6273773 -0.92730784 +-3.255613 -1.1513386 +-2.849134 -1.0096029 +-3.4862204 -1.2378232 +-4.1481466 -1.4757835 +-3.397906 -1.2112765 +-3.3156667 -1.1843086 +-4.220365 -1.5104448 +-3.412622 -1.2237774 +-2.9635358 -1.0648357 +-3.4062357 -1.2263203 +-4.269019 -1.5399721 +-3.958867 -1.430902 +-4.272796 -1.5474054 +-4.7001324 -1.7055078 +-4.128857 -1.501149 +-4.697985 -1.7114127 +-4.620537 -1.6864884 +-4.1185565 -1.5061996 +-4.6947513 -1.7202652 +-3.8013964 -1.3956292 +-4.646936 -1.7093712 +-4.6915 -1.7291114 +-3.8859243 -1.4349803 +-4.193365 -1.5515057 +-4.4277706 -1.6413971 +-4.6871395 -1.740897 +-4.1315737 -1.5375035 +-3.9700356 -1.4802301 +-3.1341085 -1.1707977 +-3.7488894 -1.403144 +-3.8664258 -1.4499062 +-3.3959413 -1.2759093 +-4.1689353 -1.5693254 +-4.6783295 -1.764435 +-4.663592 -1.7622246 +-4.614384 -1.7469445 +-3.8893278 -1.4752425 +-3.477591 -1.3215686 +-2.9020329 -1.1049298 +-2.8857126 -1.1007924 +-3.5485055 -1.356178 +-3.999007 -1.5312324 +-4.0651336 -1.5594819 +-3.7831664 -1.45404 +-3.244459 -1.2493309 +-3.1281507 -1.206802 +-2.9309042 -1.1328229 +-3.1861625 -1.2337842 +-3.277582 -1.2715535 +-2.8638203 -1.1131034 +-3.2784204 -1.276621 +-2.5318913 -0.9877541 +-3.172878 -1.2401166 +-3.6897826 -1.4448215 +-4.5660496 -1.7912542 +-4.3320713 -1.7026064 +-4.5307198 -1.7839673 +-3.6646624 -1.445618 +-3.0884428 -1.2205569 +-3.1014981 -1.2279699 +-3.6245987 -1.4377153 +-2.7173152 -1.0798131 +-2.6102254 -1.039157 +-2.3497393 -0.9371657 +-2.538955 -1.0144817 +-2.5287507 -1.0122473 +-3.1882782 -1.278578 +-3.6131704 -1.4516063 +-4.497454 -1.8101537 +-3.6098747 -1.4555533 +-4.2872815 -1.731826 +-4.6348724 -1.8756219 +-4.633693 -1.8785337 +-4.6325116 -1.8814447 +-4.6313286 -1.8843551 +-4.2990556 -1.7523117 +-4.6289573 -1.8901734 +-4.4029336 -1.8011084 +-4.251871 -1.7424325 +-3.413426 -1.4013401 +-3.335363 -1.3717419 +-4.2394657 -1.7466893 +-4.2168083 -1.7404542 +-4.620599 -1.9105144 +-4.1426144 -1.715927 +-3.5312893 -1.4653081 +-4.1211343 -1.7131001 +-4.5283384 -1.8857073 +-4.614574 -1.9250209 +-4.6133637 -1.92792 +-4.6121516 -1.9308182 +-4.6109376 -1.9337158 +-4.4360056 -1.863632 +-4.608504 -1.9395086 +-4.385243 -1.8487924 +-4.606063 -1.9452982 +-4.60484 -1.9481919 +-4.569744 -1.9367299 +-4.602388 -1.953977 +-4.601159 -1.9568683 +-4.594134 -1.9572902 +-4.5986967 -1.9626487 +-4.1444564 -1.7718657 +-4.5962267 -1.9684261 +-3.9548106 -1.6966684 +-3.600116 -1.5471785 +-4.372761 -1.8824846 +-3.6120353 -1.5576811 +-2.8594835 -1.2352765 +-2.218367 -0.9599732 +-1.6663808 -0.7223508 +-2.298717 -0.99817514 +-1.7542957 -0.7630808 +-1.4634273 -0.63765305 +-1.1105036 -0.48470554 +-1.333121 -0.5828696 +-1.0682982 -0.46788308 +-1.8495882 -0.8114505 +-2.5744925 -1.1314096 +-3.2473214 -1.4295322 +-3.3677151 -1.4850585 +-3.0282884 -1.3376551 +-2.1288962 -0.9419748 +-2.7658372 -1.2258813 +-2.917198 -1.2951615 +-2.2717583 -1.010312 +-2.5227125 -1.1238171 +-2.371045 -1.0580384 +-2.2732887 -1.0161295 +-2.868892 -1.2845194 +-3.0061576 -1.3482469 +-2.6053534 -1.170455 +-3.005904 -1.3526728 +-2.9784606 -1.3425742 +-3.8109975 -1.7207314 +-4.173763 -1.8876841 +-3.4722238 -1.573025 +-3.1227956 -1.4170886 +-2.304088 -1.047315 +-1.751094 -0.79728144 +-1.3388559 -0.61060333 +-2.2337377 -1.0204222 +-2.2159944 -1.0140002 +-2.5509636 -1.1692151 +-2.4324198 -1.1167313 +-2.7744555 -1.2758723 +-2.2988002 -1.0588858 +-2.2848527 -1.0542021 +-2.6717656 -1.2347554 +-1.9344972 -0.8955026 +-1.2785586 -0.5928363 +-0.90695584 -0.4212258 +-1.0890418 -0.5066258 +-0.9064258 -0.42236516 +-1.7407126 -0.8124475 +-1.6169657 -0.7559284 +-1.1380799 -0.5329218 +-0.9053614 -0.4246419 +-0.9050944 -0.42521068 +-1.6242473 -0.76431274 +-2.231912 -1.0519714 +-2.5079658 -1.1840109 +-3.3708813 -1.5939841 +-2.5824132 -1.2231282 +-2.6137154 -1.2399654 +-2.2347987 -1.0619253 +-3.113604 -1.4819124 +-2.2969768 -1.0950112 +-2.3810976 -1.1369499 +-2.0898015 -0.99947184 +-1.2133932 -0.58125645 +-1.8401513 -0.8829168 +-2.4288476 -1.167255 +-3.2801049 -1.5788898 +-3.0447628 -1.4679643 +-2.2479165 -1.085524 +-1.6516917 -0.79888576 +-1.2345394 -0.59807616 +-0.8996797 -0.43655056 +-1.3437812 -0.6530849 +-1.5439011 -0.75154376 +-1.5838252 -0.77220947 +-0.8985797 -0.43881032 +-0.8983038 -0.43937483 +-1.2868978 -0.6304447 +-1.2389598 -0.6079257 +-2.0041678 -0.98495656 +-2.6079354 -1.2837156 +-2.4994793 -1.2322813 +-2.6253276 -1.2963777 +-3.206297 -1.5857649 +-2.9178445 -1.4453851 +-3.3973768 -1.6855857 +-3.625779 -1.8017457 +-3.8280742 -1.9052718 +-3.2673478 -1.6287547 +-4.002674 -1.9984518 +-3.3449225 -1.6726764 +-3.4776306 -1.7417713 +-4.1178207 -2.0656478 +-3.9293098 -1.9741752 +-3.2263622 -1.6235379 +-2.5743716 -1.2974775 +-2.6800249 -1.3528388 +-3.4093935 -1.7237027 +-3.9212146 -1.9855608 +-3.897856 -1.9768109 +-4.4578815 -2.2643523 +-4.047738 -2.0592232 +-3.976906 -2.0263348 +-4.4536057 -2.2727513 +-3.8944283 -1.9904786 +-3.5655315 -1.825203 +-3.7299166 -1.9123106 +-3.8131993 -1.958036 +-3.7308884 -1.9187334 +-4.445006 -2.2895248 +-4.4435663 -2.2923172 +-4.4421253 -2.2951088 +-4.4406824 -2.2978992 +-3.6686184 -1.9013063 +-3.1634068 -1.6419965 +-3.700304 -1.9236305 +-4.3668904 -2.2736466 +-3.719404 -1.9395007 +-3.001286 -1.567434 +-2.839167 -1.4850379 +-3.3157115 -1.7369506 +-2.6952999 -1.414104 +-2.6561403 -1.3956878 +-3.071051 -1.6161687 +-3.503774 -1.8467052 +-3.0070007 -1.5872902 +-2.9927554 -1.5821757 +-2.2089036 -1.1695542 +-2.3913548 -1.2680817 +-3.1848717 -1.6914303 +-2.8160355 -1.497817 +-2.0476217 -1.0907576 +-1.5044644 -0.8026344 +-1.8344419 -0.98015916 +-2.3523555 -1.2587857 +-2.789135 -1.494769 +-2.8926868 -1.5526055 +-2.0379808 -1.095505 +-2.378869 -1.2806747 +-1.6212813 -0.87413836 +-2.0113018 -1.0860555 +-1.2011423 -0.64956355 +-1.0069107 -0.5453434 +-1.6621742 -0.9015857 +-2.389377 -1.2979739 +-1.8056198 -0.9823311 +-1.7200484 -0.93717784 +-1.1948808 -0.65201133 +-0.8775147 -0.47954977 +-0.8772132 -0.48010102 +-1.6786824 -0.9201183 +-1.6218386 -0.89028674 +-2.435821 -1.3391039 +-2.501165 -1.3770741 +-2.4013586 -1.3240904 +-2.5333383 -1.3989394 +-2.028692 -1.1219317 +-2.4412067 -1.3520691 +-2.2011013 -1.2208941 +-1.8020111 -1.0010101 +-1.2460872 -0.69322145 +-1.9667403 -1.0957528 +-2.4732544 -1.3799901 +-2.7251365 -1.5227777 +-3.0709646 -1.7185556 +-2.9527037 -1.6548122 +-3.3022015 -1.8534122 +-3.772927 -2.1207328 +-4.0734205 -2.2930071 +-4.1116524 -2.317932 +-4.0156384 -2.2671304 +-3.3094783 -1.8711929 +-3.3039262 -1.8707943 +-3.741793 -2.121835 +-2.9588253 -1.6803002 +-2.365478 -1.345308 +-3.1874714 -1.8154482 +-2.5334291 -1.4450425 +-2.9001231 -1.6566169 +-3.417677 -1.9551047 +-2.9351814 -1.6815386 +-2.7344334 -1.5688146 +-2.39407 -1.3755394 +-3.112566 -1.7909616 +-3.8964043 -2.2452397 +-3.0450838 -1.7572296 +-3.7302732 -2.1557581 +-3.4895995 -2.0195966 +-3.687859 -2.137433 +-3.0153356 -1.7501795 +-2.4030025 -1.3967847 +-2.2360144 -1.3016005 +-1.9886488 -1.1592805 +-1.6629908 -0.97083914 +-0.929815 -0.5436013 +-1.0809505 -0.63287187 +-0.8626549 -0.50579286 +-0.862337 -0.5063348 +-0.86201864 -0.5068765 +-1.2275602 -0.7228573 +-0.86138105 -0.50795937 +-1.2533853 -0.7401874 +-1.5566363 -0.9205921 +-2.2610855 -1.3391206 +-2.8517754 -1.6913759 +-2.2462978 -1.3341782 +-2.6221337 -1.5596339 +-2.8489432 -1.6969634 +-2.823161 -1.6840103 +-2.8646467 -1.7111977 +-2.5945213 -1.552051 +-2.766775 -1.6574551 +-2.888905 -1.7330854 +-2.0539753 -1.2339578 +-2.5678246 -1.5448573 +-2.547902 -1.5350527 +-2.8568656 -1.7236435 +-2.7863944 -1.6835147 +-2.454511 -1.4850998 +-2.1523962 -1.3041537 +-2.7857845 -1.6903225 +-1.9516742 -1.1858902 +-1.3490329 -0.8208699 +-0.89733535 -0.5467904 +-1.2876563 -0.78574204 +-2.0977445 -1.2818762 +-1.6112295 -0.98597074 +-1.3108575 -0.80329454 +-0.9793727 -0.6010071 +-0.8863164 -0.5446686 +-0.85165375 -0.52410483 +-0.8513243 -0.52463984 +-1.0453025 -0.6450881 +-1.553464 -0.96003836 +-0.95375603 -0.59024817 +-0.85000306 -0.5267778 +-0.8496719 -0.52731174 +-0.8493404 -0.5278455 +-0.84900856 -0.5283791 +-0.84867644 -0.5289124 +-1.4779588 -0.9223838 +-2.009116 -1.25563 +-1.6168824 -1.0119106 +-2.3999507 -1.5040858 +-2.2129402 -1.3888208 +-2.2778149 -1.4315311 +-2.804936 -1.7652688 +-3.4553137 -2.1776118 +-3.206588 -2.023676 +-3.743921 -2.366077 +-3.4835167 -2.2045712 +-3.0132406 -1.909606 +-3.7145982 -2.3573556 +-3.5397882 -2.249539 +-3.7401476 -2.380168 +-3.725534 -2.3741581 +-4.214893 -2.6897357 +-4.213202 -2.6923833 +-3.5213208 -2.2533643 +-3.270143 -2.095528 +-2.6878414 -1.7247686 +-2.5537076 -1.6409621 +-2.83724 -1.8256743 +-3.5022104 -2.2566745 +-4.192377 -2.705118 +-3.5782878 -2.3120644 +-2.7879443 -1.8038782 +-2.1776767 -1.4109598 +-2.0852847 -1.3529582 +-2.5098286 -1.6306492 +-1.8583144 -1.209018 +-2.3850615 -1.5538532 +-2.6151958 -1.7061259 +-2.9093714 -1.9006499 +-2.74227 -1.7939444 +-2.6758716 -1.7529097 +-3.459593 -2.2694175 +-3.817732 -2.5077813 +-3.4676783 -2.2809591 +-4.04723 -2.6658194 +-4.173855 -2.7529864 +-4.1721244 -2.7556086 +-3.7400413 -2.4736023 +-4.0012474 -2.6499753 +-4.1669226 -2.7634678 +-3.4404562 -2.284795 +-3.574968 -2.3773623 +-3.354272 -2.2336395 +-3.311055 -2.2078652 +-3.830388 -2.5576432 +-4.1339493 -2.7640955 +-4.154728 -2.781768 +-3.8202887 -2.5613246 +-3.582793 -2.4053593 +-4.075138 -2.739618 +-3.8052406 -2.5616455 +-3.5934203 -2.4223328 +-2.8787804 -1.9432243 +-2.262805 -1.5295012 +-1.8741894 -1.26854 +-1.9167993 -1.2991372 +-1.7247598 -1.170562 +-2.166738 -1.4725137 +-2.966573 -2.018807 +-2.8588395 -1.9481215 +-2.3309388 -1.5905356 +-2.82873 -1.9328136 +-2.863362 -1.9591172 +-3.1920433 -2.186947 +-3.099322 -2.1262844 +-2.9466724 -2.0242834 +-2.1446817 -1.475322 +-2.7064571 -1.8642724 +-3.3295405 -2.2965531 +-3.9390757 -2.7206345 +-3.331036 -2.3037674 +-2.8966813 -2.0060563 +-3.6353014 -2.5209587 +-3.4522004 -2.397198 +-3.9607332 -2.7540116 +-3.7110722 -2.583876 +-3.8676593 -2.6965113 +-3.2387836 -2.261088 +-3.8136554 -2.665988 +-3.3795152 -2.3656588 +-3.5440528 -2.4841545 +-3.1060681 -2.180067 +-3.570935 -2.509695 +-2.9284618 -2.0609076 +-2.632319 -1.8549709 +-3.2185683 -2.2711232 +-3.6077693 -2.5491529 +-4.0124598 -2.8388777 +-3.413901 -2.4186082 +-3.3023438 -2.3426924 +-3.8263805 -2.7180612 +-4.074425 -2.8981128 +-4.0726037 -2.9006722 +-4.0707803 -2.9032307 +-4.0689554 -2.9057877 +-4.0671287 -2.9083438 +-3.8790603 -2.777544 +-4.063471 -2.9134524 +-4.0616393 -2.916005 +-3.7001 -2.659967 +-4.057972 -2.9211066 +-4.0561357 -2.9236557 +-4.054298 -2.9262037 +-3.4523304 -2.4950323 +-2.914209 -2.1089153 +-2.191072 -1.5877041 +-2.266303 -1.6443908 +-1.498367 -1.0886273 +-1.7237335 -1.2540213 +-1.6301411 -1.1874996 +-1.0605712 -0.7736086 +-0.8075372 -0.5898167 +-0.8071664 -0.5903239 +-1.18573 -0.8683318 +-1.3773217 -1.009968 +-1.7535315 -1.2875316 +-1.2531515 -0.92133975 +-2.0139103 -1.4826136 +-1.779329 -1.3116426 +-1.9971303 -1.4741338 +-1.4317822 -1.0582261 +-1.6114101 -1.192555 +-1.6199749 -1.2004694 +-2.4201052 -1.7957563 +-2.2377167 -1.6626024 +-2.4850743 -1.8488111 +-2.1006212 -1.5648425 +-1.3926296 -1.0387906 +-1.0877311 -0.8124248 +-0.86024654 -0.6433593 +-0.8004385 -0.5994148 +-0.80006176 -0.59991765 +-0.8616218 -0.64692396 +-1.6112744 -1.2113628 +-1.3407212 -1.0092791 +-0.8886983 -0.66987675 +-1.390084 -1.0491781 +-1.0893036 -0.8232363 +-1.6749889 -1.2675196 +-1.2403902 -0.9398706 +-0.79665655 -0.6044323 +-0.79627657 -0.6049327 +-1.0049262 -0.7644405 +-0.7955158 -0.6059329 +-0.7951349 -0.60643256 +-0.79475373 -0.60693204 +-0.7943722 -0.6074313 +-1.1789829 -0.9027054 +-1.2185676 -0.9342291 +-0.7932258 -0.60892755 +-0.79284304 -0.60942584 +-0.79246 -0.6099239 +-0.96017474 -0.7399682 +-1.7159449 -1.3241292 +-2.221486 -1.7164642 +-2.6194515 -2.0265877 +-3.236608 -2.507315 +-3.9507751 -3.0645354 +-3.3844202 -2.628633 +-3.6456585 -2.8352075 +-3.192238 -2.4858055 +-3.6686418 -2.8604872 +-3.1624796 -2.4690225 +-3.2053473 -2.5057335 +-3.3047543 -2.5867906 +-3.884144 -3.0442445 +-3.9333825 -3.0868273 +-3.9314423 -3.089298 +-3.9295003 -3.0917675 +-3.836949 -3.0228527 +-3.2915835 -2.5965524 +-2.5627832 -2.0242548 +-2.7687879 -2.1897972 +-2.8998268 -2.2963972 +-2.698078 -2.1393905 +-3.2371528 -2.5701542 +-3.256835 -2.5891187 +-3.6288776 -2.8886082 +-3.9099967 -3.1163962 +-3.908038 -3.1188524 +-3.768303 -3.011213 +-3.9041154 -3.123761 +-3.8274152 -3.0663378 +-3.14243 -2.5208046 +-2.5721905 -2.0660255 +-1.8853319 -1.5162792 +-1.9831648 -1.5970145 +-2.5588245 -2.063237 +-2.0480123 -1.6534821 +-2.5462375 -2.058373 +-2.5304403 -2.0482328 +-2.8069575 -2.2749767 +-2.297385 -1.8643724 +-2.4850004 -2.0192168 +-3.0519056 -2.483048 +-3.08835 -2.515926 +-3.3345265 -2.7199612 +-3.8233724 -3.1227138 +-3.7613108 -3.075967 +-3.3997195 -2.7838273 +-3.6634774 -3.0036502 +-3.864554 -3.1725736 +-3.337714 -2.7435808 +-3.836111 -3.1573012 +-3.858567 -3.1798525 +-3.8565683 -3.1822762 +-3.4734094 -2.86978 +-3.6964185 -3.0579433 +-3.8505628 -3.18954 +-3.8485582 -3.1919587 +-3.3319206 -2.7669997 +-3.6380258 -3.0250697 +-3.8352313 -3.1931267 +-3.669402 -3.0589669 +-3.0305624 -2.5296326 +-2.5999303 -2.172954 +-3.3500116 -2.8034296 +-3.647569 -3.0563369 +-3.8304465 -3.2136707 +-3.8284266 -3.2160769 +-3.826405 -3.2184815 +-3.824382 -3.220885 +-3.8223577 -3.2232873 +-3.8203316 -3.2256885 +-3.818304 -3.2280881 +-3.8162751 -3.2304866 +-3.5367215 -2.9976604 +-3.8122125 -3.2352798 +-3.3061688 -2.809395 +-3.636141 -3.0937233 +-2.9145062 -2.482896 +-3.5400763 -3.019666 +-3.7210233 -3.1780543 +-3.4580302 -2.9571965 +-2.762806 -2.36567 +-3.4122705 -2.925496 +-3.2590604 -2.7976968 +-2.9002647 -2.4928603 +-2.46826 -2.124238 +-3.0367975 -2.6168568 +-3.3345199 -2.8770618 +-3.7836065 -3.2686882 +-3.7815518 -3.2710648 +-3.779496 -3.2734401 +-3.7774384 -3.2758143 +-3.7753794 -3.278187 +-3.7733188 -3.2805586 +-3.771257 -3.2829287 +-3.7691934 -3.2852976 +-3.3411534 -2.9159064 +-3.0104725 -2.6306472 +-2.3437493 -2.0506415 +-2.085584 -1.827077 +-1.5768223 -1.3831282 +-0.84793484 -0.7447192 +-1.289499 -1.1339697 +-1.0910951 -0.960712 +-0.75011104 -0.66131186 +-0.7496954 -0.66178304 +-0.8719512 -0.770678 +-0.7488632 -0.6627246 +-0.74844664 -0.663195 +-0.7878208 -0.6989684 +-0.74761266 -0.66413504 +-0.74719524 -0.6646046 +-0.7467775 -0.665074 +-0.74635947 -0.665543 +-0.74594116 -0.66601187 +-0.74552256 -0.6664804 +-1.3978199 -1.2512007 +-1.04646 -0.93788046 +-1.7567858 -1.5764952 +-1.7180638 -1.5436969 +-1.5010397 -1.3504041 +-0.87982774 -0.7925342 +-1.003937 -0.90547305 +-1.1674489 -1.054279 +-1.9004848 -1.7184252 +-2.3139658 -2.0949402 +-2.8460062 -2.579877 +-2.2234566 -2.018088 +-2.0795395 -1.8898484 +-1.4399093 -1.3102167 +-2.0219672 -1.8421721 +-1.5033723 -1.3714209 +-1.8519397 -1.6915276 +-2.0499997 -1.874796 +-1.4117547 -1.2927285 +-1.2469853 -1.1432922 +-1.7234424 -1.5821239 +-1.0759965 -0.98901373 +-1.7816255 -1.6396666 +-2.3632872 -2.1777258 +-2.2003083 -2.0301015 +-2.1933887 -2.0262702 +-2.8652136 -2.650246 +-3.4687798 -3.2125752 +-3.0554569 -2.8333488 +-3.0725179 -2.8527625 +-3.2323213 -3.0049202 +-3.1660423 -2.9470148 +-3.6577206 -3.4089706 +-3.23133 -3.0153732 +-3.5084581 -3.278107 +-3.6512883 -3.415859 +-3.6491413 -3.4181526 +-3.646993 -3.4204447 +-3.644843 -3.4227355 +-3.6426919 -3.425025 +-3.4992945 -3.294341 +-3.638385 -3.4295998 +-3.6002898 -3.3979654 +-3.6340723 -3.4341693 +-3.1509395 -2.9813626 +-3.629754 -3.4387333 +-3.6275926 -3.441013 +-3.1435146 -2.9855874 +-3.3265269 -3.1633835 +-2.7506588 -2.6190507 +-2.5790846 -2.4587772 +-3.299974 -3.1499991 +-3.6013672 -3.4420226 +-3.6124232 -3.456935 +-3.6102505 -3.459204 +-3.0673368 -2.9427037 +-2.5764124 -2.4748373 +-3.1037872 -2.985172 +-2.9213064 -2.8132007 +-2.3384974 -2.2547927 +-2.7860937 -2.6897478 +-2.3501363 -2.271721 +-2.0806925 -2.0137978 +-1.614327 -1.5643916 +-2.0781312 -2.0163827 +-1.6048259 -1.5590997 +-2.2534032 -2.1919513 +-2.5184665 -2.4528675 +-2.6932688 -2.6264162 +-2.680322 -2.6170783 +-2.580868 -2.5231407 +-1.8878511 -1.8479459 +-1.6039057 -1.5719771 +-1.8700292 -1.8351082 +-1.9850518 -1.9504325 +-1.4367378 -1.4134564 +-0.73720104 -0.7261673 +-0.711977 -0.70220274 +-0.7115357 -0.70264995 +-1.31332 -1.2985501 +-1.1061622 -1.0950973 +-0.8273522 -0.82010627 +-1.2262502 -1.2170391 +-1.6625462 -1.6521327 +-1.0030682 -0.9980388 +-0.7084384 -0.70577264 +-0.7079948 -0.70621765 +-0.9847221 -0.9834854 +-1.459036 -1.459036 +-1.8472964 -1.8496192 +-1.9257607 -1.9306068 +-1.3359464 -1.3409925 +-1.7115874 -1.7202126 +-1.384787 -1.3935152 +-0.9537269 -0.96094507 +-1.2091776 -1.2198611 +-1.1959933 -1.2080775 +-1.6505386 -1.6693121 +-1.7123748 -1.7340295 +-2.3095787 -2.3417265 +-1.9460826 -1.9756523 +-1.3707303 -1.3933079 +-1.793365 -1.8251964 +-1.1251779 -1.1465894 +-0.7742102 -0.7899353 +-1.1446398 -1.1693575 +-0.69906455 -0.71505857 +-0.94728607 -0.9701779 +-0.6981654 -0.7159365 +-0.69771546 -0.716375 +-0.6972652 -0.71681327 +-1.3744003 -1.4147094 +-1.3327723 -1.3735862 +-1.2702786 -1.3108258 +-1.800239 -1.8600396 +-1.6663166 -1.7238348 +-2.2121654 -2.2914045 +-2.601988 -2.6985817 +-2.9466598 -3.059894 +-3.466003 -3.6037235 +-3.2727466 -3.4070702 +-2.7512238 -2.867747 +-2.841679 -2.9657614 +-2.7526734 -2.876485 +-2.2178855 -2.3205605 +-2.3541052 -2.4661865 +-2.8537872 -2.9934223 +-3.1528158 -3.3112457 +-3.2017915 -3.3669157 +-3.0621502 -3.2241273 +-3.0433524 -3.2083697 +-2.8104274 -2.966546 +-2.4059234 -2.54277 +-1.9193505 -2.031076 +-1.8295977 -1.9385371 +-1.7364985 -1.842212 +-1.6264595 -1.7276477 +-1.7402014 -1.8507944 +-2.350472 -2.5029986 +-2.0012465 -2.133796 +-2.3114762 -2.467679 +-2.9035175 -3.103635 +-3.046997 -3.2611082 +-2.8310146 -3.0337677 +-3.4089706 -3.6577206 +-3.4066715 -3.6598618 +-2.923327 -3.1445534 +-2.877939 -3.099634 +-2.2562492 -2.433118 +-1.8726314 -2.0219748 +-2.321029 -2.509293 +-2.5571778 -2.7680836 +-3.1621075 -3.427223 +-3.3882322 -3.6769392 +-3.3859212 -3.6790674 +-3.3836088 -3.681194 +-3.3812952 -3.6833193 +-3.2417777 -3.5357966 +-3.376664 -3.6875656 +-3.3743465 -3.6896865 +-3.3720274 -3.6918058 +-3.2842798 -3.6002772 +-2.868301 -3.1482456 +-3.15746 -3.4700031 +-2.9730258 -3.2714396 +-2.4963393 -2.7503765 +-3.068952 -3.3855324 +-3.121428 -3.4477725 +-3.353428 -3.7087088 +-3.288206 -3.6411734 +-3.3487647 -3.71292 +-2.9744644 -3.3020864 +-2.311449 -2.5692875 +-1.9324163 -2.1506908 +-1.453809 -1.620069 +-1.5056446 -1.6799549 +-1.4652102 -1.6369076 +-1.0274805 -1.1493359 +-1.5713679 -1.7599506 +-1.7389349 -1.9500926 +-1.799541 -2.0206125 +-1.9367613 -2.177443 +-2.4846811 -2.79699 +-2.2050705 -2.4853773 +-1.7518011 -1.9769896 +-1.3728796 -1.5513216 +-1.4197634 -1.6063317 +-1.0937265 -1.2390189 +-0.66131186 -0.75011104 +-0.66084045 -0.7505264 +-1.1616943 -1.3210262 +-0.7967285 -0.9071524 +-0.86577684 -0.98702073 +-0.65895206 -0.7521849 +-0.65847933 -0.7525988 +-0.6580063 -0.7530124 +-0.65753305 -0.7534257 +-0.65705955 -0.75383866 +-0.86794776 -0.997053 +-1.463912 -1.6838008 +-1.2157044 -1.4000865 +-1.227788 -1.4157987 +-1.019062 -1.1766034 +-1.6715567 -1.9324222 +-1.4076426 -1.6293894 +-1.8552542 -2.150243 +-1.7771559 -2.0623453 +-1.8644695 -2.166422 +-1.3294563 -1.5467274 +-1.3033066 -1.5182327 +-0.83518785 -0.97415507 +-0.6504031 -0.75958925 +-0.6499257 -0.7599977 +-0.64944804 -0.76040596 +-0.6489701 -0.7608139 +-0.73323613 -0.860697 +-1.0927894 -1.2843865 +-0.6475349 -0.7620358 +-0.647056 -0.7624425 +-0.64657676 -0.7628489 +-0.64609736 -0.763255 +-0.64561766 -0.76366085 +-1.1120646 -1.3170694 +-1.5479906 -1.8356953 +-2.122515 -2.5202103 +-1.869313 -2.2223985 +-2.0083892 -2.390792 +-2.4169784 -2.880851 +-2.422354 -2.8909457 +-2.169971 -2.593048 +-2.0677705 -2.4740784 +-2.4454603 -2.9297218 +-2.1112928 -2.532614 +-1.9878606 -2.3875985 +-1.7893409 -2.1519067 +-2.2753243 -2.739863 +-2.8194847 -3.3994646 +-2.223893 -2.6847882 +-2.5641503 -3.0995252 +-2.5722554 -3.1133034 +-2.1227672 -2.5725603 +-2.4066088 -2.9202807 +-3.0152285 -3.6634932 +-3.1750011 -3.8625598 +-3.0205233 -3.6793396 +-2.849875 -3.4759214 +-2.5823174 -3.1536274 +-2.579624 -3.1543794 +-2.4431267 -2.9913032 +-2.1792054 -2.671589 +-1.9516059 -2.3956358 +-1.8901676 -2.3231986 +-2.141122 -2.635026 +-2.56196 -3.1569915 +-1.9402857 -2.3940022 +-2.0060718 -2.4783535 +-2.4997785 -3.0922627 +-3.0940769 -3.8323412 +-3.1384568 -3.8923116 +-3.1360106 -3.8942826 +-3.133563 -3.8962524 +-3.1311145 -3.8982205 +-3.1286645 -3.900187 +-3.1262133 -3.902152 +-2.513069 -3.1408648 +-2.8087497 -3.5149357 +-3.0488253 -3.8202913 +-3.1163962 -3.9099967 +-2.7516346 -3.4568014 +-3.1114802 -3.91391 +-2.9061022 -3.660285 +-3.1065595 -3.9178166 +-3.1040974 -3.9197679 +-3.1016338 -3.9217174 +-3.099169 -3.9236655 +-2.7278645 -3.4580445 +-2.7417455 -3.480136 +-2.756565 -3.5034726 +-2.4143672 -3.072525 +-2.0307107 -2.5876284 +-2.3504827 -2.998975 +-1.7946957 -2.2928135 +-1.825728 -2.3354807 +-1.6862911 -2.1599078 +-1.8079239 -2.3187048 +-2.2161736 -2.8459806 +-2.4169266 -3.107811 +-2.5451813 -3.2769742 +-2.1537902 -2.7766495 +-2.1886554 -2.8252614 +-2.4379864 -3.1512017 +-2.2609298 -2.9261458 +-2.5486472 -3.302803 +-2.8920271 -3.7526631 +-2.4401813 -3.170471 +-2.1615367 -2.8120885 +-1.8697847 -2.4356945 +-1.5616142 -2.0369012 +-1.6765648 -2.1896858 +-1.6871427 -2.2063718 +-1.2654395 -1.6570433 +-0.9859123 -1.2926966 +-0.8163345 -1.0717474 +-1.3788333 -1.8126011 +-1.9682064 -2.5907621 +-2.4752867 -3.2624886 +-2.1459157 -2.832063 +-1.5765555 -2.0833704 +-1.1094028 -1.4679582 +-0.6045292 -0.80095685 +-0.8110308 -1.0759616 +-0.70474863 -0.9361845 +-1.1787697 -1.5679212 +-1.4450244 -1.9245918 +-0.8941027 -1.1923926 +-0.7562134 -1.0098221 +-0.59891176 -0.800815 +-0.5984085 -0.80119115 +-0.597905 -0.80156696 +-0.6894897 -0.9255608 +-0.59689724 -0.8023177 +-0.6162027 -0.82935464 +-0.9782039 -1.318306 +-0.5953838 -0.8034414 +-0.64188635 -0.867333 +-0.59437376 -0.80418897 +-0.8486691 -1.1497618 +-0.5933627 -0.8049352 +-1.0079365 -1.3691319 +-1.2961447 -1.762939 +-0.9349888 -1.273392 +-0.5913378 -0.80642396 +-1.0725898 -1.4646497 +-1.6493666 -2.2552252 +-2.0702207 -2.8344064 +-1.8730189 -2.567797 +-2.2152226 -3.040949 +-2.540337 -3.491858 +-2.9389262 -4.045085 +-2.936384 -4.046931 +-2.893207 -3.9926994 +-2.9312963 -4.0506177 +-2.9287505 -4.0524583 +-2.9262037 -4.054298 +-2.9236557 -4.0561357 +-2.6913517 -3.7387984 +-2.2120626 -3.0770507 +-2.4522204 -3.4156442 +-2.8069015 -3.9148614 +-2.9108987 -4.0653005 +-2.6159832 -3.6582816 +-2.2112741 -3.0964324 +-2.1753433 -3.0501692 +-1.6279002 -2.2856054 +-1.1029404 -1.550612 +-0.74979633 -1.055534 +-1.0976447 -1.5472796 +-1.1911571 -1.6813357 +-0.6987167 -0.9875637 +-0.5770597 -0.816702 +-0.6671444 -0.9454572 +-1.0081006 -1.4305574 +-0.6180126 -0.8781696 +-0.57500523 -0.81814975 +-1.0893174 -1.552014 +-1.2997448 -1.8542987 +-0.9597399 -1.3710581 +-1.3576014 -1.9420283 +-1.5322095 -2.194738 +-1.9627142 -2.8151598 +-1.5311415 -2.1990905 +-1.0021732 -1.4412941 +-1.2195684 -1.7562982 +-1.5401102 -2.2208872 +-1.4800133 -2.1370919 +-1.6176106 -2.3389163 +-1.8447449 -2.6709173 +-1.3290844 -1.9269053 +-1.4629345 -2.1238148 +-1.2659879 -1.8403718 +-1.6076403 -2.3401809 +-1.909956 -2.7839968 +-1.3468295 -1.9658171 +-1.5099776 -2.206919 +-1.7287724 -2.5301096 +-1.966896 -2.882497 +-2.1880224 -3.2108903 +-2.0821548 -3.0596607 +-2.2620432 -3.3284955 +-1.9340208 -2.849675 +-1.9398979 -2.8622034 +-1.9808149 -2.9265316 +-2.1703725 -3.2109356 +-1.8009751 -2.668046 +-1.2592715 -1.8680718 +-1.6450236 -2.4436285 +-1.1157113 -1.6596026 +-1.6589113 -2.4709558 +-1.5886643 -2.3695383 +-1.9949108 -2.9795122 +-1.4473399 -2.1646247 +-1.7884011 -2.6783526 +-2.1707697 -3.255424 +-2.5723712 -3.8629477 +-2.721765 -4.0928655 +-2.7660854 -4.1651855 +-2.7634678 -4.1669226 +-2.4562535 -3.7087436 +-2.041674 -3.0869734 +-2.347842 -3.5547462 +-2.3438036 -3.553485 +-2.3157823 -3.5158057 +-2.5677624 -3.9036973 +-2.745114 -4.1790366 +-2.7424877 -4.180761 +-2.463799 -3.7610667 +-2.5011165 -3.8232718 +-2.504388 -3.833528 +-2.5908828 -3.9713752 +-2.495506 -3.8304362 +-2.3079362 -3.5474002 +-2.253157 -3.467967 +-1.8772695 -2.8933942 +-2.0835185 -3.2157044 +-2.621272 -4.0512495 +-2.0962365 -3.2442598 +-1.7963607 -2.7839904 +-2.1411567 -3.3229342 +-2.535263 -3.9399965 +-2.0273592 -3.1550288 +-1.8228216 -2.8406448 +-1.7397735 -2.714976 +-1.4237022 -2.224812 +-1.9463032 -3.0456913 +-1.6093092 -2.5218337 +-1.5600446 -2.4480252 +-1.5605431 -2.4522057 +-1.5545944 -2.44625 +-1.3699089 -2.158631 +-1.8904239 -2.9829726 +-1.6501139 -2.6074002 +-2.1367424 -3.3810372 +-2.1272094 -3.370641 +-2.594113 -4.1161947 +-2.3043277 -3.6614773 +-1.96113 -3.1204987 +-1.5756391 -2.5106158 +-1.1048884 -1.7629832 +-1.5374229 -2.456573 +-1.1581274 -1.8531035 +-1.6789265 -2.6901863 +-1.3978988 -2.2430248 +-1.4935249 -2.3998215 +-1.8940154 -3.0476036 +-2.299601 -3.7054102 +-2.633889 -4.2500153 +-2.1555223 -3.4830134 +-2.4745796 -4.0041842 +-1.9757962 -3.201586 +-1.8725531 -3.0385606 +-1.976107 -3.2111115 +-2.080184 -3.3849964 +-1.6590171 -2.7034554 +-1.2627819 -2.0606725 +-1.1862427 -1.938505 +-0.69540316 -1.1380024 +-0.5208905 -0.8536235 +-0.520354 -0.8539507 +-0.51981735 -0.85427743 +-0.7880645 -1.2969542 +-0.5187434 -0.85493 +-1.0008538 -1.6518251 +-0.73437756 -1.2137486 +-0.7136054 -1.1810921 +-1.1949891 -1.9806434 +-0.78256816 -1.2989178 +-0.7619515 -1.2664975 +-0.54948974 -0.9146491 +-1.0156746 -1.6930425 +-1.3625712 -2.2745278 +-1.7889739 -2.990579 +-1.6939374 -2.8357518 +-1.5285139 -2.5624788 +-1.8067648 -3.033283 +-1.3596973 -2.2859905 +-1.7290107 -2.9110599 +-2.1260788 -3.5847144 +-2.5011265 -4.223116 +-2.545207 -4.30371 +-2.0405178 -3.4552803 +-1.5558258 -2.638319 +-1.3973415 -2.3729727 +-1.8763698 -3.191045 +-1.40565 -2.3939574 +-1.0444485 -1.781359 +-1.3098538 -2.2372413 +-1.1409495 -1.9515626 +-1.5270977 -2.6158292 +-1.7469549 -2.996755 +-2.1271915 -3.6542943 +-2.2223415 -3.823275 +-1.9300951 -3.325307 +-1.4867253 -2.5651484 +-1.0846503 -1.8741343 +-1.3165045 -2.2780485 +-1.0719122 -1.8575047 +-0.9133865 -1.5850972 +-1.1533544 -2.0044494 +-0.9275738 -1.6144041 +-1.0630934 -1.8529648 +-0.9247481 -1.6141787 +-0.9554398 -1.670184 +-0.8472489 -1.4832193 +-0.49545866 -0.86863154 +-0.5362228 -0.94147265 +-0.49436674 -0.86925346 +-0.49382046 -0.8695639 +-0.76491076 -1.3488973 +-0.49272734 -0.87018377 +-0.9700228 -1.7156272 +-0.9747702 -1.7265548 +-1.0105356 -1.7925339 +-1.0245806 -1.8201199 +-0.8700055 -1.5477986 +-0.6557188 -1.1682861 +-1.0424173 -1.8599992 +-0.71830434 -1.2835704 +-0.95807683 -1.7145578 +-0.9531383 -1.7082394 +-1.1384437 -2.043365 +-0.68247443 -1.2267692 +-0.4856032 -0.87417936 +-0.48505384 -0.8744843 +-0.59520733 -1.074667 +-1.0070282 -1.820922 +-0.56827915 -1.0290964 +-0.48915485 -0.88712686 +-0.49657306 -0.9019202 +-0.48175368 -0.87630665 +-0.55884147 -1.0180435 +-0.8802825 -1.6060052 +-1.1561863 -2.1125178 +-0.8529744 -1.560834 +-0.8772445 -1.6076447 +-0.571992 -1.0498049 +-0.96905106 -1.7812098 +-0.6565385 -1.2085898 +-0.4767906 -0.87901694 +-0.4762382 -0.87931633 +-0.92592144 -1.7121702 +-0.56067514 -1.0383326 +-0.734529 -1.3623451 +-0.5304586 -0.9853334 +-0.95025176 -1.7677644 +-1.0223225 -1.9047073 +-0.988612 -1.8446811 +-0.5792996 -1.0825659 +-0.4712582 -0.8819953 +-0.47070393 -0.8822912 +-0.4701495 -0.8825868 +-0.51565635 -0.9694819 +-0.46904 -0.8831769 +-0.47506568 -0.89588135 +-0.4679298 -0.88376564 +-0.8506214 -1.608988 +-1.1737086 -2.223502 +-0.8394336 -1.5926665 +-1.0761087 -2.0448265 +-0.64955497 -1.2361712 +-0.9614733 -1.83258 +-1.2411572 -2.3692782 +-1.3110342 -2.5064986 +-1.2031507 -2.3037648 +-1.4851992 -2.8481846 +-1.5828311 -3.0400722 +-1.7372822 -3.3418436 +-1.4477886 -2.7892535 +-1.617708 -3.1214085 +-1.4951092 -2.8892934 +-1.1525623 -2.2307553 +-1.4432738 -2.7977295 +-1.4493104 -2.8137686 +-1.3912041 -2.705132 +-1.456108 -2.835714 +-1.6714084 -3.2600424 +-1.5200592 -2.9694338 +-1.8871107 -3.6921859 +-1.7224425 -3.3752394 +-1.7782743 -3.4900599 +-1.6481316 -3.239671 +-1.1946383 -2.3519113 +-1.5428665 -3.0422087 +-1.1861908 -2.342567 +-0.9464085 -1.8719465 +-0.55078363 -1.0911233 +-0.75302726 -1.4941084 +-0.7315053 -1.4536779 +-0.73145026 -1.455846 +-0.4483832 -0.89384145 +-0.7083998 -1.4143951 +-0.4974485 -0.99476904 +-0.44669756 -0.89468503 +-0.5999061 -1.2034359 +-1.0194771 -2.0483346 +-0.9895306 -1.9913018 +-0.7733955 -1.5588146 +-1.0881462 -2.1966753 +-0.6729917 -1.3607385 +-0.44275823 -0.896641 +-0.7873111 -1.5969305 +-0.7525932 -1.5289325 +-0.45669645 -0.9292758 +-0.86585295 -1.7646185 +-0.95008534 -1.9393655 +-1.1406405 -2.3320446 +-1.313785 -2.6903207 +-1.1785005 -2.4171407 +-0.806204 -1.65619 +-0.71313393 -1.4673376 +-1.133648 -2.336316 +-1.4725121 -3.0395365 +-1.5059972 -3.1136403 +-1.3899918 -2.8784125 +-1.6629542 -3.4491992 +-1.5977669 -3.3193214 +-1.7051095 -3.5480256 +-1.7460073 -3.6389813 +-1.4749329 -3.078974 +-1.45144 -3.0348244 +-1.209017 -2.5320268 +-1.2544687 -2.6314664 +-1.1824868 -2.4844894 +-0.97867787 -2.0596063 +-1.0967853 -2.3119068 +-0.82551825 -1.7429318 +-0.46944043 -0.9927501 +-0.426916 -0.9042913 +-0.8512848 -1.8061258 +-0.9578628 -2.035562 +-0.8960399 -1.9072914 +-0.64034104 -1.3652445 +-0.655699 -1.4002764 +-0.5607639 -1.1994997 +-0.4229346 -0.90616024 +-0.42236516 -0.9064258 +-0.705597 -1.51675 +-0.543643 -1.1705366 +-0.542457 -1.1699065 +-0.8147308 -1.7600111 +-0.57483375 -1.2438262 +-0.5547789 -1.2024148 +-0.683123 -1.4830335 +-1.0964751 -2.3843462 +-1.3974394 -3.0438468 +-1.5568222 -3.3966348 +-1.689677 -3.6926177 +-1.9538722 -4.27709 +-1.7643969 -3.8687522 +-1.369697 -3.0083082 +-1.5128956 -3.3283634 +-1.322437 -2.9142146 +-1.5675318 -3.4600985 +-1.3459201 -2.9758956 +-1.2813408 -2.8378553 +-0.94153035 -2.0887568 +-0.7446809 -1.6548268 +-0.5074942 -1.1296477 +-0.8024938 -1.7893035 +-0.527638 -1.1784457 +-0.69042027 -1.5446109 +-0.49951577 -1.119406 +-0.6376027 -1.4312723 +-0.40635395 -0.9137158 +-0.6933668 -1.5617267 +-0.9631216 -2.1729977 +-0.83460635 -1.8862398 +-0.5283467 -1.1961126 +-0.40348142 -0.91498786 +-0.40290645 -0.9152412 +-0.40643555 -0.9248333 +-0.401756 -0.91574675 +-0.54451996 -1.24328 +-0.4006049 -0.9162509 +-0.40002912 -0.9165024 +-0.3994532 -0.9167536 +-0.3988771 -0.9170044 +-0.39830086 -0.9172548 +-0.7053204 -1.6270937 +-0.95637774 -2.2100587 +-1.1019268 -2.5507987 +-1.3204582 -3.06195 +-1.4987732 -3.4814506 +-1.6112986 -3.7493165 +-1.2286942 -2.863997 +-1.1990262 -2.7996967 +-1.3508171 -3.1596088 +-1.5501158 -3.6320877 +-1.6496899 -3.8721375 +-1.4083655 -3.3114717 +-1.1459049 -2.699059 +-1.4070743 -3.3200135 +-1.121895 -2.6517646 +-1.2774526 -3.0247428 +-1.346545 -3.1939373 +-1.2755979 -3.030973 +-1.6341771 -3.889834 +-1.3429327 -3.2022176 +-1.3192822 -3.1513734 +-1.5353763 -3.674037 +-1.629309 -3.905707 +-1.7038829 -4.0917053 +-1.9192206 -4.6169896 +-1.8813463 -4.533912 +-1.6513207 -3.986641 +-1.3314005 -3.2200062 +-1.5500188 -3.7554173 +-1.4746931 -3.579292 +-1.575827 -3.831592 +-1.8056033 -4.398142 +-1.895989 -4.6265783 +-1.5740578 -3.8478932 +-1.6130978 -3.9504104 +-1.300574 -3.190779 +-1.0582079 -2.6008413 +-0.80220526 -1.9751977 +-0.6064821 -1.4959817 +-0.37512437 -0.9269745 +-0.4103756 -1.0159194 +-0.3739592 -0.9274452 +-0.3733764 -0.92767996 +-0.63711995 -1.5858454 +-0.8845883 -2.2058206 +-0.5442004 -1.359497 +-0.3710437 -0.9286154 +-0.37046018 -0.9288483 +-0.59706557 -1.4997499 +-0.36929265 -0.9293131 +-0.7069893 -1.7823784 +-0.9922886 -2.506235 +-1.2731217 -3.2214508 +-1.5685092 -3.9761932 +-1.7410315 -4.4216766 +-1.4614885 -3.7185764 +-1.2279781 -3.1302142 +-1.5426949 -3.9397316 +-1.1936206 -3.0539162 +-1.3129495 -3.3654585 +-1.5764704 -4.048447 +-1.7571265 -4.5207787 +-1.4546618 -3.7495658 +-1.6792537 -4.3365564 +-1.5831616 -4.0960464 +-1.2642545 -3.2770731 +-1.5490831 -4.0229025 +-1.7397684 -4.526583 +-1.750396 -4.5627937 +-1.6130967 -4.212806 +-1.7849944 -4.670524 +-1.7820594 -4.6716447 +-1.7791238 -4.6727633 +-1.7039616 -4.4838243 +-1.7732503 -4.6749954 +-1.7703127 -4.676109 +-1.7368951 -4.5965595 +-1.764435 -4.6783295 +-1.7614952 -4.6794376 +-1.666926 -4.4366655 +-1.4753219 -3.934201 +-1.1929001 -3.1871643 +-1.5250559 -4.0824223 +-1.4764502 -3.9598978 +-1.7438418 -4.6860447 +-1.740897 -4.6871395 +-1.7379516 -4.6882324 +-1.7350056 -4.6893234 +-1.5263516 -4.1333575 +-1.2738506 -3.4562666 +-1.1407434 -3.1011176 +-1.3974626 -3.8063903 +-1.5823848 -4.318464 +-1.3120899 -3.5877821 +-1.1266603 -3.0867543 +-0.8371067 -2.297935 +-0.6803523 -1.8712847 +-0.6289647 -1.7333356 +-0.9179107 -2.5345945 +-0.86320215 -2.3882155 +-1.1893559 -3.2970617 +-1.1122217 -3.0893145 +-1.3672054 -3.8050587 +-1.0839025 -3.0225673 +-1.1548507 -3.2267926 +-1.2634746 -3.5373046 +-1.3723471 -3.8497458 +-1.6759424 -4.7107553 +-1.6729822 -4.7118077 +-1.6700214 -4.7128577 +-1.6670599 -4.7139063 +-1.4657182 -4.152876 +-1.3561248 -3.8500671 +-1.5973456 -4.5440073 +-1.6552073 -4.718081 +-1.6522425 -4.71912 +-1.6492771 -4.720157 +-1.646311 -4.721193 +-1.6433443 -4.722226 +-1.5649645 -4.506118 +-1.6374089 -4.7242875 +-1.4962817 -4.3258867 +-1.3975481 -4.0486712 +-1.1313397 -3.2841594 +-1.2539961 -3.647659 +-1.5696393 -4.575159 +-1.6195871 -4.730427 +-1.3777616 -4.032378 +-1.2904509 -3.7846112 +-1.101424 -3.2368932 +-1.201371 -3.5379074 +-1.1791897 -3.4797657 +-1.1329086 -3.3501146 +-0.8899426 -2.6371007 +-1.0618747 -3.1531122 +-1.2111566 -3.603872 +-0.9093657 -2.7115152 +-1.1037096 -3.2978752 +-1.3908828 -4.164639 +-1.202061 -3.606802 +-1.382343 -4.1564455 +-1.1766882 -3.5455174 +-1.3827051 -4.175047 +-1.1513709 -3.4838715 +-0.9507188 -2.8828073 +-0.6773812 -2.0583293 +-0.4190532 -1.2760587 +-0.31140628 -0.95027685 +-0.31080914 -0.95047235 +-0.3102119 -0.95066744 +-0.3096145 -0.95086217 +-0.35173887 -1.0825409 +-0.462431 -1.4262649 +-0.42104417 -1.301403 +-0.4198576 -1.300525 +-0.30662575 -0.95183015 +-0.43911886 -1.3660567 +-0.3054294 -0.9522147 +-0.30510858 -0.95327353 +-0.30423257 -0.9525978 +-0.303634 -0.9527888 +-0.44248933 -1.3915317 +-0.32730478 -1.0315455 +-0.58174485 -1.8374522 +-0.8497398 -2.689791 +-0.58478254 -1.855145 +-0.31827617 -1.0119058 +-0.29944047 -0.954115 +-0.29884094 -0.95430297 +-0.29824126 -0.95449054 +-0.2976415 -0.9546777 +-0.2970416 -0.95486456 +-0.29644156 -0.955051 +-0.46250424 -1.4933716 +-0.29524118 -0.95542276 +-0.2946408 -0.95560807 +-0.29404032 -0.955793 +-0.3197191 -1.0415914 +-0.29283902 -0.95616174 +-0.34886265 -1.1416484 +-0.29163724 -0.956529 +-0.29103616 -0.95671207 +-0.43601477 -1.4365357 +-0.3681156 -1.2155763 +-0.51348835 -1.6994691 +-0.32759464 -1.0866907 +-0.5238932 -1.7418079 +-0.33518338 -1.1169411 +-0.49004617 -1.6367296 +-0.6541115 -2.1897056 +-0.3717463 -1.2473162 +-0.4121039 -1.3859082 +-0.46511877 -1.5678028 +-0.3225018 -1.0895858 +-0.28321198 -0.95905733 +-0.51309544 -1.7415531 +-0.3401849 -1.1573405 +-0.45362756 -1.5468745 +-0.28080073 -0.9597661 +-0.49034595 -1.6798995 +-0.33091825 -1.1363626 +-0.36621585 -1.2605232 +-0.2783877 -0.96046877 +-0.27778414 -0.96064353 +-0.37008506 -1.282862 +-0.27657676 -0.96099186 +-0.27597287 -0.9611654 +-0.2753689 -0.96133864 +-0.28164342 -0.9855824 +-0.4664686 -1.63625 +-0.39937666 -1.4042549 +-0.27295193 -0.96202767 +-0.27648142 -0.9768043 +-0.5018624 -1.7773323 +-0.44901696 -1.5940107 +-0.5446958 -1.9383364 +-0.724551 -2.5845976 +-0.5397976 -1.9302158 +-0.6208505 -2.225436 +-0.550029 -1.9763733 +-0.42862734 -1.5439059 +-0.42197752 -1.5236669 +-0.44648802 -1.6161159 +-0.34049493 -1.2354853 +-0.49417123 -1.797508 +-0.4380633 -1.5973458 +-0.5292187 -1.9344976 +-0.7569313 -2.773721 +-0.77328545 -2.8406758 +-0.7055867 -2.5984242 +-0.6389332 -2.3588228 +-0.5506297 -2.0378957 +-0.4692239 -1.7409539 +-0.5986494 -2.2267263 +-0.8279438 -3.0873418 +-0.58159053 -2.1741679 +-0.7845294 -2.940216 +-0.78185195 -2.9375904 +-0.98175037 -3.6979995 +-0.8231888 -3.1086135 +-0.88190866 -3.338834 +-0.8555146 -3.24717 +-0.7873948 -2.9962566 +-0.9168122 -3.4976647 +-0.96162987 -3.678066 +-1.1925523 -4.5730433 +-1.2586577 -4.8389854 +-1.0092514 -3.890159 +-0.99815816 -3.8573694 +-0.8783067 -3.4030197 +-0.9122781 -3.5438433 +-0.99749327 -3.8849797 +-1.0316432 -4.0284915 +-1.2342327 -4.83222 +-1.148808 -4.509584 +-1.2312739 -4.8460255 +-1.2282288 -4.8467984 +-1.1342425 -4.4877524 +-1.1949424 -4.7404532 +-1.2190907 -4.849105 +-1.2160437 -4.8498697 +-1.2129961 -4.850633 +-1.2099482 -4.851394 +-1.2058614 -4.847979 +-1.0673245 -4.302552 +-1.0255475 -4.1452866 +-1.1601026 -4.7018313 +-1.1947011 -4.855171 +-1.1916503 -4.8559213 +-1.188599 -4.856669 +-1.1240684 -4.605524 +-0.9563547 -3.9290845 +-1.1794423 -4.8589005 +-1.1763891 -4.8596406 +-1.1502846 -4.7648945 +-1.0600277 -4.4031434 +-1.1672268 -4.86185 +-0.97445023 -4.070142 +-1.1099684 -4.6490808 +-1.1118611 -4.6699967 +-1.067816 -4.4975405 +-1.1186395 -4.7248106 +-1.1355556 -4.809737 +-1.0420103 -4.4259524 +-0.8572789 -3.6515868 +-0.7404104 -3.1627142 +-0.8362056 -3.5820494 +-0.65772307 -2.8255029 +-0.6010943 -2.5895996 +-0.63974035 -2.763976 +-0.8589703 -3.7217944 +-1.0656358 -4.6305223 +-0.96044797 -4.1854787 +-1.1016718 -4.8147855 +-1.1121671 -4.874739 +-1.109104 -4.8754373 +-1.0390742 -4.5809026 +-1.07646 -4.759584 +-1.099912 -4.877519 +-1.0968472 -4.878209 +-1.0492038 -4.680053 +-1.067917 -4.7775865 +-1.0560282 -4.7383814 +-1.0845835 -4.8809505 +-0.87009543 -3.9273417 +-0.87196857 -3.94754 +-1.0753812 -4.8829865 +-0.8833426 -4.023029 +-1.0236112 -4.6758814 +-0.8850597 -4.0551696 +-0.9255237 -4.253394 +-0.925949 -4.268255 +-1.0083991 -4.6624546 +-0.9179901 -4.2573824 +-0.91490245 -4.2560396 +-0.7798379 -3.6388583 +-0.6976569 -3.2653997 +-0.6517031 -3.0597193 +-0.47838166 -2.252929 +-0.6383124 -3.0154433 +-0.62039727 -2.9399269 +-0.7846957 -3.7301004 +-0.898619 -4.285005 +-1.0231637 -4.894194 +-0.9454148 -4.5365195 +-1.0170126 -4.895476 +-0.8615261 -4.160152 +-0.8683914 -4.206612 +-0.8142367 -3.9568338 +-0.81975806 -3.9963827 +-0.9251267 -4.524503 +-0.9362922 -4.593815 +-0.8285307 -4.0781875 +-0.83195466 -4.108269 +-0.788721 -3.9073966 +-0.87925273 -4.3700542 +-0.88646924 -4.420283 +-0.98007303 -4.9030046 +-0.93389326 -4.687302 +-0.7912102 -3.9842231 +-0.76193994 -3.8494885 +-0.5870463 -2.9757023 +-0.5981069 -3.0418315 +-0.7441044 -3.7969408 +-0.83823717 -4.2915583 +-0.95171416 -4.888856 +-0.95233166 -4.9084687 +-0.87694067 -4.5351295 +-0.8086196 -4.195947 +-0.94307774 -4.910255 +-0.9399923 -4.9108467 +-0.8397587 -4.402169 +-0.9338204 -4.912024 +-0.9129695 -4.8188457 +-0.80401754 -4.258402 +-0.7666791 -4.0746837 +-0.6592626 -3.5159504 +-0.6299794 -3.3714716 +-0.7880556 -4.2321773 +-0.66953814 -3.6082869 +-0.80353314 -4.345635 +-0.6311375 -3.425328 +-0.78358126 -4.2677207 +-0.6844125 -3.7408361 +-0.6004483 -3.293596 +-0.7730537 -4.2555285 +-0.8905764 -4.920048 +-0.7917577 -4.389853 +-0.6212171 -3.456733 +-0.59094584 -3.3001997 +-0.70170724 -3.9330003 +-0.77680254 -4.369779 +-0.6150448 -3.4724965 +-0.52245617 -2.960579 +-0.4249055 -2.4166644 +-0.32024458 -1.8281361 +-0.4838567 -2.772374 +-0.42034853 -2.4174557 +-0.39106837 -2.2574663 +-0.4944728 -2.8650773 +-0.4567788 -2.656629 +-0.53449214 -3.120349 +-0.45642084 -2.674669 +-0.45693666 -2.6878755 +-0.55917615 -3.3018422 +-0.4260253 -2.5252452 +-0.35887823 -2.1354125 +-0.30842605 -1.8422914 +-0.35917133 -2.1537118 +-0.3619941 -2.1790755 +-0.3595378 -2.172733 +-0.3175341 -1.9264134 +-0.46790236 -2.8498237 +-0.50848955 -3.1092439 +-0.48713356 -2.9904542 +-0.5761193 -3.5507848 +-0.57399374 -3.5517995 +-0.6118447 -3.80118 +-0.4682429 -2.9207268 +-0.4738489 -2.9676235 +-0.5370638 -3.3771527 +-0.6738469 -4.254502 +-0.74532866 -4.725033 +-0.77596587 -4.9394207 +-0.7728622 -4.939907 +-0.76396567 -4.903215 +-0.7552875 -4.8676214 +-0.7635493 -4.941355 +-0.69100934 -4.4906025 +-0.7312305 -4.7719283 +-0.7542337 -4.9427857 +-0.75112796 -4.943259 +-0.60538924 -4.0010605 +-0.6240323 -4.1418657 +-0.69162464 -4.610154 +-0.5769789 -3.862501 +-0.62145036 -4.1781726 +-0.5671763 -3.829809 +-0.49054062 -3.3267558 +-0.41506267 -2.827186 +-0.39200592 -2.6818597 +-0.5188607 -3.5653727 +-0.48592874 -3.3538654 +-0.5104471 -3.5387573 +-0.5413703 -3.7698987 +-0.4965885 -3.4735656 +-0.49441323 -3.4739285 +-0.53223264 -3.7565804 +-0.65060824 -4.61296 +-0.6510896 -4.637441 +-0.6278573 -4.492467 +-0.68895143 -4.952307 +-0.609909 -4.4044113 +-0.68272763 -4.953169 +-0.57564664 -4.195787 +-0.50529003 -3.7002335 +-0.52330804 -3.8502238 +-0.6524853 -4.8233495 +-0.6671635 -4.9552894 +-0.5867469 -4.3788066 +-0.50228167 -3.7664318 +-0.6137573 -4.624522 +-0.6547074 -4.9569507 +-0.65159273 -4.9573607 +-0.6484778 -4.9577694 +-0.5524557 -4.2443933 +-0.5620801 -4.339637 +-0.4746164 -3.6825204 +-0.5348469 -4.1705127 +-0.61217135 -4.797345 +-0.6218069 -4.89736 +-0.6266662 -4.9605737 +-0.6235492 -4.960966 +-0.620432 -4.961357 +-0.6173146 -4.9617457 +-0.6141969 -4.962133 +-0.611079 -4.9625177 +-0.5711423 -4.6623445 +-0.457107 -3.7509785 +-0.33921316 -2.7981927 +-0.31199154 -2.5872455 +-0.24597538 -2.050634 +-0.2886618 -2.4193542 +-0.3238379 -2.728748 +-0.2519362 -2.1343427 +-0.28060782 -2.3901405 +-0.27031493 -2.3150282 +-0.25442815 -2.1909199 +-0.36478773 -3.158562 +-0.35317492 -3.074962 +-0.328896 -2.8795335 +-0.42584974 -3.7492704 +-0.51858085 -4.591419 +-0.446 -3.971174 +-0.33966422 -3.0415924 +-0.38756344 -3.4903975 +-0.42380425 -3.8387709 +-0.3335065 -3.0383656 +-0.25440723 -2.3312469 +-0.2916831 -2.688485 +-0.22006312 -2.0403075 +-0.3162869 -2.9498255 +-0.39966047 -3.7496266 +-0.4607781 -4.34896 +-0.44416225 -4.2174244 +-0.35882875 -3.427839 +-0.32532528 -3.1267571 +-0.25610974 -2.4766316 +-0.34090447 -3.3169816 +-0.2911787 -2.8507636 +-0.19663742 -1.9372046 +-0.114361696 -1.133742 +-0.09973655 -0.9950139 +-0.13461863 -1.3515689 +-0.17704725 -1.7889482 +-0.09786081 -0.9952001 +-0.0980611 -1.0037119 +-0.16131479 -1.6619395 +-0.16935962 -1.7562965 +-0.10115766 -1.0559711 +-0.12270441 -1.2894292 +-0.17919818 -1.8957187 +-0.18674485 -1.9888915 +-0.12282222 -1.3169855 +-0.2113366 -2.2816029 +-0.20333363 -2.2103236 +-0.19259237 -2.1080809 +-0.24385737 -2.6878572 +-0.17773156 -1.9727758 +-0.21763265 -2.4327714 +-0.16067603 -1.8088969 +-0.19331881 -2.1920176 +-0.11755884 -1.3426241 +-0.19482717 -2.2413013 +-0.24352425 -2.8220665 +-0.30114573 -3.5155966 +-0.3282127 -3.8600988 +-0.37579942 -4.452906 +-0.35708958 -4.2631745 +-0.28664374 -3.4481905 +-0.23864208 -2.8927677 +-0.20735943 -2.5329885 +-0.21997994 -2.708077 +-0.29547074 -3.6659527 +-0.34074268 -4.2610807 +-0.36145604 -4.5561333 +-0.28029928 -3.5615401 +-0.28672186 -3.6726475 +-0.2460481 -3.17738 +-0.23893915 -3.11097 +-0.30103093 -3.9519188 +-0.23740515 -3.1427147 +-0.17976382 -2.399745 +-0.20688815 -2.785332 +-0.2656909 -3.6076767 +-0.3084924 -4.225096 +-0.32999685 -4.55906 +-0.35783538 -4.987179 +-0.3228679 -4.539792 +-0.3137278 -4.450793 +-0.3314297 -4.7444253 +-0.31561515 -4.5592456 +-0.34216598 -4.9882784 +-0.27829012 -4.094745 +-0.27451423 -4.077051 +-0.30395362 -4.5569973 +-0.329628 -4.989123 +-0.31587642 -4.8270884 +-0.3233582 -4.989533 +-0.32022312 -4.989735 +-0.28250897 -4.4457746 +-0.3139526 -4.990134 +-0.28151557 -4.519878 +-0.23665081 -3.8384216 +-0.25735176 -4.2173276 +-0.24516657 -4.0595975 +-0.1975486 -3.3056302 +-0.15173574 -2.566107 +-0.16358177 -2.796259 +-0.1849074 -3.1952329 +-0.19173153 -3.349644 +-0.20261173 -3.579142 +-0.16178434 -2.8901048 +-0.17543006 -3.169557 +-0.19141199 -3.4981396 +-0.21986358 -4.06492 +-0.18827723 -3.5219712 +-0.23099259 -4.3725557 +-0.20204963 -3.8708482 +-0.17004165 -3.2974412 +-0.12550437 -2.4638758 +-0.12136637 -2.4124732 +-0.15943345 -3.2093394 +-0.18330972 -3.7373443 +-0.13820387 -2.8543723 +-0.18095557 -3.7865896 +-0.13413297 -2.8442826 +-0.14842434 -3.1899245 +-0.11519534 -2.5097327 +-0.13567312 -2.9969883 +-0.10268741 -2.3003333 +-0.08127544 -1.8467209 +-0.08260584 -1.9041868 +-0.107002616 -2.502887 +-0.10048754 -2.385618 +-0.09582161 -2.3093545 +-0.12185035 -2.9818926 +-0.10105646 -2.511713 +-0.06610413 -1.6690956 +-0.056739368 -1.4557714 +-0.038318045 -0.9992656 +-0.04891863 -1.2969922 +-0.037062302 -0.99931294 +-0.07252275 -1.9891801 +-0.095460325 -2.6642957 +-0.07266049 -2.064197 +-0.043363433 -1.2543194 +-0.058805987 -1.7325318 +-0.055165857 -1.655976 +-0.03266675 -0.9994663 +-0.060153846 -1.8765695 +-0.06718412 -2.1378334 +-0.05708606 -1.8536037 +-0.046192117 -1.5311406 +-0.054254618 -1.8366767 +-0.062188767 -2.1510637 +-0.059596304 -2.1072264 +-0.047706738 -1.7251884 +-0.032188576 -1.1910987 +-0.053234395 -2.0167975 +-0.065194786 -2.5301895 +-0.048955396 -1.9474633 +-0.029072734 -1.1861906 +-0.023873836 -0.999715 +-0.024332862 -1.0464859 +-0.022617538 -0.9997442 +-0.03114998 -1.4162498 +-0.021361206 -0.99977183 +-0.020733025 -0.99978507 +-0.026844677 -1.3349648 +-0.035630494 -1.829049 +-0.045906045 -2.435103 +-0.05108045 -2.8030367 +-0.041224003 -2.3429737 +-0.037295 -2.1981905 +-0.027986571 -1.7130018 +-0.021586716 -1.37414 +-0.017263787 -1.1447536 +-0.03063098 -2.119449 +-0.042672526 -3.0868688 +-0.048268758 -3.6579835 +-0.0412958 -3.2860425 +-0.0412324 -3.4536994 +-0.04272504 -3.7775621 +-0.044511512 -4.167034 +-0.039069384 -3.8861725 +-0.02979179 -3.1609135 +-0.0339922 -3.8642054 +-0.032998428 -4.039805 +-0.03304564 -4.382731 +-0.03357496 -4.85776 +-0.03141572 -4.9999013 +-0.028274184 -4.99992 +-0.023877606 -4.750259 +-0.017117862 -3.8919642 +-0.015211339 -4.034914 +-0.014379937 -4.577261 +-0.011304565 -4.4979343 +-0.0072156666 -3.8280256 +-0.004013537 -3.1938694 +-0.0016954844 -2.6984468 +-3.3198342E-16 -1.8072336 +0.0011954642 -1.9026401 +0.002107791 -1.6773257 +0.0018849545 -0.9999982 +0.0025132715 -0.99999684 +0.0043356335 -1.3800704 +0.0037699023 -0.9999929 +0.0043982156 -0.99999034 +0.0090765795 -1.8057129 +0.008485789 -1.500601 +0.006283144 -0.9999803 +0.0069114487 -0.9999761 +0.007539751 -0.99997157 +0.00816805 -0.9999666 +0.008796346 -0.9999613 +0.013739564 -1.4577699 +0.014711302 -1.463311 +0.010681212 -0.99994296 +0.011309492 -0.99993604 +0.011937768 -0.9999287 +0.01256604 -0.999921 +0.013194306 -0.999913 +0.021731935 -1.5720568 +0.034027554 -2.354468 +0.043222934 -2.8660927 +0.04270656 -2.7185605 +0.04734313 -2.897778 +0.05832288 -3.4375868 +0.07195583 -4.089623 +0.0702204 -3.8533404 +0.05442503 -2.8869956 +0.05483129 -2.814699 +0.069806345 -3.471415 +0.06303039 -3.0394425 +0.050326776 -2.3554518 +0.04223808 -1.9203758 +0.06312432 -2.7902317 +0.078174084 -3.3620408 +0.08756572 -3.6668077 +0.10357151 -4.2257996 +0.091198 -3.6278892 +0.07285259 -2.8273866 +0.0815084 -3.087965 +0.082171306 -3.040648 +0.101333596 -3.6644623 +0.11881468 -4.20109 +0.13288575 -4.596421 +0.14763339 -4.99782 +0.15077358 -4.9977264 +0.14452253 -4.692695 +0.12721145 -4.0479336 +0.14452618 -4.508663 +0.16333376 -4.9973316 +0.16647364 -4.9972277 +0.13911273 -4.098515 +0.1727532 -4.9970145 +0.16427508 -4.6668572 +0.1790325 -4.9967937 +0.18217205 -4.9966803 +0.17036813 -4.5936456 +0.18845092 -4.9964476 +0.18982133 -4.950198 +0.19472948 -4.9962068 +0.19786866 -4.9960833 +0.20100775 -4.995958 +0.20414676 -4.9958305 +0.18072687 -4.355619 +0.21042454 -4.99557 +0.20842247 -4.8751884 +0.216702 -4.9953017 +0.21984059 -4.995165 +0.2229791 -4.9950256 +0.22611752 -4.9948845 +0.21289688 -4.6383324 +0.2323941 -4.9945965 +0.22834973 -4.8421445 +0.23867032 -4.9943004 +0.19355689 -3.997597 +0.21117726 -4.3055115 +0.21483262 -4.3245044 +0.22306906 -4.4340796 +0.19310674 -3.7910311 +0.15875877 -3.078644 +0.19833478 -3.7996795 +0.22435237 -4.2468605 +0.236585 -4.4256315 +0.27004552 -4.992702 +0.26894948 -4.915172 +0.2763193 -4.992359 +0.27945605 -4.992184 +0.26584417 -4.696145 +0.26979104 -4.7133822 +0.26851425 -4.6399736 +0.29200187 -4.991466 +0.23812062 -4.027021 +0.22491202 -3.7635093 +0.23398408 -3.8744323 +0.20318115 -3.3296118 +0.19168675 -3.109115 +0.19629097 -3.151553 +0.1536858 -2.4427657 +0.16760506 -2.63756 +0.2063009 -3.2145925 +0.20715551 -3.1964836 +0.24553864 -3.7522163 +0.2119358 -3.207779 +0.19252922 -2.886477 +0.23572388 -3.5009422 +0.20993258 -3.0889359 +0.17483258 -2.548803 +0.22185403 -3.2048113 +0.24689338 -3.5342855 +0.2751993 -3.9041965 +0.21257614 -2.9889977 +0.24569635 -3.4242887 +0.31092393 -4.2955594 +0.2931629 -4.0151443 +0.25353774 -3.4426556 +0.21315563 -2.8697107 +0.252286 -3.3678749 +0.29516473 -3.907323 +0.2640414 -3.466322 +0.31105736 -4.0499434 +0.355209 -4.5870466 +0.34105617 -4.368621 +0.30086207 -3.8228152 +0.34260288 -4.31849 +0.3940184 -4.9273086 +0.33269432 -4.127792 +0.3964571 -4.8806105 +0.34507895 -4.2152944 +0.30804265 -3.7340262 +0.30486026 -3.667327 +0.26969275 -3.2197723 +0.25676897 -3.0424957 +0.22620285 -2.6603642 +0.3120324 -3.6426885 +0.38314563 -4.4400606 +0.3844228 -4.422419 +0.40354246 -4.6088057 +0.3491883 -3.9594018 +0.30969068 -3.4865093 +0.35162583 -3.9305923 +0.34681904 -3.8496048 +0.31338993 -3.4542625 +0.24078661 -2.6356063 +0.31333587 -3.4060948 +0.33867443 -3.65635 +0.27560216 -2.9551988 +0.36450693 -3.8821135 +0.37581623 -3.9757204 +0.35897234 -3.7722313 +0.29626155 -3.0926344 +0.3800286 -3.9409802 +0.3646901 -3.757206 +0.32004187 -3.275813 +0.31386054 -3.1918192 +0.22732572 -2.2969797 +0.22923356 -2.3015013 +0.30569804 -3.0497725 +0.38394675 -3.8063142 +0.42536846 -4.190584 +0.45838088 -4.4877443 +0.4069172 -3.959282 +0.38203764 -3.6943793 +0.3824274 -3.6755753 +0.48258743 -4.610088 +0.5236838 -4.9725 +0.50640005 -4.779554 +0.52993196 -4.971838 +0.49759033 -4.6407385 +0.50204784 -4.654719 +0.5393027 -4.97083 +0.5424259 -4.9704905 +0.52466214 -4.7798634 +0.4256404 -3.8554025 +0.41014114 -3.6937325 +0.35047445 -3.1383946 +0.3437556 -3.060792 +0.26100424 -2.3108838 +0.17803915 -1.567494 +0.27514008 -2.4088924 +0.25684983 -2.2362955 +0.20330153 -1.7603128 +0.11535324 -0.9933245 +0.11597735 -0.99325186 +0.1166014 -0.9931788 +0.11722541 -0.99310535 +0.11784937 -0.9930315 +0.11847329 -0.99295723 +0.19592479 -1.6333749 +0.11972098 -0.99280757 +0.12034476 -0.99273217 +0.12096848 -0.99265635 +0.19669321 -1.6056443 +0.1222158 -0.9925035 +0.1923336 -1.5538743 +0.24089018 -1.936186 +0.28920633 -2.3126721 +0.2668834 -2.1233282 +0.17552759 -1.389444 +0.2725979 -2.146985 +0.35152352 -2.7547512 +0.290782 -2.2673967 +0.3214576 -2.4941704 +0.43372145 -3.3486216 +0.5602426 -4.304218 +0.6484778 -4.9577694 +0.64306694 -4.892496 +0.6547074 -4.9569507 +0.53242797 -4.011724 +0.61565167 -4.6165533 +0.59872884 -4.4682264 +0.52838373 -3.9245167 +0.49925464 -3.6906264 +0.4642076 -3.4153938 +0.3407824 -2.495546 +0.26764217 -1.9507967 +0.35930726 -2.6067636 +0.35627612 -2.572821 +0.37491158 -2.694932 +0.46776444 -3.3469646 +0.45311904 -3.227379 +0.43837953 -3.1082103 +0.5612788 -3.961593 +0.6737156 -4.7337728 +0.6098265 -4.2656493 +0.7107261 -4.9492292 +0.71383566 -4.9487815 +0.64382714 -4.443675 +0.5110635 -3.5117943 +0.62521386 -4.2773232 +0.67802554 -4.618349 +0.7293792 -4.9465146 +0.732487 -4.9460554 +0.7322439 -4.9230666 +0.7387018 -4.945131 +0.7418088 -4.944666 +0.7449155 -4.9441986 +0.7012686 -4.634734 +0.6672559 -4.3912873 +0.7542337 -4.9427857 +0.75733924 -4.942311 +0.7604444 -4.941834 +0.7107291 -4.599526 +0.62597585 -4.0342426 +0.5699221 -3.657822 +0.5773212 -3.6900668 +0.6559649 -4.175553 +0.77906924 -4.9389324 +0.7821723 -4.9384418 +0.7710439 -4.848461 +0.7883775 -4.9374547 +0.65649706 -4.094987 +0.618046 -3.8397062 +0.770495 -4.767724 +0.77972305 -4.805652 +0.66316015 -4.0710607 +0.7795596 -4.7667465 +0.8100859 -4.9339395 +0.8131858 -4.9334297 +0.79655546 -4.813687 +0.8193847 -4.932404 +0.82248366 -4.931888 +0.8255823 -4.9313703 +0.8117995 -4.8304043 +0.8317786 -4.930329 +0.83487624 -4.9298053 +0.7798717 -4.5875025 +0.8410706 -4.9287524 +0.84416723 -4.928223 +0.8472636 -4.9276915 +0.8207591 -4.755647 +0.8534552 -4.926623 +0.7593146 -4.3668747 +0.7035536 -4.0311804 +0.55588263 -3.1732905 +0.496195 -2.8221257 +0.4109004 -2.328431 +0.48530233 -2.7399802 +0.36499476 -2.0532198 +0.38990542 -2.1853817 +0.28083825 -1.568371 +0.3036446 -1.689616 +0.35510868 -1.9688786 +0.3003076 -1.6590691 +0.3978413 -2.1900482 +0.24879281 -1.3646854 +0.3047508 -1.6656955 +0.3367891 -1.8342984 +0.5018013 -2.7233908 +0.62976 -3.4058423 +0.4919908 -2.6514456 +0.40624556 -2.181703 +0.42707026 -2.2855594 +0.49718606 -2.651571 +0.39365628 -2.0921724 +0.39181432 -2.075207 +0.3670866 -1.9375603 +0.4891753 -2.5731292 +0.4151689 -2.1763916 +0.2658536 -1.3889117 +0.38040042 -1.9806036 +0.4050226 -2.1016722 +0.50480545 -2.6106188 +0.43184838 -2.225815 +0.57354295 -2.94623 +0.47424972 -2.4280362 +0.42907944 -2.1894634 +0.51306397 -2.609323 +0.36605132 -1.855492 +0.25565344 -1.2916174 +0.38213652 -1.9242892 +0.23362471 -1.1725854 +0.29276848 -1.464631 +0.1966307 -0.98047763 +0.19724672 -0.9803539 +0.3618934 -1.7928532 +0.37425703 -1.8481159 +0.51158136 -2.5181017 +0.41029114 -2.0130484 +0.34903547 -1.7070225 +0.36874104 -1.7976406 +0.5085363 -2.4712636 +0.49510852 -2.3983765 +0.6599564 -3.1868088 +0.8325074 -4.0073447 +0.638789 -3.0651927 +0.81453836 -3.8962574 +0.87343425 -4.164913 +0.76727957 -3.647312 +0.6362712 -3.0151498 +0.7747635 -3.6600504 +0.6376525 -3.0030117 +0.65609586 -3.0803432 +0.8049071 -3.7673864 +0.95612353 -4.461437 +0.94568735 -4.3992486 +1.0268794 -4.762381 +0.8256674 -3.8175726 +0.96329767 -4.4404173 +1.0414268 -4.7860456 +0.87284523 -3.9992054 +0.8606502 -3.9314713 +0.75760686 -3.4503877 +0.5955742 -2.7043254 +0.7047328 -3.1904368 +0.81768507 -3.6907775 +0.77644515 -3.4942358 +0.5869009 -2.6334147 +0.64342993 -2.87854 +0.582473 -2.598165 +0.5956837 -2.649293 +0.63115716 -2.7988431 +0.4328361 -1.9137913 +0.54397476 -2.3981884 +0.3835999 -1.6862416 +0.22243342 -0.97494787 +0.22304596 -0.9748079 +0.40926066 -1.7834926 +0.37045795 -1.6097561 +0.4137244 -1.7926081 +0.6358137 -2.7470112 +0.73200375 -3.1535764 +0.67880595 -2.9160724 +0.5881959 -2.5196517 +0.58697873 -2.5073202 +0.44668683 -1.9026666 +0.43832818 -1.8618046 +0.61364025 -2.5991225 +0.62759674 -2.6507876 +0.41710153 -1.7567923 +0.5571602 -2.340163 +0.6786928 -2.8426914 +0.82951534 -3.464769 +0.9226629 -3.8431675 +1.1061834 -4.594865 +0.96622175 -4.0024395 +1.1763891 -4.8596406 +1.1794423 -4.8589005 +0.9589998 -3.939952 +1.0167265 -4.165724 +0.8913694 -3.6421754 +1.0461591 -4.2630515 +0.82523024 -3.3536708 +0.9941954 -4.0294185 +1.1696247 -4.727649 +1.1641198 -4.692749 +1.2068998 -4.8521533 +1.2099482 -4.851394 +1.1087232 -4.433657 +0.94182944 -3.7562387 +0.9536093 -3.7931151 +1.1048636 -4.383102 +0.9250063 -3.6598866 +0.96410865 -3.8045354 +1.0973738 -4.3190236 +1.2277267 -4.819375 +0.98881316 -3.8713632 +1.1218922 -4.380907 +1.1666642 -4.543857 +1.145509 -4.449854 +1.1133883 -4.313849 +1.136161 -4.3906794 +1.0904711 -4.2032204 +1.1716846 -4.504612 +1.0528188 -4.0372114 +0.94920933 -3.6305594 +1.1450717 -4.368481 +1.2662803 -4.818549 +1.2738537 -4.8350077 +1.1141613 -4.2181234 +0.9060293 -3.4214447 +0.8169059 -3.077073 +0.8452418 -3.17576 +0.76081014 -2.8513222 +0.6514775 -2.4354274 +0.4755368 -1.7732419 +0.58557886 -2.1781094 +0.36073136 -1.3384157 +0.40599102 -1.5025841 +0.45735857 -1.6884829 +0.40696654 -1.4987127 +0.41372862 -1.5198385 +0.26326695 -0.96472305 +0.49253732 -1.8004131 +0.32936403 -1.2009867 +0.2958939 -1.0762901 +0.4535261 -1.6456187 +0.26629642 -0.9638912 +0.4324222 -1.5613803 +0.28695536 -1.0336066 +0.49343884 -1.7730327 +0.34309915 -1.2298374 +0.515532 -1.8434466 +0.5256678 -1.875147 +0.76099163 -2.7080398 +0.95685685 -3.396843 +0.9062954 -3.2096212 +1.1415355 -4.033026 +1.2209027 -4.3031096 +1.0774373 -3.788395 +1.1776338 -4.1308317 +1.3738241 -4.807557 +1.1174045 -3.9009635 +1.3327574 -4.641762 +1.2997615 -4.5161433 +1.2805994 -4.439067 +1.154944 -3.9940703 +1.288159 -4.444293 +1.3949555 -4.8014684 +1.3393822 -4.5993953 +1.2275071 -4.2053747 +1.2926192 -4.418123 +1.3585495 -4.6326675 +1.4100329 -4.7970624 +1.3779753 -4.677136 +1.1531776 -3.905073 +1.3432025 -4.5380654 +1.4220847 -4.7935033 +1.4250963 -4.7926087 +1.4281073 -4.7917128 +1.4056097 -4.705424 +1.1994808 -4.0062056 +1.0206136 -3.4010193 +1.3075705 -4.34733 +1.2760729 -4.2329645 +1.2191308 -4.0349016 +1.0568988 -3.4900484 +0.7875822 -2.5948434 +0.88690954 -2.9155037 +0.85733575 -2.8119404 +0.613779 -2.0085835 +0.57051855 -1.8628256 +0.54536873 -1.7767202 +0.7060237 -2.2949657 +0.5502398 -1.7845919 +0.7388747 -2.3910542 +0.87079865 -2.811706 +0.9009787 -2.9026988 +0.9832706 -3.160804 +1.0376018 -3.3280826 +0.8336809 -2.6681101 +1.001695 -3.1987603 +1.1850591 -3.7759845 +0.91011983 -2.8935735 +0.98496866 -3.124682 +0.99249977 -3.1416879 +0.895818 -2.829458 +1.1113133 -3.502455 +1.1590445 -3.6449404 +1.0745672 -3.37194 +1.2886932 -4.0350914 +1.2625784 -3.9447677 +1.3165052 -4.104371 +1.0973951 -3.4138906 +1.0829504 -3.3617034 +1.271482 -3.9384642 +1.0059725 -3.1093547 +0.96927303 -2.9895055 +1.0696894 -3.2921655 +0.8657423 -2.6587954 +0.5931534 -1.8177629 +0.57334 -1.7533069 +0.66990024 -2.044245 +0.43438137 -1.3227345 +0.33656695 -1.0227116 +0.3471444 -1.052625 +0.3137936 -0.9494912 +0.31439012 -0.94929385 +0.31498653 -0.94909614 +0.49145654 -1.4777173 +0.5967274 -1.7904893 +0.78646016 -2.3548517 +0.5643666 -1.6863227 +0.3807989 -1.135453 +0.31856227 -0.9479019 +0.3191578 -0.9477016 +0.45531684 -1.3492066 +0.44675136 -1.3210847 +0.32094362 -0.9470983 +0.5946983 -1.7513222 +0.48295355 -1.4193163 +0.78608346 -2.3054113 +0.7428877 -2.1742542 +1.0457418 -3.0543618 +1.2949692 -3.774555 +1.5614084 -4.541868 +1.6285008 -4.7273655 +1.3346789 -3.8665407 +1.6141483 -4.66665 +1.6374089 -4.7242875 +1.3471532 -3.8789573 +1.3226833 -3.8007922 +1.0488416 -3.0078056 +1.2285672 -3.5161047 +0.98082346 -2.801419 +1.2010056 -3.423403 +1.3135282 -3.7366252 +1.150058 -3.2650392 +1.051983 -2.9806242 +0.74961907 -2.1196804 +0.52081156 -1.4697481 +0.8474418 -2.3867455 +1.1678315 -3.2825525 +1.2127267 -3.401974 +1.4585233 -4.0833755 +1.3960029 -3.900601 +1.3676007 -3.813687 +1.6564828 -4.6101446 +1.6807116 -4.6683564 +1.3502407 -3.743057 +1.0417479 -2.882197 +1.1739691 -3.2416396 +1.2543051 -3.4566834 +1.502121 -4.13153 +1.3379343 -3.6727529 +1.4476793 -3.966262 +1.658848 -4.535959 +1.7202652 -4.6947513 +1.7232146 -4.6936693 +1.6696683 -4.5390034 +1.7291114 -4.6915 +1.7320589 -4.690413 +1.4728549 -3.98079 +1.7379516 -4.6882324 +1.6770803 -4.5153213 +1.6240094 -4.364032 +1.3328959 -3.5748792 +1.0632136 -2.8461165 +1.3615017 -3.6376302 +1.6190513 -4.3174806 +1.5406214 -4.100495 +1.4070503 -3.7378492 +1.4728035 -3.90508 +1.2763618 -3.3777938 +1.6210783 -4.2819204 +1.2696759 -3.347372 +1.3705157 -3.6063912 +1.4246838 -3.7418478 +1.1597537 -3.0402787 +1.3912162 -3.6401846 +1.4872366 -3.8841066 +1.7605883 -4.589362 +1.4804983 -3.8520064 +1.425432 -3.701786 +1.5145904 -3.925969 +1.5005914 -3.882416 +1.5230526 -3.9331782 +1.4309179 -3.6883628 +1.1138115 -2.865642 +1.0673611 -2.7410316 +1.147331 -2.9409318 +1.2144804 -3.107287 +1.2294594 -3.1397915 +0.89556605 -2.2828693 +1.140042 -2.9006958 +1.460589 -3.7094402 +1.310891 -3.3231275 +1.414336 -3.578773 +1.2132068 -3.0642107 +1.3513955 -3.4069796 +1.4696523 -3.698333 +1.1771176 -2.956764 +1.2987598 -3.256358 +1.5083302 -3.7749155 +1.8423725 -4.602532 +1.5064316 -3.7564566 +1.2207828 -3.0386312 +1.3601735 -3.3794465 +1.5873196 -3.9366643 +1.8727093 -4.63605 +1.6914405 -4.1797395 +1.8785337 -4.633693 +1.8814447 -4.6325116 +1.6148908 -3.9690452 +1.8370597 -4.5069733 +1.6490145 -4.0383687 +1.8930815 -4.6277685 +1.7658607 -4.3090405 +1.8988955 -4.625386 +1.6161528 -3.9296434 +1.868713 -4.535635 +1.9076108 -4.6217985 +1.7395663 -4.2071595 +1.8318483 -4.422473 +1.8658484 -4.4965634 +1.5349679 -3.6926088 +1.4926146 -3.5843656 +1.1603925 -2.7816412 +1.3373543 -3.2001858 +1.2816969 -3.0615933 +1.1899018 -2.837316 +1.0274984 -2.4457557 +0.71621037 -1.7018013 +0.6483524 -1.5378593 +0.38905963 -0.92121255 +0.49377882 -1.1671193 +0.51363957 -1.2119405 +0.60895187 -1.4343224 +0.8116401 -1.9083989 +1.1623122 -2.7281687 +0.945434 -2.215253 +0.6487557 -1.5174626 +0.6027968 -1.4075156 +0.5241046 -1.2216498 +0.817188 -1.9015076 +0.8972002 -2.0840766 +0.63435566 -1.4709781 +0.9647349 -2.2332196 +1.344844 -3.107751 +1.5047588 -3.4713068 +1.2916216 -2.9745004 +1.3535888 -3.1118526 +1.5490861 -3.5551856 +1.5234443 -3.4903467 +1.1500326 -2.6303182 +0.84574825 -1.9310621 +0.8573397 -1.9541862 +0.9908546 -2.2546632 +0.83715 -1.9016676 +0.6572759 -1.4905258 +0.5446321 -1.2329807 +0.9004953 -2.035151 +0.7134465 -1.6096802 +0.54120123 -1.2189916 +0.5687895 -1.2789636 +0.5970307 -1.3401974 +0.8597757 -1.9267422 +0.9047547 -2.0241208 +0.880284 -1.9660581 +0.8812385 -1.9648789 +1.2811118 -2.851668 +1.6280648 -3.6178787 +1.7495488 -3.8813214 +2.057572 -4.5570164 +2.0604346 -4.5557227 +2.0632968 -4.554427 +2.0661578 -4.5531297 +1.6931818 -3.724992 +1.6880715 -3.7075639 +1.4848537 -3.2558045 +1.4394072 -3.1509094 +1.1244564 -2.4573855 +1.0628691 -2.3189404 +0.82064474 -1.7874957 +0.9119218 -1.9830248 +0.6079048 -1.3197378 +0.79288924 -1.7184896 +0.5376224 -1.1633081 +0.87877667 -1.8983653 +0.9503236 -2.0495443 +0.89787877 -1.9332539 +0.81684554 -1.7558897 +0.52697396 -1.1309236 +0.6239279 -1.3367991 +0.42350388 -0.9058943 +0.42407298 -0.905628 +0.4246419 -0.9053614 +0.71906114 -1.5305781 +0.69488645 -1.4767089 +0.9646689 -2.046687 +0.8521605 -1.805042 +0.58986735 -1.2474232 +0.428052 -0.9037541 +0.42861977 -0.90348494 +0.64802915 -1.3637632 +0.6032128 -1.2673932 +0.88640755 -1.8593941 +0.642468 -1.3455114 +0.7320187 -1.5305822 +0.53817713 -1.1234635 +0.6361847 -1.3259189 +0.5573587 -1.159763 +0.433722 -0.90104675 +0.50857455 -1.0548546 +0.57444304 -1.1895639 +0.43541965 -0.9002276 +0.7700046 -1.5894314 +0.43655056 -0.8996797 +0.84246373 -1.7334453 +0.49089167 -1.0084419 +0.43824565 -0.89885527 +0.43881032 -0.8985797 +0.69418305 -1.4192604 +0.7662666 -1.5641447 +1.0425225 -2.1246731 +0.6370707 -1.2962973 +0.65337926 -1.3273741 +1.0660065 -2.1622183 +0.9979398 -2.0209534 +0.957206 -1.9353983 +1.0711105 -2.1622846 +0.72781366 -1.4669424 +0.8203177 -1.6507827 +0.8022666 -1.611915 +0.6945611 -1.3933176 +0.44669756 -0.89468503 +0.8890268 -1.7778249 +0.7023884 -1.4023926 +0.8980079 -1.7901577 +0.65246683 -1.2986408 +0.4495061 -0.8932773 +0.7429048 -1.474024 +0.45062828 -0.8927117 +0.75486356 -1.4930806 +0.97210234 -1.919771 +0.9956953 -1.963302 +0.716157 -1.4099145 +0.80226326 -1.576979 +1.1686766 -2.293657 +1.132257 -2.218732 +0.9002476 -1.76136 +1.0407293 -2.0330632 +1.4344674 -2.7978947 +1.0766308 -2.096697 +0.93074226 -1.8097852 +0.82400215 -1.5997618 +1.2112701 -2.3479993 +1.2857816 -2.488598 +1.0772104 -2.0817053 +1.0670668 -2.0589325 +1.2644234 -2.4359891 +0.83483547 -1.6058931 +1.0307138 -1.9796454 +0.6927835 -1.3285594 +0.6533977 -1.2511107 +0.6283258 -1.2012635 +1.057433 -2.018562 +1.0326734 -1.9682882 +0.6921869 -1.3173043 +0.46570718 -0.8849389 +0.46626312 -0.88464606 +0.7160866 -1.3565718 +1.0852177 -2.0527375 +1.0707277 -2.0222528 +0.8064151 -1.5207417 +0.46904 -0.8831769 +0.46959484 -0.88288206 +0.4826691 -0.9060892 +0.47070393 -0.8822912 +0.76013935 -1.4226582 +1.0942305 -2.044843 +1.3686569 -2.5538185 +1.591919 -2.9659324 +1.5300028 -2.8462822 +1.4696037 -2.7298067 +1.8578907 -3.4458656 +2.2078233 -4.0887403 +2.378428 -4.398077 +2.381191 -4.3965816 +2.383953 -4.3950844 +2.2332418 -4.1110663 +2.2874904 -4.2046294 +2.3922334 -4.390583 +2.32593 -4.262517 +2.3977487 -4.3875732 +2.400505 -4.386066 +2.4032605 -4.384557 +2.3365276 -4.2564607 +2.4087684 -4.3815336 +2.2218308 -4.0354867 +2.3112137 -4.1915965 +2.1621966 -3.9155202 +2.1859913 -3.952739 +2.4225214 -4.3739443 +2.4252691 -4.3724213 +2.428016 -4.370897 +2.349408 -4.223134 +2.4335067 -4.367842 +2.0889456 -3.7438633 +2.3302588 -4.170191 +2.4417355 -4.3632474 +2.4444766 -4.3617125 +2.4471931 -4.3601336 +2.4499557 -4.358637 +2.452694 -4.3570967 +2.455431 -4.355555 +2.4581673 -4.354011 +2.4447114 -4.3238297 +2.4636366 -4.350919 +2.3780415 -4.193605 +2.437817 -4.29273 +2.2913048 -4.0288405 +2.474564 -4.344713 +2.023008 -3.5467107 +2.4692574 -4.322756 +2.4827492 -4.340041 +2.4854755 -4.3384805 +2.4882011 -4.336918 +2.4580715 -4.2781725 +2.2667465 -3.9394467 +2.4963715 -4.33222 +2.499093 -4.3306503 +2.5018137 -4.3290796 +2.410456 -4.1649537 +2.2229376 -3.8353858 +1.8781792 -3.2358625 +2.3014061 -3.9592965 +2.5154014 -4.3211985 +2.518116 -4.3196173 +2.5208297 -4.318034 +2.3476884 -4.0156565 +2.0958848 -3.5797892 +1.8390137 -3.1365294 +1.770859 -3.0159435 +1.9365429 -3.293378 +1.6754005 -2.845174 +1.9596165 -3.323054 +2.413784 -4.087345 +2.076196 -3.5106556 +2.0457957 -3.4542964 +1.6561162 -2.7923253 +1.8832397 -3.1707287 +2.0959187 -3.5237622 +1.9039048 -3.1963663 +2.3348641 -3.9142852 +2.564111 -4.2924743 +2.2310805 -3.7296362 +2.4005098 -4.0071497 +2.3141925 -3.8575609 +2.2891524 -3.8103917 +1.8453364 -3.0672739 +1.4148501 -2.3483884 +1.3205103 -2.1886892 +1.2952282 -2.1437392 +1.336053 -2.2081728 +1.6780205 -2.7694318 +1.3664829 -2.2520714 +1.6000725 -2.6333132 +2.119405 -3.4830692 +1.7120194 -2.8095877 +1.8683091 -3.0617428 +1.4298162 -2.339843 +0.91819006 -1.5004654 +1.2900108 -2.1051064 +1.5351835 -2.5016623 +1.547681 -2.5184765 +1.481635 -2.40761 +1.0408418 -1.6889566 +0.69069076 -1.1191972 +0.77406275 -1.2525319 +1.1738049 -1.8966995 +1.3715771 -2.2131622 +1.0544049 -1.6989914 +0.896594 -1.4426825 +0.5283791 -0.84900856 +0.5289124 -0.84867644 +0.5294455 -0.8483439 +0.8276124 -1.3242509 +1.1449713 -1.8294938 +1.5118393 -2.4123223 +1.2570437 -2.0029674 +1.129589 -1.7973723 +1.2615818 -2.004599 +1.5910931 -2.524658 +1.3139726 -2.0820374 +1.5990387 -2.5302112 +1.577495 -2.4926527 +1.8275167 -2.8837087 +1.3253094 -2.0883536 +1.3822256 -2.175017 +1.0425725 -1.6382772 +0.9497955 -1.490421 +0.8563964 -1.3419977 +1.0374961 -1.6235358 +0.6601596 -1.0316279 +1.1104631 -1.7329158 +1.3232818 -2.0621731 +1.8578103 -2.8911722 +1.5068389 -2.3417451 +1.4566439 -2.2606156 +1.2992212 -2.013526 +1.6611818 -2.5709434 +1.4953691 -2.3111348 +1.2941611 -1.9974095 +1.6580098 -2.555454 +1.547103 -2.3812377 +1.6217577 -2.4927137 +1.4357643 -2.203803 +1.9625201 -3.008204 +1.5336102 -2.3475347 +1.3951883 -2.132721 +1.9024001 -2.9040737 +1.5666655 -2.3882892 +1.1055336 -1.683014 +1.272845 -1.9350708 +1.1952014 -1.814547 +0.9983792 -1.5136616 +1.2724249 -1.9265128 +1.3004661 -1.9662808 +1.6552403 -2.4992785 +1.6404175 -2.47352 +1.1571215 -1.7423996 +1.6835855 -2.5316985 +1.5692728 -2.3565876 +1.3299708 -1.9945089 +1.0135542 -1.5179232 +1.4818845 -2.2162893 +1.7881721 -2.6707363 +1.7249092 -2.5727513 +1.5150858 -2.256727 +1.1926515 -1.77405 +1.5850543 -2.3545463 +1.8787086 -2.7869785 +2.2297637 -3.303273 +2.2575688 -3.3399372 +2.5704648 -3.797703 +2.2027347 -3.2500033 +2.7514732 -4.054147 +2.6620753 -3.9171247 +2.5272517 -3.7137167 +2.8156114 -4.131868 +2.818207 -4.130098 +2.8208015 -4.1283264 +2.8233948 -4.126553 +2.825987 -4.1247783 +2.6605763 -3.8781185 +2.8311682 -4.121224 +2.6473565 -3.848473 +2.6743174 -3.8824399 +2.7835798 -4.0356317 +2.6414843 -3.824478 +2.2560043 -3.261975 +2.2673173 -3.2739336 +2.470939 -3.5631714 +2.742593 -3.9496036 +2.8544276 -4.1051483 +2.4315379 -3.4922779 +2.8187423 -4.042978 +2.8621607 -4.0997605 +2.864736 -4.0979614 +2.851405 -4.0734386 +2.6197321 -3.7374766 +2.4280982 -3.4594529 +2.600879 -3.7006764 +2.3300426 -3.3108914 +1.922724 -2.7284648 +2.272788 -3.2209275 +2.1759772 -3.0796208 +2.4577951 -3.4738393 +2.642903 -3.7304964 +2.174005 -3.0645561 +2.4958584 -3.5135722 +2.5076072 -3.5254178 +2.462806 -3.4578304 +2.6909108 -3.7730749 +2.9057877 -4.0689554 +2.9083438 -4.0671287 +2.3426876 -3.2717488 +2.6864069 -3.746804 +2.9041815 -4.045171 +2.9185565 -4.0598063 +2.9211066 -4.057972 +2.3788066 -3.3002388 +2.6242185 -3.6358929 +2.6085865 -3.6094534 +2.1252153 -2.9367328 +2.6887226 -3.7105057 +2.1891277 -3.0170605 +2.4611418 -3.3874712 +2.846675 -3.9129395 +2.9440072 -4.0413885 +2.6336613 -3.6105921 +2.8346672 -3.8810349 +2.9516199 -4.035832 +2.372936 -3.2403069 +2.1340053 -2.910203 +1.8634025 -2.537829 +1.7429 -2.370589 +1.9870645 -2.6991317 +2.435288 -3.303627 +2.4620404 -3.3355286 +2.4685075 -3.339896 +2.1204967 -2.8652685 +2.204827 -2.9753063 +2.515063 -3.3895006 +2.5195804 -3.3911338 +2.0081677 -2.6992729 +1.6424392 -2.204786 +1.4258697 -1.911558 +1.4113058 -1.8895549 +1.2212902 -1.6330076 +1.1677885 -1.5594258 +1.6054779 -2.1410964 +1.5178074 -2.0215297 +1.4010506 -1.8635843 +1.5211823 -2.020731 +1.1278577 -1.496283 +0.83655304 -1.1083714 +0.7155391 -0.946799 +1.2634455 -1.6696051 +1.4892286 -1.9654031 +1.3420724 -1.7688842 +1.1983777 -1.5774318 +0.799602 -1.0511491 +0.6059329 -0.7955158 +0.71067077 -0.93180865 +0.60693204 -0.79475373 +0.6074313 -0.7943722 +0.69178665 -0.9035114 +0.6084291 -0.79360825 +0.60892755 -0.7932258 +0.60942584 -0.79284304 +0.8766979 -1.1390733 +0.6104217 -0.7920766 +0.61091924 -0.7916929 +1.1578673 -1.4985375 +1.1101927 -1.4349716 +1.0362767 -1.3376945 +1.234547 -1.5915685 +1.5976049 -2.0569499 +1.103291 -1.4186696 +0.66443163 -0.8532542 +0.614891 -0.7886121 +0.61538637 -0.7882256 +0.6158815 -0.7878388 +0.6163764 -0.7874517 +0.70518476 -0.8997435 +0.6173655 -0.78667647 +0.6178596 -0.78628844 +0.61835355 -0.78590006 +0.8287841 -1.0519873 +0.99230653 -1.2579218 +0.6198338 -0.7847331 +0.62032676 -0.7843435 +0.8817014 -1.1133881 +1.1935905 -1.5052887 +1.028182 -1.2950126 +1.2055222 -1.5164181 +1.7285485 -2.171527 +1.9556748 -2.4536939 +2.4623616 -3.0854306 +2.3507571 -2.9417927 +2.3895164 -2.9864476 +1.9314791 -2.4108799 +1.7385938 -2.1673276 +2.2965534 -2.8591964 +2.2095587 -2.7473512 +2.0429206 -2.5368888 +2.1270168 -2.6379247 +2.0046158 -2.4829285 +2.1161127 -2.6176624 +1.8118335 -2.2383864 +1.8130434 -2.2370055 +1.6387465 -2.019356 +1.1087186 -1.3644725 +1.6254821 -1.9978744 +1.3864784 -1.7019303 +1.3302019 -1.6307561 +1.851045 -2.2663732 +2.148076 -2.6266801 +2.0075397 -2.4516864 +2.0112174 -2.4530318 +2.6156433 -3.1861498 +2.9865477 -3.6332963 +3.1774273 -3.8605642 +2.7004004 -3.2767794 +2.3990424 -2.9073753 +2.4323492 -2.9439692 +2.7164373 -3.2836087 +2.1106555 -2.5480826 +1.5128534 -1.8240536 +1.9831992 -2.3880963 +1.7497185 -2.1042562 +1.4889519 -1.7883646 +1.9914696 -2.3888793 +2.5663354 -3.0745332 +2.5766501 -3.0829508 +2.2593272 -2.699826 +2.5581062 -3.0529583 +2.4625387 -2.9351554 +2.453255 -2.9203615 +2.3452473 -2.78823 +1.867378 -2.2172685 +2.0857885 -2.4734466 +1.8345164 -2.1727023 +1.666213 -1.9708595 +1.4243748 -1.6826587 +1.7132694 -2.0213618 +1.6900278 -1.9914029 +1.3440259 -1.5816844 +1.8350469 -2.1567829 +1.355936 -1.5916429 +0.89612484 -1.0505632 +0.95349914 -1.116404 +0.6956445 -0.8134596 +0.6504031 -0.75958925 +0.90752083 -1.0585235 +0.691137 -0.8051112 +1.2079303 -1.4053406 +1.3211275 -1.5350851 +1.160662 -1.3469195 +0.6538562 -0.75782055 +0.65373766 -0.75672126 +0.65421295 -0.7563104 +0.65468806 -0.7558992 +0.6551629 -0.7554877 +0.65563744 -0.7550759 +0.90559715 -1.0416235 +0.86045146 -0.9884416 +1.1036614 -1.2662212 +1.0140682 -1.1619569 +0.99562526 -1.1393784 +0.65847933 -0.7525988 +0.65895206 -0.7521849 +0.65942454 -0.75177073 +0.6598968 -0.7513563 +0.70938283 -0.8066781 +1.1241637 -1.2767297 +1.4599953 -1.6560396 +1.578991 -1.7887468 +1.4774141 -1.6715583 +1.1632004 -1.314389 +1.2860502 -1.451368 +1.928501 -2.1736507 +1.5032223 -1.6921681 +1.5924627 -1.7903584 +1.5566533 -1.7478863 +2.1682239 -2.4315097 +2.461576 -2.7569942 +2.9357874 -3.283961 +2.9218848 -3.2642794 +2.6445217 -2.9506812 +3.019052 -3.364316 +2.5553153 -2.8439486 +2.9564962 -3.286289 +2.5857096 -2.870512 +2.2493033 -2.4938996 +2.5118709 -2.7815037 +3.0154026 -3.334871 +3.3557575 -3.7066011 +3.2746553 -3.6124551 +3.2114894 -3.5383031 +3.3627384 -3.700269 +2.7624557 -3.0358992 +2.9932241 -3.2853613 +2.4168844 -2.6494253 +2.424179 -2.6540706 +2.0489192 -2.2403953 +1.6730652 -1.8271103 +1.1205984 -1.2222332 +1.4343098 -1.5624253 +1.8117511 -1.9710929 +1.9574157 -2.1268847 +2.3159552 -2.5132947 +1.8442049 -1.9988257 +2.1803222 -2.3601463 +1.8875649 -2.0406697 +1.7640761 -1.9047621 +2.363764 -2.5490608 +2.0309212 -2.1873684 +1.6136554 -1.735771 +1.8288081 -1.9647285 +1.3975629 -1.499542 +1.7056247 -1.8277789 +1.2255728 -1.3116933 +1.1683836 -1.2489115 +0.8439305 -0.90096086 +0.68408895 -0.7293986 +1.1332198 -1.2067566 +0.685005 -0.7285384 +0.6854626 -0.7281078 +0.9058697 -0.9610167 +0.68637705 -0.72724587 +1.2364842 -1.3084599 +0.7877009 -0.8325045 +1.3258266 -1.3994759 +0.6882026 -0.7255185 +0.98292345 -1.0349166 +0.6891138 -0.7246531 +0.8128365 -0.8536818 +1.3118143 -1.376001 +1.2020661 -1.2592976 +1.3804117 -1.4443165 +1.3844588 -1.4467299 +0.6984103 -0.7289064 +0.6922943 -0.72161525 +0.97333443 -1.0132831 +0.9413534 -0.9787578 +1.5608928 -1.6208748 +0.90331316 -0.93684685 +0.6945579 -0.71943676 +1.1840248 -1.2248951 +1.1040577 -1.1407324 +1.4769028 -1.5240455 +1.3426466 -1.3837631 +1.934657 -1.9913976 +2.4058053 -2.473253 +2.2167704 -2.2760553 +1.6603341 -1.7025962 +1.1869882 -1.2156726 +1.220922 -1.2488557 +1.3320326 -1.3607969 +1.0095801 -1.0300858 +0.70041114 -0.7137396 +0.7008595 -0.7132994 +1.2780902 -1.2991419 +0.7017553 -0.7124181 +1.2702192 -1.2879 +0.8454519 -0.8561435 +1.3723084 -1.3879173 +2.0379312 -2.0585222 +2.4596093 -2.481341 +2.7301764 -2.7508395 +2.9781976 -2.9969692 +2.6014912 -2.6146007 +2.2197235 -2.2281075 +1.9250065 -1.9298507 +1.5902576 -1.5922574 +1.25516 -1.25516 +1.0638562 -1.0625203 +1.1026335 -1.0998658 +1.4680369 -1.4625129 +1.7325135 -1.7238268 +1.1633807 -1.156094 +1.7138542 -1.7009805 +1.3598689 -1.3479592 +1.509734 -1.4946322 +1.9926301 -1.9702204 +1.9295132 -1.9054173 +2.536018 -2.5012026 +2.3327925 -2.2978776 +1.9802402 -1.948152 +1.4350772 -1.4100496 +1.2892399 -1.2651645 +1.445374 -1.4166013 +0.8562497 -0.83815044 +1.3484309 -1.31827 +0.7154977 -0.69861513 +0.7159365 -0.6981654 +1.0859165 -1.0576315 +0.7399742 -0.7197945 +1.3536937 -1.3151231 +1.4672406 -1.4236437 +1.1694674 -1.1332928 +1.3993745 -1.3543843 +2.0574179 -1.9887693 +2.537732 -2.4499745 +2.8836308 -2.7804134 +3.3341966 -3.2108114 +3.038719 -2.9225907 +2.728893 -2.6213064 +2.0336394 -1.951008 +1.5818638 -1.5156813 +1.3512623 -1.2931004 +1.4891845 -1.4232945 +1.590418 -1.5181379 +2.230804 -2.126743 +2.8722115 -2.7347875 +3.2886717 -3.1273847 +2.6437788 -2.510958 +2.9757755 -2.8227212 +2.792858 -2.64588 +2.8436923 -2.6906507 +2.9964688 -2.831639 +2.9145625 -2.7507737 +2.5856383 -2.437264 +3.1851225 -2.9985702 +3.6426919 -3.425025 +3.3693693 -3.1640484 +3.205197 -3.006093 +3.6491413 -3.4181526 +3.288277 -3.0762541 +2.7433887 -2.563269 +2.8079722 -2.6203094 +3.11053 -2.8989925 +2.6182652 -2.4371328 +2.143275 -1.9924908 +2.768391 -2.5703876 +2.1546493 -1.998023 +2.8085127 -2.6010754 +2.4999948 -2.3124285 +2.0694196 -1.9117466 +2.7728374 -2.5583425 +2.7563567 -2.5399323 +2.85296 -2.6256378 +3.1057081 -2.8546448 +3.6801133 -3.3783522 +3.4179606 -3.1337402 +3.6546648 -3.346537 +3.6896865 -3.3743465 +3.6918058 -3.3720274 +3.3329227 -3.0403912 +2.7695708 -2.5232983 +2.4948397 -2.2701294 +2.2370796 -2.0330179 +2.4857976 -2.2561984 +3.1887915 -2.8906083 +2.938354 -2.6602278 +2.4656935 -2.2294888 +3.0872388 -2.7879686 +3.6231103 -3.2677634 +3.2898834 -2.9634721 +2.7287107 -2.4548733 +2.6479044 -2.3791678 +2.037209 -1.8281398 +1.3593452 -1.2183009 +1.27256 -1.1390795 +1.2648071 -1.1307093 +1.4057736 -1.2551419 +1.9636242 -1.7510014 +2.0816178 -1.8538718 +1.9991109 -1.7781409 +1.6724362 -1.4856938 +2.1827898 -1.9366094 +2.0052245 -1.7768198 +1.3390495 -1.1850243 +0.9055545 -0.8003783 +0.7496954 -0.66178304 +0.75011104 -0.66131186 +1.3282714 -1.1695462 +0.7754353 -0.6819083 +1.2434466 -1.0920869 +0.75177073 -0.65942454 +0.7521849 -0.65895206 +0.7525988 -0.65847933 +1.0264776 -0.89696896 +0.7534257 -0.65753305 +0.77940094 -0.67934006 +0.75425136 -0.65658575 +1.1520354 -1.0015903 +1.4404008 -1.2507097 +1.0400107 -0.9019027 +0.775865 -0.67198056 +0.932379 -0.80651337 +1.6848216 -1.455531 +1.732048 -1.4944308 +1.0948824 -0.9434776 +1.1190411 -0.9630709 +0.75836194 -0.6518337 +0.7587713 -0.6513571 +0.7591804 -0.6508802 +0.84023273 -0.7194546 +0.7599977 -0.6499257 +1.2718387 -1.0862528 +1.1104817 -0.947235 +1.2649337 -1.0776093 +0.77047956 -0.65554404 +1.154986 -0.98144174 +1.5504104 -1.3157743 +2.0334513 -1.7235161 +1.8333303 -1.5519189 +1.1031315 -0.9326145 +1.3115453 -1.1074003 +1.5003753 -1.2652246 +2.1736724 -1.8306615 +2.8315215 -2.381661 +3.1692302 -2.6623175 +3.084941 -2.5882058 +2.4029977 -2.0134974 +1.7014347 -1.4238317 +1.6982412 -1.4193459 +1.3298296 -1.1100185 +1.6007866 -1.3344826 +2.3252664 -1.9359641 +1.7495751 -1.4547964 +0.98848706 -0.82089096 +0.7697116 -0.63839173 +0.7701126 -0.637908 +1.0687343 -0.8841339 +1.3199574 -1.0905675 +1.7689835 -1.45969 +1.2219975 -1.0070505 +1.2536037 -1.0317754 +1.651125 -1.3572148 +1.4629873 -1.2010273 +1.9011683 -1.5587498 +1.4997362 -1.2280444 +1.8867579 -1.5429741 +1.5135112 -1.2361501 +1.7488927 -1.4265654 +2.3110132 -1.882668 +2.4946892 -2.0296934 +2.0682333 -1.680568 +1.6267298 -1.3201228 +1.6793743 -1.3610957 +1.8822268 -1.5235445 +1.9953299 -1.6130204 +2.7608073 -2.2289639 +2.8825817 -2.3242893 +2.1815252 -1.7567513 +1.937061 -1.5578823 +2.5285077 -2.0309386 +2.3639019 -1.8962823 +1.8458319 -1.4787902 +2.2791018 -1.8235549 +3.050432 -2.4375694 +2.3701506 -1.8915246 +2.731994 -2.1774893 +2.4956691 -1.9865676 +2.2062492 -1.7539243 +2.9406674 -2.334758 +2.81512 -2.2321968 +3.487652 -2.7619011 +2.9815762 -2.3580887 +2.8425953 -2.2452688 +3.0658426 -2.4184775 +3.1851683 -2.509362 +3.6870575 -2.9010115 +3.1386468 -2.4663253 +3.0644019 -2.4048715 +2.3777695 -1.8636053 +2.9935124 -2.3431666 +3.5702875 -2.7910202 +3.941128 -3.076932 +3.9430606 -3.074455 +3.9449916 -3.071977 +3.9469209 -3.0694976 +3.9488487 -3.067017 +3.9507751 -3.0645354 +3.8053324 -2.9478908 +3.5321739 -2.7327325 +3.740892 -2.8904557 +3.9584646 -3.0545962 +3.3271513 -2.5641022 +3.6812217 -2.833285 +3.5546117 -2.7322838 +3.1343281 -2.4060977 +3.7788787 -2.8971217 +3.969952 -3.0396514 +3.6402705 -2.7835996 +3.8580217 -2.9462676 +3.7513316 -2.8610613 +3.9775789 -3.0296643 +3.6697602 -2.7915616 +3.249116 -2.468359 +2.500695 -1.8973055 +2.0315566 -1.5393547 +2.5195327 -1.9066138 +2.1459396 -1.6217842 +2.8052394 -2.117279 +3.015812 -2.2732375 +3.1357741 -2.3605735 +3.3351884 -2.5074086 +3.2619305 -2.4491267 +2.8432565 -2.1319852 +2.2868955 -1.71256 +2.9314213 -2.192345 +3.0739996 -2.295966 +3.8736696 -2.8894482 +4.0097127 -2.9870062 +4.0115886 -2.984486 +4.013463 -2.981965 +4.0153356 -2.9794426 +4.017207 -2.9769192 +4.019077 -2.9743946 +4.0209446 -2.9718688 +3.4971974 -2.5813725 +3.0175414 -2.2243981 +3.5547538 -2.6169617 +3.8867123 -2.8575814 +4.018011 -2.950227 +4.0321198 -2.956689 +3.7751021 -2.7645764 +3.4202845 -2.501437 +3.766744 -2.7511902 +3.8301382 -2.7938042 +4.0413885 -2.9440072 +3.4589128 -2.5163693 +3.665873 -2.6634126 +3.048717 -2.2120972 +2.390913 -1.7325138 +2.847522 -2.0606563 +2.9730566 -2.1486564 +2.5342379 -1.8290951 +2.3730552 -1.7104943 +2.7023184 -1.9452477 +3.108859 -2.2349293 +2.6835637 -1.9266322 +2.0310209 -1.4562138 +1.8004855 -1.2892112 +1.4404761 -1.0300633 +2.0874794 -1.4907442 +1.3215091 -0.9424841 +1.8101397 -1.2892544 +1.3289394 -0.9452661 +0.8152491 -0.57911044 +1.0378479 -0.73625225 +1.0942895 -0.7752591 +0.82481724 -0.583571 +0.816702 -0.5770597 +0.9758089 -0.68856156 +0.8174265 -0.57603294 +0.81778824 -0.5755192 +0.81814975 -0.57500523 +0.81851083 -0.5744911 +0.8188716 -0.5739767 +1.4698505 -1.0288945 +2.1050684 -1.471577 +1.5131707 -1.056388 +1.9034748 -1.3270924 +1.1604931 -0.80800647 +0.8219819 -0.5715476 +0.8213882 -0.57036954 +1.5593011 -1.0813227 +1.1125921 -0.77051026 +0.82246184 -0.56882024 +1.3859893 -0.9572729 +1.6442757 -1.1341404 +1.4854695 -1.023227 +1.6815994 -1.1567687 +0.9953321 -0.68376595 +1.1822062 -0.81105036 +1.0545647 -0.72250813 +0.82531065 -0.56467897 +0.8256653 -0.5641603 +0.8260196 -0.56364137 +0.8263736 -0.5631223 +0.8267273 -0.56260294 +1.1505058 -0.78188294 +1.5612416 -1.0595853 +1.607433 -1.0894599 +1.8538351 -1.2547632 +1.4154164 -0.9567245 +0.82884234 -0.5594823 +1.3717813 -0.92472094 +1.2155828 -0.8183168 +1.4100119 -0.9479174 +0.8694318 -0.5837054 +1.6358839 -1.0967835 +1.2783858 -0.85593396 +1.598455 -1.06878 +1.515674 -1.0120524 +1.0554965 -0.70382214 +0.83234125 -0.5542635 +0.83268934 -0.5537404 +0.93122095 -0.6184206 +1.5692505 -1.0407135 +1.2975653 -0.85936093 +1.6539506 -1.0938959 +0.8591562 -0.56745625 +0.834771 -0.5505973 +0.8351168 -0.55007267 +0.8354622 -0.54954785 +0.8358074 -0.5490228 +1.5346034 -1.0066663 +2.304074 -1.5093524 +2.1412458 -1.4007651 +2.560408 -1.6726773 +2.6293192 -1.7153398 +2.9630125 -1.9303848 +2.4867578 -1.6178828 +3.2786322 -2.130145 +3.097465 -2.009673 +3.091712 -2.0031812 +2.8095522 -1.817859 +2.083696 -1.3463532 +2.6031144 -1.679651 +3.4090135 -2.1966226 +4.197134 -2.7007232 +3.6432207 -2.3410618 +4.2081194 -2.7003202 +3.675924 -2.3555548 +4.2115097 -2.6950302 +4.213202 -2.6923833 +4.214893 -2.6897357 +3.445091 -2.1954412 +3.1987624 -2.0356395 +3.936591 -2.5017076 +3.693728 -2.344111 +3.960765 -2.5100884 +3.3826013 -2.1407063 +4.1917715 -2.649109 +3.5426111 -2.2357397 +4.2300353 -2.665858 +3.944433 -2.482404 +3.8578506 -2.4245312 +3.8074565 -2.3895242 +3.8106284 -2.388179 +3.1994174 -2.002325 +2.8212862 -1.7632092 +2.5771794 -1.6083999 +3.084179 -1.9221231 +3.8903944 -2.4211805 +3.0476365 -1.8940359 +2.5700047 -1.5949612 +3.1315415 -1.9407302 +2.7808895 -1.7210009 +2.2629697 -1.3985118 +2.0532334 -1.2671129 +2.4153752 -1.4885069 +2.187151 -1.3459651 +2.6817393 -1.648011 +3.198431 -1.9627664 +3.4798553 -2.132458 +3.2265108 -1.9744208 +3.183438 -1.945315 +3.211797 -1.9598737 +4.02223 -2.450942 +4.2575984 -2.5906963 +4.2730193 -2.5964024 +3.740131 -2.2693884 +3.8873224 -2.355359 +3.9183075 -2.3707688 +4.250938 -2.5683792 +3.7180443 -2.2432218 +4.2827773 -2.580275 +3.6659572 -2.205517 +4.2860165 -2.574891 +3.6835902 -2.2098258 +4.2892485 -2.569503 +3.8362644 -2.2948658 +3.666494 -2.1901815 +3.0842457 -1.839747 +3.744362 -2.2303166 +3.6499248 -2.1709597 +4.298905 -2.553315 +3.507425 -2.0802388 +3.3731015 -1.9977083 +2.5893524 -1.5313387 +2.6469896 -1.5631812 +2.7218874 -1.6051064 +2.038968 -1.2006605 +2.2960343 -1.3500936 +2.312722 -1.3579513 +1.7871894 -1.0478671 +1.4386698 -0.84230834 +2.096295 -1.225565 +2.6581771 -1.55182 +2.2454042 -1.3089559 +2.9182074 -1.69871 +2.387345 -1.3876835 +2.9353597 -1.7037596 +3.1218789 -1.8093987 +3.8170002 -2.2090788 +4.3290796 -2.5018137 +4.3306503 -2.499093 +4.33222 -2.4963715 +4.3337874 -2.493649 +3.7425861 -2.1503444 +4.2104936 -2.4156682 +3.840765 -2.200339 +3.8534403 -2.204386 +4.226322 -2.4141724 +3.8779514 -2.2119443 +4.181796 -2.3817732 +4.259583 -2.422534 +4.3478193 -2.4691024 +3.7220497 -2.1106393 +3.648259 -2.065767 +2.9025655 -1.6411227 +2.8477705 -1.6077808 +2.3252072 -1.3108287 +1.6938456 -0.9534984 +1.494308 -0.8399388 +1.5467324 -0.86812776 +2.2920952 -1.2845812 +2.280731 -1.2763296 +2.7145555 -1.5168651 +2.5013921 -1.39569 +3.0311139 -1.6887598 +3.469247 -1.9300066 +3.7207642 -2.06687 +3.3418508 -1.8536383 +3.2158556 -1.7811106 +2.7610707 -1.5269606 +3.0348227 -1.675865 +3.0919437 -1.7048737 +3.1374679 -1.7274055 +3.1378431 -1.7250439 +3.5609877 -1.9547569 +2.7745042 -1.5207595 +2.4669635 -1.3501755 +1.8138992 -0.991271 +1.1825947 -0.6453072 +2.0205536 -1.1009097 +1.7805148 -0.96867293 +1.3347204 -0.725056 +1.6352178 -0.88696414 +1.593241 -0.8629002 +2.2251766 -1.2033492 +1.7565085 -0.94847316 +1.8103703 -0.9760886 +1.9940426 -1.0735017 +1.6305231 -0.87647843 +1.3805226 -0.7409744 +0.88140243 -0.47236618 +0.881699 -0.47181228 +1.5690488 -0.83835715 +1.0134684 -0.5406872 +0.8825868 -0.4701495 +0.88288206 -0.46959484 +0.8831769 -0.46904 +0.8834714 -0.468485 +0.88376564 -0.4679298 +1.4743396 -0.77943695 +1.290084 -0.68099004 +1.4072944 -0.7417311 +2.2372148 -1.1773548 +2.681612 -1.409072 +2.2445254 -1.1776026 +3.062943 -1.6045367 +3.603177 -1.8846564 +3.170186 -1.6556427 +3.594939 -1.8745978 +3.1040914 -1.6161631 +3.0475686 -1.5843011 +3.6036637 -1.8705161 +3.4588408 -1.7925864 +2.9645748 -1.5340649 +2.8049774 -1.4492451 +3.6544495 -1.8852328 +4.079029 -2.1010182 +4.2982483 -2.210517 +3.715784 -1.9080143 +3.877716 -1.9880867 +3.965111 -2.0297484 +3.2121947 -1.6417828 +3.7976725 -1.9380174 +2.9639947 -1.5102308 +2.7246852 -1.3861407 +2.1388085 -1.086394 +1.4948639 -0.7581253 +0.89214474 -0.4517497 +0.8924284 -0.45118907 +1.4581507 -0.73605394 +0.95448893 -0.48106027 +1.4663272 -0.7378706 +1.6881537 -0.84816706 +1.0360038 -0.519697 +1.1638392 -0.5829089 +1.8844813 -0.9423619 +1.4803339 -0.73909986 +1.557645 -0.77647734 +1.3475004 -0.6706647 +0.93837255 -0.46630222 +1.6858395 -0.836418 +1.8256006 -0.90433055 +2.5694096 -1.2707742 +1.948749 -0.96228546 +2.2862332 -1.1271478 +1.4912755 -0.7340572 +2.1434364 -1.0534008 +2.6321292 -1.2915181 +3.4645145 -1.6972481 +3.3879507 -1.6571012 +3.228496 -1.5765963 +2.9759634 -1.45096 +3.4080853 -1.6589956 +4.1150317 -1.9999274 +4.3786535 -2.124649 +3.7726824 -1.8276867 +2.9962938 -1.4492393 +3.5140011 -1.696919 +4.169495 -2.0102289 +3.9611785 -1.9067272 +3.140932 -1.5094686 +2.7356951 -1.3126047 +2.0249813 -0.9700346 +1.4750135 -0.70544237 +1.1421788 -0.54537874 +1.1805239 -0.5627775 +0.90294564 -0.4297548 +1.5792304 -0.75041425 +2.4070578 -1.1419256 +2.4502223 -1.1605177 +2.5561843 -1.2087395 +2.9199407 -1.3785043 +3.7824874 -1.7828072 +3.8759227 -1.8238708 +3.719676 -1.7474928 +3.8684497 -1.8144201 +3.898579 -1.825564 +3.3344724 -1.5588596 +3.411432 -1.5922269 +3.2867687 -1.5315281 +2.7557282 -1.2819736 +3.6292176 -1.6855507 +4.310825 -1.998824 +3.549512 -1.6431129 +4.1650496 -1.9248759 +4.540058 -2.0947251 +4.5413733 -2.091872 +4.542687 -2.0890183 +4.5439982 -2.0861635 +4.545308 -2.083308 +4.4383388 -2.0309057 +3.9327598 -1.7965742 +4.272859 -1.9486952 +4.55053 -2.071878 +4.551831 -2.0690184 +3.7870371 -1.7185138 +4.3068724 -1.9511467 +3.46233 -1.5659217 +2.8518424 -1.2876562 +2.7025864 -1.2182208 +2.8930802 -1.3019016 +2.9338298 -1.3180231 +3.5025334 -1.570869 +2.651153 -1.1870289 +2.6474242 -1.183363 +2.6500914 -1.182558 +3.35377 -1.4940363 +3.5130048 -1.5623276 +4.1196566 -1.8290225 +4.3870163 -1.9444245 +4.5124907 -1.9966464 +4.188827 -1.850288 +3.8529894 -1.6990495 +3.7410715 -1.6468903 +3.4259589 -1.5056027 +3.1616025 -1.3870568 +3.9260352 -1.7194875 +3.7815096 -1.6533587 +3.773761 -1.6471472 +3.8413653 -1.6737821 +4.2728024 -1.8585769 +4.586274 -1.9915043 +4.3858147 -1.9011842 +4.5887733 -1.9857395 +4.5900197 -1.9828558 +4.1577764 -1.7930306 +4.0537276 -1.74514 +3.1830008 -1.3679199 +2.3018806 -0.9875385 +1.7276611 -0.7399055 +0.9880829 -0.4224318 +0.9197393 -0.39252976 +0.9199858 -0.3919518 +1.7015787 -0.72367966 +1.7601365 -0.74727863 +1.1805687 -0.50034374 +1.2245386 -0.5180715 +0.92121255 -0.38905963 +0.9214568 -0.38848075 +1.0548728 -0.44394773 +0.9219443 -0.38732252 +0.92218745 -0.38674316 +1.1545408 -0.48333374 +0.92267275 -0.385584 +1.3802401 -0.57578254 +1.2031271 -0.5010106 +0.9233979 -0.3838441 +0.9236389 -0.38326386 +1.4850458 -0.6151261 +2.3174994 -0.95823413 +2.0842822 -0.8602709 +2.8878431 -1.1898113 +3.7604187 -1.5465554 +4.2574778 -1.7478553 +4.6265783 -1.895989 +4.6277685 -1.8930815 +4.2172437 -1.7220557 +4.322411 -1.7618316 +4.2070603 -1.7117324 +4.273696 -1.7357156 +4.633693 -1.8785337 +4.6348724 -1.8756219 +4.63605 -1.8727093 +4.6372256 -1.869796 +3.823218 -1.5387845 +3.0154734 -1.211479 +2.6172724 -1.0495906 +3.1529603 -1.2621156 +2.798552 -1.1182079 +3.542022 -1.4126935 +3.6073446 -1.4361203 +3.8179808 -1.5171982 +4.052463 -1.6074297 +4.2026854 -1.6639608 +4.511309 -1.7828755 +4.6511917 -1.8347794 +4.6523438 -1.8318566 +4.653494 -1.828933 +4.654642 -1.8260088 +4.6557884 -1.8230839 +4.638426 -1.8129246 +4.658076 -1.8172318 +4.6592164 -1.8143047 +4.6603556 -1.8113768 +4.6230764 -1.7935445 +4.662628 -1.805519 +4.6637616 -1.802589 +3.9616525 -1.5283568 +4.6660233 -1.796727 +4.2857995 -1.6472243 +4.6682773 -1.7908621 +3.9741905 -1.52173 +4.397952 -1.680822 +4.257628 -1.6241274 +4.6727633 -1.7791238 +4.6738806 -1.7761874 +4.6749954 -1.7732503 +4.0193725 -1.5216811 +4.633294 -1.750776 +4.1235476 -1.5551986 +4.6794376 -1.7614952 +4.479463 -1.6830057 +4.211269 -1.579222 +4.6827493 -1.7526716 +4.68385 -1.749729 +4.0039396 -1.4928713 +3.7305384 -1.3882642 +3.2924328 -1.2228751 +2.971588 -1.1015828 +2.1961765 -0.8125647 +2.3575196 -0.87057644 +1.5989748 -0.5893223 +1.1937307 -0.43911275 +1.3233049 -0.48583275 +1.1830446 -0.43349484 +0.9391662 -0.343463 +0.93938184 -0.34287283 +1.5904353 -0.57937413 +0.93981194 -0.34169212 +0.94002646 -0.34110153 +0.9402406 -0.34051085 +1.3394281 -0.48412597 +2.0307496 -0.7325565 +1.446233 -0.5206759 +0.94109344 -0.3381467 +0.9413057 -0.33755532 +1.0886664 -0.38962752 +1.211394 -0.43269256 +0.9419403 -0.33578038 +1.7717171 -0.63032264 +2.4693382 -0.87676734 +2.3326817 -0.8265957 +3.221438 -1.1392527 +3.2128305 -1.133938 +3.5049875 -1.234576 +3.1319504 -1.1009681 +2.6548202 -0.93136966 +2.9576204 -1.0355121 +2.5374234 -0.8866048 +1.7860893 -0.6228211 +2.488227 -0.86590797 +1.7946457 -0.6232764 +1.8460718 -0.6398371 +1.0122371 -0.35012287 +1.420228 -0.490244 +0.94547313 -0.32570016 +0.9456776 -0.32510605 +1.3687063 -0.46957392 +1.8651823 -0.6385946 +1.8335328 -0.62647176 +2.6906738 -0.9174476 +3.5747502 -1.2163873 +4.4956994 -1.5266094 +4.134408 -1.4010286 +4.736499 -1.6017424 +4.7375045 -1.598766 +4.5317035 -1.5261434 +4.7395096 -1.5928113 +4.442809 -1.4899929 +4.313182 -1.4435053 +3.6459138 -1.2176418 +3.0444615 -1.0146464 +3.219942 -1.0708824 +3.0185175 -1.0017871 +3.3095982 -1.0960832 +3.3626099 -1.1112957 +3.935878 -1.2980102 +4.4398737 -1.4611303 +4.7504053 -1.5600165 +4.7513843 -1.5570314 +4.752362 -1.5540457 +4.7533374 -1.5510594 +4.7543106 -1.5480725 +4.311177 -1.4007863 +3.382197 -1.0965934 +3.1425166 -1.0167015 +2.559975 -0.82645464 +1.9355382 -0.62352073 +1.1405042 -0.36661506 +0.9522147 -0.3054294 +0.95240647 -0.30483106 +1.2714053 -0.40605062 +1.6956086 -0.54035527 +2.335228 -0.7425727 +2.6452641 -0.8393305 +1.8908063 -0.598637 +2.2932594 -0.72447026 +3.1619632 -0.9967205 +3.4426546 -1.082823 +3.4136739 -1.071351 +3.0954893 -0.9693556 +3.9753544 -1.2421441 +4.435546 -1.3828777 +4.7743225 -1.4852079 +4.775255 -1.4822078 +4.7723265 -1.4780121 +4.679807 -1.4461366 +4.575968 -1.4108993 +4.778965 -1.4702016 +4.7798877 -1.4671986 +4.176619 -1.2791528 +4.437285 -1.3559366 +3.9317172 -1.1987457 +4.7382317 -1.4413917 +4.7844734 -1.4521749 +3.8317156 -1.1603667 +4.683238 -1.4150233 +4.3351655 -1.3068824 +4.161257 -1.2516041 +3.8140984 -1.1445746 +2.9118934 -0.8718375 +3.6407468 -1.0875683 +4.3724217 -1.3031433 +3.460363 -1.028949 +3.8400772 -1.1392326 +4.190728 -1.2403957 +4.7952867 -1.41606 +4.7961755 -1.4130467 +4.7970624 -1.4100329 +4.7979474 -1.4070185 +4.7988305 -1.4040036 +3.999853 -1.1675173 +3.258171 -0.9488066 +4.0497737 -1.176568 +3.995458 -1.158066 +4.442736 -1.2846822 +4.4088154 -1.2718724 +4.44404 -1.2790099 +3.791616 -1.0886608 +4.2447133 -1.2158692 +3.4064023 -0.97342527 +2.5707219 -0.7328715 +3.2887452 -0.9353345 +2.4670887 -0.6999763 +2.1966662 -0.6217595 +2.2966778 -0.64850914 +1.5455593 -0.4353687 +2.4020658 -0.6750093 +3.004893 -0.8423742 +3.8927026 -1.08862 +3.8753645 -1.0811464 +4.433168 -1.2337602 +4.817779 -1.3375373 +4.8186183 -1.33451 +4.819456 -1.331482 +4.8202915 -1.3284537 +4.141837 -1.1386746 +4.390175 -1.2039813 +3.4464297 -0.94283646 +3.7102318 -1.0124993 +3.8609457 -1.051022 +4.530703 -1.2302854 +4.826088 -1.3072401 +4.826908 -1.3042076 +4.827727 -1.3011744 +4.7601247 -1.2797467 +4.1207714 -1.1050825 +4.7002177 -1.2573096 +4.6795726 -1.248637 +4.5336504 -1.20665 +3.626398 -0.9627415 +2.785793 -0.73770297 +3.3809218 -0.8930256 +4.2066426 -1.1083016 +3.642774 -0.957295 +4.4715405 -1.1720858 +4.5713115 -1.1951689 +4.7912226 -1.2494488 +3.8834777 -1.0101227 +3.6500182 -0.94695 +3.8523378 -0.9968562 +3.5802147 -0.9240401 +4.37911 -1.1272976 +4.203469 -1.0792674 +3.4696822 -0.88853955 +3.7204237 -0.95026064 +4.577951 -1.1662244 +4.01748 -1.0207578 +4.2063947 -1.065944 +3.800339 -0.9605045 +4.575409 -1.1533391 +4.849105 -1.2190907 +4.8498697 -1.2160437 +4.7568736 -1.1895498 +4.851394 -1.2099482 +4.688151 -1.1661066 +4.852911 -1.2038507 +4.44358 -1.0993457 +4.664659 -1.150931 +4.855171 -1.1947011 +4.1446815 -1.0171111 +4.856669 -1.188599 +4.8574147 -1.1855472 +4.8581586 -1.182495 +4.6141257 -1.1200259 +4.073763 -0.98614913 +3.4752874 -0.838963 +2.6265135 -0.6323158 +2.192772 -0.52643794 +1.3090738 -0.313411 +1.8600923 -0.44409722 +2.0572033 -0.48979145 +2.015452 -0.47851306 +2.0183964 -0.47787267 +1.3279004 -0.31351084 +1.9524353 -0.45966554 +1.449642 -0.34033078 +0.9736745 -0.22794303 +0.97381747 -0.22733122 +0.97396016 -0.2267193 +1.8188689 -0.42219332 +2.137712 -0.4947874 +2.2026055 -0.5083496 +1.5648521 -0.36012405 +1.7772793 -0.4078349 +1.1810234 -0.27023014 +1.8034165 -0.41144773 +1.8279185 -0.41582972 +1.2604928 -0.28591427 +0.9958247 -0.22522251 +0.97550386 -0.21998242 +0.9848943 -0.2214498 +1.7926024 -0.40187687 +2.229818 -0.4984234 +1.7883079 -0.39855456 +1.8740063 -0.4164181 +1.2304791 -0.27261043 +1.4989175 -0.33109456 +1.1871483 -0.26144594 +0.9767322 -0.21446258 +1.7270197 -0.37806708 +0.97700095 -0.21323502 +1.3878587 -0.30199322 +0.9772681 -0.2120071 +0.97740114 -0.21139303 +0.97753376 -0.21077888 +0.977666 -0.21016462 +1.0539756 -0.22587584 +0.97792935 -0.20893589 +0.9780604 -0.20832139 +1.6152525 -0.34297895 +1.4955611 -0.31658202 +1.0395277 -0.21936603 +1.5363797 -0.3232059 +0.97871006 -0.2052477 +1.2669061 -0.2648551 +1.722485 -0.35896742 +1.4269392 -0.29644006 +0.97922283 -0.2027873 +1.1282648 -0.23291318 +1.4933192 -0.307295 +1.5910983 -0.32637405 +1.7169844 -0.35107237 +0.97985506 -0.19970998 +1.2412405 -0.2521723 +1.474393 -0.2985754 +0.98022974 -0.19786264 +0.9803539 -0.19724672 +0.98047763 -0.1966307 +0.98060095 -0.1960146 +0.9807239 -0.19539843 +1.0138222 -0.2013307 +0.9809687 -0.19416587 +0.98109055 -0.19354947 +0.98121196 -0.192933 +1.7967633 -0.35212016 +1.308662 -0.2556109 +1.3912776 -0.27084017 +0.98169374 -0.19046633 +1.4800185 -0.28618553 +1.9118502 -0.36844116 +2.4106274 -0.462992 +2.412877 -0.46185234 +2.6378024 -0.5031877 +2.7100818 -0.5152112 +3.611939 -0.6843113 +3.6377327 -0.6868307 +3.1540735 -0.5934601 +4.027807 -0.75523895 +4.743562 -0.88636255 +4.9155097 -0.91529596 +4.195354 -0.77847177 +4.748142 -0.877959 +4.917226 -0.9060288 +4.917794 -0.9029391 +4.7706695 -0.87282777 +4.1194506 -0.75100803 +3.5867531 -0.65156484 +4.568728 -0.8269841 +4.8941684 -0.8827164 +4.9211636 -0.88439304 +4.921718 -0.8813008 +4.922271 -0.8782082 +4.9228215 -0.8751153 +3.9572306 -0.7009004 +3.1851764 -0.5620911 +2.7393088 -0.48163384 +2.103436 -0.3684704 +2.8301744 -0.4939445 +1.9878197 -0.3456432 +1.3432052 -0.23268788 +2.1003938 -0.36249897 +2.5122192 -0.43194908 +3.4044979 -0.5831647 +2.7296333 -0.4658003 +2.4884439 -0.42303345 +3.2207808 -0.5454482 +2.6294868 -0.44361156 +3.2352703 -0.5437207 +2.9785483 -0.49865183 +3.183837 -0.5309638 +4.089385 -0.67934006 +4.9329176 -0.81628543 +4.9334297 -0.8131858 +4.9339395 -0.8100859 +4.934448 -0.8069857 +4.9349537 -0.8038851 +4.8347526 -0.78444463 +4.9359603 -0.797683 +4.9364605 -0.7945815 +4.519096 -0.7244891 +4.1412687 -0.6612482 +4.667922 -0.742333 +4.1885405 -0.66339964 +4.9389324 -0.77906924 +4.5406313 -0.71331745 +4.450956 -0.6963644 +4.662966 -0.7265327 +4.108497 -0.63749754 +4.079377 -0.6303545 +4.274784 -0.6577995 +4.7672057 -0.73050684 +4.331965 -0.66102684 +4.943259 -0.75112796 +4.94373 -0.74802184 +4.9441986 -0.7449155 +4.944666 -0.7418088 +4.519911 -0.67518264 +4.9081135 -0.7300198 +4.9460554 -0.732487 +4.308849 -0.6353534 +4.9367948 -0.7247769 +4.328642 -0.6327151 +4.2843065 -0.62348545 +3.9869263 -0.57765055 +3.2529478 -0.46922058 +4.075461 -0.58525 +4.0723367 -0.58219016 +4.81217 -0.6848732 +4.95056 -0.70139575 +4.7353377 -0.6678683 +4.3466325 -0.6102604 +3.8401988 -0.53669775 +3.889203 -0.5410553 +3.7851524 -0.524156 +2.8488345 -0.39267346 +2.0134373 -0.27623624 +1.1229525 -0.15334618 +0.99088943 -0.13467799 +0.99097383 -0.13405538 +1.1524625 -0.15516368 +1.0977666 -0.14709741 +1.6437143 -0.21920152 +1.9043677 -0.25274384 +2.8430505 -0.37550628 +2.4193335 -0.31799582 +2.2860627 -0.29901773 +1.4229774 -0.18521659 +0.9917161 -0.12844943 +1.3648045 -0.17590088 +1.5466479 -0.19834967 +0.9919564 -0.12657987 +1.688259 -0.21435449 +2.3909333 -0.30204514 +3.1634536 -0.3976179 +4.1302366 -0.51649797 +4.1195717 -0.5125357 +3.706366 -0.4587621 +3.0452027 -0.37498292 +2.4923694 -0.305318 +3.200262 -0.38999486 +3.596516 -0.43599054 +3.741079 -0.4511304 +4.416475 -0.5297601 +3.970357 -0.47371754 +3.7067087 -0.43989873 +3.5468106 -0.41866285 +3.003113 -0.35257214 +2.0411649 -0.23833722 +2.950176 -0.3425994 +2.0644107 -0.23842233 +1.2808282 -0.1471096 +0.9935402 -0.113480665 +1.0811733 -0.122801855 +1.4405752 -0.1627067 +0.99375236 -0.111607686 +0.9938223 -0.110983275 +0.99389184 -0.11035881 +1.4299196 -0.1578646 +0.9940297 -0.10910977 +1.7302393 -0.18881972 +1.7396142 -0.18873683 +2.5399554 -0.27395403 +3.5000353 -0.3752816 +3.838546 -0.4091381 +4.66529 -0.49429363 +4.9725 -0.5236838 +4.972828 -0.5205594 +4.973154 -0.5174347 +4.112371 -0.42526236 +4.7100143 -0.48407412 +4.9741206 -0.5080596 +4.9744387 -0.5049342 +4.8191423 -0.48611176 +4.498652 -0.4509284 +3.6274822 -0.36130357 +3.1067576 -0.30746722 +2.6076329 -0.25641584 +1.9785892 -0.19330509 +2.5513513 -0.2476448 +2.944578 -0.28394556 +2.6809478 -0.2568237 +1.9588332 -0.1864061 +1.5384909 -0.1454302 +0.9956209 -0.09348276 +0.99567944 -0.09285718 +0.9957376 -0.09223156 +0.99579537 -0.0916059 +1.2117702 -0.11070623 +2.1512861 -0.19517668 +1.1800426 -0.106312536 +0.9960224 -0.08910291 +0.9960782 -0.08847707 +1.4788423 -0.13042232 +0.99618864 -0.08722529 +1.3459976 -0.11700207 +1.2251253 -0.105719596 +0.99635124 -0.08534736 +1.0524067 -0.089483 +1.4956064 -0.12622051 +1.5884013 -0.13304678 +1.9125942 -0.15899155 +1.7487055 -0.1442614 +2.3659053 -0.1936814 +1.5491676 -0.12584051 +2.4772155 -0.19966015 +2.7676141 -0.22131573 +3.5559525 -0.28210774 +3.4293423 -0.2698951 +3.111645 -0.24292465 +2.5133214 -0.1946251 +2.8505194 -0.21893516 +2.5182848 -0.19182621 +2.4171698 -0.18259646 +2.8607955 -0.21430092 +3.2661955 -0.24260563 +3.7657518 -0.27733248 +4.1289263 -0.30147058 +4.766192 -0.3449896 +4.2462296 -0.3046715 +4.0726147 -0.28964245 +3.566324 -0.2513833 +4.225721 -0.29519475 +3.6924028 -0.2556077 +3.1481743 -0.21594585 +3.687465 -0.25061026 +4.4192443 -0.2975546 +4.9889145 -0.3327627 +4.0228086 -0.26578426 +3.8943167 -0.25483742 +2.9247184 -0.18954313 +2.1421916 -0.1374781 +2.4957166 -0.15859155 +1.5996343 -0.10064046 +1.9035318 -0.11855936 +2.3386056 -0.14418243 +1.433165 -0.087455265 +0.9981814 -0.06028201 +1.7150482 -0.10249343 +1.8933939 -0.11195774 +1.6303728 -0.09537716 +2.0609913 -0.1192691 +2.7942517 -0.15994123 +3.0094252 -0.17036062 +2.7875907 -0.15604573 +2.4038742 -0.1330507 +2.3902493 -0.13079019 +1.6565565 -0.0895999 +1.9534024 -0.10442481 +1.8219304 -0.09624861 +1.6073431 -0.08389972 +2.4179337 -0.124687426 +2.5997167 -0.13242382 +2.141133 -0.107715815 +2.921363 -0.14512739 +3.6682231 -0.17991945 +3.892988 -0.1884919 +3.577268 -0.17095241 +2.5849755 -0.12190435 +3.0695207 -0.14282206 +2.3760257 -0.10905826 +3.0168774 -0.1365735 +2.2183082 -0.0990258 +1.7293121 -0.076108195 +1.4689641 -0.06372537 +2.330576 -0.09963603 +2.258193 -0.095120125 +1.4082986 -0.058434267 +2.1159546 -0.08646516 +1.8590472 -0.07479704 +2.39801 -0.0949726 +2.9097092 -0.11340727 +2.3636923 -0.09063864 +1.864625 -0.07032803 +1.3854398 -0.051382888 +1.6416734 -0.05985314 +1.2484215 -0.044730287 +1.9497336 -0.068631336 +1.1198004 -0.038712937 +1.0073992 -0.03419337 +1.6827348 -0.056057278 +1.8077155 -0.059083726 +2.739991 -0.087831005 +2.5887911 -0.08135603 +2.8737946 -0.08850522 +3.0163052 -0.09099721 +4.011744 -0.11850514 +4.6330686 -0.13394527 +3.9026883 -0.11037533 +3.6381555 -0.100606136 +4.6145296 -0.12470431 +4.074449 -0.10754714 +3.2598763 -0.083996445 +3.8923438 -0.09784587 +3.6207185 -0.08874138 +2.8416784 -0.0678611 +3.0285914 -0.07042073 +2.904008 -0.06569832 +2.2746994 -0.05003132 +1.3160908 -0.028119702 +1.8541802 -0.03845103 +2.2058315 -0.04435685 +1.9201719 -0.037405595 +1.2362372 -0.023305282 +0.999834 -0.01822023 +0.99984527 -0.017592011 +1.2220099 -0.020732898 +0.99986655 -0.016335554 +1.9139609 -0.030066902 +1.7238461 -0.025996957 +1.2964936 -0.018737357 +0.99990445 -0.013822568 +1.6188821 -0.021361886 +0.999921 -0.01256604 +0.9999287 -0.011937768 +1.707403 -0.019311097 +2.2559235 -0.024097372 +1.9249173 -0.019352032 +2.2956107 -0.021636263 +1.4926057 -0.013129984 +2.0770485 -0.016966002 +1.950848 -0.014709326 +1.6730411 -0.011563414 +1.28282 -0.008060302 +2.0999076 -0.011874825 +1.3222525 -0.006646422 +0.99999034 -0.0043982156 +1.3930691 -0.005251772 +1.8355911 -0.0057666986 +2.037258 -0.0051201987 +1.6741288 -0.003155662 +1.7118267 -0.002151146 +2.4374065 -0.001531468 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +139 140 +140 141 +141 142 +142 143 +143 144 +144 145 +145 146 +146 147 +147 148 +148 149 +149 150 +150 151 +151 152 +152 153 +153 154 +154 155 +155 156 +156 157 +157 158 +158 159 +159 160 +160 161 +161 162 +162 163 +163 164 +164 165 +165 166 +166 167 +167 168 +168 169 +169 170 +170 171 +171 172 +172 173 +173 174 +174 175 +175 176 +176 177 +177 178 +178 179 +179 180 +180 181 +181 182 +182 183 +183 184 +184 185 +185 186 +186 187 +187 188 +188 189 +189 190 +190 191 +191 192 +192 193 +193 194 +194 195 +195 196 +196 197 +197 198 +198 199 +199 200 +200 201 +201 202 +202 203 +203 204 +204 205 +205 206 +206 207 +207 208 +208 209 +209 210 +210 211 +211 212 +212 213 +213 214 +214 215 +215 216 +216 217 +217 218 +218 219 +219 220 +220 221 +221 222 +222 223 +223 224 +224 225 +225 226 +226 227 +227 228 +228 229 +229 230 +230 231 +231 232 +232 233 +233 234 +234 235 +235 236 +236 237 +237 238 +238 239 +239 240 +240 241 +241 242 +242 243 +243 244 +244 245 +245 246 +246 247 +247 248 +248 249 +249 250 +250 251 +251 252 +252 253 +253 254 +254 255 +255 256 +256 257 +257 258 +258 259 +259 260 +260 261 +261 262 +262 263 +263 264 +264 265 +265 266 +266 267 +267 268 +268 269 +269 270 +270 271 +271 272 +272 273 +273 274 +274 275 +275 276 +276 277 +277 278 +278 279 +279 280 +280 281 +281 282 +282 283 +283 284 +284 285 +285 286 +286 287 +287 288 +288 289 +289 290 +290 291 +291 292 +292 293 +293 294 +294 295 +295 296 +296 297 +297 298 +298 299 +299 300 +300 301 +301 302 +302 303 +303 304 +304 305 +305 306 +306 307 +307 308 +308 309 +309 310 +310 311 +311 312 +312 313 +313 314 +314 315 +315 316 +316 317 +317 318 +318 319 +319 320 +320 321 +321 322 +322 323 +323 324 +324 325 +325 326 +326 327 +327 328 +328 329 +329 330 +330 331 +331 332 +332 333 +333 334 +334 335 +335 336 +336 337 +337 338 +338 339 +339 340 +340 341 +341 342 +342 343 +343 344 +344 345 +345 346 +346 347 +347 348 +348 349 +349 350 +350 351 +351 352 +352 353 +353 354 +354 355 +355 356 +356 357 +357 358 +358 359 +359 360 +360 361 +361 362 +362 363 +363 364 +364 365 +365 366 +366 367 +367 368 +368 369 +369 370 +370 371 +371 372 +372 373 +373 374 +374 375 +375 376 +376 377 +377 378 +378 379 +379 380 +380 381 +381 382 +382 383 +383 384 +384 385 +385 386 +386 387 +387 388 +388 389 +389 390 +390 391 +391 392 +392 393 +393 394 +394 395 +395 396 +396 397 +397 398 +398 399 +399 400 +400 401 +401 402 +402 403 +403 404 +404 405 +405 406 +406 407 +407 408 +408 409 +409 410 +410 411 +411 412 +412 413 +413 414 +414 415 +415 416 +416 417 +417 418 +418 419 +419 420 +420 421 +421 422 +422 423 +423 424 +424 425 +425 426 +426 427 +427 428 +428 429 +429 430 +430 431 +431 432 +432 433 +433 434 +434 435 +435 436 +436 437 +437 438 +438 439 +439 440 +440 441 +441 442 +442 443 +443 444 +444 445 +445 446 +446 447 +447 448 +448 449 +449 450 +450 451 +451 452 +452 453 +453 454 +454 455 +455 456 +456 457 +457 458 +458 459 +459 460 +460 461 +461 462 +462 463 +463 464 +464 465 +465 466 +466 467 +467 468 +468 469 +469 470 +470 471 +471 472 +472 473 +473 474 +474 475 +475 476 +476 477 +477 478 +478 479 +479 480 +480 481 +481 482 +482 483 +483 484 +484 485 +485 486 +486 487 +487 488 +488 489 +489 490 +490 491 +491 492 +492 493 +493 494 +494 495 +495 496 +496 497 +497 498 +498 499 +499 500 +500 501 +501 502 +502 503 +503 504 +504 505 +505 506 +506 507 +507 508 +508 509 +509 510 +510 511 +511 512 +512 513 +513 514 +514 515 +515 516 +516 517 +517 518 +518 519 +519 520 +520 521 +521 522 +522 523 +523 524 +524 525 +525 526 +526 527 +527 528 +528 529 +529 530 +530 531 +531 532 +532 533 +533 534 +534 535 +535 536 +536 537 +537 538 +538 539 +539 540 +540 541 +541 542 +542 543 +543 544 +544 545 +545 546 +546 547 +547 548 +548 549 +549 550 +550 551 +551 552 +552 553 +553 554 +554 555 +555 556 +556 557 +557 558 +558 559 +559 560 +560 561 +561 562 +562 563 +563 564 +564 565 +565 566 +566 567 +567 568 +568 569 +569 570 +570 571 +571 572 +572 573 +573 574 +574 575 +575 576 +576 577 +577 578 +578 579 +579 580 +580 581 +581 582 +582 583 +583 584 +584 585 +585 586 +586 587 +587 588 +588 589 +589 590 +590 591 +591 592 +592 593 +593 594 +594 595 +595 596 +596 597 +597 598 +598 599 +599 600 +600 601 +601 602 +602 603 +603 604 +604 605 +605 606 +606 607 +607 608 +608 609 +609 610 +610 611 +611 612 +612 613 +613 614 +614 615 +615 616 +616 617 +617 618 +618 619 +619 620 +620 621 +621 622 +622 623 +623 624 +624 625 +625 626 +626 627 +627 628 +628 629 +629 630 +630 631 +631 632 +632 633 +633 634 +634 635 +635 636 +636 637 +637 638 +638 639 +639 640 +640 641 +641 642 +642 643 +643 644 +644 645 +645 646 +646 647 +647 648 +648 649 +649 650 +650 651 +651 652 +652 653 +653 654 +654 655 +655 656 +656 657 +657 658 +658 659 +659 660 +660 661 +661 662 +662 663 +663 664 +664 665 +665 666 +666 667 +667 668 +668 669 +669 670 +670 671 +671 672 +672 673 +673 674 +674 675 +675 676 +676 677 +677 678 +678 679 +679 680 +680 681 +681 682 +682 683 +683 684 +684 685 +685 686 +686 687 +687 688 +688 689 +689 690 +690 691 +691 692 +692 693 +693 694 +694 695 +695 696 +696 697 +697 698 +698 699 +699 700 +700 701 +701 702 +702 703 +703 704 +704 705 +705 706 +706 707 +707 708 +708 709 +709 710 +710 711 +711 712 +712 713 +713 714 +714 715 +715 716 +716 717 +717 718 +718 719 +719 720 +720 721 +721 722 +722 723 +723 724 +724 725 +725 726 +726 727 +727 728 +728 729 +729 730 +730 731 +731 732 +732 733 +733 734 +734 735 +735 736 +736 737 +737 738 +738 739 +739 740 +740 741 +741 742 +742 743 +743 744 +744 745 +745 746 +746 747 +747 748 +748 749 +749 750 +750 751 +751 752 +752 753 +753 754 +754 755 +755 756 +756 757 +757 758 +758 759 +759 760 +760 761 +761 762 +762 763 +763 764 +764 765 +765 766 +766 767 +767 768 +768 769 +769 770 +770 771 +771 772 +772 773 +773 774 +774 775 +775 776 +776 777 +777 778 +778 779 +779 780 +780 781 +781 782 +782 783 +783 784 +784 785 +785 786 +786 787 +787 788 +788 789 +789 790 +790 791 +791 792 +792 793 +793 794 +794 795 +795 796 +796 797 +797 798 +798 799 +799 800 +800 801 +801 802 +802 803 +803 804 +804 805 +805 806 +806 807 +807 808 +808 809 +809 810 +810 811 +811 812 +812 813 +813 814 +814 815 +815 816 +816 817 +817 818 +818 819 +819 820 +820 821 +821 822 +822 823 +823 824 +824 825 +825 826 +826 827 +827 828 +828 829 +829 830 +830 831 +831 832 +832 833 +833 834 +834 835 +835 836 +836 837 +837 838 +838 839 +839 840 +840 841 +841 842 +842 843 +843 844 +844 845 +845 846 +846 847 +847 848 +848 849 +849 850 +850 851 +851 852 +852 853 +853 854 +854 855 +855 856 +856 857 +857 858 +858 859 +859 860 +860 861 +861 862 +862 863 +863 864 +864 865 +865 866 +866 867 +867 868 +868 869 +869 870 +870 871 +871 872 +872 873 +873 874 +874 875 +875 876 +876 877 +877 878 +878 879 +879 880 +880 881 +881 882 +882 883 +883 884 +884 885 +885 886 +886 887 +887 888 +888 889 +889 890 +890 891 +891 892 +892 893 +893 894 +894 895 +895 896 +896 897 +897 898 +898 899 +899 900 +900 901 +901 902 +902 903 +903 904 +904 905 +905 906 +906 907 +907 908 +908 909 +909 910 +910 911 +911 912 +912 913 +913 914 +914 915 +915 916 +916 917 +917 918 +918 919 +919 920 +920 921 +921 922 +922 923 +923 924 +924 925 +925 926 +926 927 +927 928 +928 929 +929 930 +930 931 +931 932 +932 933 +933 934 +934 935 +935 936 +936 937 +937 938 +938 939 +939 940 +940 941 +941 942 +942 943 +943 944 +944 945 +945 946 +946 947 +947 948 +948 949 +949 950 +950 951 +951 952 +952 953 +953 954 +954 955 +955 956 +956 957 +957 958 +958 959 +959 960 +960 961 +961 962 +962 963 +963 964 +964 965 +965 966 +966 967 +967 968 +968 969 +969 970 +970 971 +971 972 +972 973 +973 974 +974 975 +975 976 +976 977 +977 978 +978 979 +979 980 +980 981 +981 982 +982 983 +983 984 +984 985 +985 986 +986 987 +987 988 +988 989 +989 990 +990 991 +991 992 +992 993 +993 994 +994 995 +995 996 +996 997 +997 998 +998 999 +999 1000 +1000 1001 +1001 1002 +1002 1003 +1003 1004 +1004 1005 +1005 1006 +1006 1007 +1007 1008 +1008 1009 +1009 1010 +1010 1011 +1011 1012 +1012 1013 +1013 1014 +1014 1015 +1015 1016 +1016 1017 +1017 1018 +1018 1019 +1019 1020 +1020 1021 +1021 1022 +1022 1023 +1023 1024 +1024 1025 +1025 1026 +1026 1027 +1027 1028 +1028 1029 +1029 1030 +1030 1031 +1031 1032 +1032 1033 +1033 1034 +1034 1035 +1035 1036 +1036 1037 +1037 1038 +1038 1039 +1039 1040 +1040 1041 +1041 1042 +1042 1043 +1043 1044 +1044 1045 +1045 1046 +1046 1047 +1047 1048 +1048 1049 +1049 1050 +1050 1051 +1051 1052 +1052 1053 +1053 1054 +1054 1055 +1055 1056 +1056 1057 +1057 1058 +1058 1059 +1059 1060 +1060 1061 +1061 1062 +1062 1063 +1063 1064 +1064 1065 +1065 1066 +1066 1067 +1067 1068 +1068 1069 +1069 1070 +1070 1071 +1071 1072 +1072 1073 +1073 1074 +1074 1075 +1075 1076 +1076 1077 +1077 1078 +1078 1079 +1079 1080 +1080 1081 +1081 1082 +1082 1083 +1083 1084 +1084 1085 +1085 1086 +1086 1087 +1087 1088 +1088 1089 +1089 1090 +1090 1091 +1091 1092 +1092 1093 +1093 1094 +1094 1095 +1095 1096 +1096 1097 +1097 1098 +1098 1099 +1099 1100 +1100 1101 +1101 1102 +1102 1103 +1103 1104 +1104 1105 +1105 1106 +1106 1107 +1107 1108 +1108 1109 +1109 1110 +1110 1111 +1111 1112 +1112 1113 +1113 1114 +1114 1115 +1115 1116 +1116 1117 +1117 1118 +1118 1119 +1119 1120 +1120 1121 +1121 1122 +1122 1123 +1123 1124 +1124 1125 +1125 1126 +1126 1127 +1127 1128 +1128 1129 +1129 1130 +1130 1131 +1131 1132 +1132 1133 +1133 1134 +1134 1135 +1135 1136 +1136 1137 +1137 1138 +1138 1139 +1139 1140 +1140 1141 +1141 1142 +1142 1143 +1143 1144 +1144 1145 +1145 1146 +1146 1147 +1147 1148 +1148 1149 +1149 1150 +1150 1151 +1151 1152 +1152 1153 +1153 1154 +1154 1155 +1155 1156 +1156 1157 +1157 1158 +1158 1159 +1159 1160 +1160 1161 +1161 1162 +1162 1163 +1163 1164 +1164 1165 +1165 1166 +1166 1167 +1167 1168 +1168 1169 +1169 1170 +1170 1171 +1171 1172 +1172 1173 +1173 1174 +1174 1175 +1175 1176 +1176 1177 +1177 1178 +1178 1179 +1179 1180 +1180 1181 +1181 1182 +1182 1183 +1183 1184 +1184 1185 +1185 1186 +1186 1187 +1187 1188 +1188 1189 +1189 1190 +1190 1191 +1191 1192 +1192 1193 +1193 1194 +1194 1195 +1195 1196 +1196 1197 +1197 1198 +1198 1199 +1199 1200 +1200 1201 +1201 1202 +1202 1203 +1203 1204 +1204 1205 +1205 1206 +1206 1207 +1207 1208 +1208 1209 +1209 1210 +1210 1211 +1211 1212 +1212 1213 +1213 1214 +1214 1215 +1215 1216 +1216 1217 +1217 1218 +1218 1219 +1219 1220 +1220 1221 +1221 1222 +1222 1223 +1223 1224 +1224 1225 +1225 1226 +1226 1227 +1227 1228 +1228 1229 +1229 1230 +1230 1231 +1231 1232 +1232 1233 +1233 1234 +1234 1235 +1235 1236 +1236 1237 +1237 1238 +1238 1239 +1239 1240 +1240 1241 +1241 1242 +1242 1243 +1243 1244 +1244 1245 +1245 1246 +1246 1247 +1247 1248 +1248 1249 +1249 1250 +1250 1251 +1251 1252 +1252 1253 +1253 1254 +1254 1255 +1255 1256 +1256 1257 +1257 1258 +1258 1259 +1259 1260 +1260 1261 +1261 1262 +1262 1263 +1263 1264 +1264 1265 +1265 1266 +1266 1267 +1267 1268 +1268 1269 +1269 1270 +1270 1271 +1271 1272 +1272 1273 +1273 1274 +1274 1275 +1275 1276 +1276 1277 +1277 1278 +1278 1279 +1279 1280 +1280 1281 +1281 1282 +1282 1283 +1283 1284 +1284 1285 +1285 1286 +1286 1287 +1287 1288 +1288 1289 +1289 1290 +1290 1291 +1291 1292 +1292 1293 +1293 1294 +1294 1295 +1295 1296 +1296 1297 +1297 1298 +1298 1299 +1299 1300 +1300 1301 +1301 1302 +1302 1303 +1303 1304 +1304 1305 +1305 1306 +1306 1307 +1307 1308 +1308 1309 +1309 1310 +1310 1311 +1311 1312 +1312 1313 +1313 1314 +1314 1315 +1315 1316 +1316 1317 +1317 1318 +1318 1319 +1319 1320 +1320 1321 +1321 1322 +1322 1323 +1323 1324 +1324 1325 +1325 1326 +1326 1327 +1327 1328 +1328 1329 +1329 1330 +1330 1331 +1331 1332 +1332 1333 +1333 1334 +1334 1335 +1335 1336 +1336 1337 +1337 1338 +1338 1339 +1339 1340 +1340 1341 +1341 1342 +1342 1343 +1343 1344 +1344 1345 +1345 1346 +1346 1347 +1347 1348 +1348 1349 +1349 1350 +1350 1351 +1351 1352 +1352 1353 +1353 1354 +1354 1355 +1355 1356 +1356 1357 +1357 1358 +1358 1359 +1359 1360 +1360 1361 +1361 1362 +1362 1363 +1363 1364 +1364 1365 +1365 1366 +1366 1367 +1367 1368 +1368 1369 +1369 1370 +1370 1371 +1371 1372 +1372 1373 +1373 1374 +1374 1375 +1375 1376 +1376 1377 +1377 1378 +1378 1379 +1379 1380 +1380 1381 +1381 1382 +1382 1383 +1383 1384 +1384 1385 +1385 1386 +1386 1387 +1387 1388 +1388 1389 +1389 1390 +1390 1391 +1391 1392 +1392 1393 +1393 1394 +1394 1395 +1395 1396 +1396 1397 +1397 1398 +1398 1399 +1399 1400 +1400 1401 +1401 1402 +1402 1403 +1403 1404 +1404 1405 +1405 1406 +1406 1407 +1407 1408 +1408 1409 +1409 1410 +1410 1411 +1411 1412 +1412 1413 +1413 1414 +1414 1415 +1415 1416 +1416 1417 +1417 1418 +1418 1419 +1419 1420 +1420 1421 +1421 1422 +1422 1423 +1423 1424 +1424 1425 +1425 1426 +1426 1427 +1427 1428 +1428 1429 +1429 1430 +1430 1431 +1431 1432 +1432 1433 +1433 1434 +1434 1435 +1435 1436 +1436 1437 +1437 1438 +1438 1439 +1439 1440 +1440 1441 +1441 1442 +1442 1443 +1443 1444 +1444 1445 +1445 1446 +1446 1447 +1447 1448 +1448 1449 +1449 1450 +1450 1451 +1451 1452 +1452 1453 +1453 1454 +1454 1455 +1455 1456 +1456 1457 +1457 1458 +1458 1459 +1459 1460 +1460 1461 +1461 1462 +1462 1463 +1463 1464 +1464 1465 +1465 1466 +1466 1467 +1467 1468 +1468 1469 +1469 1470 +1470 1471 +1471 1472 +1472 1473 +1473 1474 +1474 1475 +1475 1476 +1476 1477 +1477 1478 +1478 1479 +1479 1480 +1480 1481 +1481 1482 +1482 1483 +1483 1484 +1484 1485 +1485 1486 +1486 1487 +1487 1488 +1488 1489 +1489 1490 +1490 1491 +1491 1492 +1492 1493 +1493 1494 +1494 1495 +1495 1496 +1496 1497 +1497 1498 +1498 1499 +1499 1500 +1500 1501 +1501 1502 +1502 1503 +1503 1504 +1504 1505 +1505 1506 +1506 1507 +1507 1508 +1508 1509 +1509 1510 +1510 1511 +1511 1512 +1512 1513 +1513 1514 +1514 1515 +1515 1516 +1516 1517 +1517 1518 +1518 1519 +1519 1520 +1520 1521 +1521 1522 +1522 1523 +1523 1524 +1524 1525 +1525 1526 +1526 1527 +1527 1528 +1528 1529 +1529 1530 +1530 1531 +1531 1532 +1532 1533 +1533 1534 +1534 1535 +1535 1536 +1536 1537 +1537 1538 +1538 1539 +1539 1540 +1540 1541 +1541 1542 +1542 1543 +1543 1544 +1544 1545 +1545 1546 +1546 1547 +1547 1548 +1548 1549 +1549 1550 +1550 1551 +1551 1552 +1552 1553 +1553 1554 +1554 1555 +1555 1556 +1556 1557 +1557 1558 +1558 1559 +1559 1560 +1560 1561 +1561 1562 +1562 1563 +1563 1564 +1564 1565 +1565 1566 +1566 1567 +1567 1568 +1568 1569 +1569 1570 +1570 1571 +1571 1572 +1572 1573 +1573 1574 +1574 1575 +1575 1576 +1576 1577 +1577 1578 +1578 1579 +1579 1580 +1580 1581 +1581 1582 +1582 1583 +1583 1584 +1584 1585 +1585 1586 +1586 1587 +1587 1588 +1588 1589 +1589 1590 +1590 1591 +1591 1592 +1592 1593 +1593 1594 +1594 1595 +1595 1596 +1596 1597 +1597 1598 +1598 1599 +1599 1600 +1600 1601 +1601 1602 +1602 1603 +1603 1604 +1604 1605 +1605 1606 +1606 1607 +1607 1608 +1608 1609 +1609 1610 +1610 1611 +1611 1612 +1612 1613 +1613 1614 +1614 1615 +1615 1616 +1616 1617 +1617 1618 +1618 1619 +1619 1620 +1620 1621 +1621 1622 +1622 1623 +1623 1624 +1624 1625 +1625 1626 +1626 1627 +1627 1628 +1628 1629 +1629 1630 +1630 1631 +1631 1632 +1632 1633 +1633 1634 +1634 1635 +1635 1636 +1636 1637 +1637 1638 +1638 1639 +1639 1640 +1640 1641 +1641 1642 +1642 1643 +1643 1644 +1644 1645 +1645 1646 +1646 1647 +1647 1648 +1648 1649 +1649 1650 +1650 1651 +1651 1652 +1652 1653 +1653 1654 +1654 1655 +1655 1656 +1656 1657 +1657 1658 +1658 1659 +1659 1660 +1660 1661 +1661 1662 +1662 1663 +1663 1664 +1664 1665 +1665 1666 +1666 1667 +1667 1668 +1668 1669 +1669 1670 +1670 1671 +1671 1672 +1672 1673 +1673 1674 +1674 1675 +1675 1676 +1676 1677 +1677 1678 +1678 1679 +1679 1680 +1680 1681 +1681 1682 +1682 1683 +1683 1684 +1684 1685 +1685 1686 +1686 1687 +1687 1688 +1688 1689 +1689 1690 +1690 1691 +1691 1692 +1692 1693 +1693 1694 +1694 1695 +1695 1696 +1696 1697 +1697 1698 +1698 1699 +1699 1700 +1700 1701 +1701 1702 +1702 1703 +1703 1704 +1704 1705 +1705 1706 +1706 1707 +1707 1708 +1708 1709 +1709 1710 +1710 1711 +1711 1712 +1712 1713 +1713 1714 +1714 1715 +1715 1716 +1716 1717 +1717 1718 +1718 1719 +1719 1720 +1720 1721 +1721 1722 +1722 1723 +1723 1724 +1724 1725 +1725 1726 +1726 1727 +1727 1728 +1728 1729 +1729 1730 +1730 1731 +1731 1732 +1732 1733 +1733 1734 +1734 1735 +1735 1736 +1736 1737 +1737 1738 +1738 1739 +1739 1740 +1740 1741 +1741 1742 +1742 1743 +1743 1744 +1744 1745 +1745 1746 +1746 1747 +1747 1748 +1748 1749 +1749 1750 +1750 1751 +1751 1752 +1752 1753 +1753 1754 +1754 1755 +1755 1756 +1756 1757 +1757 1758 +1758 1759 +1759 1760 +1760 1761 +1761 1762 +1762 1763 +1763 1764 +1764 1765 +1765 1766 +1766 1767 +1767 1768 +1768 1769 +1769 1770 +1770 1771 +1771 1772 +1772 1773 +1773 1774 +1774 1775 +1775 1776 +1776 1777 +1777 1778 +1778 1779 +1779 1780 +1780 1781 +1781 1782 +1782 1783 +1783 1784 +1784 1785 +1785 1786 +1786 1787 +1787 1788 +1788 1789 +1789 1790 +1790 1791 +1791 1792 +1792 1793 +1793 1794 +1794 1795 +1795 1796 +1796 1797 +1797 1798 +1798 1799 +1799 1800 +1800 1801 +1801 1802 +1802 1803 +1803 1804 +1804 1805 +1805 1806 +1806 1807 +1807 1808 +1808 1809 +1809 1810 +1810 1811 +1811 1812 +1812 1813 +1813 1814 +1814 1815 +1815 1816 +1816 1817 +1817 1818 +1818 1819 +1819 1820 +1820 1821 +1821 1822 +1822 1823 +1823 1824 +1824 1825 +1825 1826 +1826 1827 +1827 1828 +1828 1829 +1829 1830 +1830 1831 +1831 1832 +1832 1833 +1833 1834 +1834 1835 +1835 1836 +1836 1837 +1837 1838 +1838 1839 +1839 1840 +1840 1841 +1841 1842 +1842 1843 +1843 1844 +1844 1845 +1845 1846 +1846 1847 +1847 1848 +1848 1849 +1849 1850 +1850 1851 +1851 1852 +1852 1853 +1853 1854 +1854 1855 +1855 1856 +1856 1857 +1857 1858 +1858 1859 +1859 1860 +1860 1861 +1861 1862 +1862 1863 +1863 1864 +1864 1865 +1865 1866 +1866 1867 +1867 1868 +1868 1869 +1869 1870 +1870 1871 +1871 1872 +1872 1873 +1873 1874 +1874 1875 +1875 1876 +1876 1877 +1877 1878 +1878 1879 +1879 1880 +1880 1881 +1881 1882 +1882 1883 +1883 1884 +1884 1885 +1885 1886 +1886 1887 +1887 1888 +1888 1889 +1889 1890 +1890 1891 +1891 1892 +1892 1893 +1893 1894 +1894 1895 +1895 1896 +1896 1897 +1897 1898 +1898 1899 +1899 1900 +1900 1901 +1901 1902 +1902 1903 +1903 1904 +1904 1905 +1905 1906 +1906 1907 +1907 1908 +1908 1909 +1909 1910 +1910 1911 +1911 1912 +1912 1913 +1913 1914 +1914 1915 +1915 1916 +1916 1917 +1917 1918 +1918 1919 +1919 1920 +1920 1921 +1921 1922 +1922 1923 +1923 1924 +1924 1925 +1925 1926 +1926 1927 +1927 1928 +1928 1929 +1929 1930 +1930 1931 +1931 1932 +1932 1933 +1933 1934 +1934 1935 +1935 1936 +1936 1937 +1937 1938 +1938 1939 +1939 1940 +1940 1941 +1941 1942 +1942 1943 +1943 1944 +1944 1945 +1945 1946 +1946 1947 +1947 1948 +1948 1949 +1949 1950 +1950 1951 +1951 1952 +1952 1953 +1953 1954 +1954 1955 +1955 1956 +1956 1957 +1957 1958 +1958 1959 +1959 1960 +1960 1961 +1961 1962 +1962 1963 +1963 1964 +1964 1965 +1965 1966 +1966 1967 +1967 1968 +1968 1969 +1969 1970 +1970 1971 +1971 1972 +1972 1973 +1973 1974 +1974 1975 +1975 1976 +1976 1977 +1977 1978 +1978 1979 +1979 1980 +1980 1981 +1981 1982 +1982 1983 +1983 1984 +1984 1985 +1985 1986 +1986 1987 +1987 1988 +1988 1989 +1989 1990 +1990 1991 +1991 1992 +1992 1993 +1993 1994 +1994 1995 +1995 1996 +1996 1997 +1997 1998 +1998 1999 +1999 2000 +2000 2001 +2001 2002 +2002 2003 +2003 2004 +2004 2005 +2005 2006 +2006 2007 +2007 2008 +2008 2009 +2009 2010 +2010 2011 +2011 2012 +2012 2013 +2013 2014 +2014 2015 +2015 2016 +2016 2017 +2017 2018 +2018 2019 +2019 2020 +2020 2021 +2021 2022 +2022 2023 +2023 2024 +2024 2025 +2025 2026 +2026 2027 +2027 2028 +2028 2029 +2029 2030 +2030 2031 +2031 2032 +2032 2033 +2033 2034 +2034 2035 +2035 2036 +2036 2037 +2037 2038 +2038 2039 +2039 2040 +2040 2041 +2041 2042 +2042 2043 +2043 2044 +2044 2045 +2045 2046 +2046 2047 +2047 2048 +2048 2049 +2049 2050 +2050 2051 +2051 2052 +2052 2053 +2053 2054 +2054 2055 +2055 2056 +2056 2057 +2057 2058 +2058 2059 +2059 2060 +2060 2061 +2061 2062 +2062 2063 +2063 2064 +2064 2065 +2065 2066 +2066 2067 +2067 2068 +2068 2069 +2069 2070 +2070 2071 +2071 2072 +2072 2073 +2073 2074 +2074 2075 +2075 2076 +2076 2077 +2077 2078 +2078 2079 +2079 2080 +2080 2081 +2081 2082 +2082 2083 +2083 2084 +2084 2085 +2085 2086 +2086 2087 +2087 2088 +2088 2089 +2089 2090 +2090 2091 +2091 2092 +2092 2093 +2093 2094 +2094 2095 +2095 2096 +2096 2097 +2097 2098 +2098 2099 +2099 2100 +2100 2101 +2101 2102 +2102 2103 +2103 2104 +2104 2105 +2105 2106 +2106 2107 +2107 2108 +2108 2109 +2109 2110 +2110 2111 +2111 2112 +2112 2113 +2113 2114 +2114 2115 +2115 2116 +2116 2117 +2117 2118 +2118 2119 +2119 2120 +2120 2121 +2121 2122 +2122 2123 +2123 2124 +2124 2125 +2125 2126 +2126 2127 +2127 2128 +2128 2129 +2129 2130 +2130 2131 +2131 2132 +2132 2133 +2133 2134 +2134 2135 +2135 2136 +2136 2137 +2137 2138 +2138 2139 +2139 2140 +2140 2141 +2141 2142 +2142 2143 +2143 2144 +2144 2145 +2145 2146 +2146 2147 +2147 2148 +2148 2149 +2149 2150 +2150 2151 +2151 2152 +2152 2153 +2153 2154 +2154 2155 +2155 2156 +2156 2157 +2157 2158 +2158 2159 +2159 2160 +2160 2161 +2161 2162 +2162 2163 +2163 2164 +2164 2165 +2165 2166 +2166 2167 +2167 2168 +2168 2169 +2169 2170 +2170 2171 +2171 2172 +2172 2173 +2173 2174 +2174 2175 +2175 2176 +2176 2177 +2177 2178 +2178 2179 +2179 2180 +2180 2181 +2181 2182 +2182 2183 +2183 2184 +2184 2185 +2185 2186 +2186 2187 +2187 2188 +2188 2189 +2189 2190 +2190 2191 +2191 2192 +2192 2193 +2193 2194 +2194 2195 +2195 2196 +2196 2197 +2197 2198 +2198 2199 +2199 2200 +2200 2201 +2201 2202 +2202 2203 +2203 2204 +2204 2205 +2205 2206 +2206 2207 +2207 2208 +2208 2209 +2209 2210 +2210 2211 +2211 2212 +2212 2213 +2213 2214 +2214 2215 +2215 2216 +2216 2217 +2217 2218 +2218 2219 +2219 2220 +2220 2221 +2221 2222 +2222 2223 +2223 2224 +2224 2225 +2225 2226 +2226 2227 +2227 2228 +2228 2229 +2229 2230 +2230 2231 +2231 2232 +2232 2233 +2233 2234 +2234 2235 +2235 2236 +2236 2237 +2237 2238 +2238 2239 +2239 2240 +2240 2241 +2241 2242 +2242 2243 +2243 2244 +2244 2245 +2245 2246 +2246 2247 +2247 2248 +2248 2249 +2249 2250 +2250 2251 +2251 2252 +2252 2253 +2253 2254 +2254 2255 +2255 2256 +2256 2257 +2257 2258 +2258 2259 +2259 2260 +2260 2261 +2261 2262 +2262 2263 +2263 2264 +2264 2265 +2265 2266 +2266 2267 +2267 2268 +2268 2269 +2269 2270 +2270 2271 +2271 2272 +2272 2273 +2273 2274 +2274 2275 +2275 2276 +2276 2277 +2277 2278 +2278 2279 +2279 2280 +2280 2281 +2281 2282 +2282 2283 +2283 2284 +2284 2285 +2285 2286 +2286 2287 +2287 2288 +2288 2289 +2289 2290 +2290 2291 +2291 2292 +2292 2293 +2293 2294 +2294 2295 +2295 2296 +2296 2297 +2297 2298 +2298 2299 +2299 2300 +2300 2301 +2301 2302 +2302 2303 +2303 2304 +2304 2305 +2305 2306 +2306 2307 +2307 2308 +2308 2309 +2309 2310 +2310 2311 +2311 2312 +2312 2313 +2313 2314 +2314 2315 +2315 2316 +2316 2317 +2317 2318 +2318 2319 +2319 2320 +2320 2321 +2321 2322 +2322 2323 +2323 2324 +2324 2325 +2325 2326 +2326 2327 +2327 2328 +2328 2329 +2329 2330 +2330 2331 +2331 2332 +2332 2333 +2333 2334 +2334 2335 +2335 2336 +2336 2337 +2337 2338 +2338 2339 +2339 2340 +2340 2341 +2341 2342 +2342 2343 +2343 2344 +2344 2345 +2345 2346 +2346 2347 +2347 2348 +2348 2349 +2349 2350 +2350 2351 +2351 2352 +2352 2353 +2353 2354 +2354 2355 +2355 2356 +2356 2357 +2357 2358 +2358 2359 +2359 2360 +2360 2361 +2361 2362 +2362 2363 +2363 2364 +2364 2365 +2365 2366 +2366 2367 +2367 2368 +2368 2369 +2369 2370 +2370 2371 +2371 2372 +2372 2373 +2373 2374 +2374 2375 +2375 2376 +2376 2377 +2377 2378 +2378 2379 +2379 2380 +2380 2381 +2381 2382 +2382 2383 +2383 2384 +2384 2385 +2385 2386 +2386 2387 +2387 2388 +2388 2389 +2389 2390 +2390 2391 +2391 2392 +2392 2393 +2393 2394 +2394 2395 +2395 2396 +2396 2397 +2397 2398 +2398 2399 +2399 2400 +2400 2401 +2401 2402 +2402 2403 +2403 2404 +2404 2405 +2405 2406 +2406 2407 +2407 2408 +2408 2409 +2409 2410 +2410 2411 +2411 2412 +2412 2413 +2413 2414 +2414 2415 +2415 2416 +2416 2417 +2417 2418 +2418 2419 +2419 2420 +2420 2421 +2421 2422 +2422 2423 +2423 2424 +2424 2425 +2425 2426 +2426 2427 +2427 2428 +2428 2429 +2429 2430 +2430 2431 +2431 2432 +2432 2433 +2433 2434 +2434 2435 +2435 2436 +2436 2437 +2437 2438 +2438 2439 +2439 2440 +2440 2441 +2441 2442 +2442 2443 +2443 2444 +2444 2445 +2445 2446 +2446 2447 +2447 2448 +2448 2449 +2449 2450 +2450 2451 +2451 2452 +2452 2453 +2453 2454 +2454 2455 +2455 2456 +2456 2457 +2457 2458 +2458 2459 +2459 2460 +2460 2461 +2461 2462 +2462 2463 +2463 2464 +2464 2465 +2465 2466 +2466 2467 +2467 2468 +2468 2469 +2469 2470 +2470 2471 +2471 2472 +2472 2473 +2473 2474 +2474 2475 +2475 2476 +2476 2477 +2477 2478 +2478 2479 +2479 2480 +2480 2481 +2481 2482 +2482 2483 +2483 2484 +2484 2485 +2485 2486 +2486 2487 +2487 2488 +2488 2489 +2489 2490 +2490 2491 +2491 2492 +2492 2493 +2493 2494 +2494 2495 +2495 2496 +2496 2497 +2497 2498 +2498 2499 +2499 2500 +2500 2501 +2501 2502 +2502 2503 +2503 2504 +2504 2505 +2505 2506 +2506 2507 +2507 2508 +2508 2509 +2509 2510 +2510 2511 +2511 2512 +2512 2513 +2513 2514 +2514 2515 +2515 2516 +2516 2517 +2517 2518 +2518 2519 +2519 2520 +2520 2521 +2521 2522 +2522 2523 +2523 2524 +2524 2525 +2525 2526 +2526 2527 +2527 2528 +2528 2529 +2529 2530 +2530 2531 +2531 2532 +2532 2533 +2533 2534 +2534 2535 +2535 2536 +2536 2537 +2537 2538 +2538 2539 +2539 2540 +2540 2541 +2541 2542 +2542 2543 +2543 2544 +2544 2545 +2545 2546 +2546 2547 +2547 2548 +2548 2549 +2549 2550 +2550 2551 +2551 2552 +2552 2553 +2553 2554 +2554 2555 +2555 2556 +2556 2557 +2557 2558 +2558 2559 +2559 2560 +2560 2561 +2561 2562 +2562 2563 +2563 2564 +2564 2565 +2565 2566 +2566 2567 +2567 2568 +2568 2569 +2569 2570 +2570 2571 +2571 2572 +2572 2573 +2573 2574 +2574 2575 +2575 2576 +2576 2577 +2577 2578 +2578 2579 +2579 2580 +2580 2581 +2581 2582 +2582 2583 +2583 2584 +2584 2585 +2585 2586 +2586 2587 +2587 2588 +2588 2589 +2589 2590 +2590 2591 +2591 2592 +2592 2593 +2593 2594 +2594 2595 +2595 2596 +2596 2597 +2597 2598 +2598 2599 +2599 2600 +2600 2601 +2601 2602 +2602 2603 +2603 2604 +2604 2605 +2605 2606 +2606 2607 +2607 2608 +2608 2609 +2609 2610 +2610 2611 +2611 2612 +2612 2613 +2613 2614 +2614 2615 +2615 2616 +2616 2617 +2617 2618 +2618 2619 +2619 2620 +2620 2621 +2621 2622 +2622 2623 +2623 2624 +2624 2625 +2625 2626 +2626 2627 +2627 2628 +2628 2629 +2629 2630 +2630 2631 +2631 2632 +2632 2633 +2633 2634 +2634 2635 +2635 2636 +2636 2637 +2637 2638 +2638 2639 +2639 2640 +2640 2641 +2641 2642 +2642 2643 +2643 2644 +2644 2645 +2645 2646 +2646 2647 +2647 2648 +2648 2649 +2649 2650 +2650 2651 +2651 2652 +2652 2653 +2653 2654 +2654 2655 +2655 2656 +2656 2657 +2657 2658 +2658 2659 +2659 2660 +2660 2661 +2661 2662 +2662 2663 +2663 2664 +2664 2665 +2665 2666 +2666 2667 +2667 2668 +2668 2669 +2669 2670 +2670 2671 +2671 2672 +2672 2673 +2673 2674 +2674 2675 +2675 2676 +2676 2677 +2677 2678 +2678 2679 +2679 2680 +2680 2681 +2681 2682 +2682 2683 +2683 2684 +2684 2685 +2685 2686 +2686 2687 +2687 2688 +2688 2689 +2689 2690 +2690 2691 +2691 2692 +2692 2693 +2693 2694 +2694 2695 +2695 2696 +2696 2697 +2697 2698 +2698 2699 +2699 2700 +2700 2701 +2701 2702 +2702 2703 +2703 2704 +2704 2705 +2705 2706 +2706 2707 +2707 2708 +2708 2709 +2709 2710 +2710 2711 +2711 2712 +2712 2713 +2713 2714 +2714 2715 +2715 2716 +2716 2717 +2717 2718 +2718 2719 +2719 2720 +2720 2721 +2721 2722 +2722 2723 +2723 2724 +2724 2725 +2725 2726 +2726 2727 +2727 2728 +2728 2729 +2729 2730 +2730 2731 +2731 2732 +2732 2733 +2733 2734 +2734 2735 +2735 2736 +2736 2737 +2737 2738 +2738 2739 +2739 2740 +2740 2741 +2741 2742 +2742 2743 +2743 2744 +2744 2745 +2745 2746 +2746 2747 +2747 2748 +2748 2749 +2749 2750 +2750 2751 +2751 2752 +2752 2753 +2753 2754 +2754 2755 +2755 2756 +2756 2757 +2757 2758 +2758 2759 +2759 2760 +2760 2761 +2761 2762 +2762 2763 +2763 2764 +2764 2765 +2765 2766 +2766 2767 +2767 2768 +2768 2769 +2769 2770 +2770 2771 +2771 2772 +2772 2773 +2773 2774 +2774 2775 +2775 2776 +2776 2777 +2777 2778 +2778 2779 +2779 2780 +2780 2781 +2781 2782 +2782 2783 +2783 2784 +2784 2785 +2785 2786 +2786 2787 +2787 2788 +2788 2789 +2789 2790 +2790 2791 +2791 2792 +2792 2793 +2793 2794 +2794 2795 +2795 2796 +2796 2797 +2797 2798 +2798 2799 +2799 2800 +2800 2801 +2801 2802 +2802 2803 +2803 2804 +2804 2805 +2805 2806 +2806 2807 +2807 2808 +2808 2809 +2809 2810 +2810 2811 +2811 2812 +2812 2813 +2813 2814 +2814 2815 +2815 2816 +2816 2817 +2817 2818 +2818 2819 +2819 2820 +2820 2821 +2821 2822 +2822 2823 +2823 2824 +2824 2825 +2825 2826 +2826 2827 +2827 2828 +2828 2829 +2829 2830 +2830 2831 +2831 2832 +2832 2833 +2833 2834 +2834 2835 +2835 2836 +2836 2837 +2837 2838 +2838 2839 +2839 2840 +2840 2841 +2841 2842 +2842 2843 +2843 2844 +2844 2845 +2845 2846 +2846 2847 +2847 2848 +2848 2849 +2849 2850 +2850 2851 +2851 2852 +2852 2853 +2853 2854 +2854 2855 +2855 2856 +2856 2857 +2857 2858 +2858 2859 +2859 2860 +2860 2861 +2861 2862 +2862 2863 +2863 2864 +2864 2865 +2865 2866 +2866 2867 +2867 2868 +2868 2869 +2869 2870 +2870 2871 +2871 2872 +2872 2873 +2873 2874 +2874 2875 +2875 2876 +2876 2877 +2877 2878 +2878 2879 +2879 2880 +2880 2881 +2881 2882 +2882 2883 +2883 2884 +2884 2885 +2885 2886 +2886 2887 +2887 2888 +2888 2889 +2889 2890 +2890 2891 +2891 2892 +2892 2893 +2893 2894 +2894 2895 +2895 2896 +2896 2897 +2897 2898 +2898 2899 +2899 2900 +2900 2901 +2901 2902 +2902 2903 +2903 2904 +2904 2905 +2905 2906 +2906 2907 +2907 2908 +2908 2909 +2909 2910 +2910 2911 +2911 2912 +2912 2913 +2913 2914 +2914 2915 +2915 2916 +2916 2917 +2917 2918 +2918 2919 +2919 2920 +2920 2921 +2921 2922 +2922 2923 +2923 2924 +2924 2925 +2925 2926 +2926 2927 +2927 2928 +2928 2929 +2929 2930 +2930 2931 +2931 2932 +2932 2933 +2933 2934 +2934 2935 +2935 2936 +2936 2937 +2937 2938 +2938 2939 +2939 2940 +2940 2941 +2941 2942 +2942 2943 +2943 2944 +2944 2945 +2945 2946 +2946 2947 +2947 2948 +2948 2949 +2949 2950 +2950 2951 +2951 2952 +2952 2953 +2953 2954 +2954 2955 +2955 2956 +2956 2957 +2957 2958 +2958 2959 +2959 2960 +2960 2961 +2961 2962 +2962 2963 +2963 2964 +2964 2965 +2965 2966 +2966 2967 +2967 2968 +2968 2969 +2969 2970 +2970 2971 +2971 2972 +2972 2973 +2973 2974 +2974 2975 +2975 2976 +2976 2977 +2977 2978 +2978 2979 +2979 2980 +2980 2981 +2981 2982 +2982 2983 +2983 2984 +2984 2985 +2985 2986 +2986 2987 +2987 2988 +2988 2989 +2989 2990 +2990 2991 +2991 2992 +2992 2993 +2993 2994 +2994 2995 +2995 2996 +2996 2997 +2997 2998 +2998 2999 +2999 3000 +3000 3001 +3001 3002 +3002 3003 +3003 3004 +3004 3005 +3005 3006 +3006 3007 +3007 3008 +3008 3009 +3009 3010 +3010 3011 +3011 3012 +3012 3013 +3013 3014 +3014 3015 +3015 3016 +3016 3017 +3017 3018 +3018 3019 +3019 3020 +3020 3021 +3021 3022 +3022 3023 +3023 3024 +3024 3025 +3025 3026 +3026 3027 +3027 3028 +3028 3029 +3029 3030 +3030 3031 +3031 3032 +3032 3033 +3033 3034 +3034 3035 +3035 3036 +3036 3037 +3037 3038 +3038 3039 +3039 3040 +3040 3041 +3041 3042 +3042 3043 +3043 3044 +3044 3045 +3045 3046 +3046 3047 +3047 3048 +3048 3049 +3049 3050 +3050 3051 +3051 3052 +3052 3053 +3053 3054 +3054 3055 +3055 3056 +3056 3057 +3057 3058 +3058 3059 +3059 3060 +3060 3061 +3061 3062 +3062 3063 +3063 3064 +3064 3065 +3065 3066 +3066 3067 +3067 3068 +3068 3069 +3069 3070 +3070 3071 +3071 3072 +3072 3073 +3073 3074 +3074 3075 +3075 3076 +3076 3077 +3077 3078 +3078 3079 +3079 3080 +3080 3081 +3081 3082 +3082 3083 +3083 3084 +3084 3085 +3085 3086 +3086 3087 +3087 3088 +3088 3089 +3089 3090 +3090 3091 +3091 3092 +3092 3093 +3093 3094 +3094 3095 +3095 3096 +3096 3097 +3097 3098 +3098 3099 +3099 3100 +3100 3101 +3101 3102 +3102 3103 +3103 3104 +3104 3105 +3105 3106 +3106 3107 +3107 3108 +3108 3109 +3109 3110 +3110 3111 +3111 3112 +3112 3113 +3113 3114 +3114 3115 +3115 3116 +3116 3117 +3117 3118 +3118 3119 +3119 3120 +3120 3121 +3121 3122 +3122 3123 +3123 3124 +3124 3125 +3125 3126 +3126 3127 +3127 3128 +3128 3129 +3129 3130 +3130 3131 +3131 3132 +3132 3133 +3133 3134 +3134 3135 +3135 3136 +3136 3137 +3137 3138 +3138 3139 +3139 3140 +3140 3141 +3141 3142 +3142 3143 +3143 3144 +3144 3145 +3145 3146 +3146 3147 +3147 3148 +3148 3149 +3149 3150 +3150 3151 +3151 3152 +3152 3153 +3153 3154 +3154 3155 +3155 3156 +3156 3157 +3157 3158 +3158 3159 +3159 3160 +3160 3161 +3161 3162 +3162 3163 +3163 3164 +3164 3165 +3165 3166 +3166 3167 +3167 3168 +3168 3169 +3169 3170 +3170 3171 +3171 3172 +3172 3173 +3173 3174 +3174 3175 +3175 3176 +3176 3177 +3177 3178 +3178 3179 +3179 3180 +3180 3181 +3181 3182 +3182 3183 +3183 3184 +3184 3185 +3185 3186 +3186 3187 +3187 3188 +3188 3189 +3189 3190 +3190 3191 +3191 3192 +3192 3193 +3193 3194 +3194 3195 +3195 3196 +3196 3197 +3197 3198 +3198 3199 +3199 3200 +3200 3201 +3201 3202 +3202 3203 +3203 3204 +3204 3205 +3205 3206 +3206 3207 +3207 3208 +3208 3209 +3209 3210 +3210 3211 +3211 3212 +3212 3213 +3213 3214 +3214 3215 +3215 3216 +3216 3217 +3217 3218 +3218 3219 +3219 3220 +3220 3221 +3221 3222 +3222 3223 +3223 3224 +3224 3225 +3225 3226 +3226 3227 +3227 3228 +3228 3229 +3229 3230 +3230 3231 +3231 3232 +3232 3233 +3233 3234 +3234 3235 +3235 3236 +3236 3237 +3237 3238 +3238 3239 +3239 3240 +3240 3241 +3241 3242 +3242 3243 +3243 3244 +3244 3245 +3245 3246 +3246 3247 +3247 3248 +3248 3249 +3249 3250 +3250 3251 +3251 3252 +3252 3253 +3253 3254 +3254 3255 +3255 3256 +3256 3257 +3257 3258 +3258 3259 +3259 3260 +3260 3261 +3261 3262 +3262 3263 +3263 3264 +3264 3265 +3265 3266 +3266 3267 +3267 3268 +3268 3269 +3269 3270 +3270 3271 +3271 3272 +3272 3273 +3273 3274 +3274 3275 +3275 3276 +3276 3277 +3277 3278 +3278 3279 +3279 3280 +3280 3281 +3281 3282 +3282 3283 +3283 3284 +3284 3285 +3285 3286 +3286 3287 +3287 3288 +3288 3289 +3289 3290 +3290 3291 +3291 3292 +3292 3293 +3293 3294 +3294 3295 +3295 3296 +3296 3297 +3297 3298 +3298 3299 +3299 3300 +3300 3301 +3301 3302 +3302 3303 +3303 3304 +3304 3305 +3305 3306 +3306 3307 +3307 3308 +3308 3309 +3309 3310 +3310 3311 +3311 3312 +3312 3313 +3313 3314 +3314 3315 +3315 3316 +3316 3317 +3317 3318 +3318 3319 +3319 3320 +3320 3321 +3321 3322 +3322 3323 +3323 3324 +3324 3325 +3325 3326 +3326 3327 +3327 3328 +3328 3329 +3329 3330 +3330 3331 +3331 3332 +3332 3333 +3333 3334 +3334 3335 +3335 3336 +3336 3337 +3337 3338 +3338 3339 +3339 3340 +3340 3341 +3341 3342 +3342 3343 +3343 3344 +3344 3345 +3345 3346 +3346 3347 +3347 3348 +3348 3349 +3349 3350 +3350 3351 +3351 3352 +3352 3353 +3353 3354 +3354 3355 +3355 3356 +3356 3357 +3357 3358 +3358 3359 +3359 3360 +3360 3361 +3361 3362 +3362 3363 +3363 3364 +3364 3365 +3365 3366 +3366 3367 +3367 3368 +3368 3369 +3369 3370 +3370 3371 +3371 3372 +3372 3373 +3373 3374 +3374 3375 +3375 3376 +3376 3377 +3377 3378 +3378 3379 +3379 3380 +3380 3381 +3381 3382 +3382 3383 +3383 3384 +3384 3385 +3385 3386 +3386 3387 +3387 3388 +3388 3389 +3389 3390 +3390 3391 +3391 3392 +3392 3393 +3393 3394 +3394 3395 +3395 3396 +3396 3397 +3397 3398 +3398 3399 +3399 3400 +3400 3401 +3401 3402 +3402 3403 +3403 3404 +3404 3405 +3405 3406 +3406 3407 +3407 3408 +3408 3409 +3409 3410 +3410 3411 +3411 3412 +3412 3413 +3413 3414 +3414 3415 +3415 3416 +3416 3417 +3417 3418 +3418 3419 +3419 3420 +3420 3421 +3421 3422 +3422 3423 +3423 3424 +3424 3425 +3425 3426 +3426 3427 +3427 3428 +3428 3429 +3429 3430 +3430 3431 +3431 3432 +3432 3433 +3433 3434 +3434 3435 +3435 3436 +3436 3437 +3437 3438 +3438 3439 +3439 3440 +3440 3441 +3441 3442 +3442 3443 +3443 3444 +3444 3445 +3445 3446 +3446 3447 +3447 3448 +3448 3449 +3449 3450 +3450 3451 +3451 3452 +3452 3453 +3453 3454 +3454 3455 +3455 3456 +3456 3457 +3457 3458 +3458 3459 +3459 3460 +3460 3461 +3461 3462 +3462 3463 +3463 3464 +3464 3465 +3465 3466 +3466 3467 +3467 3468 +3468 3469 +3469 3470 +3470 3471 +3471 3472 +3472 3473 +3473 3474 +3474 3475 +3475 3476 +3476 3477 +3477 3478 +3478 3479 +3479 3480 +3480 3481 +3481 3482 +3482 3483 +3483 3484 +3484 3485 +3485 3486 +3486 3487 +3487 3488 +3488 3489 +3489 3490 +3490 3491 +3491 3492 +3492 3493 +3493 3494 +3494 3495 +3495 3496 +3496 3497 +3497 3498 +3498 3499 +3499 3500 +3500 3501 +3501 3502 +3502 3503 +3503 3504 +3504 3505 +3505 3506 +3506 3507 +3507 3508 +3508 3509 +3509 3510 +3510 3511 +3511 3512 +3512 3513 +3513 3514 +3514 3515 +3515 3516 +3516 3517 +3517 3518 +3518 3519 +3519 3520 +3520 3521 +3521 3522 +3522 3523 +3523 3524 +3524 3525 +3525 3526 +3526 3527 +3527 3528 +3528 3529 +3529 3530 +3530 3531 +3531 3532 +3532 3533 +3533 3534 +3534 3535 +3535 3536 +3536 3537 +3537 3538 +3538 3539 +3539 3540 +3540 3541 +3541 3542 +3542 3543 +3543 3544 +3544 3545 +3545 3546 +3546 3547 +3547 3548 +3548 3549 +3549 3550 +3550 3551 +3551 3552 +3552 3553 +3553 3554 +3554 3555 +3555 3556 +3556 3557 +3557 3558 +3558 3559 +3559 3560 +3560 3561 +3561 3562 +3562 3563 +3563 3564 +3564 3565 +3565 3566 +3566 3567 +3567 3568 +3568 3569 +3569 3570 +3570 3571 +3571 3572 +3572 3573 +3573 3574 +3574 3575 +3575 3576 +3576 3577 +3577 3578 +3578 3579 +3579 3580 +3580 3581 +3581 3582 +3582 3583 +3583 3584 +3584 3585 +3585 3586 +3586 3587 +3587 3588 +3588 3589 +3589 3590 +3590 3591 +3591 3592 +3592 3593 +3593 3594 +3594 3595 +3595 3596 +3596 3597 +3597 3598 +3598 3599 +3599 3600 +3600 3601 +3601 3602 +3602 3603 +3603 3604 +3604 3605 +3605 3606 +3606 3607 +3607 3608 +3608 3609 +3609 3610 +3610 3611 +3611 3612 +3612 3613 +3613 3614 +3614 3615 +3615 3616 +3616 3617 +3617 3618 +3618 3619 +3619 3620 +3620 3621 +3621 3622 +3622 3623 +3623 3624 +3624 3625 +3625 3626 +3626 3627 +3627 3628 +3628 3629 +3629 3630 +3630 3631 +3631 3632 +3632 3633 +3633 3634 +3634 3635 +3635 3636 +3636 3637 +3637 3638 +3638 3639 +3639 3640 +3640 3641 +3641 3642 +3642 3643 +3643 3644 +3644 3645 +3645 3646 +3646 3647 +3647 3648 +3648 3649 +3649 3650 +3650 3651 +3651 3652 +3652 3653 +3653 3654 +3654 3655 +3655 3656 +3656 3657 +3657 3658 +3658 3659 +3659 3660 +3660 3661 +3661 3662 +3662 3663 +3663 3664 +3664 3665 +3665 3666 +3666 3667 +3667 3668 +3668 3669 +3669 3670 +3670 3671 +3671 3672 +3672 3673 +3673 3674 +3674 3675 +3675 3676 +3676 3677 +3677 3678 +3678 3679 +3679 3680 +3680 3681 +3681 3682 +3682 3683 +3683 3684 +3684 3685 +3685 3686 +3686 3687 +3687 3688 +3688 3689 +3689 3690 +3690 3691 +3691 3692 +3692 3693 +3693 3694 +3694 3695 +3695 3696 +3696 3697 +3697 3698 +3698 3699 +3699 3700 +3700 3701 +3701 3702 +3702 3703 +3703 3704 +3704 3705 +3705 3706 +3706 3707 +3707 3708 +3708 3709 +3709 3710 +3710 3711 +3711 3712 +3712 3713 +3713 3714 +3714 3715 +3715 3716 +3716 3717 +3717 3718 +3718 3719 +3719 3720 +3720 3721 +3721 3722 +3722 3723 +3723 3724 +3724 3725 +3725 3726 +3726 3727 +3727 3728 +3728 3729 +3729 3730 +3730 3731 +3731 3732 +3732 3733 +3733 3734 +3734 3735 +3735 3736 +3736 3737 +3737 3738 +3738 3739 +3739 3740 +3740 3741 +3741 3742 +3742 3743 +3743 3744 +3744 3745 +3745 3746 +3746 3747 +3747 3748 +3748 3749 +3749 3750 +3750 3751 +3751 3752 +3752 3753 +3753 3754 +3754 3755 +3755 3756 +3756 3757 +3757 3758 +3758 3759 +3759 3760 +3760 3761 +3761 3762 +3762 3763 +3763 3764 +3764 3765 +3765 3766 +3766 3767 +3767 3768 +3768 3769 +3769 3770 +3770 3771 +3771 3772 +3772 3773 +3773 3774 +3774 3775 +3775 3776 +3776 3777 +3777 3778 +3778 3779 +3779 3780 +3780 3781 +3781 3782 +3782 3783 +3783 3784 +3784 3785 +3785 3786 +3786 3787 +3787 3788 +3788 3789 +3789 3790 +3790 3791 +3791 3792 +3792 3793 +3793 3794 +3794 3795 +3795 3796 +3796 3797 +3797 3798 +3798 3799 +3799 3800 +3800 3801 +3801 3802 +3802 3803 +3803 3804 +3804 3805 +3805 3806 +3806 3807 +3807 3808 +3808 3809 +3809 3810 +3810 3811 +3811 3812 +3812 3813 +3813 3814 +3814 3815 +3815 3816 +3816 3817 +3817 3818 +3818 3819 +3819 3820 +3820 3821 +3821 3822 +3822 3823 +3823 3824 +3824 3825 +3825 3826 +3826 3827 +3827 3828 +3828 3829 +3829 3830 +3830 3831 +3831 3832 +3832 3833 +3833 3834 +3834 3835 +3835 3836 +3836 3837 +3837 3838 +3838 3839 +3839 3840 +3840 3841 +3841 3842 +3842 3843 +3843 3844 +3844 3845 +3845 3846 +3846 3847 +3847 3848 +3848 3849 +3849 3850 +3850 3851 +3851 3852 +3852 3853 +3853 3854 +3854 3855 +3855 3856 +3856 3857 +3857 3858 +3858 3859 +3859 3860 +3860 3861 +3861 3862 +3862 3863 +3863 3864 +3864 3865 +3865 3866 +3866 3867 +3867 3868 +3868 3869 +3869 3870 +3870 3871 +3871 3872 +3872 3873 +3873 3874 +3874 3875 +3875 3876 +3876 3877 +3877 3878 +3878 3879 +3879 3880 +3880 3881 +3881 3882 +3882 3883 +3883 3884 +3884 3885 +3885 3886 +3886 3887 +3887 3888 +3888 3889 +3889 3890 +3890 3891 +3891 3892 +3892 3893 +3893 3894 +3894 3895 +3895 3896 +3896 3897 +3897 3898 +3898 3899 +3899 3900 +3900 3901 +3901 3902 +3902 3903 +3903 3904 +3904 3905 +3905 3906 +3906 3907 +3907 3908 +3908 3909 +3909 3910 +3910 3911 +3911 3912 +3912 3913 +3913 3914 +3914 3915 +3915 3916 +3916 3917 +3917 3918 +3918 3919 +3919 3920 +3920 3921 +3921 3922 +3922 3923 +3923 3924 +3924 3925 +3925 3926 +3926 3927 +3927 3928 +3928 3929 +3929 3930 +3930 3931 +3931 3932 +3932 3933 +3933 3934 +3934 3935 +3935 3936 +3936 3937 +3937 3938 +3938 3939 +3939 3940 +3940 3941 +3941 3942 +3942 3943 +3943 3944 +3944 3945 +3945 3946 +3946 3947 +3947 3948 +3948 3949 +3949 3950 +3950 3951 +3951 3952 +3952 3953 +3953 3954 +3954 3955 +3955 3956 +3956 3957 +3957 3958 +3958 3959 +3959 3960 +3960 3961 +3961 3962 +3962 3963 +3963 3964 +3964 3965 +3965 3966 +3966 3967 +3967 3968 +3968 3969 +3969 3970 +3970 3971 +3971 3972 +3972 3973 +3973 3974 +3974 3975 +3975 3976 +3976 3977 +3977 3978 +3978 3979 +3979 3980 +3980 3981 +3981 3982 +3982 3983 +3983 3984 +3984 3985 +3985 3986 +3986 3987 +3987 3988 +3988 3989 +3989 3990 +3990 3991 +3991 3992 +3992 3993 +3993 3994 +3994 3995 +3995 3996 +3996 3997 +3997 3998 +3998 3999 +3999 4000 +4000 4001 +4001 4002 +4002 4003 +4003 4004 +4004 4005 +4005 4006 +4006 4007 +4007 4008 +4008 4009 +4009 4010 +4010 4011 +4011 4012 +4012 4013 +4013 4014 +4014 4015 +4015 4016 +4016 4017 +4017 4018 +4018 4019 +4019 4020 +4020 4021 +4021 4022 +4022 4023 +4023 4024 +4024 4025 +4025 4026 +4026 4027 +4027 4028 +4028 4029 +4029 4030 +4030 4031 +4031 4032 +4032 4033 +4033 4034 +4034 4035 +4035 4036 +4036 4037 +4037 4038 +4038 4039 +4039 4040 +4040 4041 +4041 4042 +4042 4043 +4043 4044 +4044 4045 +4045 4046 +4046 4047 +4047 4048 +4048 4049 +4049 4050 +4050 4051 +4051 4052 +4052 4053 +4053 4054 +4054 4055 +4055 4056 +4056 4057 +4057 4058 +4058 4059 +4059 4060 +4060 4061 +4061 4062 +4062 4063 +4063 4064 +4064 4065 +4065 4066 +4066 4067 +4067 4068 +4068 4069 +4069 4070 +4070 4071 +4071 4072 +4072 4073 +4073 4074 +4074 4075 +4075 4076 +4076 4077 +4077 4078 +4078 4079 +4079 4080 +4080 4081 +4081 4082 +4082 4083 +4083 4084 +4084 4085 +4085 4086 +4086 4087 +4087 4088 +4088 4089 +4089 4090 +4090 4091 +4091 4092 +4092 4093 +4093 4094 +4094 4095 +4095 4096 +4096 4097 +4097 4098 +4098 4099 +4099 4100 +4100 4101 +4101 4102 +4102 4103 +4103 4104 +4104 4105 +4105 4106 +4106 4107 +4107 4108 +4108 4109 +4109 4110 +4110 4111 +4111 4112 +4112 4113 +4113 4114 +4114 4115 +4115 4116 +4116 4117 +4117 4118 +4118 4119 +4119 4120 +4120 4121 +4121 4122 +4122 4123 +4123 4124 +4124 4125 +4125 4126 +4126 4127 +4127 4128 +4128 4129 +4129 4130 +4130 4131 +4131 4132 +4132 4133 +4133 4134 +4134 4135 +4135 4136 +4136 4137 +4137 4138 +4138 4139 +4139 4140 +4140 4141 +4141 4142 +4142 4143 +4143 4144 +4144 4145 +4145 4146 +4146 4147 +4147 4148 +4148 4149 +4149 4150 +4150 4151 +4151 4152 +4152 4153 +4153 4154 +4154 4155 +4155 4156 +4156 4157 +4157 4158 +4158 4159 +4159 4160 +4160 4161 +4161 4162 +4162 4163 +4163 4164 +4164 4165 +4165 4166 +4166 4167 +4167 4168 +4168 4169 +4169 4170 +4170 4171 +4171 4172 +4172 4173 +4173 4174 +4174 4175 +4175 4176 +4176 4177 +4177 4178 +4178 4179 +4179 4180 +4180 4181 +4181 4182 +4182 4183 +4183 4184 +4184 4185 +4185 4186 +4186 4187 +4187 4188 +4188 4189 +4189 4190 +4190 4191 +4191 4192 +4192 4193 +4193 4194 +4194 4195 +4195 4196 +4196 4197 +4197 4198 +4198 4199 +4199 4200 +4200 4201 +4201 4202 +4202 4203 +4203 4204 +4204 4205 +4205 4206 +4206 4207 +4207 4208 +4208 4209 +4209 4210 +4210 4211 +4211 4212 +4212 4213 +4213 4214 +4214 4215 +4215 4216 +4216 4217 +4217 4218 +4218 4219 +4219 4220 +4220 4221 +4221 4222 +4222 4223 +4223 4224 +4224 4225 +4225 4226 +4226 4227 +4227 4228 +4228 4229 +4229 4230 +4230 4231 +4231 4232 +4232 4233 +4233 4234 +4234 4235 +4235 4236 +4236 4237 +4237 4238 +4238 4239 +4239 4240 +4240 4241 +4241 4242 +4242 4243 +4243 4244 +4244 4245 +4245 4246 +4246 4247 +4247 4248 +4248 4249 +4249 4250 +4250 4251 +4251 4252 +4252 4253 +4253 4254 +4254 4255 +4255 4256 +4256 4257 +4257 4258 +4258 4259 +4259 4260 +4260 4261 +4261 4262 +4262 4263 +4263 4264 +4264 4265 +4265 4266 +4266 4267 +4267 4268 +4268 4269 +4269 4270 +4270 4271 +4271 4272 +4272 4273 +4273 4274 +4274 4275 +4275 4276 +4276 4277 +4277 4278 +4278 4279 +4279 4280 +4280 4281 +4281 4282 +4282 4283 +4283 4284 +4284 4285 +4285 4286 +4286 4287 +4287 4288 +4288 4289 +4289 4290 +4290 4291 +4291 4292 +4292 4293 +4293 4294 +4294 4295 +4295 4296 +4296 4297 +4297 4298 +4298 4299 +4299 4300 +4300 4301 +4301 4302 +4302 4303 +4303 4304 +4304 4305 +4305 4306 +4306 4307 +4307 4308 +4308 4309 +4309 4310 +4310 4311 +4311 4312 +4312 4313 +4313 4314 +4314 4315 +4315 4316 +4316 4317 +4317 4318 +4318 4319 +4319 4320 +4320 4321 +4321 4322 +4322 4323 +4323 4324 +4324 4325 +4325 4326 +4326 4327 +4327 4328 +4328 4329 +4329 4330 +4330 4331 +4331 4332 +4332 4333 +4333 4334 +4334 4335 +4335 4336 +4336 4337 +4337 4338 +4338 4339 +4339 4340 +4340 4341 +4341 4342 +4342 4343 +4343 4344 +4344 4345 +4345 4346 +4346 4347 +4347 4348 +4348 4349 +4349 4350 +4350 4351 +4351 4352 +4352 4353 +4353 4354 +4354 4355 +4355 4356 +4356 4357 +4357 4358 +4358 4359 +4359 4360 +4360 4361 +4361 4362 +4362 4363 +4363 4364 +4364 4365 +4365 4366 +4366 4367 +4367 4368 +4368 4369 +4369 4370 +4370 4371 +4371 4372 +4372 4373 +4373 4374 +4374 4375 +4375 4376 +4376 4377 +4377 4378 +4378 4379 +4379 4380 +4380 4381 +4381 4382 +4382 4383 +4383 4384 +4384 4385 +4385 4386 +4386 4387 +4387 4388 +4388 4389 +4389 4390 +4390 4391 +4391 4392 +4392 4393 +4393 4394 +4394 4395 +4395 4396 +4396 4397 +4397 4398 +4398 4399 +4399 4400 +4400 4401 +4401 4402 +4402 4403 +4403 4404 +4404 4405 +4405 4406 +4406 4407 +4407 4408 +4408 4409 +4409 4410 +4410 4411 +4411 4412 +4412 4413 +4413 4414 +4414 4415 +4415 4416 +4416 4417 +4417 4418 +4418 4419 +4419 4420 +4420 4421 +4421 4422 +4422 4423 +4423 4424 +4424 4425 +4425 4426 +4426 4427 +4427 4428 +4428 4429 +4429 4430 +4430 4431 +4431 4432 +4432 4433 +4433 4434 +4434 4435 +4435 4436 +4436 4437 +4437 4438 +4438 4439 +4439 4440 +4440 4441 +4441 4442 +4442 4443 +4443 4444 +4444 4445 +4445 4446 +4446 4447 +4447 4448 +4448 4449 +4449 4450 +4450 4451 +4451 4452 +4452 4453 +4453 4454 +4454 4455 +4455 4456 +4456 4457 +4457 4458 +4458 4459 +4459 4460 +4460 4461 +4461 4462 +4462 4463 +4463 4464 +4464 4465 +4465 4466 +4466 4467 +4467 4468 +4468 4469 +4469 4470 +4470 4471 +4471 4472 +4472 4473 +4473 4474 +4474 4475 +4475 4476 +4476 4477 +4477 4478 +4478 4479 +4479 4480 +4480 4481 +4481 4482 +4482 4483 +4483 4484 +4484 4485 +4485 4486 +4486 4487 +4487 4488 +4488 4489 +4489 4490 +4490 4491 +4491 4492 +4492 4493 +4493 4494 +4494 4495 +4495 4496 +4496 4497 +4497 4498 +4498 4499 +4499 4500 +4500 4501 +4501 4502 +4502 4503 +4503 4504 +4504 4505 +4505 4506 +4506 4507 +4507 4508 +4508 4509 +4509 4510 +4510 4511 +4511 4512 +4512 4513 +4513 4514 +4514 4515 +4515 4516 +4516 4517 +4517 4518 +4518 4519 +4519 4520 +4520 4521 +4521 4522 +4522 4523 +4523 4524 +4524 4525 +4525 4526 +4526 4527 +4527 4528 +4528 4529 +4529 4530 +4530 4531 +4531 4532 +4532 4533 +4533 4534 +4534 4535 +4535 4536 +4536 4537 +4537 4538 +4538 4539 +4539 4540 +4540 4541 +4541 4542 +4542 4543 +4543 4544 +4544 4545 +4545 4546 +4546 4547 +4547 4548 +4548 4549 +4549 4550 +4550 4551 +4551 4552 +4552 4553 +4553 4554 +4554 4555 +4555 4556 +4556 4557 +4557 4558 +4558 4559 +4559 4560 +4560 4561 +4561 4562 +4562 4563 +4563 4564 +4564 4565 +4565 4566 +4566 4567 +4567 4568 +4568 4569 +4569 4570 +4570 4571 +4571 4572 +4572 4573 +4573 4574 +4574 4575 +4575 4576 +4576 4577 +4577 4578 +4578 4579 +4579 4580 +4580 4581 +4581 4582 +4582 4583 +4583 4584 +4584 4585 +4585 4586 +4586 4587 +4587 4588 +4588 4589 +4589 4590 +4590 4591 +4591 4592 +4592 4593 +4593 4594 +4594 4595 +4595 4596 +4596 4597 +4597 4598 +4598 4599 +4599 4600 +4600 4601 +4601 4602 +4602 4603 +4603 4604 +4604 4605 +4605 4606 +4606 4607 +4607 4608 +4608 4609 +4609 4610 +4610 4611 +4611 4612 +4612 4613 +4613 4614 +4614 4615 +4615 4616 +4616 4617 +4617 4618 +4618 4619 +4619 4620 +4620 4621 +4621 4622 +4622 4623 +4623 4624 +4624 4625 +4625 4626 +4626 4627 +4627 4628 +4628 4629 +4629 4630 +4630 4631 +4631 4632 +4632 4633 +4633 4634 +4634 4635 +4635 4636 +4636 4637 +4637 4638 +4638 4639 +4639 4640 +4640 4641 +4641 4642 +4642 4643 +4643 4644 +4644 4645 +4645 4646 +4646 4647 +4647 4648 +4648 4649 +4649 4650 +4650 4651 +4651 4652 +4652 4653 +4653 4654 +4654 4655 +4655 4656 +4656 4657 +4657 4658 +4658 4659 +4659 4660 +4660 4661 +4661 4662 +4662 4663 +4663 4664 +4664 4665 +4665 4666 +4666 4667 +4667 4668 +4668 4669 +4669 4670 +4670 4671 +4671 4672 +4672 4673 +4673 4674 +4674 4675 +4675 4676 +4676 4677 +4677 4678 +4678 4679 +4679 4680 +4680 4681 +4681 4682 +4682 4683 +4683 4684 +4684 4685 +4685 4686 +4686 4687 +4687 4688 +4688 4689 +4689 4690 +4690 4691 +4691 4692 +4692 4693 +4693 4694 +4694 4695 +4695 4696 +4696 4697 +4697 4698 +4698 4699 +4699 4700 +4700 4701 +4701 4702 +4702 4703 +4703 4704 +4704 4705 +4705 4706 +4706 4707 +4707 4708 +4708 4709 +4709 4710 +4710 4711 +4711 4712 +4712 4713 +4713 4714 +4714 4715 +4715 4716 +4716 4717 +4717 4718 +4718 4719 +4719 4720 +4720 4721 +4721 4722 +4722 4723 +4723 4724 +4724 4725 +4725 4726 +4726 4727 +4727 4728 +4728 4729 +4729 4730 +4730 4731 +4731 4732 +4732 4733 +4733 4734 +4734 4735 +4735 4736 +4736 4737 +4737 4738 +4738 4739 +4739 4740 +4740 4741 +4741 4742 +4742 4743 +4743 4744 +4744 4745 +4745 4746 +4746 4747 +4747 4748 +4748 4749 +4749 4750 +4750 4751 +4751 4752 +4752 4753 +4753 4754 +4754 4755 +4755 4756 +4756 4757 +4757 4758 +4758 4759 +4759 4760 +4760 4761 +4761 4762 +4762 4763 +4763 4764 +4764 4765 +4765 4766 +4766 4767 +4767 4768 +4768 4769 +4769 4770 +4770 4771 +4771 4772 +4772 4773 +4773 4774 +4774 4775 +4775 4776 +4776 4777 +4777 4778 +4778 4779 +4779 4780 +4780 4781 +4781 4782 +4782 4783 +4783 4784 +4784 4785 +4785 4786 +4786 4787 +4787 4788 +4788 4789 +4789 4790 +4790 4791 +4791 4792 +4792 4793 +4793 4794 +4794 4795 +4795 4796 +4796 4797 +4797 4798 +4798 4799 +4799 4800 +4800 4801 +4801 4802 +4802 4803 +4803 4804 +4804 4805 +4805 4806 +4806 4807 +4807 4808 +4808 4809 +4809 4810 +4810 4811 +4811 4812 +4812 4813 +4813 4814 +4814 4815 +4815 4816 +4816 4817 +4817 4818 +4818 4819 +4819 4820 +4820 4821 +4821 4822 +4822 4823 +4823 4824 +4824 4825 +4825 4826 +4826 4827 +4827 4828 +4828 4829 +4829 4830 +4830 4831 +4831 4832 +4832 4833 +4833 4834 +4834 4835 +4835 4836 +4836 4837 +4837 4838 +4838 4839 +4839 4840 +4840 4841 +4841 4842 +4842 4843 +4843 4844 +4844 4845 +4845 4846 +4846 4847 +4847 4848 +4848 4849 +4849 4850 +4850 4851 +4851 4852 +4852 4853 +4853 4854 +4854 4855 +4855 4856 +4856 4857 +4857 4858 +4858 4859 +4859 4860 +4860 4861 +4861 4862 +4862 4863 +4863 4864 +4864 4865 +4865 4866 +4866 4867 +4867 4868 +4868 4869 +4869 4870 +4870 4871 +4871 4872 +4872 4873 +4873 4874 +4874 4875 +4875 4876 +4876 4877 +4877 4878 +4878 4879 +4879 4880 +4880 4881 +4881 4882 +4882 4883 +4883 4884 +4884 4885 +4885 4886 +4886 4887 +4887 4888 +4888 4889 +4889 4890 +4890 4891 +4891 4892 +4892 4893 +4893 4894 +4894 4895 +4895 4896 +4896 4897 +4897 4898 +4898 4899 +4899 4900 +4900 4901 +4901 4902 +4902 4903 +4903 4904 +4904 4905 +4905 4906 +4906 4907 +4907 4908 +4908 4909 +4909 4910 +4910 4911 +4911 4912 +4912 4913 +4913 4914 +4914 4915 +4915 4916 +4916 4917 +4917 4918 +4918 4919 +4919 4920 +4920 4921 +4921 4922 +4922 4923 +4923 4924 +4924 4925 +4925 4926 +4926 4927 +4927 4928 +4928 4929 +4929 4930 +4930 4931 +4931 4932 +4932 4933 +4933 4934 +4934 4935 +4935 4936 +4936 4937 +4937 4938 +4938 4939 +4939 4940 +4940 4941 +4941 4942 +4942 4943 +4943 4944 +4944 4945 +4945 4946 +4946 4947 +4947 4948 +4948 4949 +4949 4950 +4950 4951 +4951 4952 +4952 4953 +4953 4954 +4954 4955 +4955 4956 +4956 4957 +4957 4958 +4958 4959 +4959 4960 +4960 4961 +4961 4962 +4962 4963 +4963 4964 +4964 4965 +4965 4966 +4966 4967 +4967 4968 +4968 4969 +4969 4970 +4970 4971 +4971 4972 +4972 4973 +4973 4974 +4974 4975 +4975 4976 +4976 4977 +4977 4978 +4978 4979 +4979 4980 +4980 4981 +4981 4982 +4982 4983 +4983 4984 +4984 4985 +4985 4986 +4986 4987 +4987 4988 +4988 4989 +4989 4990 +4990 4991 +4991 4992 +4992 4993 +4993 4994 +4994 4995 +4995 4996 +4996 4997 +4997 4998 +4998 4999 +4999 5000 +5000 5001 +5001 5002 +5002 5003 +5003 5004 +5004 5005 +5005 5006 +5006 5007 +5007 5008 +5008 5009 +5009 5010 +5010 5011 +5011 5012 +5012 5013 +5013 5014 +5014 5015 +5015 5016 +5016 5017 +5017 5018 +5018 5019 +5019 5020 +5020 5021 +5021 5022 +5022 5023 +5023 5024 +5024 5025 +5025 5026 +5026 5027 +5027 5028 +5028 5029 +5029 5030 +5030 5031 +5031 5032 +5032 5033 +5033 5034 +5034 5035 +5035 5036 +5036 5037 +5037 5038 +5038 5039 +5039 5040 +5040 5041 +5041 5042 +5042 5043 +5043 5044 +5044 5045 +5045 5046 +5046 5047 +5047 5048 +5048 5049 +5049 5050 +5050 5051 +5051 5052 +5052 5053 +5053 5054 +5054 5055 +5055 5056 +5056 5057 +5057 5058 +5058 5059 +5059 5060 +5060 5061 +5061 5062 +5062 5063 +5063 5064 +5064 5065 +5065 5066 +5066 5067 +5067 5068 +5068 5069 +5069 5070 +5070 5071 +5071 5072 +5072 5073 +5073 5074 +5074 5075 +5075 5076 +5076 5077 +5077 5078 +5078 5079 +5079 5080 +5080 5081 +5081 5082 +5082 5083 +5083 5084 +5084 5085 +5085 5086 +5086 5087 +5087 5088 +5088 5089 +5089 5090 +5090 5091 +5091 5092 +5092 5093 +5093 5094 +5094 5095 +5095 5096 +5096 5097 +5097 5098 +5098 5099 +5099 5100 +5100 5101 +5101 5102 +5102 5103 +5103 5104 +5104 5105 +5105 5106 +5106 5107 +5107 5108 +5108 5109 +5109 5110 +5110 5111 +5111 5112 +5112 5113 +5113 5114 +5114 5115 +5115 5116 +5116 5117 +5117 5118 +5118 5119 +5119 5120 +5120 5121 +5121 5122 +5122 5123 +5123 5124 +5124 5125 +5125 5126 +5126 5127 +5127 5128 +5128 5129 +5129 5130 +5130 5131 +5131 5132 +5132 5133 +5133 5134 +5134 5135 +5135 5136 +5136 5137 +5137 5138 +5138 5139 +5139 5140 +5140 5141 +5141 5142 +5142 5143 +5143 5144 +5144 5145 +5145 5146 +5146 5147 +5147 5148 +5148 5149 +5149 5150 +5150 5151 +5151 5152 +5152 5153 +5153 5154 +5154 5155 +5155 5156 +5156 5157 +5157 5158 +5158 5159 +5159 5160 +5160 5161 +5161 5162 +5162 5163 +5163 5164 +5164 5165 +5165 5166 +5166 5167 +5167 5168 +5168 5169 +5169 5170 +5170 5171 +5171 5172 +5172 5173 +5173 5174 +5174 5175 +5175 5176 +5176 5177 +5177 5178 +5178 5179 +5179 5180 +5180 5181 +5181 5182 +5182 5183 +5183 5184 +5184 5185 +5185 5186 +5186 5187 +5187 5188 +5188 5189 +5189 5190 +5190 5191 +5191 5192 +5192 5193 +5193 5194 +5194 5195 +5195 5196 +5196 5197 +5197 5198 +5198 5199 +5199 5200 +5200 5201 +5201 5202 +5202 5203 +5203 5204 +5204 5205 +5205 5206 +5206 5207 +5207 5208 +5208 5209 +5209 5210 +5210 5211 +5211 5212 +5212 5213 +5213 5214 +5214 5215 +5215 5216 +5216 5217 +5217 5218 +5218 5219 +5219 5220 +5220 5221 +5221 5222 +5222 5223 +5223 5224 +5224 5225 +5225 5226 +5226 5227 +5227 5228 +5228 5229 +5229 5230 +5230 5231 +5231 5232 +5232 5233 +5233 5234 +5234 5235 +5235 5236 +5236 5237 +5237 5238 +5238 5239 +5239 5240 +5240 5241 +5241 5242 +5242 5243 +5243 5244 +5244 5245 +5245 5246 +5246 5247 +5247 5248 +5248 5249 +5249 5250 +5250 5251 +5251 5252 +5252 5253 +5253 5254 +5254 5255 +5255 5256 +5256 5257 +5257 5258 +5258 5259 +5259 5260 +5260 5261 +5261 5262 +5262 5263 +5263 5264 +5264 5265 +5265 5266 +5266 5267 +5267 5268 +5268 5269 +5269 5270 +5270 5271 +5271 5272 +5272 5273 +5273 5274 +5274 5275 +5275 5276 +5276 5277 +5277 5278 +5278 5279 +5279 5280 +5280 5281 +5281 5282 +5282 5283 +5283 5284 +5284 5285 +5285 5286 +5286 5287 +5287 5288 +5288 5289 +5289 5290 +5290 5291 +5291 5292 +5292 5293 +5293 5294 +5294 5295 +5295 5296 +5296 5297 +5297 5298 +5298 5299 +5299 5300 +5300 5301 +5301 5302 +5302 5303 +5303 5304 +5304 5305 +5305 5306 +5306 5307 +5307 5308 +5308 5309 +5309 5310 +5310 5311 +5311 5312 +5312 5313 +5313 5314 +5314 5315 +5315 5316 +5316 5317 +5317 5318 +5318 5319 +5319 5320 +5320 5321 +5321 5322 +5322 5323 +5323 5324 +5324 5325 +5325 5326 +5326 5327 +5327 5328 +5328 5329 +5329 5330 +5330 5331 +5331 5332 +5332 5333 +5333 5334 +5334 5335 +5335 5336 +5336 5337 +5337 5338 +5338 5339 +5339 5340 +5340 5341 +5341 5342 +5342 5343 +5343 5344 +5344 5345 +5345 5346 +5346 5347 +5347 5348 +5348 5349 +5349 5350 +5350 5351 +5351 5352 +5352 5353 +5353 5354 +5354 5355 +5355 5356 +5356 5357 +5357 5358 +5358 5359 +5359 5360 +5360 5361 +5361 5362 +5362 5363 +5363 5364 +5364 5365 +5365 5366 +5366 5367 +5367 5368 +5368 5369 +5369 5370 +5370 5371 +5371 5372 +5372 5373 +5373 5374 +5374 5375 +5375 5376 +5376 5377 +5377 5378 +5378 5379 +5379 5380 +5380 5381 +5381 5382 +5382 5383 +5383 5384 +5384 5385 +5385 5386 +5386 5387 +5387 5388 +5388 5389 +5389 5390 +5390 5391 +5391 5392 +5392 5393 +5393 5394 +5394 5395 +5395 5396 +5396 5397 +5397 5398 +5398 5399 +5399 5400 +5400 5401 +5401 5402 +5402 5403 +5403 5404 +5404 5405 +5405 5406 +5406 5407 +5407 5408 +5408 5409 +5409 5410 +5410 5411 +5411 5412 +5412 5413 +5413 5414 +5414 5415 +5415 5416 +5416 5417 +5417 5418 +5418 5419 +5419 5420 +5420 5421 +5421 5422 +5422 5423 +5423 5424 +5424 5425 +5425 5426 +5426 5427 +5427 5428 +5428 5429 +5429 5430 +5430 5431 +5431 5432 +5432 5433 +5433 5434 +5434 5435 +5435 5436 +5436 5437 +5437 5438 +5438 5439 +5439 5440 +5440 5441 +5441 5442 +5442 5443 +5443 5444 +5444 5445 +5445 5446 +5446 5447 +5447 5448 +5448 5449 +5449 5450 +5450 5451 +5451 5452 +5452 5453 +5453 5454 +5454 5455 +5455 5456 +5456 5457 +5457 5458 +5458 5459 +5459 5460 +5460 5461 +5461 5462 +5462 5463 +5463 5464 +5464 5465 +5465 5466 +5466 5467 +5467 5468 +5468 5469 +5469 5470 +5470 5471 +5471 5472 +5472 5473 +5473 5474 +5474 5475 +5475 5476 +5476 5477 +5477 5478 +5478 5479 +5479 5480 +5480 5481 +5481 5482 +5482 5483 +5483 5484 +5484 5485 +5485 5486 +5486 5487 +5487 5488 +5488 5489 +5489 5490 +5490 5491 +5491 5492 +5492 5493 +5493 5494 +5494 5495 +5495 5496 +5496 5497 +5497 5498 +5498 5499 +5499 5500 +5500 5501 +5501 5502 +5502 5503 +5503 5504 +5504 5505 +5505 5506 +5506 5507 +5507 5508 +5508 5509 +5509 5510 +5510 5511 +5511 5512 +5512 5513 +5513 5514 +5514 5515 +5515 5516 +5516 5517 +5517 5518 +5518 5519 +5519 5520 +5520 5521 +5521 5522 +5522 5523 +5523 5524 +5524 5525 +5525 5526 +5526 5527 +5527 5528 +5528 5529 +5529 5530 +5530 5531 +5531 5532 +5532 5533 +5533 5534 +5534 5535 +5535 5536 +5536 5537 +5537 5538 +5538 5539 +5539 5540 +5540 5541 +5541 5542 +5542 5543 +5543 5544 +5544 5545 +5545 5546 +5546 5547 +5547 5548 +5548 5549 +5549 5550 +5550 5551 +5551 5552 +5552 5553 +5553 5554 +5554 5555 +5555 5556 +5556 5557 +5557 5558 +5558 5559 +5559 5560 +5560 5561 +5561 5562 +5562 5563 +5563 5564 +5564 5565 +5565 5566 +5566 5567 +5567 5568 +5568 5569 +5569 5570 +5570 5571 +5571 5572 +5572 5573 +5573 5574 +5574 5575 +5575 5576 +5576 5577 +5577 5578 +5578 5579 +5579 5580 +5580 5581 +5581 5582 +5582 5583 +5583 5584 +5584 5585 +5585 5586 +5586 5587 +5587 5588 +5588 5589 +5589 5590 +5590 5591 +5591 5592 +5592 5593 +5593 5594 +5594 5595 +5595 5596 +5596 5597 +5597 5598 +5598 5599 +5599 5600 +5600 5601 +5601 5602 +5602 5603 +5603 5604 +5604 5605 +5605 5606 +5606 5607 +5607 5608 +5608 5609 +5609 5610 +5610 5611 +5611 5612 +5612 5613 +5613 5614 +5614 5615 +5615 5616 +5616 5617 +5617 5618 +5618 5619 +5619 5620 +5620 5621 +5621 5622 +5622 5623 +5623 5624 +5624 5625 +5625 5626 +5626 5627 +5627 5628 +5628 5629 +5629 5630 +5630 5631 +5631 5632 +5632 5633 +5633 5634 +5634 5635 +5635 5636 +5636 5637 +5637 5638 +5638 5639 +5639 5640 +5640 5641 +5641 5642 +5642 5643 +5643 5644 +5644 5645 +5645 5646 +5646 5647 +5647 5648 +5648 5649 +5649 5650 +5650 5651 +5651 5652 +5652 5653 +5653 5654 +5654 5655 +5655 5656 +5656 5657 +5657 5658 +5658 5659 +5659 5660 +5660 5661 +5661 5662 +5662 5663 +5663 5664 +5664 5665 +5665 5666 +5666 5667 +5667 5668 +5668 5669 +5669 5670 +5670 5671 +5671 5672 +5672 5673 +5673 5674 +5674 5675 +5675 5676 +5676 5677 +5677 5678 +5678 5679 +5679 5680 +5680 5681 +5681 5682 +5682 5683 +5683 5684 +5684 5685 +5685 5686 +5686 5687 +5687 5688 +5688 5689 +5689 5690 +5690 5691 +5691 5692 +5692 5693 +5693 5694 +5694 5695 +5695 5696 +5696 5697 +5697 5698 +5698 5699 +5699 5700 +5700 5701 +5701 5702 +5702 5703 +5703 5704 +5704 5705 +5705 5706 +5706 5707 +5707 5708 +5708 5709 +5709 5710 +5710 5711 +5711 5712 +5712 5713 +5713 5714 +5714 5715 +5715 5716 +5716 5717 +5717 5718 +5718 5719 +5719 5720 +5720 5721 +5721 5722 +5722 5723 +5723 5724 +5724 5725 +5725 5726 +5726 5727 +5727 5728 +5728 5729 +5729 5730 +5730 5731 +5731 5732 +5732 5733 +5733 5734 +5734 5735 +5735 5736 +5736 5737 +5737 5738 +5738 5739 +5739 5740 +5740 5741 +5741 5742 +5742 5743 +5743 5744 +5744 5745 +5745 5746 +5746 5747 +5747 5748 +5748 5749 +5749 5750 +5750 5751 +5751 5752 +5752 5753 +5753 5754 +5754 5755 +5755 5756 +5756 5757 +5757 5758 +5758 5759 +5759 5760 +5760 5761 +5761 5762 +5762 5763 +5763 5764 +5764 5765 +5765 5766 +5766 5767 +5767 5768 +5768 5769 +5769 5770 +5770 5771 +5771 5772 +5772 5773 +5773 5774 +5774 5775 +5775 5776 +5776 5777 +5777 5778 +5778 5779 +5779 5780 +5780 5781 +5781 5782 +5782 5783 +5783 5784 +5784 5785 +5785 5786 +5786 5787 +5787 5788 +5788 5789 +5789 5790 +5790 5791 +5791 5792 +5792 5793 +5793 5794 +5794 5795 +5795 5796 +5796 5797 +5797 5798 +5798 5799 +5799 5800 +5800 5801 +5801 5802 +5802 5803 +5803 5804 +5804 5805 +5805 5806 +5806 5807 +5807 5808 +5808 5809 +5809 5810 +5810 5811 +5811 5812 +5812 5813 +5813 5814 +5814 5815 +5815 5816 +5816 5817 +5817 5818 +5818 5819 +5819 5820 +5820 5821 +5821 5822 +5822 5823 +5823 5824 +5824 5825 +5825 5826 +5826 5827 +5827 5828 +5828 5829 +5829 5830 +5830 5831 +5831 5832 +5832 5833 +5833 5834 +5834 5835 +5835 5836 +5836 5837 +5837 5838 +5838 5839 +5839 5840 +5840 5841 +5841 5842 +5842 5843 +5843 5844 +5844 5845 +5845 5846 +5846 5847 +5847 5848 +5848 5849 +5849 5850 +5850 5851 +5851 5852 +5852 5853 +5853 5854 +5854 5855 +5855 5856 +5856 5857 +5857 5858 +5858 5859 +5859 5860 +5860 5861 +5861 5862 +5862 5863 +5863 5864 +5864 5865 +5865 5866 +5866 5867 +5867 5868 +5868 5869 +5869 5870 +5870 5871 +5871 5872 +5872 5873 +5873 5874 +5874 5875 +5875 5876 +5876 5877 +5877 5878 +5878 5879 +5879 5880 +5880 5881 +5881 5882 +5882 5883 +5883 5884 +5884 5885 +5885 5886 +5886 5887 +5887 5888 +5888 5889 +5889 5890 +5890 5891 +5891 5892 +5892 5893 +5893 5894 +5894 5895 +5895 5896 +5896 5897 +5897 5898 +5898 5899 +5899 5900 +5900 5901 +5901 5902 +5902 5903 +5903 5904 +5904 5905 +5905 5906 +5906 5907 +5907 5908 +5908 5909 +5909 5910 +5910 5911 +5911 5912 +5912 5913 +5913 5914 +5914 5915 +5915 5916 +5916 5917 +5917 5918 +5918 5919 +5919 5920 +5920 5921 +5921 5922 +5922 5923 +5923 5924 +5924 5925 +5925 5926 +5926 5927 +5927 5928 +5928 5929 +5929 5930 +5930 5931 +5931 5932 +5932 5933 +5933 5934 +5934 5935 +5935 5936 +5936 5937 +5937 5938 +5938 5939 +5939 5940 +5940 5941 +5941 5942 +5942 5943 +5943 5944 +5944 5945 +5945 5946 +5946 5947 +5947 5948 +5948 5949 +5949 5950 +5950 5951 +5951 5952 +5952 5953 +5953 5954 +5954 5955 +5955 5956 +5956 5957 +5957 5958 +5958 5959 +5959 5960 +5960 5961 +5961 5962 +5962 5963 +5963 5964 +5964 5965 +5965 5966 +5966 5967 +5967 5968 +5968 5969 +5969 5970 +5970 5971 +5971 5972 +5972 5973 +5973 5974 +5974 5975 +5975 5976 +5976 5977 +5977 5978 +5978 5979 +5979 5980 +5980 5981 +5981 5982 +5982 5983 +5983 5984 +5984 5985 +5985 5986 +5986 5987 +5987 5988 +5988 5989 +5989 5990 +5990 5991 +5991 5992 +5992 5993 +5993 5994 +5994 5995 +5995 5996 +5996 5997 +5997 5998 +5998 5999 +5999 6000 +6000 6001 +6001 6002 +6002 6003 +6003 6004 +6004 6005 +6005 6006 +6006 6007 +6007 6008 +6008 6009 +6009 6010 +6010 6011 +6011 6012 +6012 6013 +6013 6014 +6014 6015 +6015 6016 +6016 6017 +6017 6018 +6018 6019 +6019 6020 +6020 6021 +6021 6022 +6022 6023 +6023 6024 +6024 6025 +6025 6026 +6026 6027 +6027 6028 +6028 6029 +6029 6030 +6030 6031 +6031 6032 +6032 6033 +6033 6034 +6034 6035 +6035 6036 +6036 6037 +6037 6038 +6038 6039 +6039 6040 +6040 6041 +6041 6042 +6042 6043 +6043 6044 +6044 6045 +6045 6046 +6046 6047 +6047 6048 +6048 6049 +6049 6050 +6050 6051 +6051 6052 +6052 6053 +6053 6054 +6054 6055 +6055 6056 +6056 6057 +6057 6058 +6058 6059 +6059 6060 +6060 6061 +6061 6062 +6062 6063 +6063 6064 +6064 6065 +6065 6066 +6066 6067 +6067 6068 +6068 6069 +6069 6070 +6070 6071 +6071 6072 +6072 6073 +6073 6074 +6074 6075 +6075 6076 +6076 6077 +6077 6078 +6078 6079 +6079 6080 +6080 6081 +6081 6082 +6082 6083 +6083 6084 +6084 6085 +6085 6086 +6086 6087 +6087 6088 +6088 6089 +6089 6090 +6090 6091 +6091 6092 +6092 6093 +6093 6094 +6094 6095 +6095 6096 +6096 6097 +6097 6098 +6098 6099 +6099 6100 +6100 6101 +6101 6102 +6102 6103 +6103 6104 +6104 6105 +6105 6106 +6106 6107 +6107 6108 +6108 6109 +6109 6110 +6110 6111 +6111 6112 +6112 6113 +6113 6114 +6114 6115 +6115 6116 +6116 6117 +6117 6118 +6118 6119 +6119 6120 +6120 6121 +6121 6122 +6122 6123 +6123 6124 +6124 6125 +6125 6126 +6126 6127 +6127 6128 +6128 6129 +6129 6130 +6130 6131 +6131 6132 +6132 6133 +6133 6134 +6134 6135 +6135 6136 +6136 6137 +6137 6138 +6138 6139 +6139 6140 +6140 6141 +6141 6142 +6142 6143 +6143 6144 +6144 6145 +6145 6146 +6146 6147 +6147 6148 +6148 6149 +6149 6150 +6150 6151 +6151 6152 +6152 6153 +6153 6154 +6154 6155 +6155 6156 +6156 6157 +6157 6158 +6158 6159 +6159 6160 +6160 6161 +6161 6162 +6162 6163 +6163 6164 +6164 6165 +6165 6166 +6166 6167 +6167 6168 +6168 6169 +6169 6170 +6170 6171 +6171 6172 +6172 6173 +6173 6174 +6174 6175 +6175 6176 +6176 6177 +6177 6178 +6178 6179 +6179 6180 +6180 6181 +6181 6182 +6182 6183 +6183 6184 +6184 6185 +6185 6186 +6186 6187 +6187 6188 +6188 6189 +6189 6190 +6190 6191 +6191 6192 +6192 6193 +6193 6194 +6194 6195 +6195 6196 +6196 6197 +6197 6198 +6198 6199 +6199 6200 +6200 6201 +6201 6202 +6202 6203 +6203 6204 +6204 6205 +6205 6206 +6206 6207 +6207 6208 +6208 6209 +6209 6210 +6210 6211 +6211 6212 +6212 6213 +6213 6214 +6214 6215 +6215 6216 +6216 6217 +6217 6218 +6218 6219 +6219 6220 +6220 6221 +6221 6222 +6222 6223 +6223 6224 +6224 6225 +6225 6226 +6226 6227 +6227 6228 +6228 6229 +6229 6230 +6230 6231 +6231 6232 +6232 6233 +6233 6234 +6234 6235 +6235 6236 +6236 6237 +6237 6238 +6238 6239 +6239 6240 +6240 6241 +6241 6242 +6242 6243 +6243 6244 +6244 6245 +6245 6246 +6246 6247 +6247 6248 +6248 6249 +6249 6250 +6250 6251 +6251 6252 +6252 6253 +6253 6254 +6254 6255 +6255 6256 +6256 6257 +6257 6258 +6258 6259 +6259 6260 +6260 6261 +6261 6262 +6262 6263 +6263 6264 +6264 6265 +6265 6266 +6266 6267 +6267 6268 +6268 6269 +6269 6270 +6270 6271 +6271 6272 +6272 6273 +6273 6274 +6274 6275 +6275 6276 +6276 6277 +6277 6278 +6278 6279 +6279 6280 +6280 6281 +6281 6282 +6282 6283 +6283 6284 +6284 6285 +6285 6286 +6286 6287 +6287 6288 +6288 6289 +6289 6290 +6290 6291 +6291 6292 +6292 6293 +6293 6294 +6294 6295 +6295 6296 +6296 6297 +6297 6298 +6298 6299 +6299 6300 +6300 6301 +6301 6302 +6302 6303 +6303 6304 +6304 6305 +6305 6306 +6306 6307 +6307 6308 +6308 6309 +6309 6310 +6310 6311 +6311 6312 +6312 6313 +6313 6314 +6314 6315 +6315 6316 +6316 6317 +6317 6318 +6318 6319 +6319 6320 +6320 6321 +6321 6322 +6322 6323 +6323 6324 +6324 6325 +6325 6326 +6326 6327 +6327 6328 +6328 6329 +6329 6330 +6330 6331 +6331 6332 +6332 6333 +6333 6334 +6334 6335 +6335 6336 +6336 6337 +6337 6338 +6338 6339 +6339 6340 +6340 6341 +6341 6342 +6342 6343 +6343 6344 +6344 6345 +6345 6346 +6346 6347 +6347 6348 +6348 6349 +6349 6350 +6350 6351 +6351 6352 +6352 6353 +6353 6354 +6354 6355 +6355 6356 +6356 6357 +6357 6358 +6358 6359 +6359 6360 +6360 6361 +6361 6362 +6362 6363 +6363 6364 +6364 6365 +6365 6366 +6366 6367 +6367 6368 +6368 6369 +6369 6370 +6370 6371 +6371 6372 +6372 6373 +6373 6374 +6374 6375 +6375 6376 +6376 6377 +6377 6378 +6378 6379 +6379 6380 +6380 6381 +6381 6382 +6382 6383 +6383 6384 +6384 6385 +6385 6386 +6386 6387 +6387 6388 +6388 6389 +6389 6390 +6390 6391 +6391 6392 +6392 6393 +6393 6394 +6394 6395 +6395 6396 +6396 6397 +6397 6398 +6398 6399 +6399 6400 +6400 6401 +6401 6402 +6402 6403 +6403 6404 +6404 6405 +6405 6406 +6406 6407 +6407 6408 +6408 6409 +6409 6410 +6410 6411 +6411 6412 +6412 6413 +6413 6414 +6414 6415 +6415 6416 +6416 6417 +6417 6418 +6418 6419 +6419 6420 +6420 6421 +6421 6422 +6422 6423 +6423 6424 +6424 6425 +6425 6426 +6426 6427 +6427 6428 +6428 6429 +6429 6430 +6430 6431 +6431 6432 +6432 6433 +6433 6434 +6434 6435 +6435 6436 +6436 6437 +6437 6438 +6438 6439 +6439 6440 +6440 6441 +6441 6442 +6442 6443 +6443 6444 +6444 6445 +6445 6446 +6446 6447 +6447 6448 +6448 6449 +6449 6450 +6450 6451 +6451 6452 +6452 6453 +6453 6454 +6454 6455 +6455 6456 +6456 6457 +6457 6458 +6458 6459 +6459 6460 +6460 6461 +6461 6462 +6462 6463 +6463 6464 +6464 6465 +6465 6466 +6466 6467 +6467 6468 +6468 6469 +6469 6470 +6470 6471 +6471 6472 +6472 6473 +6473 6474 +6474 6475 +6475 6476 +6476 6477 +6477 6478 +6478 6479 +6479 6480 +6480 6481 +6481 6482 +6482 6483 +6483 6484 +6484 6485 +6485 6486 +6486 6487 +6487 6488 +6488 6489 +6489 6490 +6490 6491 +6491 6492 +6492 6493 +6493 6494 +6494 6495 +6495 6496 +6496 6497 +6497 6498 +6498 6499 +6499 6500 +6500 6501 +6501 6502 +6502 6503 +6503 6504 +6504 6505 +6505 6506 +6506 6507 +6507 6508 +6508 6509 +6509 6510 +6510 6511 +6511 6512 +6512 6513 +6513 6514 +6514 6515 +6515 6516 +6516 6517 +6517 6518 +6518 6519 +6519 6520 +6520 6521 +6521 6522 +6522 6523 +6523 6524 +6524 6525 +6525 6526 +6526 6527 +6527 6528 +6528 6529 +6529 6530 +6530 6531 +6531 6532 +6532 6533 +6533 6534 +6534 6535 +6535 6536 +6536 6537 +6537 6538 +6538 6539 +6539 6540 +6540 6541 +6541 6542 +6542 6543 +6543 6544 +6544 6545 +6545 6546 +6546 6547 +6547 6548 +6548 6549 +6549 6550 +6550 6551 +6551 6552 +6552 6553 +6553 6554 +6554 6555 +6555 6556 +6556 6557 +6557 6558 +6558 6559 +6559 6560 +6560 6561 +6561 6562 +6562 6563 +6563 6564 +6564 6565 +6565 6566 +6566 6567 +6567 6568 +6568 6569 +6569 6570 +6570 6571 +6571 6572 +6572 6573 +6573 6574 +6574 6575 +6575 6576 +6576 6577 +6577 6578 +6578 6579 +6579 6580 +6580 6581 +6581 6582 +6582 6583 +6583 6584 +6584 6585 +6585 6586 +6586 6587 +6587 6588 +6588 6589 +6589 6590 +6590 6591 +6591 6592 +6592 6593 +6593 6594 +6594 6595 +6595 6596 +6596 6597 +6597 6598 +6598 6599 +6599 6600 +6600 6601 +6601 6602 +6602 6603 +6603 6604 +6604 6605 +6605 6606 +6606 6607 +6607 6608 +6608 6609 +6609 6610 +6610 6611 +6611 6612 +6612 6613 +6613 6614 +6614 6615 +6615 6616 +6616 6617 +6617 6618 +6618 6619 +6619 6620 +6620 6621 +6621 6622 +6622 6623 +6623 6624 +6624 6625 +6625 6626 +6626 6627 +6627 6628 +6628 6629 +6629 6630 +6630 6631 +6631 6632 +6632 6633 +6633 6634 +6634 6635 +6635 6636 +6636 6637 +6637 6638 +6638 6639 +6639 6640 +6640 6641 +6641 6642 +6642 6643 +6643 6644 +6644 6645 +6645 6646 +6646 6647 +6647 6648 +6648 6649 +6649 6650 +6650 6651 +6651 6652 +6652 6653 +6653 6654 +6654 6655 +6655 6656 +6656 6657 +6657 6658 +6658 6659 +6659 6660 +6660 6661 +6661 6662 +6662 6663 +6663 6664 +6664 6665 +6665 6666 +6666 6667 +6667 6668 +6668 6669 +6669 6670 +6670 6671 +6671 6672 +6672 6673 +6673 6674 +6674 6675 +6675 6676 +6676 6677 +6677 6678 +6678 6679 +6679 6680 +6680 6681 +6681 6682 +6682 6683 +6683 6684 +6684 6685 +6685 6686 +6686 6687 +6687 6688 +6688 6689 +6689 6690 +6690 6691 +6691 6692 +6692 6693 +6693 6694 +6694 6695 +6695 6696 +6696 6697 +6697 6698 +6698 6699 +6699 6700 +6700 6701 +6701 6702 +6702 6703 +6703 6704 +6704 6705 +6705 6706 +6706 6707 +6707 6708 +6708 6709 +6709 6710 +6710 6711 +6711 6712 +6712 6713 +6713 6714 +6714 6715 +6715 6716 +6716 6717 +6717 6718 +6718 6719 +6719 6720 +6720 6721 +6721 6722 +6722 6723 +6723 6724 +6724 6725 +6725 6726 +6726 6727 +6727 6728 +6728 6729 +6729 6730 +6730 6731 +6731 6732 +6732 6733 +6733 6734 +6734 6735 +6735 6736 +6736 6737 +6737 6738 +6738 6739 +6739 6740 +6740 6741 +6741 6742 +6742 6743 +6743 6744 +6744 6745 +6745 6746 +6746 6747 +6747 6748 +6748 6749 +6749 6750 +6750 6751 +6751 6752 +6752 6753 +6753 6754 +6754 6755 +6755 6756 +6756 6757 +6757 6758 +6758 6759 +6759 6760 +6760 6761 +6761 6762 +6762 6763 +6763 6764 +6764 6765 +6765 6766 +6766 6767 +6767 6768 +6768 6769 +6769 6770 +6770 6771 +6771 6772 +6772 6773 +6773 6774 +6774 6775 +6775 6776 +6776 6777 +6777 6778 +6778 6779 +6779 6780 +6780 6781 +6781 6782 +6782 6783 +6783 6784 +6784 6785 +6785 6786 +6786 6787 +6787 6788 +6788 6789 +6789 6790 +6790 6791 +6791 6792 +6792 6793 +6793 6794 +6794 6795 +6795 6796 +6796 6797 +6797 6798 +6798 6799 +6799 6800 +6800 6801 +6801 6802 +6802 6803 +6803 6804 +6804 6805 +6805 6806 +6806 6807 +6807 6808 +6808 6809 +6809 6810 +6810 6811 +6811 6812 +6812 6813 +6813 6814 +6814 6815 +6815 6816 +6816 6817 +6817 6818 +6818 6819 +6819 6820 +6820 6821 +6821 6822 +6822 6823 +6823 6824 +6824 6825 +6825 6826 +6826 6827 +6827 6828 +6828 6829 +6829 6830 +6830 6831 +6831 6832 +6832 6833 +6833 6834 +6834 6835 +6835 6836 +6836 6837 +6837 6838 +6838 6839 +6839 6840 +6840 6841 +6841 6842 +6842 6843 +6843 6844 +6844 6845 +6845 6846 +6846 6847 +6847 6848 +6848 6849 +6849 6850 +6850 6851 +6851 6852 +6852 6853 +6853 6854 +6854 6855 +6855 6856 +6856 6857 +6857 6858 +6858 6859 +6859 6860 +6860 6861 +6861 6862 +6862 6863 +6863 6864 +6864 6865 +6865 6866 +6866 6867 +6867 6868 +6868 6869 +6869 6870 +6870 6871 +6871 6872 +6872 6873 +6873 6874 +6874 6875 +6875 6876 +6876 6877 +6877 6878 +6878 6879 +6879 6880 +6880 6881 +6881 6882 +6882 6883 +6883 6884 +6884 6885 +6885 6886 +6886 6887 +6887 6888 +6888 6889 +6889 6890 +6890 6891 +6891 6892 +6892 6893 +6893 6894 +6894 6895 +6895 6896 +6896 6897 +6897 6898 +6898 6899 +6899 6900 +6900 6901 +6901 6902 +6902 6903 +6903 6904 +6904 6905 +6905 6906 +6906 6907 +6907 6908 +6908 6909 +6909 6910 +6910 6911 +6911 6912 +6912 6913 +6913 6914 +6914 6915 +6915 6916 +6916 6917 +6917 6918 +6918 6919 +6919 6920 +6920 6921 +6921 6922 +6922 6923 +6923 6924 +6924 6925 +6925 6926 +6926 6927 +6927 6928 +6928 6929 +6929 6930 +6930 6931 +6931 6932 +6932 6933 +6933 6934 +6934 6935 +6935 6936 +6936 6937 +6937 6938 +6938 6939 +6939 6940 +6940 6941 +6941 6942 +6942 6943 +6943 6944 +6944 6945 +6945 6946 +6946 6947 +6947 6948 +6948 6949 +6949 6950 +6950 6951 +6951 6952 +6952 6953 +6953 6954 +6954 6955 +6955 6956 +6956 6957 +6957 6958 +6958 6959 +6959 6960 +6960 6961 +6961 6962 +6962 6963 +6963 6964 +6964 6965 +6965 6966 +6966 6967 +6967 6968 +6968 6969 +6969 6970 +6970 6971 +6971 6972 +6972 6973 +6973 6974 +6974 6975 +6975 6976 +6976 6977 +6977 6978 +6978 6979 +6979 6980 +6980 6981 +6981 6982 +6982 6983 +6983 6984 +6984 6985 +6985 6986 +6986 6987 +6987 6988 +6988 6989 +6989 6990 +6990 6991 +6991 6992 +6992 6993 +6993 6994 +6994 6995 +6995 6996 +6996 6997 +6997 6998 +6998 6999 +6999 7000 +7000 7001 +7001 7002 +7002 7003 +7003 7004 +7004 7005 +7005 7006 +7006 7007 +7007 7008 +7008 7009 +7009 7010 +7010 7011 +7011 7012 +7012 7013 +7013 7014 +7014 7015 +7015 7016 +7016 7017 +7017 7018 +7018 7019 +7019 7020 +7020 7021 +7021 7022 +7022 7023 +7023 7024 +7024 7025 +7025 7026 +7026 7027 +7027 7028 +7028 7029 +7029 7030 +7030 7031 +7031 7032 +7032 7033 +7033 7034 +7034 7035 +7035 7036 +7036 7037 +7037 7038 +7038 7039 +7039 7040 +7040 7041 +7041 7042 +7042 7043 +7043 7044 +7044 7045 +7045 7046 +7046 7047 +7047 7048 +7048 7049 +7049 7050 +7050 7051 +7051 7052 +7052 7053 +7053 7054 +7054 7055 +7055 7056 +7056 7057 +7057 7058 +7058 7059 +7059 7060 +7060 7061 +7061 7062 +7062 7063 +7063 7064 +7064 7065 +7065 7066 +7066 7067 +7067 7068 +7068 7069 +7069 7070 +7070 7071 +7071 7072 +7072 7073 +7073 7074 +7074 7075 +7075 7076 +7076 7077 +7077 7078 +7078 7079 +7079 7080 +7080 7081 +7081 7082 +7082 7083 +7083 7084 +7084 7085 +7085 7086 +7086 7087 +7087 7088 +7088 7089 +7089 7090 +7090 7091 +7091 7092 +7092 7093 +7093 7094 +7094 7095 +7095 7096 +7096 7097 +7097 7098 +7098 7099 +7099 7100 +7100 7101 +7101 7102 +7102 7103 +7103 7104 +7104 7105 +7105 7106 +7106 7107 +7107 7108 +7108 7109 +7109 7110 +7110 7111 +7111 7112 +7112 7113 +7113 7114 +7114 7115 +7115 7116 +7116 7117 +7117 7118 +7118 7119 +7119 7120 +7120 7121 +7121 7122 +7122 7123 +7123 7124 +7124 7125 +7125 7126 +7126 7127 +7127 7128 +7128 7129 +7129 7130 +7130 7131 +7131 7132 +7132 7133 +7133 7134 +7134 7135 +7135 7136 +7136 7137 +7137 7138 +7138 7139 +7139 7140 +7140 7141 +7141 7142 +7142 7143 +7143 7144 +7144 7145 +7145 7146 +7146 7147 +7147 7148 +7148 7149 +7149 7150 +7150 7151 +7151 7152 +7152 7153 +7153 7154 +7154 7155 +7155 7156 +7156 7157 +7157 7158 +7158 7159 +7159 7160 +7160 7161 +7161 7162 +7162 7163 +7163 7164 +7164 7165 +7165 7166 +7166 7167 +7167 7168 +7168 7169 +7169 7170 +7170 7171 +7171 7172 +7172 7173 +7173 7174 +7174 7175 +7175 7176 +7176 7177 +7177 7178 +7178 7179 +7179 7180 +7180 7181 +7181 7182 +7182 7183 +7183 7184 +7184 7185 +7185 7186 +7186 7187 +7187 7188 +7188 7189 +7189 7190 +7190 7191 +7191 7192 +7192 7193 +7193 7194 +7194 7195 +7195 7196 +7196 7197 +7197 7198 +7198 7199 +7199 7200 +7200 7201 +7201 7202 +7202 7203 +7203 7204 +7204 7205 +7205 7206 +7206 7207 +7207 7208 +7208 7209 +7209 7210 +7210 7211 +7211 7212 +7212 7213 +7213 7214 +7214 7215 +7215 7216 +7216 7217 +7217 7218 +7218 7219 +7219 7220 +7220 7221 +7221 7222 +7222 7223 +7223 7224 +7224 7225 +7225 7226 +7226 7227 +7227 7228 +7228 7229 +7229 7230 +7230 7231 +7231 7232 +7232 7233 +7233 7234 +7234 7235 +7235 7236 +7236 7237 +7237 7238 +7238 7239 +7239 7240 +7240 7241 +7241 7242 +7242 7243 +7243 7244 +7244 7245 +7245 7246 +7246 7247 +7247 7248 +7248 7249 +7249 7250 +7250 7251 +7251 7252 +7252 7253 +7253 7254 +7254 7255 +7255 7256 +7256 7257 +7257 7258 +7258 7259 +7259 7260 +7260 7261 +7261 7262 +7262 7263 +7263 7264 +7264 7265 +7265 7266 +7266 7267 +7267 7268 +7268 7269 +7269 7270 +7270 7271 +7271 7272 +7272 7273 +7273 7274 +7274 7275 +7275 7276 +7276 7277 +7277 7278 +7278 7279 +7279 7280 +7280 7281 +7281 7282 +7282 7283 +7283 7284 +7284 7285 +7285 7286 +7286 7287 +7287 7288 +7288 7289 +7289 7290 +7290 7291 +7291 7292 +7292 7293 +7293 7294 +7294 7295 +7295 7296 +7296 7297 +7297 7298 +7298 7299 +7299 7300 +7300 7301 +7301 7302 +7302 7303 +7303 7304 +7304 7305 +7305 7306 +7306 7307 +7307 7308 +7308 7309 +7309 7310 +7310 7311 +7311 7312 +7312 7313 +7313 7314 +7314 7315 +7315 7316 +7316 7317 +7317 7318 +7318 7319 +7319 7320 +7320 7321 +7321 7322 +7322 7323 +7323 7324 +7324 7325 +7325 7326 +7326 7327 +7327 7328 +7328 7329 +7329 7330 +7330 7331 +7331 7332 +7332 7333 +7333 7334 +7334 7335 +7335 7336 +7336 7337 +7337 7338 +7338 7339 +7339 7340 +7340 7341 +7341 7342 +7342 7343 +7343 7344 +7344 7345 +7345 7346 +7346 7347 +7347 7348 +7348 7349 +7349 7350 +7350 7351 +7351 7352 +7352 7353 +7353 7354 +7354 7355 +7355 7356 +7356 7357 +7357 7358 +7358 7359 +7359 7360 +7360 7361 +7361 7362 +7362 7363 +7363 7364 +7364 7365 +7365 7366 +7366 7367 +7367 7368 +7368 7369 +7369 7370 +7370 7371 +7371 7372 +7372 7373 +7373 7374 +7374 7375 +7375 7376 +7376 7377 +7377 7378 +7378 7379 +7379 7380 +7380 7381 +7381 7382 +7382 7383 +7383 7384 +7384 7385 +7385 7386 +7386 7387 +7387 7388 +7388 7389 +7389 7390 +7390 7391 +7391 7392 +7392 7393 +7393 7394 +7394 7395 +7395 7396 +7396 7397 +7397 7398 +7398 7399 +7399 7400 +7400 7401 +7401 7402 +7402 7403 +7403 7404 +7404 7405 +7405 7406 +7406 7407 +7407 7408 +7408 7409 +7409 7410 +7410 7411 +7411 7412 +7412 7413 +7413 7414 +7414 7415 +7415 7416 +7416 7417 +7417 7418 +7418 7419 +7419 7420 +7420 7421 +7421 7422 +7422 7423 +7423 7424 +7424 7425 +7425 7426 +7426 7427 +7427 7428 +7428 7429 +7429 7430 +7430 7431 +7431 7432 +7432 7433 +7433 7434 +7434 7435 +7435 7436 +7436 7437 +7437 7438 +7438 7439 +7439 7440 +7440 7441 +7441 7442 +7442 7443 +7443 7444 +7444 7445 +7445 7446 +7446 7447 +7447 7448 +7448 7449 +7449 7450 +7450 7451 +7451 7452 +7452 7453 +7453 7454 +7454 7455 +7455 7456 +7456 7457 +7457 7458 +7458 7459 +7459 7460 +7460 7461 +7461 7462 +7462 7463 +7463 7464 +7464 7465 +7465 7466 +7466 7467 +7467 7468 +7468 7469 +7469 7470 +7470 7471 +7471 7472 +7472 7473 +7473 7474 +7474 7475 +7475 7476 +7476 7477 +7477 7478 +7478 7479 +7479 7480 +7480 7481 +7481 7482 +7482 7483 +7483 7484 +7484 7485 +7485 7486 +7486 7487 +7487 7488 +7488 7489 +7489 7490 +7490 7491 +7491 7492 +7492 7493 +7493 7494 +7494 7495 +7495 7496 +7496 7497 +7497 7498 +7498 7499 +7499 7500 +7500 7501 +7501 7502 +7502 7503 +7503 7504 +7504 7505 +7505 7506 +7506 7507 +7507 7508 +7508 7509 +7509 7510 +7510 7511 +7511 7512 +7512 7513 +7513 7514 +7514 7515 +7515 7516 +7516 7517 +7517 7518 +7518 7519 +7519 7520 +7520 7521 +7521 7522 +7522 7523 +7523 7524 +7524 7525 +7525 7526 +7526 7527 +7527 7528 +7528 7529 +7529 7530 +7530 7531 +7531 7532 +7532 7533 +7533 7534 +7534 7535 +7535 7536 +7536 7537 +7537 7538 +7538 7539 +7539 7540 +7540 7541 +7541 7542 +7542 7543 +7543 7544 +7544 7545 +7545 7546 +7546 7547 +7547 7548 +7548 7549 +7549 7550 +7550 7551 +7551 7552 +7552 7553 +7553 7554 +7554 7555 +7555 7556 +7556 7557 +7557 7558 +7558 7559 +7559 7560 +7560 7561 +7561 7562 +7562 7563 +7563 7564 +7564 7565 +7565 7566 +7566 7567 +7567 7568 +7568 7569 +7569 7570 +7570 7571 +7571 7572 +7572 7573 +7573 7574 +7574 7575 +7575 7576 +7576 7577 +7577 7578 +7578 7579 +7579 7580 +7580 7581 +7581 7582 +7582 7583 +7583 7584 +7584 7585 +7585 7586 +7586 7587 +7587 7588 +7588 7589 +7589 7590 +7590 7591 +7591 7592 +7592 7593 +7593 7594 +7594 7595 +7595 7596 +7596 7597 +7597 7598 +7598 7599 +7599 7600 +7600 7601 +7601 7602 +7602 7603 +7603 7604 +7604 7605 +7605 7606 +7606 7607 +7607 7608 +7608 7609 +7609 7610 +7610 7611 +7611 7612 +7612 7613 +7613 7614 +7614 7615 +7615 7616 +7616 7617 +7617 7618 +7618 7619 +7619 7620 +7620 7621 +7621 7622 +7622 7623 +7623 7624 +7624 7625 +7625 7626 +7626 7627 +7627 7628 +7628 7629 +7629 7630 +7630 7631 +7631 7632 +7632 7633 +7633 7634 +7634 7635 +7635 7636 +7636 7637 +7637 7638 +7638 7639 +7639 7640 +7640 7641 +7641 7642 +7642 7643 +7643 7644 +7644 7645 +7645 7646 +7646 7647 +7647 7648 +7648 7649 +7649 7650 +7650 7651 +7651 7652 +7652 7653 +7653 7654 +7654 7655 +7655 7656 +7656 7657 +7657 7658 +7658 7659 +7659 7660 +7660 7661 +7661 7662 +7662 7663 +7663 7664 +7664 7665 +7665 7666 +7666 7667 +7667 7668 +7668 7669 +7669 7670 +7670 7671 +7671 7672 +7672 7673 +7673 7674 +7674 7675 +7675 7676 +7676 7677 +7677 7678 +7678 7679 +7679 7680 +7680 7681 +7681 7682 +7682 7683 +7683 7684 +7684 7685 +7685 7686 +7686 7687 +7687 7688 +7688 7689 +7689 7690 +7690 7691 +7691 7692 +7692 7693 +7693 7694 +7694 7695 +7695 7696 +7696 7697 +7697 7698 +7698 7699 +7699 7700 +7700 7701 +7701 7702 +7702 7703 +7703 7704 +7704 7705 +7705 7706 +7706 7707 +7707 7708 +7708 7709 +7709 7710 +7710 7711 +7711 7712 +7712 7713 +7713 7714 +7714 7715 +7715 7716 +7716 7717 +7717 7718 +7718 7719 +7719 7720 +7720 7721 +7721 7722 +7722 7723 +7723 7724 +7724 7725 +7725 7726 +7726 7727 +7727 7728 +7728 7729 +7729 7730 +7730 7731 +7731 7732 +7732 7733 +7733 7734 +7734 7735 +7735 7736 +7736 7737 +7737 7738 +7738 7739 +7739 7740 +7740 7741 +7741 7742 +7742 7743 +7743 7744 +7744 7745 +7745 7746 +7746 7747 +7747 7748 +7748 7749 +7749 7750 +7750 7751 +7751 7752 +7752 7753 +7753 7754 +7754 7755 +7755 7756 +7756 7757 +7757 7758 +7758 7759 +7759 7760 +7760 7761 +7761 7762 +7762 7763 +7763 7764 +7764 7765 +7765 7766 +7766 7767 +7767 7768 +7768 7769 +7769 7770 +7770 7771 +7771 7772 +7772 7773 +7773 7774 +7774 7775 +7775 7776 +7776 7777 +7777 7778 +7778 7779 +7779 7780 +7780 7781 +7781 7782 +7782 7783 +7783 7784 +7784 7785 +7785 7786 +7786 7787 +7787 7788 +7788 7789 +7789 7790 +7790 7791 +7791 7792 +7792 7793 +7793 7794 +7794 7795 +7795 7796 +7796 7797 +7797 7798 +7798 7799 +7799 7800 +7800 7801 +7801 7802 +7802 7803 +7803 7804 +7804 7805 +7805 7806 +7806 7807 +7807 7808 +7808 7809 +7809 7810 +7810 7811 +7811 7812 +7812 7813 +7813 7814 +7814 7815 +7815 7816 +7816 7817 +7817 7818 +7818 7819 +7819 7820 +7820 7821 +7821 7822 +7822 7823 +7823 7824 +7824 7825 +7825 7826 +7826 7827 +7827 7828 +7828 7829 +7829 7830 +7830 7831 +7831 7832 +7832 7833 +7833 7834 +7834 7835 +7835 7836 +7836 7837 +7837 7838 +7838 7839 +7839 7840 +7840 7841 +7841 7842 +7842 7843 +7843 7844 +7844 7845 +7845 7846 +7846 7847 +7847 7848 +7848 7849 +7849 7850 +7850 7851 +7851 7852 +7852 7853 +7853 7854 +7854 7855 +7855 7856 +7856 7857 +7857 7858 +7858 7859 +7859 7860 +7860 7861 +7861 7862 +7862 7863 +7863 7864 +7864 7865 +7865 7866 +7866 7867 +7867 7868 +7868 7869 +7869 7870 +7870 7871 +7871 7872 +7872 7873 +7873 7874 +7874 7875 +7875 7876 +7876 7877 +7877 7878 +7878 7879 +7879 7880 +7880 7881 +7881 7882 +7882 7883 +7883 7884 +7884 7885 +7885 7886 +7886 7887 +7887 7888 +7888 7889 +7889 7890 +7890 7891 +7891 7892 +7892 7893 +7893 7894 +7894 7895 +7895 7896 +7896 7897 +7897 7898 +7898 7899 +7899 7900 +7900 7901 +7901 7902 +7902 7903 +7903 7904 +7904 7905 +7905 7906 +7906 7907 +7907 7908 +7908 7909 +7909 7910 +7910 7911 +7911 7912 +7912 7913 +7913 7914 +7914 7915 +7915 7916 +7916 7917 +7917 7918 +7918 7919 +7919 7920 +7920 7921 +7921 7922 +7922 7923 +7923 7924 +7924 7925 +7925 7926 +7926 7927 +7927 7928 +7928 7929 +7929 7930 +7930 7931 +7931 7932 +7932 7933 +7933 7934 +7934 7935 +7935 7936 +7936 7937 +7937 7938 +7938 7939 +7939 7940 +7940 7941 +7941 7942 +7942 7943 +7943 7944 +7944 7945 +7945 7946 +7946 7947 +7947 7948 +7948 7949 +7949 7950 +7950 7951 +7951 7952 +7952 7953 +7953 7954 +7954 7955 +7955 7956 +7956 7957 +7957 7958 +7958 7959 +7959 7960 +7960 7961 +7961 7962 +7962 7963 +7963 7964 +7964 7965 +7965 7966 +7966 7967 +7967 7968 +7968 7969 +7969 7970 +7970 7971 +7971 7972 +7972 7973 +7973 7974 +7974 7975 +7975 7976 +7976 7977 +7977 7978 +7978 7979 +7979 7980 +7980 7981 +7981 7982 +7982 7983 +7983 7984 +7984 7985 +7985 7986 +7986 7987 +7987 7988 +7988 7989 +7989 7990 +7990 7991 +7991 7992 +7992 7993 +7993 7994 +7994 7995 +7995 7996 +7996 7997 +7997 7998 +7998 7999 +7999 8000 +8000 8001 +8001 8002 +8002 8003 +8003 8004 +8004 8005 +8005 8006 +8006 8007 +8007 8008 +8008 8009 +8009 8010 +8010 8011 +8011 8012 +8012 8013 +8013 8014 +8014 8015 +8015 8016 +8016 8017 +8017 8018 +8018 8019 +8019 8020 +8020 8021 +8021 8022 +8022 8023 +8023 8024 +8024 8025 +8025 8026 +8026 8027 +8027 8028 +8028 8029 +8029 8030 +8030 8031 +8031 8032 +8032 8033 +8033 8034 +8034 8035 +8035 8036 +8036 8037 +8037 8038 +8038 8039 +8039 8040 +8040 8041 +8041 8042 +8042 8043 +8043 8044 +8044 8045 +8045 8046 +8046 8047 +8047 8048 +8048 8049 +8049 8050 +8050 8051 +8051 8052 +8052 8053 +8053 8054 +8054 8055 +8055 8056 +8056 8057 +8057 8058 +8058 8059 +8059 8060 +8060 8061 +8061 8062 +8062 8063 +8063 8064 +8064 8065 +8065 8066 +8066 8067 +8067 8068 +8068 8069 +8069 8070 +8070 8071 +8071 8072 +8072 8073 +8073 8074 +8074 8075 +8075 8076 +8076 8077 +8077 8078 +8078 8079 +8079 8080 +8080 8081 +8081 8082 +8082 8083 +8083 8084 +8084 8085 +8085 8086 +8086 8087 +8087 8088 +8088 8089 +8089 8090 +8090 8091 +8091 8092 +8092 8093 +8093 8094 +8094 8095 +8095 8096 +8096 8097 +8097 8098 +8098 8099 +8099 8100 +8100 8101 +8101 8102 +8102 8103 +8103 8104 +8104 8105 +8105 8106 +8106 8107 +8107 8108 +8108 8109 +8109 8110 +8110 8111 +8111 8112 +8112 8113 +8113 8114 +8114 8115 +8115 8116 +8116 8117 +8117 8118 +8118 8119 +8119 8120 +8120 8121 +8121 8122 +8122 8123 +8123 8124 +8124 8125 +8125 8126 +8126 8127 +8127 8128 +8128 8129 +8129 8130 +8130 8131 +8131 8132 +8132 8133 +8133 8134 +8134 8135 +8135 8136 +8136 8137 +8137 8138 +8138 8139 +8139 8140 +8140 8141 +8141 8142 +8142 8143 +8143 8144 +8144 8145 +8145 8146 +8146 8147 +8147 8148 +8148 8149 +8149 8150 +8150 8151 +8151 8152 +8152 8153 +8153 8154 +8154 8155 +8155 8156 +8156 8157 +8157 8158 +8158 8159 +8159 8160 +8160 8161 +8161 8162 +8162 8163 +8163 8164 +8164 8165 +8165 8166 +8166 8167 +8167 8168 +8168 8169 +8169 8170 +8170 8171 +8171 8172 +8172 8173 +8173 8174 +8174 8175 +8175 8176 +8176 8177 +8177 8178 +8178 8179 +8179 8180 +8180 8181 +8181 8182 +8182 8183 +8183 8184 +8184 8185 +8185 8186 +8186 8187 +8187 8188 +8188 8189 +8189 8190 +8190 8191 +8191 8192 +8192 8193 +8193 8194 +8194 8195 +8195 8196 +8196 8197 +8197 8198 +8198 8199 +8199 8200 +8200 8201 +8201 8202 +8202 8203 +8203 8204 +8204 8205 +8205 8206 +8206 8207 +8207 8208 +8208 8209 +8209 8210 +8210 8211 +8211 8212 +8212 8213 +8213 8214 +8214 8215 +8215 8216 +8216 8217 +8217 8218 +8218 8219 +8219 8220 +8220 8221 +8221 8222 +8222 8223 +8223 8224 +8224 8225 +8225 8226 +8226 8227 +8227 8228 +8228 8229 +8229 8230 +8230 8231 +8231 8232 +8232 8233 +8233 8234 +8234 8235 +8235 8236 +8236 8237 +8237 8238 +8238 8239 +8239 8240 +8240 8241 +8241 8242 +8242 8243 +8243 8244 +8244 8245 +8245 8246 +8246 8247 +8247 8248 +8248 8249 +8249 8250 +8250 8251 +8251 8252 +8252 8253 +8253 8254 +8254 8255 +8255 8256 +8256 8257 +8257 8258 +8258 8259 +8259 8260 +8260 8261 +8261 8262 +8262 8263 +8263 8264 +8264 8265 +8265 8266 +8266 8267 +8267 8268 +8268 8269 +8269 8270 +8270 8271 +8271 8272 +8272 8273 +8273 8274 +8274 8275 +8275 8276 +8276 8277 +8277 8278 +8278 8279 +8279 8280 +8280 8281 +8281 8282 +8282 8283 +8283 8284 +8284 8285 +8285 8286 +8286 8287 +8287 8288 +8288 8289 +8289 8290 +8290 8291 +8291 8292 +8292 8293 +8293 8294 +8294 8295 +8295 8296 +8296 8297 +8297 8298 +8298 8299 +8299 8300 +8300 8301 +8301 8302 +8302 8303 +8303 8304 +8304 8305 +8305 8306 +8306 8307 +8307 8308 +8308 8309 +8309 8310 +8310 8311 +8311 8312 +8312 8313 +8313 8314 +8314 8315 +8315 8316 +8316 8317 +8317 8318 +8318 8319 +8319 8320 +8320 8321 +8321 8322 +8322 8323 +8323 8324 +8324 8325 +8325 8326 +8326 8327 +8327 8328 +8328 8329 +8329 8330 +8330 8331 +8331 8332 +8332 8333 +8333 8334 +8334 8335 +8335 8336 +8336 8337 +8337 8338 +8338 8339 +8339 8340 +8340 8341 +8341 8342 +8342 8343 +8343 8344 +8344 8345 +8345 8346 +8346 8347 +8347 8348 +8348 8349 +8349 8350 +8350 8351 +8351 8352 +8352 8353 +8353 8354 +8354 8355 +8355 8356 +8356 8357 +8357 8358 +8358 8359 +8359 8360 +8360 8361 +8361 8362 +8362 8363 +8363 8364 +8364 8365 +8365 8366 +8366 8367 +8367 8368 +8368 8369 +8369 8370 +8370 8371 +8371 8372 +8372 8373 +8373 8374 +8374 8375 +8375 8376 +8376 8377 +8377 8378 +8378 8379 +8379 8380 +8380 8381 +8381 8382 +8382 8383 +8383 8384 +8384 8385 +8385 8386 +8386 8387 +8387 8388 +8388 8389 +8389 8390 +8390 8391 +8391 8392 +8392 8393 +8393 8394 +8394 8395 +8395 8396 +8396 8397 +8397 8398 +8398 8399 +8399 8400 +8400 8401 +8401 8402 +8402 8403 +8403 8404 +8404 8405 +8405 8406 +8406 8407 +8407 8408 +8408 8409 +8409 8410 +8410 8411 +8411 8412 +8412 8413 +8413 8414 +8414 8415 +8415 8416 +8416 8417 +8417 8418 +8418 8419 +8419 8420 +8420 8421 +8421 8422 +8422 8423 +8423 8424 +8424 8425 +8425 8426 +8426 8427 +8427 8428 +8428 8429 +8429 8430 +8430 8431 +8431 8432 +8432 8433 +8433 8434 +8434 8435 +8435 8436 +8436 8437 +8437 8438 +8438 8439 +8439 8440 +8440 8441 +8441 8442 +8442 8443 +8443 8444 +8444 8445 +8445 8446 +8446 8447 +8447 8448 +8448 8449 +8449 8450 +8450 8451 +8451 8452 +8452 8453 +8453 8454 +8454 8455 +8455 8456 +8456 8457 +8457 8458 +8458 8459 +8459 8460 +8460 8461 +8461 8462 +8462 8463 +8463 8464 +8464 8465 +8465 8466 +8466 8467 +8467 8468 +8468 8469 +8469 8470 +8470 8471 +8471 8472 +8472 8473 +8473 8474 +8474 8475 +8475 8476 +8476 8477 +8477 8478 +8478 8479 +8479 8480 +8480 8481 +8481 8482 +8482 8483 +8483 8484 +8484 8485 +8485 8486 +8486 8487 +8487 8488 +8488 8489 +8489 8490 +8490 8491 +8491 8492 +8492 8493 +8493 8494 +8494 8495 +8495 8496 +8496 8497 +8497 8498 +8498 8499 +8499 8500 +8500 8501 +8501 8502 +8502 8503 +8503 8504 +8504 8505 +8505 8506 +8506 8507 +8507 8508 +8508 8509 +8509 8510 +8510 8511 +8511 8512 +8512 8513 +8513 8514 +8514 8515 +8515 8516 +8516 8517 +8517 8518 +8518 8519 +8519 8520 +8520 8521 +8521 8522 +8522 8523 +8523 8524 +8524 8525 +8525 8526 +8526 8527 +8527 8528 +8528 8529 +8529 8530 +8530 8531 +8531 8532 +8532 8533 +8533 8534 +8534 8535 +8535 8536 +8536 8537 +8537 8538 +8538 8539 +8539 8540 +8540 8541 +8541 8542 +8542 8543 +8543 8544 +8544 8545 +8545 8546 +8546 8547 +8547 8548 +8548 8549 +8549 8550 +8550 8551 +8551 8552 +8552 8553 +8553 8554 +8554 8555 +8555 8556 +8556 8557 +8557 8558 +8558 8559 +8559 8560 +8560 8561 +8561 8562 +8562 8563 +8563 8564 +8564 8565 +8565 8566 +8566 8567 +8567 8568 +8568 8569 +8569 8570 +8570 8571 +8571 8572 +8572 8573 +8573 8574 +8574 8575 +8575 8576 +8576 8577 +8577 8578 +8578 8579 +8579 8580 +8580 8581 +8581 8582 +8582 8583 +8583 8584 +8584 8585 +8585 8586 +8586 8587 +8587 8588 +8588 8589 +8589 8590 +8590 8591 +8591 8592 +8592 8593 +8593 8594 +8594 8595 +8595 8596 +8596 8597 +8597 8598 +8598 8599 +8599 8600 +8600 8601 +8601 8602 +8602 8603 +8603 8604 +8604 8605 +8605 8606 +8606 8607 +8607 8608 +8608 8609 +8609 8610 +8610 8611 +8611 8612 +8612 8613 +8613 8614 +8614 8615 +8615 8616 +8616 8617 +8617 8618 +8618 8619 +8619 8620 +8620 8621 +8621 8622 +8622 8623 +8623 8624 +8624 8625 +8625 8626 +8626 8627 +8627 8628 +8628 8629 +8629 8630 +8630 8631 +8631 8632 +8632 8633 +8633 8634 +8634 8635 +8635 8636 +8636 8637 +8637 8638 +8638 8639 +8639 8640 +8640 8641 +8641 8642 +8642 8643 +8643 8644 +8644 8645 +8645 8646 +8646 8647 +8647 8648 +8648 8649 +8649 8650 +8650 8651 +8651 8652 +8652 8653 +8653 8654 +8654 8655 +8655 8656 +8656 8657 +8657 8658 +8658 8659 +8659 8660 +8660 8661 +8661 8662 +8662 8663 +8663 8664 +8664 8665 +8665 8666 +8666 8667 +8667 8668 +8668 8669 +8669 8670 +8670 8671 +8671 8672 +8672 8673 +8673 8674 +8674 8675 +8675 8676 +8676 8677 +8677 8678 +8678 8679 +8679 8680 +8680 8681 +8681 8682 +8682 8683 +8683 8684 +8684 8685 +8685 8686 +8686 8687 +8687 8688 +8688 8689 +8689 8690 +8690 8691 +8691 8692 +8692 8693 +8693 8694 +8694 8695 +8695 8696 +8696 8697 +8697 8698 +8698 8699 +8699 8700 +8700 8701 +8701 8702 +8702 8703 +8703 8704 +8704 8705 +8705 8706 +8706 8707 +8707 8708 +8708 8709 +8709 8710 +8710 8711 +8711 8712 +8712 8713 +8713 8714 +8714 8715 +8715 8716 +8716 8717 +8717 8718 +8718 8719 +8719 8720 +8720 8721 +8721 8722 +8722 8723 +8723 8724 +8724 8725 +8725 8726 +8726 8727 +8727 8728 +8728 8729 +8729 8730 +8730 8731 +8731 8732 +8732 8733 +8733 8734 +8734 8735 +8735 8736 +8736 8737 +8737 8738 +8738 8739 +8739 8740 +8740 8741 +8741 8742 +8742 8743 +8743 8744 +8744 8745 +8745 8746 +8746 8747 +8747 8748 +8748 8749 +8749 8750 +8750 8751 +8751 8752 +8752 8753 +8753 8754 +8754 8755 +8755 8756 +8756 8757 +8757 8758 +8758 8759 +8759 8760 +8760 8761 +8761 8762 +8762 8763 +8763 8764 +8764 8765 +8765 8766 +8766 8767 +8767 8768 +8768 8769 +8769 8770 +8770 8771 +8771 8772 +8772 8773 +8773 8774 +8774 8775 +8775 8776 +8776 8777 +8777 8778 +8778 8779 +8779 8780 +8780 8781 +8781 8782 +8782 8783 +8783 8784 +8784 8785 +8785 8786 +8786 8787 +8787 8788 +8788 8789 +8789 8790 +8790 8791 +8791 8792 +8792 8793 +8793 8794 +8794 8795 +8795 8796 +8796 8797 +8797 8798 +8798 8799 +8799 8800 +8800 8801 +8801 8802 +8802 8803 +8803 8804 +8804 8805 +8805 8806 +8806 8807 +8807 8808 +8808 8809 +8809 8810 +8810 8811 +8811 8812 +8812 8813 +8813 8814 +8814 8815 +8815 8816 +8816 8817 +8817 8818 +8818 8819 +8819 8820 +8820 8821 +8821 8822 +8822 8823 +8823 8824 +8824 8825 +8825 8826 +8826 8827 +8827 8828 +8828 8829 +8829 8830 +8830 8831 +8831 8832 +8832 8833 +8833 8834 +8834 8835 +8835 8836 +8836 8837 +8837 8838 +8838 8839 +8839 8840 +8840 8841 +8841 8842 +8842 8843 +8843 8844 +8844 8845 +8845 8846 +8846 8847 +8847 8848 +8848 8849 +8849 8850 +8850 8851 +8851 8852 +8852 8853 +8853 8854 +8854 8855 +8855 8856 +8856 8857 +8857 8858 +8858 8859 +8859 8860 +8860 8861 +8861 8862 +8862 8863 +8863 8864 +8864 8865 +8865 8866 +8866 8867 +8867 8868 +8868 8869 +8869 8870 +8870 8871 +8871 8872 +8872 8873 +8873 8874 +8874 8875 +8875 8876 +8876 8877 +8877 8878 +8878 8879 +8879 8880 +8880 8881 +8881 8882 +8882 8883 +8883 8884 +8884 8885 +8885 8886 +8886 8887 +8887 8888 +8888 8889 +8889 8890 +8890 8891 +8891 8892 +8892 8893 +8893 8894 +8894 8895 +8895 8896 +8896 8897 +8897 8898 +8898 8899 +8899 8900 +8900 8901 +8901 8902 +8902 8903 +8903 8904 +8904 8905 +8905 8906 +8906 8907 +8907 8908 +8908 8909 +8909 8910 +8910 8911 +8911 8912 +8912 8913 +8913 8914 +8914 8915 +8915 8916 +8916 8917 +8917 8918 +8918 8919 +8919 8920 +8920 8921 +8921 8922 +8922 8923 +8923 8924 +8924 8925 +8925 8926 +8926 8927 +8927 8928 +8928 8929 +8929 8930 +8930 8931 +8931 8932 +8932 8933 +8933 8934 +8934 8935 +8935 8936 +8936 8937 +8937 8938 +8938 8939 +8939 8940 +8940 8941 +8941 8942 +8942 8943 +8943 8944 +8944 8945 +8945 8946 +8946 8947 +8947 8948 +8948 8949 +8949 8950 +8950 8951 +8951 8952 +8952 8953 +8953 8954 +8954 8955 +8955 8956 +8956 8957 +8957 8958 +8958 8959 +8959 8960 +8960 8961 +8961 8962 +8962 8963 +8963 8964 +8964 8965 +8965 8966 +8966 8967 +8967 8968 +8968 8969 +8969 8970 +8970 8971 +8971 8972 +8972 8973 +8973 8974 +8974 8975 +8975 8976 +8976 8977 +8977 8978 +8978 8979 +8979 8980 +8980 8981 +8981 8982 +8982 8983 +8983 8984 +8984 8985 +8985 8986 +8986 8987 +8987 8988 +8988 8989 +8989 8990 +8990 8991 +8991 8992 +8992 8993 +8993 8994 +8994 8995 +8995 8996 +8996 8997 +8997 8998 +8998 8999 +8999 9000 +9000 9001 +9001 9002 +9002 9003 +9003 9004 +9004 9005 +9005 9006 +9006 9007 +9007 9008 +9008 9009 +9009 9010 +9010 9011 +9011 9012 +9012 9013 +9013 9014 +9014 9015 +9015 9016 +9016 9017 +9017 9018 +9018 9019 +9019 9020 +9020 9021 +9021 9022 +9022 9023 +9023 9024 +9024 9025 +9025 9026 +9026 9027 +9027 9028 +9028 9029 +9029 9030 +9030 9031 +9031 9032 +9032 9033 +9033 9034 +9034 9035 +9035 9036 +9036 9037 +9037 9038 +9038 9039 +9039 9040 +9040 9041 +9041 9042 +9042 9043 +9043 9044 +9044 9045 +9045 9046 +9046 9047 +9047 9048 +9048 9049 +9049 9050 +9050 9051 +9051 9052 +9052 9053 +9053 9054 +9054 9055 +9055 9056 +9056 9057 +9057 9058 +9058 9059 +9059 9060 +9060 9061 +9061 9062 +9062 9063 +9063 9064 +9064 9065 +9065 9066 +9066 9067 +9067 9068 +9068 9069 +9069 9070 +9070 9071 +9071 9072 +9072 9073 +9073 9074 +9074 9075 +9075 9076 +9076 9077 +9077 9078 +9078 9079 +9079 9080 +9080 9081 +9081 9082 +9082 9083 +9083 9084 +9084 9085 +9085 9086 +9086 9087 +9087 9088 +9088 9089 +9089 9090 +9090 9091 +9091 9092 +9092 9093 +9093 9094 +9094 9095 +9095 9096 +9096 9097 +9097 9098 +9098 9099 +9099 9100 +9100 9101 +9101 9102 +9102 9103 +9103 9104 +9104 9105 +9105 9106 +9106 9107 +9107 9108 +9108 9109 +9109 9110 +9110 9111 +9111 9112 +9112 9113 +9113 9114 +9114 9115 +9115 9116 +9116 9117 +9117 9118 +9118 9119 +9119 9120 +9120 9121 +9121 9122 +9122 9123 +9123 9124 +9124 9125 +9125 9126 +9126 9127 +9127 9128 +9128 9129 +9129 9130 +9130 9131 +9131 9132 +9132 9133 +9133 9134 +9134 9135 +9135 9136 +9136 9137 +9137 9138 +9138 9139 +9139 9140 +9140 9141 +9141 9142 +9142 9143 +9143 9144 +9144 9145 +9145 9146 +9146 9147 +9147 9148 +9148 9149 +9149 9150 +9150 9151 +9151 9152 +9152 9153 +9153 9154 +9154 9155 +9155 9156 +9156 9157 +9157 9158 +9158 9159 +9159 9160 +9160 9161 +9161 9162 +9162 9163 +9163 9164 +9164 9165 +9165 9166 +9166 9167 +9167 9168 +9168 9169 +9169 9170 +9170 9171 +9171 9172 +9172 9173 +9173 9174 +9174 9175 +9175 9176 +9176 9177 +9177 9178 +9178 9179 +9179 9180 +9180 9181 +9181 9182 +9182 9183 +9183 9184 +9184 9185 +9185 9186 +9186 9187 +9187 9188 +9188 9189 +9189 9190 +9190 9191 +9191 9192 +9192 9193 +9193 9194 +9194 9195 +9195 9196 +9196 9197 +9197 9198 +9198 9199 +9199 9200 +9200 9201 +9201 9202 +9202 9203 +9203 9204 +9204 9205 +9205 9206 +9206 9207 +9207 9208 +9208 9209 +9209 9210 +9210 9211 +9211 9212 +9212 9213 +9213 9214 +9214 9215 +9215 9216 +9216 9217 +9217 9218 +9218 9219 +9219 9220 +9220 9221 +9221 9222 +9222 9223 +9223 9224 +9224 9225 +9225 9226 +9226 9227 +9227 9228 +9228 9229 +9229 9230 +9230 9231 +9231 9232 +9232 9233 +9233 9234 +9234 9235 +9235 9236 +9236 9237 +9237 9238 +9238 9239 +9239 9240 +9240 9241 +9241 9242 +9242 9243 +9243 9244 +9244 9245 +9245 9246 +9246 9247 +9247 9248 +9248 9249 +9249 9250 +9250 9251 +9251 9252 +9252 9253 +9253 9254 +9254 9255 +9255 9256 +9256 9257 +9257 9258 +9258 9259 +9259 9260 +9260 9261 +9261 9262 +9262 9263 +9263 9264 +9264 9265 +9265 9266 +9266 9267 +9267 9268 +9268 9269 +9269 9270 +9270 9271 +9271 9272 +9272 9273 +9273 9274 +9274 9275 +9275 9276 +9276 9277 +9277 9278 +9278 9279 +9279 9280 +9280 9281 +9281 9282 +9282 9283 +9283 9284 +9284 9285 +9285 9286 +9286 9287 +9287 9288 +9288 9289 +9289 9290 +9290 9291 +9291 9292 +9292 9293 +9293 9294 +9294 9295 +9295 9296 +9296 9297 +9297 9298 +9298 9299 +9299 9300 +9300 9301 +9301 9302 +9302 9303 +9303 9304 +9304 9305 +9305 9306 +9306 9307 +9307 9308 +9308 9309 +9309 9310 +9310 9311 +9311 9312 +9312 9313 +9313 9314 +9314 9315 +9315 9316 +9316 9317 +9317 9318 +9318 9319 +9319 9320 +9320 9321 +9321 9322 +9322 9323 +9323 9324 +9324 9325 +9325 9326 +9326 9327 +9327 9328 +9328 9329 +9329 9330 +9330 9331 +9331 9332 +9332 9333 +9333 9334 +9334 9335 +9335 9336 +9336 9337 +9337 9338 +9338 9339 +9339 9340 +9340 9341 +9341 9342 +9342 9343 +9343 9344 +9344 9345 +9345 9346 +9346 9347 +9347 9348 +9348 9349 +9349 9350 +9350 9351 +9351 9352 +9352 9353 +9353 9354 +9354 9355 +9355 9356 +9356 9357 +9357 9358 +9358 9359 +9359 9360 +9360 9361 +9361 9362 +9362 9363 +9363 9364 +9364 9365 +9365 9366 +9366 9367 +9367 9368 +9368 9369 +9369 9370 +9370 9371 +9371 9372 +9372 9373 +9373 9374 +9374 9375 +9375 9376 +9376 9377 +9377 9378 +9378 9379 +9379 9380 +9380 9381 +9381 9382 +9382 9383 +9383 9384 +9384 9385 +9385 9386 +9386 9387 +9387 9388 +9388 9389 +9389 9390 +9390 9391 +9391 9392 +9392 9393 +9393 9394 +9394 9395 +9395 9396 +9396 9397 +9397 9398 +9398 9399 +9399 9400 +9400 9401 +9401 9402 +9402 9403 +9403 9404 +9404 9405 +9405 9406 +9406 9407 +9407 9408 +9408 9409 +9409 9410 +9410 9411 +9411 9412 +9412 9413 +9413 9414 +9414 9415 +9415 9416 +9416 9417 +9417 9418 +9418 9419 +9419 9420 +9420 9421 +9421 9422 +9422 9423 +9423 9424 +9424 9425 +9425 9426 +9426 9427 +9427 9428 +9428 9429 +9429 9430 +9430 9431 +9431 9432 +9432 9433 +9433 9434 +9434 9435 +9435 9436 +9436 9437 +9437 9438 +9438 9439 +9439 9440 +9440 9441 +9441 9442 +9442 9443 +9443 9444 +9444 9445 +9445 9446 +9446 9447 +9447 9448 +9448 9449 +9449 9450 +9450 9451 +9451 9452 +9452 9453 +9453 9454 +9454 9455 +9455 9456 +9456 9457 +9457 9458 +9458 9459 +9459 9460 +9460 9461 +9461 9462 +9462 9463 +9463 9464 +9464 9465 +9465 9466 +9466 9467 +9467 9468 +9468 9469 +9469 9470 +9470 9471 +9471 9472 +9472 9473 +9473 9474 +9474 9475 +9475 9476 +9476 9477 +9477 9478 +9478 9479 +9479 9480 +9480 9481 +9481 9482 +9482 9483 +9483 9484 +9484 9485 +9485 9486 +9486 9487 +9487 9488 +9488 9489 +9489 9490 +9490 9491 +9491 9492 +9492 9493 +9493 9494 +9494 9495 +9495 9496 +9496 9497 +9497 9498 +9498 9499 +9499 9500 +9500 9501 +9501 9502 +9502 9503 +9503 9504 +9504 9505 +9505 9506 +9506 9507 +9507 9508 +9508 9509 +9509 9510 +9510 9511 +9511 9512 +9512 9513 +9513 9514 +9514 9515 +9515 9516 +9516 9517 +9517 9518 +9518 9519 +9519 9520 +9520 9521 +9521 9522 +9522 9523 +9523 9524 +9524 9525 +9525 9526 +9526 9527 +9527 9528 +9528 9529 +9529 9530 +9530 9531 +9531 9532 +9532 9533 +9533 9534 +9534 9535 +9535 9536 +9536 9537 +9537 9538 +9538 9539 +9539 9540 +9540 9541 +9541 9542 +9542 9543 +9543 9544 +9544 9545 +9545 9546 +9546 9547 +9547 9548 +9548 9549 +9549 9550 +9550 9551 +9551 9552 +9552 9553 +9553 9554 +9554 9555 +9555 9556 +9556 9557 +9557 9558 +9558 9559 +9559 9560 +9560 9561 +9561 9562 +9562 9563 +9563 9564 +9564 9565 +9565 9566 +9566 9567 +9567 9568 +9568 9569 +9569 9570 +9570 9571 +9571 9572 +9572 9573 +9573 9574 +9574 9575 +9575 9576 +9576 9577 +9577 9578 +9578 9579 +9579 9580 +9580 9581 +9581 9582 +9582 9583 +9583 9584 +9584 9585 +9585 9586 +9586 9587 +9587 9588 +9588 9589 +9589 9590 +9590 9591 +9591 9592 +9592 9593 +9593 9594 +9594 9595 +9595 9596 +9596 9597 +9597 9598 +9598 9599 +9599 9600 +9600 9601 +9601 9602 +9602 9603 +9603 9604 +9604 9605 +9605 9606 +9606 9607 +9607 9608 +9608 9609 +9609 9610 +9610 9611 +9611 9612 +9612 9613 +9613 9614 +9614 9615 +9615 9616 +9616 9617 +9617 9618 +9618 9619 +9619 9620 +9620 9621 +9621 9622 +9622 9623 +9623 9624 +9624 9625 +9625 9626 +9626 9627 +9627 9628 +9628 9629 +9629 9630 +9630 9631 +9631 9632 +9632 9633 +9633 9634 +9634 9635 +9635 9636 +9636 9637 +9637 9638 +9638 9639 +9639 9640 +9640 9641 +9641 9642 +9642 9643 +9643 9644 +9644 9645 +9645 9646 +9646 9647 +9647 9648 +9648 9649 +9649 9650 +9650 9651 +9651 9652 +9652 9653 +9653 9654 +9654 9655 +9655 9656 +9656 9657 +9657 9658 +9658 9659 +9659 9660 +9660 9661 +9661 9662 +9662 9663 +9663 9664 +9664 9665 +9665 9666 +9666 9667 +9667 9668 +9668 9669 +9669 9670 +9670 9671 +9671 9672 +9672 9673 +9673 9674 +9674 9675 +9675 9676 +9676 9677 +9677 9678 +9678 9679 +9679 9680 +9680 9681 +9681 9682 +9682 9683 +9683 9684 +9684 9685 +9685 9686 +9686 9687 +9687 9688 +9688 9689 +9689 9690 +9690 9691 +9691 9692 +9692 9693 +9693 9694 +9694 9695 +9695 9696 +9696 9697 +9697 9698 +9698 9699 +9699 9700 +9700 9701 +9701 9702 +9702 9703 +9703 9704 +9704 9705 +9705 9706 +9706 9707 +9707 9708 +9708 9709 +9709 9710 +9710 9711 +9711 9712 +9712 9713 +9713 9714 +9714 9715 +9715 9716 +9716 9717 +9717 9718 +9718 9719 +9719 9720 +9720 9721 +9721 9722 +9722 9723 +9723 9724 +9724 9725 +9725 9726 +9726 9727 +9727 9728 +9728 9729 +9729 9730 +9730 9731 +9731 9732 +9732 9733 +9733 9734 +9734 9735 +9735 9736 +9736 9737 +9737 9738 +9738 9739 +9739 9740 +9740 9741 +9741 9742 +9742 9743 +9743 9744 +9744 9745 +9745 9746 +9746 9747 +9747 9748 +9748 9749 +9749 9750 +9750 9751 +9751 9752 +9752 9753 +9753 9754 +9754 9755 +9755 9756 +9756 9757 +9757 9758 +9758 9759 +9759 9760 +9760 9761 +9761 9762 +9762 9763 +9763 9764 +9764 9765 +9765 9766 +9766 9767 +9767 9768 +9768 9769 +9769 9770 +9770 9771 +9771 9772 +9772 9773 +9773 9774 +9774 9775 +9775 9776 +9776 9777 +9777 9778 +9778 9779 +9779 9780 +9780 9781 +9781 9782 +9782 9783 +9783 9784 +9784 9785 +9785 9786 +9786 9787 +9787 9788 +9788 9789 +9789 9790 +9790 9791 +9791 9792 +9792 9793 +9793 9794 +9794 9795 +9795 9796 +9796 9797 +9797 9798 +9798 9799 +9799 9800 +9800 9801 +9801 9802 +9802 9803 +9803 9804 +9804 9805 +9805 9806 +9806 9807 +9807 9808 +9808 9809 +9809 9810 +9810 9811 +9811 9812 +9812 9813 +9813 9814 +9814 9815 +9815 9816 +9816 9817 +9817 9818 +9818 9819 +9819 9820 +9820 9821 +9821 9822 +9822 9823 +9823 9824 +9824 9825 +9825 9826 +9826 9827 +9827 9828 +9828 9829 +9829 9830 +9830 9831 +9831 9832 +9832 9833 +9833 9834 +9834 9835 +9835 9836 +9836 9837 +9837 9838 +9838 9839 +9839 9840 +9840 9841 +9841 9842 +9842 9843 +9843 9844 +9844 9845 +9845 9846 +9846 9847 +9847 9848 +9848 9849 +9849 9850 +9850 9851 +9851 9852 +9852 9853 +9853 9854 +9854 9855 +9855 9856 +9856 9857 +9857 9858 +9858 9859 +9859 9860 +9860 9861 +9861 9862 +9862 9863 +9863 9864 +9864 9865 +9865 9866 +9866 9867 +9867 9868 +9868 9869 +9869 9870 +9870 9871 +9871 9872 +9872 9873 +9873 9874 +9874 9875 +9875 9876 +9876 9877 +9877 9878 +9878 9879 +9879 9880 +9880 9881 +9881 9882 +9882 9883 +9883 9884 +9884 9885 +9885 9886 +9886 9887 +9887 9888 +9888 9889 +9889 9890 +9890 9891 +9891 9892 +9892 9893 +9893 9894 +9894 9895 +9895 9896 +9896 9897 +9897 9898 +9898 9899 +9899 9900 +9900 9901 +9901 9902 +9902 9903 +9903 9904 +9904 9905 +9905 9906 +9906 9907 +9907 9908 +9908 9909 +9909 9910 +9910 9911 +9911 9912 +9912 9913 +9913 9914 +9914 9915 +9915 9916 +9916 9917 +9917 9918 +9918 9919 +9919 9920 +9920 9921 +9921 9922 +9922 9923 +9923 9924 +9924 9925 +9925 9926 +9926 9927 +9927 9928 +9928 9929 +9929 9930 +9930 9931 +9931 9932 +9932 9933 +9933 9934 +9934 9935 +9935 9936 +9936 9937 +9937 9938 +9938 9939 +9939 9940 +9940 9941 +9941 9942 +9942 9943 +9943 9944 +9944 9945 +9945 9946 +9946 9947 +9947 9948 +9948 9949 +9949 9950 +9950 9951 +9951 9952 +9952 9953 +9953 9954 +9954 9955 +9955 9956 +9956 9957 +9957 9958 +9958 9959 +9959 9960 +9960 9961 +9961 9962 +9962 9963 +9963 9964 +9964 9965 +9965 9966 +9966 9967 +9967 9968 +9968 9969 +9969 9970 +9970 9971 +9971 9972 +9972 9973 +9973 9974 +9974 9975 +9975 9976 +9976 9977 +9977 9978 +9978 9979 +9979 9980 +9980 9981 +9981 9982 +9982 9983 +9983 9984 +9984 9985 +9985 9986 +9986 9987 +9987 9988 +9988 9989 +9989 9990 +9990 9991 +9991 9992 +9992 9993 +9993 9994 +9994 9995 +9995 9996 +9996 9997 +9997 9998 +9998 9999 +9999 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/ditch.txt b/include/CDT/tests/inputs/ditch.txt new file mode 100644 index 0000000..21b139a --- /dev/null +++ b/include/CDT/tests/inputs/ditch.txt @@ -0,0 +1,24 @@ +11 12 +15.2817039560085 -35.8482583312558 +16.9298083110526 -19.5320252163193 +15.2817039560085 9.044687862274401e-01 +17.5890500530702 18.044754078686 +16.1057561335305 40.7061889605422 +-16.6915205318468 -35.6010426779992 +-14.3017692170329 -14.9173330221958 +-14.9610109590506 14.006898408828 +-15.0434161768028 37.9044115569673 +1.27281693813374 -36.0954739845124 +1.27281693813374 40.62378374279 +0 1 +1 2 +2 3 +3 4 +5 6 +6 7 +7 8 +9 10 +0 9 +5 9 +4 10 +8 10 \ No newline at end of file diff --git a/include/CDT/tests/inputs/dont_flip_constraint_when_resolving_intersection.txt b/include/CDT/tests/inputs/dont_flip_constraint_when_resolving_intersection.txt new file mode 100644 index 0000000..d616e52 --- /dev/null +++ b/include/CDT/tests/inputs/dont_flip_constraint_when_resolving_intersection.txt @@ -0,0 +1,10 @@ +6 3 + 2 8 +12 11 +12 10 + 2 7 +12 8 +5 10 +0 1 +0 2 +1 3 \ No newline at end of file diff --git a/include/CDT/tests/inputs/double-hanging.txt b/include/CDT/tests/inputs/double-hanging.txt new file mode 100644 index 0000000..f084a98 --- /dev/null +++ b/include/CDT/tests/inputs/double-hanging.txt @@ -0,0 +1,9 @@ +7 1 +0 40 +20 37 +30 43 +40 37 +60 40 +30 48 +30 55 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/gh_issue.txt b/include/CDT/tests/inputs/gh_issue.txt new file mode 100644 index 0000000..af732a0 --- /dev/null +++ b/include/CDT/tests/inputs/gh_issue.txt @@ -0,0 +1,157 @@ +78 78 +2646.483004 4635.168252 +2940.454821 4768.453360 +2956.371323 4741.992504 +2919.866354 4733.151108 +2907.399464 4714.272492 +2860.306798 4697.221008 +2780.158799 4650.778860 +2265.225986 4403.916563 +2182.209600 4365.631781 +2173.947532 4397.984430 +2232.832254 4409.193994 +2145.628913 4499.153591 +2066.116789 4531.471540 +2107.904595 4569.142974 +2173.586631 4545.401212 +2245.979345 4504.443379 +2329.936334 4536.309812 +2382.950861 4505.163464 +2414.148222 4533.413655 +2420.020403 4567.534854 +2469.472407 4591.682871 +2538.962717 4586.428933 +2606.040217 4616.841854 +2595.426630 4630.277520 +2568.937784 4646.133540 +2554.361486 4663.323147 +2552.593887 4672.138585 +2564.495713 4691.093858 +2583.462998 4703.889658 +2583.911492 4693.312373 +2590.975244 4690.229175 +2608.631592 4687.598233 +2615.241370 4693.777127 +2615.239494 4696.864568 +2594.057935 4700.373892 +2580.785697 4755.025906 +2570.185110 4768.249869 +2570.174324 4786.317531 +2587.819934 4800.873632 +2593.997380 4800.877349 +2590.474213 4788.090764 +2586.503055 4785.012080 +2591.805134 4780.601452 +2593.577019 4764.730612 +2601.971607 4754.158121 +2614.770649 4751.078432 +2614.796616 4708.322388 +2618.328357 4706.998159 +2627.147740 4714.939484 +2646.567444 4710.548705 +2657.148030 4720.252242 +2653.172499 4734.349482 +2635.514965 4739.187149 +2631.101149 4747.120403 +2620.062813 4752.842717 +2605.929343 4769.151887 +2605.926408 4774.000396 +2612.545497 4774.884941 +2616.957172 4780.616664 +2621.371786 4781.499884 +2624.025906 4769.162877 +2629.322080 4764.317597 +2641.231696 4769.608090 +2648.729638 4779.309717 +2663.295551 4778.884008 +2666.828119 4766.101730 +2690.222871 4758.180330 +2706.114874 4748.493266 +2710.977196 4740.560372 +2710.115392 4704.848041 +2688.487237 4715.423185 +2670.390725 4714.966084 +2665.102357 4707.026855 +2639.960968 4688.943700 +2619.221169 4682.756151 +2604.677698 4655.852030 +2615.271092 4644.846203 +2635.574060 4642.651673 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/guitar no box.txt b/include/CDT/tests/inputs/guitar no box.txt new file mode 100644 index 0000000..1c219bb --- /dev/null +++ b/include/CDT/tests/inputs/guitar no box.txt @@ -0,0 +1,289 @@ +144 144 +20.75 12 +20 12.5 +19 12.75 +18 12.6 +17 12.35 +16 12 +15 11.6 +14 11 +13 10.7 +12 10.5 +11 10.7 +10 11.2 + 9 12 + 7 13.1 + 6 13.5 + 5 13.5 + 4 13.2 + 3 12.4 + 2 11.2 + 1.3 10 + 0.8 8 + 0.5 6 + 0.6 4 + 0.8 3 + 1.3 2 + 2.1 1 + 3 0.4 + 4 0 + 5 -0.1 + 6 0.1 + 8 0.8 +10 1.9 +11 2.3 +12 2.4 +13 2.2 +14 1.75 +15 1.5 +16 1.5 +16.75 1.8 +16 2.15 +15 3 +14.15 4 +14 5 +14.4 5.6 +15 5.75 +16 5.85 +27 5.85 +28 5.7 +29 5.25 +29.8 4.6 +32 5.05 +33 5 +33.75 4.6 +34.5 4.7 +35.3 5 +36 5.5 +36.25 6 +36.1 6.3 +34.1 7.1 +34.2 7.35 +34.4 7.56 +34.4 7.85 +34.2 7.93 +34 7.72 +34 7.43 +33.9 7.18 +33.3 7.42 +33.4 7.67 +33.6 7.88 +33.6 8.17 +33.4 8.25 +33.2 8.04 +33.2 7.75 +33.1 7.5 +32.5 7.74 +32.6 7.99 +32.8 8.2 +32.8 8.49 +32.6 8.57 +32.4 8.36 +32.4 8.07 +32.3 7.82 +31.7 8.06 +31.8 8.31 +32 8.52 +32 8.81 +31.8 8.89 +31.6 8.68 +31.6 8.39 +31.5 8.14 +30.9 8.38 +31 8.63 +31.2 8.84 +31.2 9.13 +31 9.21 +30.8 9 +30.8 8.71 +30.7 8.46 +30.1 8.7 +30.2 8.95 +30.4 9.16 +30.4 9.45 +30.2 9.53 +30 9.32 +30 9.03 +29.9 8.78 +28.6 9.3 +28.2 9.2 +28.1 7.8 +18 7.8 +17 7.9 +16.3 8.3 +15.85 9 +16.2 10 +17 10.7 +19 11.6 +20 11.8 + 3 6.8 + 3.3 7.5 + 4 7.8 + 4.7 7.5 + 4 6.8 + 4.7 6.1 + 4 5.8 + 3.3 6.1 + 5.5 5.8 + 6.25 5.8 + 6.25 6.3 + 6.75 5.8 + 7.25 6.3 + 7.25 5.8 + 8 5.8 + 8 7.8 + 7.25 7.8 + 6.75 7.3 + 6.25 7.8 + 5.5 7.8 + 8.8 7.8 + 8.8 6.6 + 9.1 6.05 + 9.8 5.8 +10.5 6.05 +10.8 6.6 +10.8 7.8 + 0 1 + 1 2 + 2 3 + 3 4 + 4 5 + 5 6 + 6 7 + 7 8 + 8 9 + 9 10 + 10 11 + 11 12 + 12 13 + 13 14 + 14 15 + 15 16 + 16 17 + 17 18 + 18 19 + 19 20 + 20 21 + 21 22 + 22 23 + 23 24 + 24 25 + 25 26 + 26 27 + 27 28 + 28 29 + 29 30 + 30 31 + 31 32 + 32 33 + 33 34 + 34 35 + 35 36 + 36 37 + 37 38 + 38 39 + 39 40 + 40 41 + 41 42 + 42 43 + 43 44 + 44 45 + 45 46 + 46 47 + 47 48 + 48 49 + 49 50 + 50 51 + 51 52 + 52 53 + 53 54 + 54 55 + 55 56 + 56 57 + 57 58 + 58 59 + 59 60 + 60 61 + 61 62 + 62 63 + 63 64 + 64 65 + 65 66 + 66 67 + 67 68 + 68 69 + 69 70 + 70 71 + 71 72 + 72 73 + 73 74 + 74 75 + 75 76 + 76 77 + 77 78 + 78 79 + 79 80 + 80 81 + 81 82 + 82 83 + 83 84 + 84 85 + 85 86 + 86 87 + 87 88 + 88 89 + 89 90 + 90 91 + 91 92 + 92 93 + 93 94 + 94 95 + 95 96 + 96 97 + 97 98 + 98 99 + 99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 0 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 117 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 125 +137 138 +138 139 +139 140 +140 141 +141 142 +142 143 +143 137 diff --git a/include/CDT/tests/inputs/hanging3.txt b/include/CDT/tests/inputs/hanging3.txt new file mode 100644 index 0000000..eb6bce4 --- /dev/null +++ b/include/CDT/tests/inputs/hanging3.txt @@ -0,0 +1,9 @@ +7 1 +1534.79 789.063 +-785.078 788.629 +789.094 533.067 +1034.16 789.067 +785.067 513.067 +784 664.004 +513.064 789.067 +0 1 \ No newline at end of file diff --git a/include/CDT/tests/inputs/island.txt b/include/CDT/tests/inputs/island.txt new file mode 100644 index 0000000..fd1edab --- /dev/null +++ b/include/CDT/tests/inputs/island.txt @@ -0,0 +1,191 @@ +95 95 +0.35790337 0.38864577 +0.31071450 0.40218492 +0.26291196 0.39019645 +0.21429804 0.38283820 +0.16613300 0.39383360 +0.11818326 0.40414870 +0.08260139 0.37538306 +0.05361811 0.34207291 +0.02510484 0.30843907 +0.00000000 0.27304858 +0.01116075 0.23446584 +0.05253742 0.21147779 +0.08739790 0.18215957 +0.13184782 0.16365548 +0.17678370 0.14569794 +0.20997123 0.11555512 +0.23487661 0.08013357 +0.27428417 0.05577003 +0.30609623 0.02448313 +0.34462248 0.00000000 +0.38499725 0.00703740 +0.41201013 0.04110566 +0.44407198 0.07251598 +0.47554188 0.10433305 +0.48615282 0.14127188 +0.48526458 0.18209454 +0.48934181 0.22286040 +0.51277842 0.25712118 +0.55446391 0.27665125 +0.59998065 0.26611232 +0.63374109 0.23635467 +0.68219858 0.22657993 +0.72344682 0.20595516 +0.76098068 0.18314759 +0.81015186 0.18044212 +0.85789280 0.17704054 +0.90231042 0.15823834 +0.94725198 0.14091650 +0.99263450 0.14300645 +1.00000000 0.18113114 +0.97482369 0.21584709 +0.93601160 0.24166059 +0.89769796 0.26773059 +0.88612883 0.30756282 +0.88036141 0.34822807 +0.86637401 0.38744400 +0.87126547 0.42698375 +0.87836588 0.46738117 +0.86679577 0.50495740 +0.83885184 0.53889814 +0.80885902 0.57161229 +0.77548249 0.60209880 +0.73774132 0.62777801 +0.69229886 0.64485535 +0.64664787 0.66155981 +0.59924870 0.67318904 +0.54986089 0.67381738 +0.50097893 0.66757989 +0.46691922 0.69313520 +0.44449627 0.72973059 +0.40854079 0.75668093 +0.36290331 0.77039793 +0.36624793 0.79505758 +0.37098973 0.82539964 +0.32954240 0.84365456 +0.32368068 0.87731391 +0.36206162 0.90145428 +0.41147458 0.90716326 +0.45332716 0.92956622 +0.50176592 0.93780257 +0.54970945 0.94883030 +0.57634292 0.97479673 +0.53570147 0.98649919 +0.48652917 0.99385804 +0.43997944 0.98533700 +0.40368105 1.00000000 +0.36167108 0.98189826 +0.32369722 0.95572597 +0.28265677 0.93271435 +0.24867592 0.90286457 +0.22284050 0.86781008 +0.22698494 0.82708497 +0.23260900 0.78640307 +0.25654498 0.75174722 +0.29129654 0.72243251 +0.31907943 0.68878353 +0.34391654 0.65324854 +0.37314261 0.62077328 +0.41247022 0.59552654 +0.45405330 0.57278959 +0.46246974 0.53265774 +0.47030304 0.49222005 +0.47073181 0.45153024 +0.44700288 0.41863218 +0.40728793 0.39400451 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-142-double-hanging-edge.txt b/include/CDT/tests/inputs/issue-142-double-hanging-edge.txt new file mode 100644 index 0000000..2efe695 --- /dev/null +++ b/include/CDT/tests/inputs/issue-142-double-hanging-edge.txt @@ -0,0 +1,19 @@ +9 9 +2.7145555 -1.5168651 +2.5013921 -1.39569 +3.0311139 -1.6827598 +2.7610707 -1.5269606 +2.7745042 -1.5207595 +2.8049774 -1.4492451 +4.2982483 -2.210517 +2.8477705 -1.6077808 +2.3252072 -1.3108287 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-148-crossing-edges.txt b/include/CDT/tests/inputs/issue-148-crossing-edges.txt new file mode 100644 index 0000000..2b5be15 --- /dev/null +++ b/include/CDT/tests/inputs/issue-148-crossing-edges.txt @@ -0,0 +1,9 @@ +6 2 +0 0.2 +1 0 +1 1 +0 1 +0.5 0.2 +0.8 0.5 +0 2 +1 3 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-42-full-boundary-overlap.txt b/include/CDT/tests/inputs/issue-42-full-boundary-overlap.txt new file mode 100644 index 0000000..0471e62 --- /dev/null +++ b/include/CDT/tests/inputs/issue-42-full-boundary-overlap.txt @@ -0,0 +1,29 @@ +12 16 +0 0 +1 0 +1 1 +0 1 +0.25 0.25 +0.75 0.25 +0.75 0.75 +0.25 0.75 +0.4 0.4 +0.6 0.4 +0.6 0.6 +0.4 0.6 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +4 5 +5 6 +6 7 +7 4 +8 9 +9 10 +10 11 +11 8 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-42-hole-overlaps-bondary.txt b/include/CDT/tests/inputs/issue-42-hole-overlaps-bondary.txt new file mode 100644 index 0000000..5888c39 --- /dev/null +++ b/include/CDT/tests/inputs/issue-42-hole-overlaps-bondary.txt @@ -0,0 +1,17 @@ +8 8 +0 0 +2 0 +2 3 +0 3 +0.5 0 +1.5 0 +1.5 1 +0.5 1 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps-conform-to-edge.txt b/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps-conform-to-edge.txt new file mode 100644 index 0000000..037282f --- /dev/null +++ b/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps-conform-to-edge.txt @@ -0,0 +1,37 @@ +16 20 +0 0 +2 0 +2 3 +0 3 +0.6 0 +1.4 0 +1.4 0.75 +0.6 0.75 +0.75 0 +1.25 0 +1.25 0.7 +0.75 0.7 +0.9 0 +1.1 0 +1.1 0.4 +0.9 0.4 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +4 5 +5 6 +6 7 +7 4 +8 9 +9 10 +10 11 +11 8 +12 13 +13 14 +14 15 +15 12 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps.txt b/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps.txt new file mode 100644 index 0000000..d394983 --- /dev/null +++ b/include/CDT/tests/inputs/issue-42-multiple-boundary-overlaps.txt @@ -0,0 +1,33 @@ +16 16 +0 0 +2 0 +2 3 +0 3 +0.5 0 +1.5 0 +1.5 1 +0.5 1 +0.75 0 +1.25 0 +1.25 0.7 +0.75 0.7 +0.9 0 +1.1 0 +1.1 0.4 +0.9 0.4 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +8 9 +9 10 +10 11 +11 8 +12 13 +13 14 +14 15 +15 12 \ No newline at end of file diff --git a/include/CDT/tests/inputs/issue-65-wrong-edges.txt b/include/CDT/tests/inputs/issue-65-wrong-edges.txt new file mode 100644 index 0000000..cb3cd0b --- /dev/null +++ b/include/CDT/tests/inputs/issue-65-wrong-edges.txt @@ -0,0 +1,4 @@ +3 0 +1 0 +0 0.251 +-1 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/kidney.txt b/include/CDT/tests/inputs/kidney.txt new file mode 100644 index 0000000..e2589d0 --- /dev/null +++ b/include/CDT/tests/inputs/kidney.txt @@ -0,0 +1,101 @@ +50 50 +0.6814 1.2932 +0.7148 1.2004 +0.7574 1.1074 +0.8143 1.0178 +0.8963 0.9360 +0.9825 0.8672 +1.0713 0.8072 +1.1610 0.7660 +1.2482 0.7350 +1.3416 0.7122 +1.4344 0.6954 +1.5202 0.6852 +1.6132 0.6802 +1.7064 0.6802 +1.7994 0.6946 +1.8926 0.7160 +1.9848 0.7412 +2.0780 0.7758 +2.1706 0.8178 +2.2616 0.8718 +2.3498 0.9444 +2.4318 1.0256 +2.5044 1.1130 +2.5600 1.1984 +2.5896 1.2914 +2.6132 1.3848 +2.6294 1.4774 +2.5998 1.5688 +2.5333 1.6370 +2.4400 1.6230 +2.3494 1.5844 +2.2576 1.5308 +2.1664 1.4872 +2.0820 1.4402 +1.9928 1.4052 +1.8996 1.3756 +1.8068 1.3492 +1.7136 1.3342 +1.6208 1.3278 +1.5274 1.3264 +1.4346 1.3384 +1.3414 1.3596 +1.2484 1.3860 +1.1556 1.4258 +1.0634 1.4642 +0.9744 1.5058 +0.8816 1.5464 +0.7882 1.5496 +0.7046 1.4790 +0.6890 1.3860 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/overlapping constraints.txt b/include/CDT/tests/inputs/overlapping constraints.txt new file mode 100644 index 0000000..79ba16a --- /dev/null +++ b/include/CDT/tests/inputs/overlapping constraints.txt @@ -0,0 +1,17 @@ +8 8 +40.8 -2.8 +38 0 +38 2 +40.8 4.8 +40.8 5.2 +38 8 +38 10 +40.8 12.8 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/overlapping constraints2.txt b/include/CDT/tests/inputs/overlapping constraints2.txt new file mode 100644 index 0000000..8f676b2 --- /dev/null +++ b/include/CDT/tests/inputs/overlapping constraints2.txt @@ -0,0 +1,13 @@ +6 6 + 10 0 + 0 10 +-10 0 + 0 -10 + -5 0 + 5 0 +0 1 +1 2 +2 3 +3 0 +2 5 +4 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/points_on_constraint_edge.txt b/include/CDT/tests/inputs/points_on_constraint_edge.txt new file mode 100644 index 0000000..f8f328d --- /dev/null +++ b/include/CDT/tests/inputs/points_on_constraint_edge.txt @@ -0,0 +1,14 @@ +12 1 +0 1 +2 2 +4 2 +2 0 +4 0 +6 1 +8 1 +10 2 +12 2 +10 0 +12 0 +14 1 +0 11 \ No newline at end of file diff --git a/include/CDT/tests/inputs/regression_issue_38_wrong_hull_small.txt b/include/CDT/tests/inputs/regression_issue_38_wrong_hull_small.txt new file mode 100644 index 0000000..669f636 --- /dev/null +++ b/include/CDT/tests/inputs/regression_issue_38_wrong_hull_small.txt @@ -0,0 +1,7 @@ +6 0 +0.15147567518991 -5.144230291488 +0.10442 -5.06098 +0.1228735248885 -5.12897066233 +0.1322969035965 -5.141286788425 +0.115882234089 -5.115648852375 +0.13262891777369 -5.119598039304 \ No newline at end of file diff --git a/include/CDT/tests/inputs/square with crack.txt b/include/CDT/tests/inputs/square with crack.txt new file mode 100644 index 0000000..0f27079 --- /dev/null +++ b/include/CDT/tests/inputs/square with crack.txt @@ -0,0 +1,15 @@ +7 7 +0 0 +1 0 +1 1 +0.5001 1 +0.5 0.5 +0.49990 1 +0 1 +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 0 \ No newline at end of file diff --git a/include/CDT/tests/inputs/test_data_small.txt b/include/CDT/tests/inputs/test_data_small.txt new file mode 100644 index 0000000..494dc90 --- /dev/null +++ b/include/CDT/tests/inputs/test_data_small.txt @@ -0,0 +1,103 @@ +100 2 +-0.41414952969857699 0.34601294687436046 +-0.184265425880342 -0.9735160681136048 +0.64332111944165637 -0.87469596191903165 +-0.1432874479564209 0.42728204148483218 +-0.61595272293842918 -0.23528214201115394 +-0.8983888399947908 0.087362471233457528 +-0.55489021495723601 0.2577637204263501 +0.59293899248962778 -0.76323795791137017 +0.69054099721927842 0.25734471839011674 +0.32863926918611486 -0.54335056703189233 +-0.29602205079629951 -0.11261544492933095 +-0.77864889311269836 0.16895522512175232 +-0.085578584697364013 -0.59196541414553505 +-0.30355856625916167 -0.4631655559610085 +-0.49249029591937066 0.24616369894559065 +-0.49705720454960323 -0.25666564855470242 +0.51627853106516963 -0.34340485249502084 +0.3791823409353301 -0.62769297712688754 +-0.84657210671303695 -0.68139814094612894 +0.9970658516197286 0.76920191870577725 +0.86873761374291458 0.85407575352113585 +-0.3933100956582114 -0.69609356439408665 +-0.86568332622217448 0.85516401814179877 +0.67604782118641782 -0.90484400221132555 +-0.69733825506538172 0.29303001356625136 +0.59507020879166039 0.54269624530985516 +-0.67242767831213857 0.32323632074786701 +0.68676461415893897 0.92223693760703984 +0.024204534728356597 0.72710857274664198 +0.67018626314518959 0.7123317632201609 +0.17099618946651729 0.58411261222272381 +-0.54815403663436868 -0.52906121179054078 +0.14975335006984247 0.75474748715521867 +-0.68469189982754719 0.83995530708667099 +0.27072977723967351 0.63524118283318032 +0.92946801002465085 0.44423479502921559 +0.73499582356535953 0.11070577402197679 +0.31515678479410747 0.1026294789194877 +0.76360676386349602 -0.21834470624800473 +0.10669818885872595 -0.44227586712505673 +-0.35446282621916847 0.58778035974069298 +-0.52738383690710611 -0.5360440001768062 +0.59549369112011585 -0.27768786631727915 +-0.19429328897022047 -0.42026979316505253 +0.40085020700336549 0.29129815721287433 +-0.35227865861330543 0.70558763771941457 +-0.64734387621324141 0.25986563253861727 +0.73164093533795849 0.95985042104104812 +0.66832073504614153 -0.40516599365189654 +0.52520332082485677 -0.52943845498689601 +-0.73707554930838548 0.49695206303281836 +0.10770489468135414 0.93163180358721398 +0.73686836001924916 0.97695877739735271 +0.70759404620555011 -0.47582366470256532 +0.40578491861977373 -0.86781462696767031 +-0.91706920435081396 0.47939995535020552 +-0.30743139150410348 -0.48246979048679195 +0.9081370577745389 -0.52899973720381488 +0.82234976594361764 0.98220077091295277 +0.061621868844011329 -0.88293190912996522 +0.35651480219957965 0.029205086428567339 +-0.25515044639450335 0.77648614452669196 +0.78231863496457055 0.075165001645172591 +-0.59960090511623987 -0.45726838129474401 +0.62409805869634405 -0.076075710823128251 +-0.1999165947341911 -0.82003897598179498 +-0.17853941479386914 -0.65291463501476965 +-0.95721075461739269 0.71208135706372877 +0.3234731641041293 -0.68419501299736019 +-0.91851942140518261 -0.98408417905533285 +0.78936876293285407 0.37784010049059624 +0.99111000777823377 0.90488413187833538 +-0.91923557597804995 -0.75676291593621037 +-0.48933567222177132 0.68716589416272522 +-0.86315411479449611 0.74709200166340306 +-0.16540298990964308 0.35327130014363561 +-0.46072066293673719 -0.64673396057841137 +0.16874004527953823 -0.065165643040005161 +-0.32430222765028294 -0.38674177350980055 +-0.6247559879529454 0.22306054597926228 +-0.67397013556712637 -0.69546623727089996 +0.54082247675300699 -0.2800355340973657 +-0.44896904077516941 0.16190798284516306 +-0.98422501107473859 0.38339495671284451 +0.75609920741821646 0.89247304067833766 +0.55932780533237603 0.067998567460857418 +0.64356764619443596 0.46632962376662435 +-0.31849045003709431 0.32835188523257952 +0.30189173155868354 0.39958284080490802 +-0.6527933709055489 0.94690172420529173 +0.34708425512843721 -0.49264324563579331 +-0.38529783300898102 -0.64935216409294272 +-0.5841174651163018 0.60896561266037197 +0.40473601855400609 0.77087733645901535 +0.31283677299033075 -0.47051293371999925 +0.31644978804295332 0.98932031668008324 +0.79266693290800583 0.093045907750335388 +-0.037822879392966691 0.61657807876708004 +-0.20950471959349992 -0.43455471328321194 +-0.74215801005158055 -0.26243177101508841 +43 50 +43 92 \ No newline at end of file diff --git a/include/CDT/tests/inputs/triple-hanging-flipped.txt b/include/CDT/tests/inputs/triple-hanging-flipped.txt new file mode 100644 index 0000000..564ced8 --- /dev/null +++ b/include/CDT/tests/inputs/triple-hanging-flipped.txt @@ -0,0 +1,10 @@ +8 1 +0 -40 +20 -37 +30 -43 +40 -37 +60 -40 +30 -45 +30 -48 +30 -55 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/triple-hanging.txt b/include/CDT/tests/inputs/triple-hanging.txt new file mode 100644 index 0000000..98d9fbd --- /dev/null +++ b/include/CDT/tests/inputs/triple-hanging.txt @@ -0,0 +1,10 @@ +8 1 +0 40 +20 37 +30 43 +40 37 +60 40 +30 45 +30 48 +30 55 +0 4 \ No newline at end of file diff --git a/include/CDT/tests/inputs/unit square.txt b/include/CDT/tests/inputs/unit square.txt new file mode 100644 index 0000000..61d3ecd --- /dev/null +++ b/include/CDT/tests/inputs/unit square.txt @@ -0,0 +1,9 @@ +4 4 +0 0 +1 0 +1 1 +0 1 +0 1 +1 2 +2 3 +3 0 \ No newline at end of file diff --git a/include/Helpers/SCollision.hpp b/include/Helpers/SCollision.hpp index 0d6327c..ec7eeb4 100644 --- a/include/Helpers/SCollision.hpp +++ b/include/Helpers/SCollision.hpp @@ -39,6 +39,10 @@ namespace SCollision { min(initMin), max(initMax) {} + AABB(const SkRect& r): + min(r.TL), + max(r.BR) + {} Vector min; Vector max; Vector center() const { return (min + max) / T(2); } @@ -548,6 +552,17 @@ namespace SCollision { } } + template void is_collide_triangle_bounds_func(const Collider& collider, const std::function&)> triangleFunc) const { + if(!collide(get_bounds(collider), get_bounds(objects))) + return; + for(auto& t : objects.triangle) { + if(collide(t.bounds, collider)) + triangleFunc(t); + } + for(const auto& c : children) + c.is_collide_triangle_bounds_func(collider, triangleFunc); + } + template bool is_collide(const Collider& collider) const { if(!collide(get_bounds(collider), get_bounds(objects))) return false; diff --git a/src/CanvasComponents/BrushComponentCode.cpp b/src/CanvasComponents/BrushComponentCode.cpp new file mode 100644 index 0000000..39c30ed --- /dev/null +++ b/src/CanvasComponents/BrushComponentCode.cpp @@ -0,0 +1,287 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "BrushComponentCode.hpp" +#include +#include +#include "../TimePoint.hpp" +#include +#include + +#define DEFAULT_SMOOTHNESS 3 + +namespace BrushComponentCode { + +MeshShapeData brush_stroke_to_mesh_points(const std::vector& brushPoints, bool hasRoundCaps) { + std::vector points = smooth_points(brushPoints, 0, brushPoints.size() - 1, DEFAULT_SMOOTHNESS); + std::vector unprocessedPoints; + create_triangles(unprocessedPoints, brushPoints, points, hasRoundCaps); + using namespace Clipper2Lib; + PathsD clippingSubjects; + auto& shape = clippingSubjects.emplace_back(); + for(const Vector2f& p : unprocessedPoints) + shape.emplace_back(p.x(), p.y()); + clippingSubjects = SimplifyPaths(clippingSubjects, 0.1); + + ClipperD clipper; + PolyTreeD solutionTree; + + clipper.AddSubject(clippingSubjects); + clipper.AddClip(clippingSubjects); + clipper.Execute(ClipType::Union, FillRule::NonZero, solutionTree); + + MeshShapeData meshData; + + for(auto& treeChild : solutionTree) { + meshData.contours.emplace_back(); + for(auto& point : treeChild->Polygon()) + meshData.contours.back().emplace_back(point.x, point.y); + for(auto& hole : *treeChild) { + meshData.contours.emplace_back(); + for(auto& point : hole->Polygon()) + meshData.contours.back().emplace_back(point.x, point.y); + } + break; + } + + return meshData; +} + +std::vector get_wedge_indices(const std::vector& points) { + if(points.size() < 2) + return {}; + std::vector toRet; + toRet.emplace_back(0); + for(size_t i = 1; i < points.size() - 1; i++) { + Vector2f v1Norm = (points[i - 1].pos - points[i].pos).normalized(); + Vector2f v2Norm = (points[i + 1].pos - points[i].pos).normalized(); + if(v1Norm.dot(v2Norm) > -0.6f) + toRet.emplace_back(i); + } + toRet.emplace_back(points.size() - 1); + return toRet; +} + +std::vector smooth_points(const std::vector& points, size_t beginIndex, size_t endIndex, unsigned numOfDivisions) { + size_t pointsSize = endIndex - beginIndex + 1; + if(pointsSize < 2) + return {points[beginIndex], points[endIndex]}; + + std::vector toRet; + + BrushPoint p0 = points[beginIndex]; + p0.pos = p0.pos + p0.width * (p0.pos - points[beginIndex + 1].pos).normalized(); + BrushPoint p1 = points[beginIndex]; + BrushPoint p2 = points[beginIndex + 1]; + BrushPoint p3; + + for(size_t i = beginIndex; i < endIndex; i++) { + + if(i == endIndex - 1) { + p3 = points[i + 1]; + p3.pos = p3.pos + p3.width * (p3.pos - points[i].pos).normalized(); + } + else + p3 = points[i + 2]; + + toRet.emplace_back(p1); + + float tMove = 1.0 / static_cast(numOfDivisions); + for(unsigned d = 1; d < numOfDivisions; d++) { + float t = tMove * static_cast(d); + BrushPoint pToAdd; + pToAdd.pos = catmull_rom(p0.pos, p1.pos, p2.pos, p3.pos, t); + pToAdd.width = std::lerp(p1.width, p2.width, t); + if(!(std::isnan(pToAdd.pos.x()) || std::isnan(pToAdd.pos.y()))) // Don't add NAN values + toRet.emplace_back(pToAdd); + } + p0 = p1; + p1 = p2; + p2 = p3; + } + toRet.emplace_back(points[endIndex]); + + return toRet; +} + +void create_triangles(std::vector& brushMeshPointList, const std::vector& regularPoints, const std::vector& smoothedPoints, bool hasRoundCaps) { + const int ARC_SMOOTHNESS = 10; + const int CIRCLE_SMOOTHNESS = 20; + const std::vector& pointsN = regularPoints; + std::vector topPoints; + std::vector bottomPoints; + + if(pointsN.size() == 1 && hasRoundCaps) { + std::vector circlePoints = gen_circle_points(pointsN.front().pos, pointsN.front().width / 2.0f, CIRCLE_SMOOTHNESS); + for(size_t i = 0; i < circlePoints.size(); i++) { + topPoints.emplace_back(convert_vec2(circlePoints[i])); + } + } + + if(pointsN.size() < 2) { + if(!topPoints.empty()) { + for(auto& p : topPoints) + brushMeshPointList.emplace_back(convert_vec2(p)); + } + return; + } + + auto& points = smoothedPoints; + + std::vector wedgeIndices = get_wedge_indices(points); + for(size_t i = 0; i < wedgeIndices.size() - 1; i++) { + + size_t pointsBegin = wedgeIndices[i]; + size_t pointsEnd = wedgeIndices[i + 1]; + + std::array vertArray; + size_t newIndex = 0; + + Vector2f perpPrev = perpendicular_vec2((points[pointsBegin + 1].pos - points[pointsBegin].pos).eval()); + perpPrev.normalize(); + + vertArray[0] = points[pointsBegin].pos + perpPrev * points[pointsBegin].width * 0.5f; + topPoints.emplace_back(convert_vec2(vertArray[0])); + vertArray[1] = points[pointsBegin].pos - perpPrev * points[pointsBegin].width * 0.5f; + bottomPoints.emplace_back(convert_vec2(vertArray[1])); + newIndex = 2; + + if(hasRoundCaps && pointsBegin == 0) { + Vector2f arcDirStart = (convert_vec2(vertArray[0]) - points[0].pos).normalized(); + Vector2f arcDirEnd = (convert_vec2(vertArray[1]) - points[0].pos).normalized(); + Vector2f arcDirCenter = (points[0].pos - points[1].pos).normalized(); + std::vector arcPoints = arc_vec(points[0].pos, arcDirStart, arcDirEnd, arcDirCenter, points[0].width * 0.5f, ARC_SMOOTHNESS); + arcPoints.emplace(arcPoints.begin(), convert_vec2(vertArray[0])); + arcPoints.emplace_back(convert_vec2(vertArray[1])); + for(size_t i = 0; i < arcPoints.size() - 1; i++) { + bottomPoints.emplace_back(convert_vec2(arcPoints[i])); + } + bottomPoints.emplace_back(convert_vec2(arcPoints.back())); + } + + for(size_t j = pointsBegin + 1; j < pointsEnd; j++) { + if(j >= pointsEnd) + j = pointsEnd - 1; + + Vector2f v1 = points[j - 1].pos - points[j].pos; + Vector2f v2 = points[j].pos - points[j + 1].pos; + Vector2f perp = perpendicular_vec2((v1 + v2).eval()).normalized(); + if(std::isnan(perp.dot(perpPrev))) { + std::cout << "NAN FOUND" << std::endl; + std::cout << v1 << std::endl; + std::cout << v2 << std::endl; + std::cout << perp << std::endl; + std::cout << perpPrev << std::endl; + throw 1; + } + if(perp.dot(perpPrev) < 0.0) + perp = -perp; + + vertArray[newIndex] = points[j].pos + perp * 0.5f * points[j].width; + topPoints.emplace_back(convert_vec2(vertArray[newIndex])); + newIndex = (newIndex + 1) % 3; + + vertArray[newIndex] = points[j].pos - perp * 0.5f * points[j].width; + bottomPoints.emplace_back(convert_vec2(vertArray[newIndex])); + newIndex = (newIndex + 1) % 3; + + perpPrev = perp; + } + + Vector2f rectDir = points[pointsEnd - 1].pos - points[pointsEnd].pos; + rectDir.normalize(); + Vector2f perp = perpendicular_vec2(rectDir); + if(perp.dot(perpPrev) < 0.0) + perp = -perp; + vertArray[newIndex] = points[pointsEnd].pos + perp * points[pointsEnd].width * 0.5; + topPoints.emplace_back(convert_vec2(vertArray[newIndex])); + newIndex = (newIndex + 1) % 3; + + vertArray[newIndex] = points[pointsEnd].pos - perp * points[pointsEnd].width * 0.5; + bottomPoints.emplace_back(convert_vec2(vertArray[newIndex])); + newIndex = (newIndex + 1) % 3; + + // Render wedge + if(pointsEnd != points.size() - 1) { + // Find 4 points involved in intersection + Vector2f currentP1 = points[pointsEnd].pos - perp * points[pointsEnd].width * 0.5; + Vector2f currentP2 = points[pointsEnd].pos + perp * points[pointsEnd].width * 0.5; + Vector2f nextRectDir = points[pointsEnd + 1].pos - points[pointsEnd].pos; + nextRectDir.normalize(); + Vector2f nextPerp = perpendicular_vec2(nextRectDir); + Vector2f nextP1 = points[pointsEnd].pos - nextPerp * points[pointsEnd].width * 0.5; + Vector2f nextP2 = points[pointsEnd].pos + nextPerp * points[pointsEnd].width * 0.5; + + // Find center of wedge + Vector2f wedgeCenter = line_line_intersection(currentP1, currentP2, nextP1, nextP2); + + Vector2f wedgeP1 = ((currentP1 - currentP2).dot(nextRectDir)) <= 0.0 ? currentP1 : currentP2; + Vector2f wedgeP2 = ((nextP1 - nextP2).dot(rectDir)) <= 0.0 ? nextP1 : nextP2; + bool isTopWedge = wedgeP1 == convert_vec2(topPoints.back()); + + float arcRadius; + + std::vector arcPoints; + + if(wedgeCenter.x() == std::numeric_limits::max()) { + wedgeCenter = (currentP1 + currentP2) * 0.5; + wedgeP1 = currentP1; + wedgeP2 = currentP2; + arcRadius = points[pointsEnd].width * 0.5; + arcPoints = arc_vec(wedgeCenter, (wedgeP1 - wedgeCenter).normalized(), (wedgeP2 - wedgeCenter).normalized(), (-rectDir).eval(), arcRadius, ARC_SMOOTHNESS); + } + else { + arcRadius = (wedgeCenter - wedgeP1).norm(); + arcPoints = arc_vec(wedgeCenter, (wedgeP1 - wedgeCenter).normalized(), (wedgeP2 - wedgeCenter).normalized(), lerp_vec((-rectDir).eval(), (-nextRectDir).eval(), 0.5).normalized(), arcRadius, ARC_SMOOTHNESS); + } + + arcPoints.emplace(arcPoints.begin(), wedgeP1); + arcPoints.emplace_back(wedgeP2); + for(size_t i = 0; i < arcPoints.size() - 1; i++) { + if(isTopWedge) + topPoints.emplace_back(convert_vec2(arcPoints[i])); + else + bottomPoints.emplace_back(convert_vec2(arcPoints[i])); + } + if(isTopWedge) + topPoints.emplace_back(convert_vec2(arcPoints.back())); + else + bottomPoints.emplace_back(convert_vec2(arcPoints.back())); + } + else if(hasRoundCaps) { // It's the last point, cap it off + Vector2f arcDirStart = (convert_vec2(vertArray[(newIndex + 1) % 3]) - points.back().pos).normalized(); + Vector2f arcDirEnd = (convert_vec2(vertArray[(newIndex + 2) % 3]) - points.back().pos).normalized(); + Vector2f arcDirCenter = -rectDir; + std::vector arcPoints = arc_vec(points.back().pos, arcDirStart, arcDirEnd, arcDirCenter, points.back().width * 0.5f, ARC_SMOOTHNESS); + arcPoints.emplace(arcPoints.begin(), convert_vec2(vertArray[(newIndex + 1) % 3])); + arcPoints.emplace_back(convert_vec2(vertArray[(newIndex + 2) % 3])); + for(size_t i = 0; i < arcPoints.size() - 1; i++) { + topPoints.emplace_back(convert_vec2(arcPoints[i])); + } + topPoints.emplace_back(convert_vec2(arcPoints.back())); + } + } + + if(!topPoints.empty()) { + topPoints.insert(topPoints.begin(), bottomPoints.rbegin(), bottomPoints.rend()); + for(auto& p : topPoints) + brushMeshPointList.emplace_back(convert_vec2(p)); + } +} + +} diff --git a/src/CanvasComponents/BrushComponentCode.hpp b/src/CanvasComponents/BrushComponentCode.hpp new file mode 100644 index 0000000..10b7c78 --- /dev/null +++ b/src/CanvasComponents/BrushComponentCode.hpp @@ -0,0 +1,43 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "../CoordSpaceHelper.hpp" +#include + +struct MeshShapeData { + std::vector> contours; + template void serialize(Archive& a) { + a(contours); + } +}; + +namespace BrushComponentCode { + struct BrushPoint { + Vector2f pos; + float width; + template void serialize(Archive& a) { + a(pos, width); + } + }; + + MeshShapeData brush_stroke_to_mesh_points(const std::vector& brushPoints, bool hasRoundCaps); + void create_triangles(std::vector& brushMeshPointList, const std::vector& regularPoints, const std::vector& smoothedPoints, bool hasRoundCaps); + std::vector get_wedge_indices(const std::vector& points); + std::vector smooth_points(const std::vector& points, size_t beginIndex, size_t endIndex, unsigned numOfDivisions); +} diff --git a/src/CanvasComponents/BrushStrokeCanvasComponent.cpp b/src/CanvasComponents/BrushStrokeCanvasComponent.cpp deleted file mode 100644 index 75a636d..0000000 --- a/src/CanvasComponents/BrushStrokeCanvasComponent.cpp +++ /dev/null @@ -1,574 +0,0 @@ -/* - * InfiniPaint - * Copyright (C) 2025-2026 Yousef Khadadeh - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "BrushStrokeCanvasComponent.hpp" -#include -#include -#include -#include -#include "Eigen/Core" -#include "Helpers/MathExtras.hpp" -#include "../TimePoint.hpp" -#include -#include -#include -#include "../DrawCollision.hpp" -#include "CanvasComponentContainer.hpp" -#include "Helpers/SCollision.hpp" - -#define AABB_PRECHECK_BVH_LEVELS 2 -#define DEFAULT_SMOOTHNESS 5 - -void BrushStrokeCanvasComponent::save(cereal::PortableBinaryOutputArchive& a) const { - a(*d.points, d.color, d.hasRoundCaps); -} - -void BrushStrokeCanvasComponent::load(cereal::PortableBinaryInputArchive& a) { - a(*d.points, d.color, d.hasRoundCaps); -} - -void BrushStrokeCanvasComponent::save_file(cereal::PortableBinaryOutputArchive& a) const { - a(*d.points, d.color, d.hasRoundCaps); -} - -void BrushStrokeCanvasComponent::load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version) { - a(*d.points, d.color, d.hasRoundCaps); -} - -std::unique_ptr BrushStrokeCanvasComponent::get_data_copy() const { - auto toRet = std::make_unique(); - toRet->d = d; - return toRet; -} - -CanvasComponentType BrushStrokeCanvasComponent::get_type() const { - return CanvasComponentType::BRUSHSTROKE; -} - -void BrushStrokeCanvasComponent::change_stroke_color(const Vector4f& newStrokeColor) { - d.color = newStrokeColor; -} - -std::optional BrushStrokeCanvasComponent::get_stroke_color() const { - return d.color; -} - -void BrushStrokeCanvasComponent::draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const { - SkPaint paint; - paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); - paint.setAntiAlias(drawData.skiaAA); - - unsigned mipmapLevel = compContainer ? compContainer->get_mipmap_level(drawData) : 0; - - if(mipmapLevel == 0 || drawData.takingScreenshot) // check takingScreenshot, to make sure that screenshots dont use LOD - canvas->drawPath(*brushPath, paint); - else - canvas->drawPath(*brushPathLOD[mipmapLevel - 1], paint); - - //SkPaint paint2; - //paint2.setColor4f(SkColor4f{1.0f, 0.0f, 0.0f, 1.0f}); - //paint2.setStroke(true); - //SCollision::ColliderCollection strokeObjects; - //std::vector points = smooth_points(0, d.points->size() - 1, DEFAULT_SMOOTHNESS); - //create_triangles([&](Vector2f a, Vector2f b, Vector2f c) { - // strokeObjects.triangle.emplace_back(a, b, c); - // return false; - //}, points, 0, nullptr); - //strokeObjects.recalculate_bounds(); - //draw_collider(canvas, drawData, strokeObjects, paint2); -} - -std::shared_ptr BrushStrokeCanvasComponent::get_predraw_data_accurate(const DrawData& drawData, const CoordSpaceHelper& coords) const { - std::vector points = smooth_points(0, d.points->size() - 1, DEFAULT_SMOOTHNESS); - - SCollision::AABB viewGenerousColliderInObjSpace = coords.world_collider_to_coords>(drawData.cam.viewingAreaGenerousCollider); - viewGenerousColliderInObjSpace.min -= Vector2f{1.0f, 1.0f}; - viewGenerousColliderInObjSpace.max += Vector2f{1.0f, 1.0f}; - - std::vector> finalTrianglePoints; - - auto triangleFunc = [&](Vector2f a, Vector2f b, Vector2f c) { - SCollision::Triangle triCollider = {a, b, c}; - - if(SCollision::collide(triCollider.bounds, viewGenerousColliderInObjSpace)) { - auto clipListFunc = [](const std::vector>& clipList, const std::array& axisLineSegment, const std::function& isInClippingAreaFunc) { - std::vector> resultList; - for(auto& t : clipList) - clip_triangle_against_axis(resultList, t, axisLineSegment, isInClippingAreaFunc); - return resultList; - }; - - std::vector> clipList; - clipList.emplace_back(std::array{coords.from_space(a), coords.from_space(b), coords.from_space(c)}); - clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.min, drawData.cam.viewingAreaGenerousCollider.top_right()}, [&](const WorldVec& p) { - return p.y() > drawData.cam.viewingAreaGenerousCollider.min.y(); - }); - clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.max, drawData.cam.viewingAreaGenerousCollider.bottom_left()}, [&](const WorldVec& p) { - return p.y() < drawData.cam.viewingAreaGenerousCollider.max.y(); - }); - clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.min, drawData.cam.viewingAreaGenerousCollider.bottom_left()}, [&](const WorldVec& p) { - return p.x() > drawData.cam.viewingAreaGenerousCollider.min.x(); - }); - clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.max, drawData.cam.viewingAreaGenerousCollider.top_right()}, [&](const WorldVec& p) { - return p.x() < drawData.cam.viewingAreaGenerousCollider.max.x(); - }); - for(auto& tri : clipList) { - auto& c = drawData.cam.c; - finalTrianglePoints.emplace_back(std::array{convert_vec2(c.to_space(tri[0])), convert_vec2(c.to_space(tri[1])), convert_vec2(c.to_space(tri[2]))}); - } - } - return false; - }; - - create_triangles(triangleFunc, points, 0, nullptr); - - // Match points that are close enough. I don't think this is required. - //if(!finalTrianglePoints.empty()) { - // for(size_t i = 0; i < finalTrianglePoints.size() - 1; i++) { - // for(size_t j = 0; j < 3; j++) { - // for(size_t k = i + 1; k < finalTrianglePoints.size(); k++) { - // for(size_t l = 0; l < 3; l++) { - // if(std::fabs(finalTrianglePoints[i][j].fX - finalTrianglePoints[k][l].fX) < 0.0001f && std::fabs(finalTrianglePoints[i][j].fY - finalTrianglePoints[k][l].fY) < 0.0001f && finalTrianglePoints[k][l] != finalTrianglePoints[i][j]) - // finalTrianglePoints[k][l] = finalTrianglePoints[i][j]; - // } - // } - // } - // } - //} - - if(finalTrianglePoints.empty()) - return nullptr; - else if(drawData.isSVGRender) { - auto pathsToDraw = std::make_shared>(); - for(auto& finalTriangle : finalTrianglePoints) { - SkPathBuilder pathBuilder; - pathBuilder.addPolygon({finalTriangle.data(), finalTriangle.size()}, true); - pathsToDraw->emplace_back(pathBuilder.detach()); - } - return pathsToDraw; - } - else { - std::vector pointVec(finalTrianglePoints.size() * 3); - for(size_t i = 0; i < finalTrianglePoints.size(); i++) { - pointVec[i * 3 + 0] = finalTrianglePoints[i][0]; - pointVec[i * 3 + 1] = finalTrianglePoints[i][1]; - pointVec[i * 3 + 2] = finalTrianglePoints[i][2]; - } - auto verticesToDraw = std::make_shared>(); - *verticesToDraw = SkVertices::MakeCopy(SkVertices::kTriangles_VertexMode, pointVec.size(), pointVec.data(), nullptr, nullptr); - return verticesToDraw; - } - return nullptr; -} - -bool BrushStrokeCanvasComponent::accurate_draw(SkCanvas* canvas, const DrawData& drawData, const CoordSpaceHelper& coords, const std::shared_ptr& predrawData) const { - if(predrawData) { - if(drawData.isSVGRender) { // SVG renders can't use saveLayer, so use this despite it being buggy in some scenarios - auto pathsToDraw = std::static_pointer_cast>(predrawData); - SkPaint paint; - paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); - for(const SkPath& p : *pathsToDraw) - canvas->drawPath(p, paint); - } - else if(d.color.w() == 1.0f) { - auto verticesToDraw = std::static_pointer_cast>(predrawData); - SkPaint paint; - paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); - canvas->drawVertices(*verticesToDraw, SkBlendMode::kSrcOver, paint); - } - else { - canvas->saveLayerAlphaf(nullptr, d.color.w()); - auto verticesToDraw = std::static_pointer_cast>(predrawData); - SkPaint paint; - paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), 1.0f}); - canvas->drawVertices(*verticesToDraw, SkBlendMode::kSrcOver, paint); - canvas->restore(); - } - } - - return true; -} - -void BrushStrokeCanvasComponent::set_data_from(const CanvasComponent& other) { - auto& otherStroke = static_cast(other); - d = otherStroke.d; -} - -void BrushStrokeCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { - if(!d.points->empty()) { - std::vector points = smooth_points(0, d.points->size() - 1, DEFAULT_SMOOTHNESS); - auto triangleFunc = [&](Vector2f a, Vector2f b, Vector2f c) { - return false; - }; - - auto brushPathBuilder = std::make_shared(); - auto brushPathLOD0Builder = std::make_shared(); - auto brushPathLOD1Builder = std::make_shared(); - - create_triangles(triangleFunc, points, 0, brushPathBuilder); - create_triangles(triangleFunc, points, 4, brushPathLOD0Builder); - create_triangles(triangleFunc, points, 30, brushPathLOD1Builder); - - brushPath = std::make_shared(brushPathBuilder->detach()); - brushPathLOD[0] = std::make_shared(brushPathLOD0Builder->detach()); - brushPathLOD[1] = std::make_shared(brushPathLOD1Builder->detach()); - } - create_collider(); -} - -std::vector BrushStrokeCanvasComponent::get_wedge_indices(const std::vector& points) const { - if(points.size() < 2) - return {}; - std::vector toRet; - toRet.emplace_back(0); - for(size_t i = 1; i < points.size() - 1; i++) { - Vector2f v1Norm = (points[i - 1].pos - points[i].pos).normalized(); - Vector2f v2Norm = (points[i + 1].pos - points[i].pos).normalized(); - if(v1Norm.dot(v2Norm) > -0.6f) - toRet.emplace_back(i); - } - toRet.emplace_back(points.size() - 1); - return toRet; -} - -std::vector BrushStrokeCanvasComponent::smooth_points(size_t beginIndex, size_t endIndex, unsigned numOfDivisions) const { - std::vector& points = *d.points; - - size_t pointsSize = endIndex - beginIndex + 1; - if(pointsSize < 2) - return {points[beginIndex], points[endIndex]}; - - std::vector toRet; - - BrushStrokeCanvasComponentPoint p0 = points[beginIndex]; - p0.pos = p0.pos + p0.width * (p0.pos - points[beginIndex + 1].pos).normalized(); - BrushStrokeCanvasComponentPoint p1 = points[beginIndex]; - BrushStrokeCanvasComponentPoint p2 = points[beginIndex + 1]; - BrushStrokeCanvasComponentPoint p3; - - for(size_t i = beginIndex; i < endIndex; i++) { - - if(i == endIndex - 1) { - p3 = points[i + 1]; - p3.pos = p3.pos + p3.width * (p3.pos - points[i].pos).normalized(); - } - else - p3 = points[i + 2]; - - toRet.emplace_back(p1); - - float tMove = 1.0 / static_cast(numOfDivisions); - for(unsigned d = 1; d < numOfDivisions; d++) { - float t = tMove * static_cast(d); - BrushStrokeCanvasComponentPoint pToAdd; - pToAdd.pos = catmull_rom(p0.pos, p1.pos, p2.pos, p3.pos, t); - pToAdd.width = std::lerp(p1.width, p2.width, t); - if(!(std::isnan(pToAdd.pos.x()) || std::isnan(pToAdd.pos.y()))) // Don't add NAN values - toRet.emplace_back(pToAdd); - } - p0 = p1; - p1 = p2; - p2 = p3; - } - toRet.emplace_back(points[endIndex]); - - return toRet; -} - -std::vector BrushStrokeCanvasComponent::smooth_points_avg(size_t beginIndex, size_t endIndex, unsigned numOfDivisions) const { - std::vector& points = *d.points; - - size_t pointsSize = endIndex - beginIndex + 1; - if(pointsSize < 2) - return {points[beginIndex], points[endIndex]}; - - std::vector toRet; - - for(size_t i = beginIndex; i < endIndex; i++) { - const BrushStrokeCanvasComponentPoint& p1 = points[i]; - const BrushStrokeCanvasComponentPoint& p2 = points[i + 1]; - - float tMove = 1.0 / static_cast(numOfDivisions); - for(unsigned d = 0; d < numOfDivisions; d++) { - float t = tMove * static_cast(d); - BrushStrokeCanvasComponentPoint pToAdd; - pToAdd.pos = lerp_vec(p1.pos, p2.pos, t); - pToAdd.width = std::lerp(p1.width, p2.width, t); - if(!(std::isnan(pToAdd.pos.x()) || std::isnan(pToAdd.pos.y()))) // Don't add NAN values - toRet.emplace_back(pToAdd); - } - } - - toRet.emplace_back(points[endIndex]); - - return toRet; -} - -std::vector BrushStrokeCanvasComponent::every_nth_point_include_front_and_back(const std::vector& pts, size_t n) const { - if(pts.size() <= 3 || n == 0) - return pts; - std::vector toRet; - toRet.emplace_back(pts.front()); - for(size_t i = n; i < pts.size() - 1; i += n) - toRet.emplace_back(pts[i]); - toRet.emplace_back(pts.back()); - return toRet; -} - -void BrushStrokeCanvasComponent::create_triangles(const std::function& passTriangleFunc, const std::vector& smoothedPoints, size_t skipVertexCount, std::shared_ptr bPathBuilder) const { - const int ARC_SMOOTHNESS = 10; - const int CIRCLE_SMOOTHNESS = 20; - const std::vector& pointsN = *d.points; - std::vector topPoints; - std::vector bottomPoints; - - if(pointsN.size() == 1 && d.hasRoundCaps) { - std::vector circlePoints = gen_circle_points(pointsN.front().pos, pointsN.front().width / 2.0f, CIRCLE_SMOOTHNESS); - for(size_t i = 0; i < circlePoints.size(); i++) { - if(passTriangleFunc(pointsN.front().pos, circlePoints[i], circlePoints[(i + 1) % circlePoints.size()])) return; - topPoints.emplace_back(convert_vec2(circlePoints[i])); - } - } - - if(pointsN.size() < 2) { - if(bPathBuilder && !topPoints.empty()) - bPathBuilder->addPolygon({topPoints.data(), topPoints.size()}, false); - return; - } - - auto points = every_nth_point_include_front_and_back(smoothedPoints, skipVertexCount); - - std::vector wedgeIndices = get_wedge_indices(points); - for(size_t i = 0; i < wedgeIndices.size() - 1; i++) { - - size_t pointsBegin = wedgeIndices[i]; - size_t pointsEnd = wedgeIndices[i + 1]; - - std::array vertArray; - size_t newIndex = 0; - - Vector2f perpPrev = perpendicular_vec2((points[pointsBegin + 1].pos - points[pointsBegin].pos).eval()); - perpPrev.normalize(); - - vertArray[0] = points[pointsBegin].pos + perpPrev * points[pointsBegin].width * 0.5f; - topPoints.emplace_back(convert_vec2(vertArray[0])); - vertArray[1] = points[pointsBegin].pos - perpPrev * points[pointsBegin].width * 0.5f; - bottomPoints.emplace_back(convert_vec2(vertArray[1])); - newIndex = 2; - - if(d.hasRoundCaps && pointsBegin == 0) { - Vector2f arcDirStart = (convert_vec2(vertArray[0]) - points[0].pos).normalized(); - Vector2f arcDirEnd = (convert_vec2(vertArray[1]) - points[0].pos).normalized(); - Vector2f arcDirCenter = (points[0].pos - points[1].pos).normalized(); - std::vector arcPoints = arc_vec(points[0].pos, arcDirStart, arcDirEnd, arcDirCenter, points[0].width * 0.5f, ARC_SMOOTHNESS); - arcPoints.emplace(arcPoints.begin(), convert_vec2(vertArray[0])); - arcPoints.emplace_back(convert_vec2(vertArray[1])); - for(size_t i = 0; i < arcPoints.size() - 1; i++) { - if(passTriangleFunc(points[0].pos, arcPoints[i], arcPoints[i + 1])) return; - bottomPoints.emplace_back(convert_vec2(arcPoints[i])); - } - bottomPoints.emplace_back(convert_vec2(arcPoints.back())); - } - - for(size_t j = pointsBegin + 1; j < pointsEnd; j++) { - if(j >= pointsEnd) - j = pointsEnd - 1; - - Vector2f v1 = points[j - 1].pos - points[j].pos; - Vector2f v2 = points[j].pos - points[j + 1].pos; - Vector2f perp = perpendicular_vec2((v1 + v2).eval()).normalized(); - if(std::isnan(perp.dot(perpPrev))) { - std::cout << "NAN FOUND" << std::endl; - std::cout << v1 << std::endl; - std::cout << v2 << std::endl; - std::cout << perp << std::endl; - std::cout << perpPrev << std::endl; - throw 1; - } - if(perp.dot(perpPrev) < 0.0) - perp = -perp; - - vertArray[newIndex] = points[j].pos + perp * 0.5f * points[j].width; - topPoints.emplace_back(convert_vec2(vertArray[newIndex])); - newIndex = (newIndex + 1) % 3; - if(passTriangleFunc(vertArray[0], vertArray[1], vertArray[2])) return; - - vertArray[newIndex] = points[j].pos - perp * 0.5f * points[j].width; - bottomPoints.emplace_back(convert_vec2(vertArray[newIndex])); - newIndex = (newIndex + 1) % 3; - if(passTriangleFunc(vertArray[0], vertArray[1], vertArray[2])) return; - - perpPrev = perp; - } - - Vector2f rectDir = points[pointsEnd - 1].pos - points[pointsEnd].pos; - rectDir.normalize(); - Vector2f perp = perpendicular_vec2(rectDir); - if(perp.dot(perpPrev) < 0.0) - perp = -perp; - vertArray[newIndex] = points[pointsEnd].pos + perp * points[pointsEnd].width * 0.5; - topPoints.emplace_back(convert_vec2(vertArray[newIndex])); - newIndex = (newIndex + 1) % 3; - if(passTriangleFunc(vertArray[0], vertArray[1], vertArray[2])) return; - - vertArray[newIndex] = points[pointsEnd].pos - perp * points[pointsEnd].width * 0.5; - bottomPoints.emplace_back(convert_vec2(vertArray[newIndex])); - newIndex = (newIndex + 1) % 3; - if(passTriangleFunc(vertArray[0], vertArray[1], vertArray[2])) return; - - // Render wedge - if(pointsEnd != points.size() - 1) { - // Find 4 points involved in intersection - Vector2f currentP1 = points[pointsEnd].pos - perp * points[pointsEnd].width * 0.5; - Vector2f currentP2 = points[pointsEnd].pos + perp * points[pointsEnd].width * 0.5; - Vector2f nextRectDir = points[pointsEnd + 1].pos - points[pointsEnd].pos; - nextRectDir.normalize(); - Vector2f nextPerp = perpendicular_vec2(nextRectDir); - Vector2f nextP1 = points[pointsEnd].pos - nextPerp * points[pointsEnd].width * 0.5; - Vector2f nextP2 = points[pointsEnd].pos + nextPerp * points[pointsEnd].width * 0.5; - - // Find center of wedge - Vector2f wedgeCenter = line_line_intersection(currentP1, currentP2, nextP1, nextP2); - - Vector2f wedgeP1 = ((currentP1 - currentP2).dot(nextRectDir)) <= 0.0 ? currentP1 : currentP2; - Vector2f wedgeP2 = ((nextP1 - nextP2).dot(rectDir)) <= 0.0 ? nextP1 : nextP2; - bool isTopWedge = wedgeP1 == convert_vec2(topPoints.back()); - - float arcRadius; - - std::vector arcPoints; - - if(wedgeCenter.x() == std::numeric_limits::max()) { - wedgeCenter = (currentP1 + currentP2) * 0.5; - wedgeP1 = currentP1; - wedgeP2 = currentP2; - arcRadius = points[pointsEnd].width * 0.5; - arcPoints = arc_vec(wedgeCenter, (wedgeP1 - wedgeCenter).normalized(), (wedgeP2 - wedgeCenter).normalized(), (-rectDir).eval(), arcRadius, ARC_SMOOTHNESS); - } - else { - arcRadius = (wedgeCenter - wedgeP1).norm(); - arcPoints = arc_vec(wedgeCenter, (wedgeP1 - wedgeCenter).normalized(), (wedgeP2 - wedgeCenter).normalized(), lerp_vec((-rectDir).eval(), (-nextRectDir).eval(), 0.5).normalized(), arcRadius, ARC_SMOOTHNESS); - } - - arcPoints.emplace(arcPoints.begin(), wedgeP1); - arcPoints.emplace_back(wedgeP2); - for(size_t i = 0; i < arcPoints.size() - 1; i++) { - if(passTriangleFunc(wedgeCenter, arcPoints[i], arcPoints[i + 1])) return; - if(isTopWedge) - topPoints.emplace_back(convert_vec2(arcPoints[i])); - else - bottomPoints.emplace_back(convert_vec2(arcPoints[i])); - } - if(isTopWedge) - topPoints.emplace_back(convert_vec2(arcPoints.back())); - else - bottomPoints.emplace_back(convert_vec2(arcPoints.back())); - } - else if(d.hasRoundCaps) { // It's the last point, cap it off - Vector2f arcDirStart = (convert_vec2(vertArray[(newIndex + 1) % 3]) - points.back().pos).normalized(); - Vector2f arcDirEnd = (convert_vec2(vertArray[(newIndex + 2) % 3]) - points.back().pos).normalized(); - Vector2f arcDirCenter = -rectDir; - std::vector arcPoints = arc_vec(points.back().pos, arcDirStart, arcDirEnd, arcDirCenter, points.back().width * 0.5f, ARC_SMOOTHNESS); - arcPoints.emplace(arcPoints.begin(), convert_vec2(vertArray[(newIndex + 1) % 3])); - arcPoints.emplace_back(convert_vec2(vertArray[(newIndex + 2) % 3])); - for(size_t i = 0; i < arcPoints.size() - 1; i++) { - if(passTriangleFunc(points.back().pos, arcPoints[i], arcPoints[i + 1])) return; - topPoints.emplace_back(convert_vec2(arcPoints[i])); - } - topPoints.emplace_back(convert_vec2(arcPoints.back())); - } - } - - if(bPathBuilder && !topPoints.empty()) { - topPoints.insert(topPoints.begin(), bottomPoints.rbegin(), bottomPoints.rend()); - bPathBuilder->addPolygon({topPoints.data(), topPoints.size()}, false); - } -} - -void BrushStrokeCanvasComponent::create_collider() { - using namespace SCollision; - if(d.points->empty()) - return; - ColliderCollection strokeObjects; - std::vector points = smooth_points(0, d.points->size() - 1, DEFAULT_SMOOTHNESS); - create_triangles([&](Vector2f a, Vector2f b, Vector2f c) { - strokeObjects.triangle.emplace_back(a, b, c); - return false; - }, points, 0, nullptr); - strokeObjects.recalculate_bounds(); - - SCollision::BVHContainer collisionTree; - - collisionTree.calculate_bvh_recursive(strokeObjects, AABB_PRECHECK_BVH_LEVELS + 1); - precheckAABBLevels.clear(); - add_precheck_aabb_level(AABB_PRECHECK_BVH_LEVELS, collisionTree.children); - - bounds = collisionTree.objects.bounds; -} - -void BrushStrokeCanvasComponent::add_precheck_aabb_level(size_t level, const std::vector>& levelArray) { - for(const auto& a : levelArray) { - if(level == 0 || a.children.empty()) - precheckAABBLevels.emplace_back(a.objects.bounds); - else - add_precheck_aabb_level(level - 1, a.children); - } -} - -bool BrushStrokeCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { - if(!SCollision::collide(checkAgainst, bounds)) - return false; - - bool deepPrecheck = false; - for(auto& aabb : precheckAABBLevels) { - if(SCollision::collide(checkAgainst, aabb)) { - deepPrecheck = true; - break; - } - } - if(!deepPrecheck && !precheckAABBLevels.empty()) - return false; - - bool toRet = false; - std::vector points = smooth_points(0, d.points->size() - 1, DEFAULT_SMOOTHNESS); - create_triangles([&](Vector2f a, Vector2f b, Vector2f c) { - toRet = SCollision::collide(checkAgainst, SCollision::Triangle{a, b, c}); - return toRet; - }, points, 0, nullptr); - return toRet; -} - -bool BrushStrokeCanvasComponent::should_draw_extra(const DrawData& drawData, const CoordSpaceHelper& coords) const { - SCollision::AABB viewGenerousColliderInObjSpace = coords.world_collider_to_coords>(drawData.cam.viewingAreaGenerousCollider); - viewGenerousColliderInObjSpace.min -= Vector2f{1.0f, 1.0f}; - viewGenerousColliderInObjSpace.max += Vector2f{1.0f, 1.0f}; - bool deepPrecheck = false; - for(auto& aabb : precheckAABBLevels) { - if(SCollision::collide(viewGenerousColliderInObjSpace, aabb)) { - deepPrecheck = true; - break; - } - } - if(!deepPrecheck && !precheckAABBLevels.empty()) - return false; - return true; -} - -SCollision::AABB BrushStrokeCanvasComponent::get_obj_coord_bounds() const { - return bounds; -} diff --git a/src/CanvasComponents/CanvasComponent.cpp b/src/CanvasComponents/CanvasComponent.cpp index b77f673..feb37de 100644 --- a/src/CanvasComponents/CanvasComponent.cpp +++ b/src/CanvasComponents/CanvasComponent.cpp @@ -17,9 +17,9 @@ */ #include "CanvasComponent.hpp" -#include "BrushStrokeCanvasComponent.hpp" #include "ImageCanvasComponent.hpp" #include "EllipseCanvasComponent.hpp" +#include "MeshCanvasComponent.hpp" #include "RectangleCanvasComponent.hpp" #include "TextBoxCanvasComponent.hpp" @@ -34,8 +34,8 @@ void CanvasComponent::get_used_resources(std::unordered_set& predrawData) const = 0; virtual void initialize_draw_data(DrawingProgram& drawP) = 0; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const = 0; + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const = 0; virtual SCollision::AABB get_obj_coord_bounds() const = 0; diff --git a/src/CanvasComponents/CanvasComponentType.hpp b/src/CanvasComponents/CanvasComponentType.hpp index 73eca7b..c8f85fc 100644 --- a/src/CanvasComponents/CanvasComponentType.hpp +++ b/src/CanvasComponents/CanvasComponentType.hpp @@ -20,9 +20,9 @@ #include enum class CanvasComponentType : uint8_t { - BRUSHSTROKE = 0, + MESH = 0, RECTANGLE, ELLIPSE, TEXTBOX, - IMAGE + IMAGE, }; diff --git a/src/CanvasComponents/EllipseCanvasComponent.cpp b/src/CanvasComponents/EllipseCanvasComponent.cpp index 7079ca4..f01eaeb 100644 --- a/src/CanvasComponents/EllipseCanvasComponent.cpp +++ b/src/CanvasComponents/EllipseCanvasComponent.cpp @@ -22,6 +22,7 @@ #include "Helpers/SCollision.hpp" #include #include "../DrawCollision.hpp" +#include CanvasComponentType EllipseCanvasComponent::get_type() const { return CanvasComponentType::ELLIPSE; @@ -76,7 +77,6 @@ void EllipseCanvasComponent::create_draw_data() { void EllipseCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { create_draw_data(); - create_collider(); } std::unique_ptr EllipseCanvasComponent::get_data_copy() const { @@ -91,67 +91,13 @@ void EllipseCanvasComponent::set_data_from(const CanvasComponent& other) { } bool EllipseCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { - return collisionTree.is_collide(checkAgainst); + return false; } -void EllipseCanvasComponent::create_collider() { - using namespace SCollision; - ColliderCollection strokeObjects; - - if(d.fillStrokeMode == 0) { - Vector2f ellipseCenter = (d.p1 + d.p2) * 0.5; - float a = ellipseCenter.x() - d.p1.x(); - float b = ellipseCenter.y() - d.p1.y(); - Vector2f prevPoint = ellipseCenter + Vector2f{a * std::cos(0), b * std::sin(0)}; - unsigned numOfSegments = 20; - float segmentStep = 1.0 / numOfSegments; - float t = 0.0; - for(unsigned i = 0; i <= numOfSegments; i++) { - Vector2f nextPoint = ellipseCenter + Vector2f{a * std::cos(t), b * std::sin(t)}; - strokeObjects.triangle.emplace_back(ellipseCenter, prevPoint, nextPoint); - prevPoint = nextPoint; - t += segmentStep * std::numbers::pi * 2.0; - } - } - else if(d.fillStrokeMode == 1) { - std::vector points; - - Vector2f ellipseCenter = (d.p1 + d.p2) * 0.5; - float a = ellipseCenter.x() - d.p1.x(); - float b = ellipseCenter.y() - d.p1.y(); - unsigned numOfSegments = 40; - float segmentStep = 1.0 / numOfSegments; - float t = 0.0; - for(unsigned i = 0; i < numOfSegments; i++) { - points.emplace_back(ellipseCenter + Vector2f{a * std::cos(t), b * std::sin(t)}); - t += segmentStep * std::numbers::pi * 2.0; - } - generate_polyline(strokeObjects, points, d.strokeWidth, true); - - } - else if(d.fillStrokeMode == 2) { - float strokeRadius = d.strokeWidth * 0.5f; - Vector2f wNewP1 = d.p1 - Vector2f{strokeRadius, strokeRadius}; - Vector2f wNewP2 = d.p2 + Vector2f{strokeRadius, strokeRadius}; - Vector2f ellipseCenter = (wNewP1 + wNewP2) * 0.5; - float a = ellipseCenter.x() - wNewP1.x(); - float b = ellipseCenter.y() - wNewP1.y(); - Vector2f prevPoint = ellipseCenter + Vector2f{a * std::cos(0), b * std::sin(0)}; - unsigned numOfSegments = 20; - float segmentStep = 1.0 / numOfSegments; - float t = 0.0; - for(unsigned i = 0; i <= numOfSegments; i++) { - Vector2f nextPoint = ellipseCenter + Vector2f{a * std::cos(t), b * std::sin(t)}; - strokeObjects.triangle.emplace_back(ellipseCenter, prevPoint, nextPoint); - prevPoint = nextPoint; - t += segmentStep * std::numbers::pi * 2.0; - } - } - - collisionTree.clear(); - collisionTree.calculate_bvh_recursive(strokeObjects); +bool EllipseCanvasComponent::collides_within_coords_skpath(const SkPath& checkAgainst) const { + return checkAgainst.getBounds().intersects(ellipsePath.getBounds()) && Op(checkAgainst, ellipsePath, SkPathOp::kIntersect_SkPathOp); } SCollision::AABB EllipseCanvasComponent::get_obj_coord_bounds() const { - return collisionTree.objects.bounds; + return ellipsePath.getBounds(); } diff --git a/src/CanvasComponents/EllipseCanvasComponent.hpp b/src/CanvasComponents/EllipseCanvasComponent.hpp index df610a5..5fe985e 100644 --- a/src/CanvasComponents/EllipseCanvasComponent.hpp +++ b/src/CanvasComponents/EllipseCanvasComponent.hpp @@ -46,12 +46,11 @@ class EllipseCanvasComponent : public CanvasComponent { private: void create_draw_data(); - void create_collider(); virtual void draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const override; virtual void initialize_draw_data(DrawingProgram& drawP) override; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const override; + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const override; virtual SCollision::AABB get_obj_coord_bounds() const override; void create_triangles(const std::function& passTriangleFunc); - SCollision::BVHContainer collisionTree; SkPath ellipsePath; }; diff --git a/src/CanvasComponents/ImageCanvasComponent.cpp b/src/CanvasComponents/ImageCanvasComponent.cpp index e7009ea..bae3328 100644 --- a/src/CanvasComponents/ImageCanvasComponent.cpp +++ b/src/CanvasComponents/ImageCanvasComponent.cpp @@ -28,6 +28,7 @@ #include #include "../DrawCollision.hpp" #include "CanvasComponentContainer.hpp" +#include SkRect get_cropped_rectangle(const Vector2f& p1, const Vector2f& p2, const Vector2f& cropP1, const Vector2f& cropP2) { float pWidth = p2.x() - p1.x(); @@ -154,30 +155,27 @@ void ImageCanvasComponent::update(DrawingProgram& drawP) { } void ImageCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { - create_collider(); } bool ImageCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { - return collisionTree.is_collide(checkAgainst); + return false; } -void ImageCanvasComponent::create_collider() { - using namespace SCollision; - ColliderCollection strokeObjects; - +bool ImageCanvasComponent::collides_within_coords_skpath(const SkPath& checkAgainst) const { SkRect startingRect; if(d.editing) startingRect = rect_from_points(d.p1, d.p2); else startingRect = get_cropped_rectangle(d.p1, d.p2, d.cropP1, d.cropP2); - - std::array newT = triangle_from_rect_points(convert_vec2(startingRect.TL()), convert_vec2(startingRect.BR())); - strokeObjects.triangle.emplace_back(newT[0], newT[1], newT[2]); - strokeObjects.triangle.emplace_back(newT[2], newT[3], newT[0]); - collisionTree.clear(); - collisionTree.calculate_bvh_recursive(strokeObjects); + SkPath p = SkPath::Rect(startingRect); + return startingRect.intersects(checkAgainst.getBounds()) && Op(checkAgainst, p, SkPathOp::kIntersect_SkPathOp); } SCollision::AABB ImageCanvasComponent::get_obj_coord_bounds() const { - return collisionTree.objects.bounds; + SkRect startingRect; + if(d.editing) + startingRect = rect_from_points(d.p1, d.p2); + else + startingRect = get_cropped_rectangle(d.p1, d.p2, d.cropP1, d.cropP2); + return startingRect; } diff --git a/src/CanvasComponents/ImageCanvasComponent.hpp b/src/CanvasComponents/ImageCanvasComponent.hpp index 83479f3..e8e8c45 100644 --- a/src/CanvasComponents/ImageCanvasComponent.hpp +++ b/src/CanvasComponents/ImageCanvasComponent.hpp @@ -56,10 +56,7 @@ class ImageCanvasComponent : public CanvasComponent { virtual void draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const override; virtual void initialize_draw_data(DrawingProgram& drawP) override; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const override; - void create_collider(); - + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const override; virtual SCollision::AABB get_obj_coord_bounds() const override; - - SCollision::BVHContainer collisionTree; }; diff --git a/src/CanvasComponents/MeshCanvasComponent.cpp b/src/CanvasComponents/MeshCanvasComponent.cpp new file mode 100644 index 0000000..10de05d --- /dev/null +++ b/src/CanvasComponents/MeshCanvasComponent.cpp @@ -0,0 +1,221 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "MeshCanvasComponent.hpp" +#include +#include +#include +#include +#include "Eigen/Core" +#include "Helpers/MathExtras.hpp" +#include "../TimePoint.hpp" +#include +#include +#include +#include "../DrawCollision.hpp" +#include "CanvasComponentContainer.hpp" +#include "Helpers/SCollision.hpp" +#include + +#define BVH_LEVELS 3 + +void MeshCanvasComponent::save(cereal::PortableBinaryOutputArchive& a) const { + a(d.points, d.color); +} + +void MeshCanvasComponent::load(cereal::PortableBinaryInputArchive& a) { + a(d.points, d.color); +} + +void MeshCanvasComponent::save_file(cereal::PortableBinaryOutputArchive& a) const { + a(d.points, d.color); +} + +void MeshCanvasComponent::load_file(cereal::PortableBinaryInputArchive& a, VersionNumber version) { + if(version >= VersionNumber(0, 6, 0)) + a(d.points, d.color); + else { + std::vector brushPoints; + bool hasRoundCaps; + a(brushPoints, d.color, hasRoundCaps); + d.points = BrushComponentCode::brush_stroke_to_mesh_points(brushPoints, hasRoundCaps); + } +} + +std::unique_ptr MeshCanvasComponent::get_data_copy() const { + auto toRet = std::make_unique(); + toRet->d = d; + return toRet; +} + +CanvasComponentType MeshCanvasComponent::get_type() const { + return CanvasComponentType::MESH; +} + +void MeshCanvasComponent::change_stroke_color(const Vector4f& newStrokeColor) { + d.color = newStrokeColor; +} + +std::optional MeshCanvasComponent::get_stroke_color() const { + return d.color; +} + +void MeshCanvasComponent::draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const { + SkPaint paint; + paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); + paint.setAntiAlias(drawData.skiaAA); + canvas->drawPath(meshPath, paint); + + //SkPaint paint2; + //paint2.setColor4f(SkColor4f{1.0f, 0.0f, 0.0f, 1.0f}); + //paint2.setStroke(true); + //draw_collider(canvas, drawData, collisionTree, paint2); +} + +std::shared_ptr MeshCanvasComponent::get_predraw_data_accurate(const DrawData& drawData, const CoordSpaceHelper& coords) const { + SCollision::AABB viewGenerousColliderInObjSpace = coords.world_collider_to_coords>(drawData.cam.viewingAreaGenerousCollider); + viewGenerousColliderInObjSpace.min -= Vector2f{1.0f, 1.0f}; + viewGenerousColliderInObjSpace.max += Vector2f{1.0f, 1.0f}; + + std::vector> finalTrianglePoints; + + collisionTree.is_collide_triangle_bounds_func(viewGenerousColliderInObjSpace, [&](const SCollision::Triangle& triCollider) { + auto clipListFunc = [](const std::vector>& clipList, const std::array& axisLineSegment, const std::function& isInClippingAreaFunc) { + std::vector> resultList; + for(auto& t : clipList) + clip_triangle_against_axis(resultList, t, axisLineSegment, isInClippingAreaFunc); + return resultList; + }; + + std::vector> clipList; + clipList.emplace_back(std::array{coords.from_space(triCollider.p[0]), coords.from_space(triCollider.p[1]), coords.from_space(triCollider.p[2])}); + clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.min, drawData.cam.viewingAreaGenerousCollider.top_right()}, [&](const WorldVec& p) { + return p.y() > drawData.cam.viewingAreaGenerousCollider.min.y(); + }); + clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.max, drawData.cam.viewingAreaGenerousCollider.bottom_left()}, [&](const WorldVec& p) { + return p.y() < drawData.cam.viewingAreaGenerousCollider.max.y(); + }); + clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.min, drawData.cam.viewingAreaGenerousCollider.bottom_left()}, [&](const WorldVec& p) { + return p.x() > drawData.cam.viewingAreaGenerousCollider.min.x(); + }); + clipList = clipListFunc(clipList, {drawData.cam.viewingAreaGenerousCollider.max, drawData.cam.viewingAreaGenerousCollider.top_right()}, [&](const WorldVec& p) { + return p.x() < drawData.cam.viewingAreaGenerousCollider.max.x(); + }); + for(auto& tri : clipList) { + auto& c = drawData.cam.c; + finalTrianglePoints.emplace_back(std::array{convert_vec2(c.to_space(tri[0])), convert_vec2(c.to_space(tri[1])), convert_vec2(c.to_space(tri[2]))}); + } + }); + + // Match points that are close enough. I don't think this is required. + //if(!finalTrianglePoints.empty()) { + // for(size_t i = 0; i < finalTrianglePoints.size() - 1; i++) { + // for(size_t j = 0; j < 3; j++) { + // for(size_t k = i + 1; k < finalTrianglePoints.size(); k++) { + // for(size_t l = 0; l < 3; l++) { + // if(std::fabs(finalTrianglePoints[i][j].fX - finalTrianglePoints[k][l].fX) < 0.0001f && std::fabs(finalTrianglePoints[i][j].fY - finalTrianglePoints[k][l].fY) < 0.0001f && finalTrianglePoints[k][l] != finalTrianglePoints[i][j]) + // finalTrianglePoints[k][l] = finalTrianglePoints[i][j]; + // } + // } + // } + // } + //} + + if(finalTrianglePoints.empty()) + return nullptr; + else if(drawData.isSVGRender) { + auto pathsToDraw = std::make_shared>(); + for(auto& finalTriangle : finalTrianglePoints) { + SkPathBuilder pathBuilder; + pathBuilder.addPolygon({finalTriangle.data(), finalTriangle.size()}, true); + pathsToDraw->emplace_back(pathBuilder.detach()); + } + return pathsToDraw; + } + else { + std::vector pointVec(finalTrianglePoints.size() * 3); + for(size_t i = 0; i < finalTrianglePoints.size(); i++) { + pointVec[i * 3 + 0] = finalTrianglePoints[i][0]; + pointVec[i * 3 + 1] = finalTrianglePoints[i][1]; + pointVec[i * 3 + 2] = finalTrianglePoints[i][2]; + } + auto verticesToDraw = std::make_shared>(); + *verticesToDraw = SkVertices::MakeCopy(SkVertices::kTriangles_VertexMode, pointVec.size(), pointVec.data(), nullptr, nullptr); + return verticesToDraw; + } + return nullptr; +} + +bool MeshCanvasComponent::accurate_draw(SkCanvas* canvas, const DrawData& drawData, const CoordSpaceHelper& coords, const std::shared_ptr& predrawData) const { + if(predrawData) { + if(drawData.isSVGRender) { // SVG renders can't use saveLayer, so use this despite it being buggy in some scenarios + auto pathsToDraw = std::static_pointer_cast>(predrawData); + SkPaint paint; + paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); + for(const SkPath& p : *pathsToDraw) + canvas->drawPath(p, paint); + } + else { + auto verticesToDraw = std::static_pointer_cast>(predrawData); + SkPaint paint; + paint.setColor4f(SkColor4f{d.color.x(), d.color.y(), d.color.z(), d.color.w()}); + canvas->drawVertices(*verticesToDraw, SkBlendMode::kSrcOver, paint); + } // Test not using the saveLayerAlphaf code path, since I'm changing how the triangles are generated to prevent overlap + } + + return true; +} + +void MeshCanvasComponent::set_data_from(const CanvasComponent& other) { + auto& otherStroke = static_cast(other); + d = otherStroke.d; +} + +void MeshCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { + if(!d.points.contours.empty()) { + SkPathBuilder meshPathBuilder; + + for(auto& contour : d.points.contours) { + if(!contour.empty()) + meshPathBuilder.moveTo(contour.front().x(), contour.front().y()); + for(size_t i = 1; i < contour.size(); i++) { + auto& p = contour[i]; + meshPathBuilder.lineTo(p.x(), p.y()); + } + meshPathBuilder.close(); + } + + meshPath = meshPathBuilder.detach(); + } +} + +bool MeshCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { + return false; +} + +bool MeshCanvasComponent::should_draw_extra(const DrawData& drawData, const CoordSpaceHelper& coords) const { + SCollision::AABB viewGenerousColliderInObjSpace = coords.world_collider_to_coords>(drawData.cam.viewingAreaGenerousCollider); + viewGenerousColliderInObjSpace.min -= Vector2f{1.0f, 1.0f}; + viewGenerousColliderInObjSpace.max += Vector2f{1.0f, 1.0f}; + return false; + //return collisionTree.is_collide(viewGenerousColliderInObjSpace); +} + +SCollision::AABB MeshCanvasComponent::get_obj_coord_bounds() const { + return meshPath.getBounds(); +} diff --git a/src/CanvasComponents/BrushStrokeCanvasComponent.hpp b/src/CanvasComponents/MeshCanvasComponent.hpp similarity index 60% rename from src/CanvasComponents/BrushStrokeCanvasComponent.hpp rename to src/CanvasComponents/MeshCanvasComponent.hpp index 24cdf81..ba60aba 100644 --- a/src/CanvasComponents/BrushStrokeCanvasComponent.hpp +++ b/src/CanvasComponents/MeshCanvasComponent.hpp @@ -17,21 +17,14 @@ */ #pragma once +#include "BrushComponentCode.hpp" #include "CanvasComponent.hpp" #include "Helpers/SCollision.hpp" #include #include #include -struct BrushStrokeCanvasComponentPoint { - Vector2f pos; - float width; - template void serialize(Archive& a) { - a(pos, width); - } -}; - -class BrushStrokeCanvasComponent : public CanvasComponent { +class MeshCanvasComponent : public CanvasComponent { public: virtual CanvasComponentType get_type() const override; virtual void save(cereal::PortableBinaryOutputArchive& a) const override; @@ -41,38 +34,22 @@ class BrushStrokeCanvasComponent : public CanvasComponent { virtual std::unique_ptr get_data_copy() const override; virtual void change_stroke_color(const Vector4f& newStrokeColor) override; virtual std::optional get_stroke_color() const override; + virtual void set_data_from(const CanvasComponent& other) override; struct Data { - std::shared_ptr> points = std::make_shared>(); // It's a pointer here since brush strokes cant be edited + MeshShapeData points; Vector4f color; - bool hasRoundCaps; } d; - - virtual void set_data_from(const CanvasComponent& other) override; private: virtual void draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const override; virtual bool accurate_draw(SkCanvas* canvas, const DrawData& drawData, const CoordSpaceHelper& coords, const std::shared_ptr& predrawData) const override; virtual std::shared_ptr get_predraw_data_accurate(const DrawData& drawData, const CoordSpaceHelper& coords) const override; - virtual void initialize_draw_data(DrawingProgram& drawP) override; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const override; - void create_collider(); + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const override; bool should_draw_extra(const DrawData& drawData, const CoordSpaceHelper& coords) const override; - virtual SCollision::AABB get_obj_coord_bounds() const override; - - std::shared_ptr brushPath; - SCollision::AABB bounds; - - std::array, 2> brushPathLOD; - - std::vector every_nth_point_include_front_and_back(const std::vector& pts, size_t n) const; - - void add_precheck_aabb_level(size_t level, const std::vector>& levelArray); - std::vector> precheckAABBLevels; - void create_triangles(const std::function& passTriangleFunc, const std::vector& smoothedPoints, size_t skipVertexCount, std::shared_ptr bPath) const; - std::vector get_wedge_indices(const std::vector& points) const; - std::vector smooth_points(size_t beginIndex, size_t endIndex, unsigned numOfDivisions) const; - std::vector smooth_points_avg(size_t beginIndex, size_t endIndex, unsigned numOfDivisions) const; + SkPath meshPath; + SCollision::BVHContainer collisionTree; }; diff --git a/src/CanvasComponents/RectangleCanvasComponent.cpp b/src/CanvasComponents/RectangleCanvasComponent.cpp index 33a1632..647b6e4 100644 --- a/src/CanvasComponents/RectangleCanvasComponent.cpp +++ b/src/CanvasComponents/RectangleCanvasComponent.cpp @@ -22,6 +22,7 @@ #include "Helpers/SCollision.hpp" #include #include +#include #include "../SharedTypes.hpp" #include "../DrawCollision.hpp" @@ -84,11 +85,10 @@ void RectangleCanvasComponent::set_data_from(const CanvasComponent& other) { void RectangleCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { create_draw_data(); - create_collider(); } bool RectangleCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { - return collisionTree.is_collide(checkAgainst); + return false; } void RectangleCanvasComponent::create_draw_data() { @@ -105,36 +105,10 @@ void RectangleCanvasComponent::create_draw_data() { } } -void RectangleCanvasComponent::create_collider() { - using namespace SCollision; - ColliderCollection strokeObjects; - if(d.fillStrokeMode == 0) { - std::array newT = triangle_from_rect_points(d.p1, d.p2); - strokeObjects.triangle.emplace_back(newT[0], newT[1], newT[2]); - strokeObjects.triangle.emplace_back(newT[2], newT[3], newT[0]); - } - else if(d.fillStrokeMode == 1) { - if(d.p1.x() == d.p2.x() || d.p1.y() == d.p2.y()) { - std::vector points = {d.p1, d.p2}; - generate_polyline(strokeObjects, points, d.strokeWidth, true); - } - else { - std::array pointArr = triangle_from_rect_points(d.p1, d.p2); - std::vector points(pointArr.begin(), pointArr.end()); - generate_polyline(strokeObjects, points, d.strokeWidth, true); - } - } - else if(d.fillStrokeMode == 2) { - float strokeRadius = d.strokeWidth * 0.5f; - std::array newT = triangle_from_rect_points((d.p1 - Vector2f{strokeRadius, strokeRadius}).eval(), (d.p2 + Vector2f{strokeRadius, strokeRadius}).eval()); - strokeObjects.triangle.emplace_back(newT[0], newT[1], newT[2]); - strokeObjects.triangle.emplace_back(newT[2], newT[3], newT[0]); - } - - collisionTree.clear(); - collisionTree.calculate_bvh_recursive(strokeObjects); +bool RectangleCanvasComponent::collides_within_coords_skpath(const SkPath& checkAgainst) const { + return checkAgainst.getBounds().intersects(rectPath.getBounds()) && Op(checkAgainst, rectPath, SkPathOp::kIntersect_SkPathOp); } SCollision::AABB RectangleCanvasComponent::get_obj_coord_bounds() const { - return collisionTree.objects.bounds; + return rectPath.getBounds(); } diff --git a/src/CanvasComponents/RectangleCanvasComponent.hpp b/src/CanvasComponents/RectangleCanvasComponent.hpp index b627402..20c0a75 100644 --- a/src/CanvasComponents/RectangleCanvasComponent.hpp +++ b/src/CanvasComponents/RectangleCanvasComponent.hpp @@ -50,12 +50,10 @@ class RectangleCanvasComponent : public CanvasComponent { virtual void draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const override; virtual void initialize_draw_data(DrawingProgram& drawP) override; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const override; + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const override; void create_draw_data(); - void create_collider(); virtual SCollision::AABB get_obj_coord_bounds() const override; SkPath rectPath; - - SCollision::BVHContainer collisionTree; }; diff --git a/src/CanvasComponents/TextBoxCanvasComponent.cpp b/src/CanvasComponents/TextBoxCanvasComponent.cpp index 8be6894..2d86226 100644 --- a/src/CanvasComponents/TextBoxCanvasComponent.cpp +++ b/src/CanvasComponents/TextBoxCanvasComponent.cpp @@ -24,6 +24,7 @@ #include "../DrawingProgram/DrawingProgram.hpp" #include "CanvasComponentContainer.hpp" #include "../DrawCollision.hpp" +#include using namespace RichText; @@ -125,23 +126,17 @@ Vector2f TextBoxCanvasComponent::get_mouse_pos(DrawingProgram& drawP) const { void TextBoxCanvasComponent::initialize_draw_data(DrawingProgram& drawP) { init_text_box(drawP); - create_collider(); } bool TextBoxCanvasComponent::collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const { - return collisionTree.is_collide(checkAgainst); + return false; } -void TextBoxCanvasComponent::create_collider() { - using namespace SCollision; - ColliderCollection strokeObjects; - std::array newT = triangle_from_rect_points(d.p1, d.p2); - strokeObjects.triangle.emplace_back(newT[0], newT[1], newT[2]); - strokeObjects.triangle.emplace_back(newT[2], newT[3], newT[0]); - collisionTree.clear(); - collisionTree.calculate_bvh_recursive(strokeObjects); +bool TextBoxCanvasComponent::collides_within_coords_skpath(const SkPath& checkAgainst) const { + SkPath p = SkPath::Rect(SCollision::AABB(d.p1, d.p2).get_sk_rect()); + return checkAgainst.getBounds().intersects(p.getBounds()) && Op(checkAgainst, p, SkPathOp::kIntersect_SkPathOp); } SCollision::AABB TextBoxCanvasComponent::get_obj_coord_bounds() const { - return collisionTree.objects.bounds; + return {d.p1, d.p2}; } diff --git a/src/CanvasComponents/TextBoxCanvasComponent.hpp b/src/CanvasComponents/TextBoxCanvasComponent.hpp index bd2723d..d8262fa 100644 --- a/src/CanvasComponents/TextBoxCanvasComponent.hpp +++ b/src/CanvasComponents/TextBoxCanvasComponent.hpp @@ -51,7 +51,7 @@ class TextBoxCanvasComponent : public CanvasComponent { virtual void draw(SkCanvas* canvas, const DrawData& drawData, const std::shared_ptr& predrawData) const override; virtual void initialize_draw_data(DrawingProgram& drawP) override; virtual bool collides_within_coords(const SCollision::ColliderCollection& checkAgainst) const override; - void create_collider(); + virtual bool collides_within_coords_skpath(const SkPath& checkAgainst) const override; void init_text_box(DrawingProgram& drawP); Vector2f get_mouse_pos(DrawingProgram& drawP) const; diff --git a/src/DrawingProgram/DrawingProgram.cpp b/src/DrawingProgram/DrawingProgram.cpp index d13f7eb..02527ea 100644 --- a/src/DrawingProgram/DrawingProgram.cpp +++ b/src/DrawingProgram/DrawingProgram.cpp @@ -400,6 +400,7 @@ void DrawingProgram::toolbar_gui(Toolbar& t) { tool_button("Brush Toolbar Button", "data/icons/brush.svg", DrawingProgramToolType::BRUSH); tool_button("Eraser Toolbar Button", "data/icons/eraser.svg", DrawingProgramToolType::ERASER); + tool_button("Fill Toolbar Button", "data/icons/RemixIcon/paint-line.svg", DrawingProgramToolType::FILL); tool_button("Line Toolbar Button", "data/icons/line.svg", DrawingProgramToolType::LINE); tool_button("Text Toolbar Button", "data/icons/text.svg", DrawingProgramToolType::TEXTBOX); tool_button("Ellipse Toolbar Button", "data/icons/circle.svg", DrawingProgramToolType::ELLIPSE); diff --git a/src/DrawingProgram/DrawingProgram.hpp b/src/DrawingProgram/DrawingProgram.hpp index 18645c7..d7e95c3 100644 --- a/src/DrawingProgram/DrawingProgram.hpp +++ b/src/DrawingProgram/DrawingProgram.hpp @@ -177,6 +177,7 @@ class DrawingProgram { friend class DrawingProgramCache; friend class DrawingProgramSelection; friend class LassoSelectTool; + friend class FillTool; friend class GridEditTool; friend class GridModifyTool; friend class ZoomCanvasTool; diff --git a/src/DrawingProgram/Tools/BrushTool.cpp b/src/DrawingProgram/Tools/BrushTool.cpp index 0a99abe..cddecd8 100644 --- a/src/DrawingProgram/Tools/BrushTool.cpp +++ b/src/DrawingProgram/Tools/BrushTool.cpp @@ -22,7 +22,7 @@ #include "../DrawingProgram.hpp" #include "../../MainProgram.hpp" #include "DrawingProgramToolBase.hpp" -#include "../../CanvasComponents/BrushStrokeCanvasComponent.hpp" +#include "../../CanvasComponents/MeshCanvasComponent.hpp" #include "Helpers/NetworkingObjects/NetObjTemporaryPtr.decl.hpp" #include "../../CanvasComponents/CanvasComponentContainer.hpp" @@ -53,9 +53,6 @@ void BrushTool::erase_component(CanvasComponentContainer::ObjInfo* erasedComp) { void BrushTool::smooth_out_points(float smoothFactor) { if(objInfoBeingEdited) { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); - auto& brushPoints = *brushStroke.d.points; if(brushPoints.size() >= 2) { brushPoints.back().width = std::max(brushPoints[brushPoints.size() - 1].width, brushPoints[brushPoints.size() - 2].width * smoothFactor); for(size_t i = brushPoints.size() - 1; i > 0; i--) { @@ -70,12 +67,8 @@ void BrushTool::smooth_out_points(float smoothFactor) { void BrushTool::fix_tip() { if(objInfoBeingEdited) { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); - auto& brushPoints = *brushStroke.d.points; - if(brushPoints.size() >= 2) { + if(brushPoints.size() >= 2) brushPoints[brushPoints.size() - 2].width = brushPoints[brushPoints.size() - 1].width = std::max(brushPoints[brushPoints.size() - 1].width, brushPoints[brushPoints.size() - 2].width); - } } } @@ -100,18 +93,19 @@ void BrushTool::input_mouse_button_on_canvas_callback(const InputManager::MouseB } float width = relativeWidthResult.first.value() * penWidth; - CanvasComponentContainer* newBrushStrokeContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::BRUSHSTROKE); - BrushStrokeCanvasComponent& newBrushStroke = static_cast(newBrushStrokeContainer->get_comp()); + CanvasComponentContainer* newMeshContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::MESH); + MeshCanvasComponent& newMesh = static_cast(newMeshContainer->get_comp()); - BrushStrokeCanvasComponentPoint p; + brushPoints.clear(); + BrushComponentCode::BrushPoint p; p.pos = button.pos; p.width = width; prevPointUnaltered = p.pos; - newBrushStroke.d.points->emplace_back(p); - newBrushStroke.d.color = toolConfig.globalConf.foregroundColor; - newBrushStroke.d.hasRoundCaps = toolConfig.brush.hasRoundCaps; - newBrushStrokeContainer->coords = drawP.world.drawData.cam.c; - objInfoBeingEdited = drawP.layerMan.add_component_to_layer_being_edited(newBrushStrokeContainer); + brushPoints.emplace_back(p); + newMesh.d.color = toolConfig.globalConf.foregroundColor; + newMeshContainer->coords = drawP.world.drawData.cam.c; + objInfoBeingEdited = drawP.layerMan.add_component_to_layer_being_edited(newMeshContainer); + commit_data(false); addedTemporaryPoint = false; } else if(!button.down && objInfoBeingEdited) @@ -119,22 +113,30 @@ void BrushTool::input_mouse_button_on_canvas_callback(const InputManager::MouseB } } +void BrushTool::commit_data(bool final) { + if(objInfoBeingEdited) { + NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + MeshCanvasComponent& newMesh = static_cast(containerPtr->get_comp()); + newMesh.d.points = BrushComponentCode::brush_stroke_to_mesh_points(brushPoints, drawP.world.main.toolConfig.brush.hasRoundCaps); + containerPtr->commit_update(drawP); + containerPtr->send_comp_update(drawP, final); + } +} + void BrushTool::input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion) { if(objInfoBeingEdited) { auto& toolConfig = drawP.world.main.toolConfig; NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); - auto& brushPoints = *brushStroke.d.points; float width = toolConfig.get_relative_width_stroke_size(drawP, containerPtr->coords.inverseScale).first.value() * penWidth; - BrushStrokeCanvasComponentPoint p; + BrushComponentCode::BrushPoint p; p.pos = containerPtr->coords.from_cam_space_to_this(drawP.world, motion.pos); p.width = width; // Temporary point is a point that follows the cursor until it is placed if(!addedTemporaryPoint) { // Temporary point is close enough to be placed - if(extensive_point_checking(brushStroke, p.pos)) { + if(extensive_point_checking(p.pos)) { brushPoints.emplace_back(p); addedTemporaryPoint = true; } @@ -144,10 +146,10 @@ void BrushTool::input_mouse_motion_callback(const InputManager::MouseMotionCallb } if(addedTemporaryPoint) { - const BrushStrokeCanvasComponentPoint& prevP = brushPoints[brushPoints.size() - 2]; + const BrushComponentCode::BrushPoint& prevP = brushPoints[brushPoints.size() - 2]; float distToPrev = (p.pos - prevP.pos).norm(); // If the cursor isnt too close to the previous points, move the temporary point to the cursor and change the width of the temporary point to the current pen width - if(extensive_point_checking_back(brushStroke, p.pos)) { + if(extensive_point_checking_back(p.pos)) { brushPoints.back().pos = p.pos; brushPoints.back().width = std::max(brushPoints.back().width, p.width); } @@ -186,8 +188,6 @@ void BrushTool::input_pen_axis_callback(const InputManager::PenAxisCallbackArgs& if(objInfoBeingEdited) { auto& toolConfig = drawP.world.main.toolConfig; NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); - auto& brushPoints = *brushStroke.d.points; float width = toolConfig.get_relative_width_stroke_size(drawP, containerPtr->coords.inverseScale).first.value() * penWidth; brushPoints.back().width = std::max(brushPoints.back().width, width); smooth_out_points(drawP.world.main.conf.tabletOptions.brushPressureSmoothingFactor); @@ -197,8 +197,8 @@ void BrushTool::input_pen_axis_callback(const InputManager::PenAxisCallbackArgs& } } -bool BrushTool::extensive_point_checking(const BrushStrokeCanvasComponent& brushStroke, const Vector2f& newPoint) { - auto& points = *brushStroke.d.points; +bool BrushTool::extensive_point_checking(const Vector2f& newPoint) { + auto& points = brushPoints; if(points.size() >= 1 && (newPoint - points[points.size() - 1].pos).norm() < MINIMUM_DISTANCE_TO_NEXT_POINT) return false; if(points.size() >= 2 && (newPoint - points[points.size() - 2].pos).norm() < MINIMUM_DISTANCE_TO_NEXT_POINT) @@ -208,8 +208,8 @@ bool BrushTool::extensive_point_checking(const BrushStrokeCanvasComponent& brush return true; } -bool BrushTool::extensive_point_checking_back(const BrushStrokeCanvasComponent& brushStroke, const Vector2f& newPoint) { - auto& points = *brushStroke.d.points; +bool BrushTool::extensive_point_checking_back(const Vector2f& newPoint) { + auto& points = brushPoints; if(points.size() >= 2 && (newPoint - points[points.size() - 2].pos).norm() < MINIMUM_DISTANCE_TO_NEXT_POINT) return false; if(points.size() >= 3 && (newPoint - points[points.size() - 3].pos).norm() < MINIMUM_DISTANCE_TO_NEXT_POINT) @@ -224,9 +224,7 @@ void BrushTool::tool_update() { drawP.world.main.input.hideCursor = true; if(commitUpdate && objInfoBeingEdited) { - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, false); + commit_data(false); commitUpdate = false; } } @@ -235,8 +233,7 @@ void BrushTool::commit_stroke() { if(objInfoBeingEdited) { NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; fix_tip(); - containerPtr->commit_update(drawP); - containerPtr->send_comp_update(drawP, true); + commit_data(true); commitUpdate = false; if(containerPtr->get_world_bounds().has_value()) drawP.layerMan.add_undo_place_component(objInfoBeingEdited); diff --git a/src/DrawingProgram/Tools/BrushTool.hpp b/src/DrawingProgram/Tools/BrushTool.hpp index f875bc5..bb5ab04 100644 --- a/src/DrawingProgram/Tools/BrushTool.hpp +++ b/src/DrawingProgram/Tools/BrushTool.hpp @@ -25,6 +25,7 @@ #include #include "../../CanvasComponents/CanvasComponentContainer.hpp" #include +#include "../../CanvasComponents/BrushComponentCode.hpp" class DrawingProgram; struct DrawData; @@ -46,16 +47,19 @@ class BrushTool : public DrawingProgramToolBase { virtual void input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion) override; virtual void input_pen_axis_callback(const InputManager::PenAxisCallbackArgs& axis) override; private: - bool extensive_point_checking_back(const BrushStrokeCanvasComponent& brushStroke, const Vector2f& newPoint); - bool extensive_point_checking(const BrushStrokeCanvasComponent& brushStroke, const Vector2f& newPoint); + bool extensive_point_checking_back(const Vector2f& newPoint); + bool extensive_point_checking(const Vector2f& newPoint); void smooth_out_points(float smoothFactor); void fix_tip(); void commit_stroke(); + void commit_data(bool final); float penWidth = 1.0f; bool addedTemporaryPoint = false; bool commitUpdate = false; + std::vector brushPoints; + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; Vector2f prevPointUnaltered = {0, 0}; diff --git a/src/DrawingProgram/Tools/DrawingProgramToolBase.cpp b/src/DrawingProgram/Tools/DrawingProgramToolBase.cpp index 529ff01..9de0700 100644 --- a/src/DrawingProgram/Tools/DrawingProgramToolBase.cpp +++ b/src/DrawingProgram/Tools/DrawingProgramToolBase.cpp @@ -20,6 +20,7 @@ #include "BrushTool.hpp" #include "EraserTool.hpp" +#include "FillTool.hpp" #include "PanCanvasTool.hpp" #include "RectSelectTool.hpp" #include "LassoSelectTool.hpp" @@ -45,6 +46,8 @@ std::unique_ptr DrawingProgramToolBase::allocate_tool_ty return std::make_unique(drawP); case DrawingProgramToolType::ERASER: return std::make_unique(drawP); + case DrawingProgramToolType::FILL: + return std::make_unique(drawP); case DrawingProgramToolType::LASSOSELECT: return std::make_unique(drawP); case DrawingProgramToolType::RECTSELECT: diff --git a/src/DrawingProgram/Tools/DrawingProgramToolBase.hpp b/src/DrawingProgram/Tools/DrawingProgramToolBase.hpp index 8a6ebad..c277f6c 100644 --- a/src/DrawingProgram/Tools/DrawingProgramToolBase.hpp +++ b/src/DrawingProgram/Tools/DrawingProgramToolBase.hpp @@ -30,6 +30,7 @@ class PhoneDrawingProgramScreen; enum class DrawingProgramToolType : int { BRUSH = 0, ERASER, + FILL, LASSOSELECT, RECTSELECT, RECTANGLE, diff --git a/src/DrawingProgram/Tools/EditTool.cpp b/src/DrawingProgram/Tools/EditTool.cpp index ff9c821..03705c2 100644 --- a/src/DrawingProgram/Tools/EditTool.cpp +++ b/src/DrawingProgram/Tools/EditTool.cpp @@ -30,7 +30,7 @@ #include "EditTools/RectDrawEditTool.hpp" #include "EditTools/ImageEditTool.hpp" #include "EditTools/EllipseDrawEditTool.hpp" -#include "EditTools/BrushEditTool.hpp" +#include "EditTools/MeshEditTool.hpp" #include "../../GUIStuff/ElementHelpers/TextLabelHelpers.hpp" @@ -294,8 +294,8 @@ void EditTool::edit_start(CanvasComponentContainer::ObjInfo* comp, bool initUndo compEditTool = std::make_unique(drawP, comp); break; } - case CanvasComponentType::BRUSHSTROKE: { - compEditTool = std::make_unique(drawP, comp); + case CanvasComponentType::MESH: { + compEditTool = std::make_unique(drawP, comp); break; } default: { diff --git a/src/DrawingProgram/Tools/EditTools/BrushEditTool.cpp b/src/DrawingProgram/Tools/EditTools/MeshEditTool.cpp similarity index 56% rename from src/DrawingProgram/Tools/EditTools/BrushEditTool.cpp rename to src/DrawingProgram/Tools/EditTools/MeshEditTool.cpp index 028caf7..76d868b 100644 --- a/src/DrawingProgram/Tools/EditTools/BrushEditTool.cpp +++ b/src/DrawingProgram/Tools/EditTools/MeshEditTool.cpp @@ -16,67 +16,67 @@ * along with this program. If not, see . */ -#include "BrushEditTool.hpp" +#include "MeshEditTool.hpp" #include "../../DrawingProgram.hpp" #include "../../../World.hpp" #include "../../../MainProgram.hpp" #include "../EditTool.hpp" -#include "../../../CanvasComponents/BrushStrokeCanvasComponent.hpp" +#include "../../../CanvasComponents/MeshCanvasComponent.hpp" #include "../../../GUIStuff/ElementHelpers/TextLabelHelpers.hpp" #include "../../../GUIStuff/ElementHelpers/LayoutHelpers.hpp" -BrushEditTool::BrushEditTool(DrawingProgram& initDrawP, CanvasComponentContainer::ObjInfo* initComp): +MeshEditTool::MeshEditTool(DrawingProgram& initDrawP, CanvasComponentContainer::ObjInfo* initComp): DrawingProgramEditToolBase(initDrawP, initComp) {} -void BrushEditTool::edit_gui(Toolbar& t) { +void MeshEditTool::edit_gui(Toolbar& t) { using namespace GUIStuff; using namespace ElementHelpers; - auto& a = static_cast(comp->obj->get_comp()); + auto& a = static_cast(comp->obj->get_comp()); auto& gui = drawP.world.main.g.gui; auto commit_update_func = [&] { commitUpdate = true; }; - gui.new_id("edit tool brush", [&] { - text_label_centered(gui, "Edit Brush Stroke"); + gui.new_id("edit tool mesh", [&] { + text_label_centered(gui, "Edit Mesh"); left_to_right_line_layout(gui, [&]() { - t.color_button_right("Outline Color", &a.d.color, { .onChange = commit_update_func }); - text_label(gui, "Outline Color"); + t.color_button_right("Mesh Color", &a.d.color, { .onChange = commit_update_func }); + text_label(gui, "Mesh Color"); }); }); } -void BrushEditTool::gui_phone_toolbox(PhoneDrawingProgramScreen& t) { +void MeshEditTool::gui_phone_toolbox(PhoneDrawingProgramScreen& t) { using namespace GUIStuff; using namespace ElementHelpers; - auto& a = static_cast(comp->obj->get_comp()); + auto& a = static_cast(comp->obj->get_comp()); auto& gui = drawP.world.main.g.gui; auto commit_update_func = [&] { commitUpdate = true; }; - gui.new_id("edit tool brush", [&] { + gui.new_id("edit tool mesh", [&] { left_to_right_line_layout(gui, [&]() { - t.color_selector_button("Outline Color", &a.d.color, { .onChange = commit_update_func }); - text_label(gui, "Outline Color"); + t.color_selector_button("Mesh Color", &a.d.color, { .onChange = commit_update_func }); + text_label(gui, "Mesh Color"); }); }); } -Vector4f* BrushEditTool::color_picker_color(Vector4f* oldColor) { - auto& a = static_cast(comp->obj->get_comp()); +Vector4f* MeshEditTool::color_picker_color(Vector4f* oldColor) { + auto& a = static_cast(comp->obj->get_comp()); if(oldColor == &a.d.color) return oldColor; return nullptr; } -void BrushEditTool::edit_start(EditTool& editTool, std::any& prevData) { - auto& a = static_cast(comp->obj->get_comp()); +void MeshEditTool::edit_start(EditTool& editTool, std::any& prevData) { + auto& a = static_cast(comp->obj->get_comp()); oldColor = a.d.color; } -void BrushEditTool::commit_edit_updates(std::any& prevData) { +void MeshEditTool::commit_edit_updates(std::any& prevData) { } -void BrushEditTool::edit_update() { +void MeshEditTool::edit_update() { } diff --git a/src/DrawingProgram/Tools/EditTools/BrushEditTool.hpp b/src/DrawingProgram/Tools/EditTools/MeshEditTool.hpp similarity index 89% rename from src/DrawingProgram/Tools/EditTools/BrushEditTool.hpp rename to src/DrawingProgram/Tools/EditTools/MeshEditTool.hpp index bae2aec..e0eaa45 100644 --- a/src/DrawingProgram/Tools/EditTools/BrushEditTool.hpp +++ b/src/DrawingProgram/Tools/EditTools/MeshEditTool.hpp @@ -23,9 +23,9 @@ class DrawingProgram; -class BrushEditTool : public DrawingProgramEditToolBase { +class MeshEditTool : public DrawingProgramEditToolBase { public: - BrushEditTool(DrawingProgram& initDrawP, CanvasComponentContainer::ObjInfo* initComp); + MeshEditTool(DrawingProgram& initDrawP, CanvasComponentContainer::ObjInfo* initComp); virtual void edit_start(EditTool& editTool, std::any& prevData) override; virtual void commit_edit_updates(std::any& prevData) override; virtual void edit_update() override; diff --git a/src/DrawingProgram/Tools/FillTool.cpp b/src/DrawingProgram/Tools/FillTool.cpp new file mode 100644 index 0000000..c3034fb --- /dev/null +++ b/src/DrawingProgram/Tools/FillTool.cpp @@ -0,0 +1,98 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "FillTool.hpp" +#include "../DrawingProgram.hpp" +#include "../../MainProgram.hpp" +#include "../../DrawData.hpp" +#include "DrawingProgramToolBase.hpp" +#include "../../CoordSpaceHelper.hpp" +#include "../../GUIStuff/ElementHelpers/TextLabelHelpers.hpp" +#include "../../CanvasComponents/MeshCanvasComponent.hpp" + +FillTool::FillTool(DrawingProgram& initDrawP): + DrawingProgramToolBase(initDrawP) +{} + +DrawingProgramToolType FillTool::get_type() { + return DrawingProgramToolType::FILL; +} + +void FillTool::gui_toolbox(Toolbar& t) { + auto& gui = drawP.world.main.g.gui; + gui.new_id("fill tool", [&] { + GUIStuff::ElementHelpers::text_label_centered(gui, "Fill"); + }); +} + +void FillTool::gui_phone_toolbox(PhoneDrawingProgramScreen& t) { + auto& gui = drawP.world.main.g.gui; + gui.new_id("fill tool", [&] { + }); +} + +void FillTool::right_click_popup_gui(Toolbar& t, Vector2f popupPos) { + drawP.selection_action_menu(popupPos); +} + +void FillTool::input_mouse_button_on_canvas_callback(const InputManager::MouseButtonCallbackArgs& button) { + if(button.button == InputManager::MouseButton::LEFT) { + if(button.down && drawP.layerMan.is_a_layer_being_edited() && !drawP.world.main.g.gui.cursor_obstructed()) { + auto& toolConfig = drawP.world.main.toolConfig; + + CanvasComponentContainer* newContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::MESH); + MeshCanvasComponent& newMesh = static_cast(newContainer->get_comp()); + + newMesh.d.color = toolConfig.globalConf.foregroundColor; + newMesh.d.points.fill.emplace_back(); + newMesh.d.points.fill.back().emplace_back(button.pos + Vector2f{0.0f, 100.0f}); + newMesh.d.points.fill.back().emplace_back(button.pos + Vector2f{-100.0f, -100.0f}); + newMesh.d.points.fill.back().emplace_back(button.pos + Vector2f{100.0f, -100.0f}); + newContainer->coords = drawP.world.drawData.cam.c; + + objInfoBeingEdited = drawP.layerMan.add_component_to_layer_being_edited(newContainer); + + objInfoBeingEdited->obj->commit_update(drawP); + objInfoBeingEdited->obj->send_comp_update(drawP, true); + + drawP.layerMan.add_undo_place_component(objInfoBeingEdited); + + objInfoBeingEdited = nullptr; + } + } +} + +Vector4f* FillTool::color_picker_color(Vector4f* oldColor) { + return nullptr; +} + +void FillTool::erase_component(CanvasComponentContainer::ObjInfo* erasedComp) { +} + +void FillTool::switch_tool(DrawingProgramToolType newTool) { +} + +void FillTool::tool_update() { +} + +bool FillTool::prevent_undo_or_redo() { + return false; +} + +void FillTool::draw(SkCanvas* canvas, const DrawData& drawData) { +} diff --git a/src/DrawingProgram/Tools/FillTool.hpp b/src/DrawingProgram/Tools/FillTool.hpp new file mode 100644 index 0000000..02ab1fb --- /dev/null +++ b/src/DrawingProgram/Tools/FillTool.hpp @@ -0,0 +1,44 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include +#include "../../DrawData.hpp" +#include +#include "../../CoordSpaceHelper.hpp" +#include "DrawingProgramToolBase.hpp" + +class DrawingProgram; + +class FillTool : public DrawingProgramToolBase { + public: + FillTool(DrawingProgram& initDrawP); + virtual DrawingProgramToolType get_type() override; + virtual void gui_toolbox(Toolbar& t) override; + virtual void gui_phone_toolbox(PhoneDrawingProgramScreen& t) override; + virtual void right_click_popup_gui(Toolbar& t, Vector2f popupPos) override; + virtual void erase_component(CanvasComponentContainer::ObjInfo* erasedComp) override; + virtual void tool_update() override; + virtual void draw(SkCanvas* canvas, const DrawData& drawData) override; + virtual void switch_tool(DrawingProgramToolType newTool) override; + virtual bool prevent_undo_or_redo() override; + virtual Vector4f* color_picker_color(Vector4f* oldColor) override; + virtual void input_mouse_button_on_canvas_callback(const InputManager::MouseButtonCallbackArgs& button) override; + private: + CanvasComponentContainer::ObjInfo* objInfoBeingEdited = nullptr; +}; diff --git a/src/DrawingProgram/Tools/LassoSelectTool.cpp b/src/DrawingProgram/Tools/LassoSelectTool.cpp index 07fa043..0b5b33d 100644 --- a/src/DrawingProgram/Tools/LassoSelectTool.cpp +++ b/src/DrawingProgram/Tools/LassoSelectTool.cpp @@ -25,30 +25,11 @@ #include "Helpers/SCollision.hpp" #include "../../CoordSpaceHelper.hpp" #include -#include #include +#include "../../EarcutIncludes.hpp" #include "../../GUIStuff/ElementHelpers/TextLabelHelpers.hpp" -namespace mapbox { -namespace util { - -template <> -struct nth<0, Vector2f> { - inline static auto get(const Vector2f &t) { - return t.x(); - }; -}; -template <> -struct nth<1, Vector2f> { - inline static auto get(const Vector2f &t) { - return t.y(); - }; -}; - -} // namespace util -} // namespace mapbox - LassoSelectTool::LassoSelectTool(DrawingProgram& initDrawP): DrawingProgramToolBase(initDrawP) {} diff --git a/src/DrawingProgram/Tools/LineDrawTool.cpp b/src/DrawingProgram/Tools/LineDrawTool.cpp index a3e58f8..26fb5b7 100644 --- a/src/DrawingProgram/Tools/LineDrawTool.cpp +++ b/src/DrawingProgram/Tools/LineDrawTool.cpp @@ -21,7 +21,6 @@ #include "../../MainProgram.hpp" #include "../../DrawData.hpp" #include "DrawingProgramToolBase.hpp" -#include "../../CanvasComponents/BrushStrokeCanvasComponent.hpp" #include "../../CanvasComponents/CanvasComponentContainer.hpp" #include "Helpers/MathExtras.hpp" @@ -63,26 +62,26 @@ void LineDrawTool::input_mouse_button_on_canvas_callback(const InputManager::Mou if(button.button == InputManager::MouseButton::LEFT) { auto& toolConfig = drawP.world.main.toolConfig; if(button.down && drawP.layerMan.is_a_layer_being_edited() && !objInfoBeingEdited && !drawP.world.main.g.gui.cursor_obstructed()) { - auto relativeWidthResult = drawP.world.main.toolConfig.get_relative_width_stroke_size(drawP, drawP.world.drawData.cam.c.inverseScale); - if(!relativeWidthResult.first.has_value()) { - drawP.world.main.toolConfig.print_relative_width_fail_message(relativeWidthResult.second); - return; - } - float width = relativeWidthResult.first.value(); + //auto relativeWidthResult = drawP.world.main.toolConfig.get_relative_width_stroke_size(drawP, drawP.world.drawData.cam.c.inverseScale); + //if(!relativeWidthResult.first.has_value()) { + // drawP.world.main.toolConfig.print_relative_width_fail_message(relativeWidthResult.second); + // return; + //} + //float width = relativeWidthResult.first.value(); - CanvasComponentContainer* newBrushStrokeContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::BRUSHSTROKE); - BrushStrokeCanvasComponent& newBrushStroke = static_cast(newBrushStrokeContainer->get_comp()); + //CanvasComponentContainer* newBrushStrokeContainer = new CanvasComponentContainer(drawP.world.netObjMan, CanvasComponentType::BRUSHSTROKE); + //BrushStrokeCanvasComponent& newBrushStroke = static_cast(newBrushStrokeContainer->get_comp()); - BrushStrokeCanvasComponentPoint p; - p.pos = drawP.world.main.input.mouse.pos; - p.width = width; - newBrushStroke.d.points->emplace_back(p); - p.pos = ensure_points_have_distance(p.pos, p.pos, 1.0f); - newBrushStroke.d.points->emplace_back(p); - newBrushStroke.d.color = toolConfig.globalConf.foregroundColor; - newBrushStroke.d.hasRoundCaps = toolConfig.lineDraw.hasRoundCaps; - newBrushStrokeContainer->coords = drawP.world.drawData.cam.c; - objInfoBeingEdited = drawP.layerMan.add_component_to_layer_being_edited(newBrushStrokeContainer); + //BrushStrokeCanvasComponentPoint p; + //p.pos = drawP.world.main.input.mouse.pos; + //p.width = width; + //newBrushStroke.d.points->emplace_back(p); + //p.pos = ensure_points_have_distance(p.pos, p.pos, 1.0f); + //newBrushStroke.d.points->emplace_back(p); + //newBrushStroke.d.color = toolConfig.globalConf.foregroundColor; + //newBrushStroke.d.hasRoundCaps = toolConfig.lineDraw.hasRoundCaps; + //newBrushStrokeContainer->coords = drawP.world.drawData.cam.c; + //objInfoBeingEdited = drawP.layerMan.add_component_to_layer_being_edited(newBrushStrokeContainer); } else if(!button.down && objInfoBeingEdited) commit(); @@ -91,22 +90,22 @@ void LineDrawTool::input_mouse_button_on_canvas_callback(const InputManager::Mou void LineDrawTool::input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion) { if(objInfoBeingEdited) { - constexpr float SNAP_DIVISION_COUNT = 12.0f; - NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; - BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); - Vector2f newPos = containerPtr->coords.from_cam_space_to_this(drawP.world, motion.pos); - Vector2f oldPos = brushStroke.d.points->front().pos; - if(drawP.world.main.input.key(InputManager::KEY_GENERIC_LSHIFT).held) { - Vector2f diff = (newPos - oldPos); - float diffLength = diff.norm(); - diff.normalize(); - float angle = (std::atan2(diff.y(), diff.x()) / std::numbers::pi) * SNAP_DIVISION_COUNT; - angle = std::round(angle); - angle = (angle * std::numbers::pi) / SNAP_DIVISION_COUNT; - newPos = oldPos + diffLength * Vector2f{cos(angle), sin(angle)}; - } - brushStroke.d.points->back().pos = ensure_points_have_distance(oldPos, newPos, 1.0f); - commitUpdate = true; + //constexpr float SNAP_DIVISION_COUNT = 12.0f; + //NetworkingObjects::NetObjOwnerPtr& containerPtr = objInfoBeingEdited->obj; + //BrushStrokeCanvasComponent& brushStroke = static_cast(containerPtr->get_comp()); + //Vector2f newPos = containerPtr->coords.from_cam_space_to_this(drawP.world, motion.pos); + //Vector2f oldPos = brushStroke.d.points->front().pos; + //if(drawP.world.main.input.key(InputManager::KEY_GENERIC_LSHIFT).held) { + // Vector2f diff = (newPos - oldPos); + // float diffLength = diff.norm(); + // diff.normalize(); + // float angle = (std::atan2(diff.y(), diff.x()) / std::numbers::pi) * SNAP_DIVISION_COUNT; + // angle = std::round(angle); + // angle = (angle * std::numbers::pi) / SNAP_DIVISION_COUNT; + // newPos = oldPos + diffLength * Vector2f{cos(angle), sin(angle)}; + //} + //brushStroke.d.points->back().pos = ensure_points_have_distance(oldPos, newPos, 1.0f); + //commitUpdate = true; } } diff --git a/src/EarcutIncludes.hpp b/src/EarcutIncludes.hpp new file mode 100644 index 0000000..03721cc --- /dev/null +++ b/src/EarcutIncludes.hpp @@ -0,0 +1,41 @@ +/* + * InfiniPaint + * Copyright (C) 2025-2026 Yousef Khadadeh + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "CoordSpaceHelper.hpp" +#include + +namespace mapbox { +namespace util { + +template <> +struct nth<0, Vector2f> { + inline static auto get(const Vector2f &t) { + return t.x(); + }; +}; +template <> +struct nth<1, Vector2f> { + inline static auto get(const Vector2f &t) { + return t.y(); + }; +}; + +} // namespace util +} // namespace mapbox + +