fix: a lenient parameter boundary found across a seam is not used; record seed 81 (#1003)
#970's lenient retry of a face's parameter boundary searches the whole surface as a last resort; on robustness seed 20 it found an edge's points across a cylinder's seam, half a turn apart, and the Cut failed. A lenient boundary whose points jump half the parameter range or more is refused, and the face is left undivided as before (#970's elbows step at most a fifth of the range). Seed 81's volume moved by 0.1 mm3 with #952's hole direction; recorded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cf9d7772f1
commit
dfbf7dd6a8
3 files changed
+25
-2
No files matched your search
@@ -549,3 +549,13 @@ fn blend_corners_where_edges_meet_on_a_curved_wall() {
|
||||
let removed = base - planned_volume(&s);
|
||||
assert!((removed - 67.05).abs() < 0.15, "three at the corner: removed {removed}, expected 67.05");
|
||||
}
|
||||
|
||||
/// Seed 20 cuts a patterned cylinder's holes through a filleted plate. The lenient retry of a
|
||||
/// face's parameter boundary (#970) searched the whole cylinder for a point and found it across
|
||||
/// the seam, half a turn away; the face was divided wrongly and the cut failed. Such a boundary
|
||||
/// is refused now, and the cut builds as before #970.
|
||||
#[test]
|
||||
fn a_boundary_found_across_a_seam_is_not_used() {
|
||||
let r = fuzz::run(20, 8);
|
||||
assert_eq!(r.outcome.kind, "ok", "seed 20: {:?}\n{}", r.outcome, r.script());
|
||||
}
|
||||
Reference in new issue
Block a user