-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Mesh_2: fix degenerate cases #9290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add new bisect_failures template function to help identify minimal failing test cases from complex input data. The utility uses a bisection-like approach to iteratively simplify data and locate the smallest subset that causes failures. Features: - Handles multiple failure types: CGAL exceptions, std::exceptions, exit codes - Automatic ratio adjustment (starts at 0.5, halves when no fault found) - Saves intermediate states for debugging (current, bad, error, final_bad) - Comprehensive test suite with 14 tests covering all combinations: * Edge cases (empty data, no failures) * Single element failures (each failure type independently) * Pair combinations (all 2-element permutations) * Triple combinations (all 3 failure types together) * Large datasets (up to 200 elements) The test suite demonstrates complete combinatorial coverage of three independent failure conditions and validates the algorithm's ability to isolate minimal failing cases. All tests pass in both Debug and Release configurations.
Co-authored-by: Andreas Fabri <[email protected]>
…rineau' into pr/afabri/8429
|
Even if this PR is a bug-fix, I would prefer it to be in CGAL-6.2 only, because there is a breaking change on the requirements of the traits class: a48e7ee#diff-13fc09a664b393d1a17f16b50657be2bc99df52a992c50a2880ad88525d823bc |
[skip ci]
8eaa596 to
a8e9bbe
Compare
|
Bug reported in the CI, also in the testsuite. |
`Base_with_time_stamp` was renamed `Triangulation_simplex_base_with_time_stamp` without compatibility (and I have the former header on my machine)
That will probably fix the testsuite results of Surface_mesher.
Summary of Changes
This PR fixes the error reported in issue #781. The main two changes are:
Refine_edges.h: allow the refinement point of a constrained edge to be an existing close encroaching vertex,Refine_faces.h: skip tiny bad faces when their bbox are smaller than a few ulp.Release Management