mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-04 11:05:56 +00:00
Known failures after the new fixes: four tests and a rig case pass
They pass now and are un-listed: the convex-edge chamfer refused as too large (solidcore#2175), the thickened spherical cap (#2174), the thickened B-spline patch (#2111), the extrude reading back the region clicked (#2177), and the rig's round of cylinders touching at a point (#2110). solidcore now passes the six self-crossing intersection cases it missed against the C++ kernel (ssi_split_curves_at_singular_points: off, they miss again), so the corpus test asks for no miss at all. Listed: the moved-top offset test's C++ comparison, as solidcore's offset edges keep their tolerances and the pinned C++ kernel's don't (both stay 1.2e-8 to 3.1e-7 off the closed form). The tabbed plate test gets past the corner arc alone (#2176) and fails later, on the rim and a corner arc rounded together, each of which builds alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SdcgEu4Lr3moCCisdZShKz
This commit is contained in:
@@ -665,18 +665,9 @@ fn smlib_global_intersect_at_1e_6() {
|
||||
assert_eq!(passed.len(), 111);
|
||||
}
|
||||
|
||||
/// The cases solidcore does not pass that the C++ kernel does (default-solidcore/bugs/
|
||||
/// ssi-self-crossing-curve-not-split.md). Listed so the difference is seen and only shrinks.
|
||||
const SOLIDCORE_GSI_1E6_MISSES: [&str; 6] = [
|
||||
"c4_viviani_figure8",
|
||||
"c4n_viviani_nurbs",
|
||||
"y23_fig1a_two_loops_cross",
|
||||
"y23_t2_ex5_two_loops",
|
||||
"y23_t3_ex4_torus_ellipsoid",
|
||||
"y23_t6_ex3_two_crossing_curves",
|
||||
];
|
||||
|
||||
/// solidcore passes what the C++ kernel passes, but for [`SOLIDCORE_GSI_1E6_MISSES`].
|
||||
/// solidcore passes every case the C++ kernel passes ([`GSI_1E6_PASS`]). The self-crossing
|
||||
/// curves it missed (Viviani's figure eight, the crossing loops) are split at their crossings
|
||||
/// since solidcore's `ssi_split_curves_at_singular_points` (tangency-labs/solidcore#2110).
|
||||
#[test]
|
||||
fn solidcore_global_intersect_at_1e_6() {
|
||||
let Some(scores) = global_intersect_scores(solidcraft_smlib::route::Backend::Solidcore) else { return };
|
||||
@@ -684,5 +675,5 @@ fn solidcore_global_intersect_at_1e_6() {
|
||||
let listed: std::collections::BTreeSet<&str> = GSI_1E6_PASS.iter().copied().collect();
|
||||
let lost: Vec<&str> = listed.difference(&passed).copied().collect();
|
||||
let extra: Vec<_> = passed.difference(&listed).collect();
|
||||
assert_eq!(lost, SOLIDCORE_GSI_1E6_MISSES, "solidcore's misses against the C++ kernel; extra passes: {extra:?}");
|
||||
assert!(lost.is_empty(), "solidcore misses what the C++ kernel passes: {lost:?}; extra passes: {extra:?}");
|
||||
}
|
||||
|
||||
@@ -16,12 +16,9 @@ solidcraft-kernel::blend::corner_tests::a_round_ending_in_an_earlier_round_match
|
||||
solidcraft-kernel::blend::corner_tests::corner_blends_hold_at_any_scale at 0.01x the arc case's rounds remove 72.783 (scaled back) against 72.713 at 1x, as on C++
|
||||
solidcraft-kernel::blend_corner::tests::issue2422_vertical_after_separate_bottom_rounds the check refuses the fillet: edge and vertex tolerance 0.97 against the body's 0.01, as on C++ (#2422)
|
||||
solidcraft-kernel::blend_variable::tests::variable_radius_through_a_middle_point solidcore refuses a variable fillet whose law has a corner (solidcore#430)
|
||||
solidcraft-kernel::blend_wrong_way_tests::a_chamfer_that_would_grow_the_part_on_a_convex_edge_is_refused solidcore refuses the chamfer as not a closed solid where C++ refuses it as too large (solidcore#2175)
|
||||
solidcraft-kernel::corner_g2::tests::a_long_setback_keeps_the_g2_patch_inside_the_box at set backs 11 to 15 the G2 corner patch bulges past the box, as on C++
|
||||
solidcraft-kernel::corner_g2::tests::the_box_corner_g2_patch_is_a_closed_solid_curvature_continuous_to_its_neighbours the fitted G2 corner patch bulges 1.7e-5 past the box, as on C++
|
||||
solidcraft-kernel::surfaces::tests::thicken_a_bspline_patch_by_its_sampled_offsets offset of a filled B-spline patch: check fails with Bad Gap (solidcore#2111)
|
||||
solidcraft-kernel::surfaces::tests::thicken_curved_faces_onto_fitted_surfaces thickening a spherical cap fails with status 1001 (solidcore#2174)
|
||||
solidcraft-kernel::tests::fillet_tabbed_plate_outer_loop_and_partial_selection_after_hole not a closed solid on one tab round on solidcore (solidcore#2176); on C++ the rounds together miss by 3.8e-4
|
||||
solidcraft-ui-egui::dialogs::dense::all_tests::extrude_builds_the_one_region_clicked_where_the_face_outline_cuts_a_profile reading the extrude's result back: a UV trim with too few points for its order (solidcore#2177)
|
||||
solidcraft-kernel::tests::fillet_tabbed_plate_outer_loop_and_partial_selection_after_hole each tab corner arc rounds alone since solidcore#2176, but the R25 rim and a corner arc picked together fail 1001 in cliff_overflow (no room), though each builds alone; on C++ the rounds together miss by 3.8e-4
|
||||
solidcraft-smlib::core::offset_tests::mitred_rounds_follow_a_moved_top the C++ comparison: solidcore's offset edges keep their tolerances (offset_edges_keep_source_tolerance, solidcore#2111), C++ at 7ac037e's do not, so the moved tops' volumes are 2e-9 to 2.3e-7 apart; both are 1.2e-8 to 3.1e-7 off the closed form at accuracy 1e-8, solidcore with the fix 2.1e-7 at most
|
||||
solidcraft-ui-egui::timeline::tests::each_chip_finds_its_own_result main's test: its radius 20 fillet with fit reduce on a 10 mm box builds without a reduced-radius warning, so the fixture has no warned feature, as on C++
|
||||
solidcraft-ui-egui::viewport::appearance_tests::bodies_out_of_the_view_are_not_drawn main's test counts 12 triangles a box; the kernel's mesher gives a 10 mm box more, so the count is wrong before it reaches the culling, as on C++
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
5158-fillet-round-just-past-a-10mm-face [unsupported] step 2 (solid.fillet): not supported yet: the fillet is larger than the faces beside its edges allow; the largest radius that fits is 10 mm
|
||||
9-fillet-corner-curvature-with-reduce-fit [unsupported] solid.fillet builds `corner: g2` with `fit: exact` only
|
||||
9-fillet-corner-curvature-with-taper-fit [unsupported] solid.fillet builds `corner: g2` with `fit: exact` only
|
||||
cov-fillet-exact-cylinders-touching-at-a-point-r1 [fail] step 2 (solid.cylinder): body `Pipes`: the operation failed: SMLib boolean: SMLib's check refuses the result: 2 failed tests: SmFace::Test #29 Face cr
|
||||
cov-fillet-g2-corner-beside-a-cylinder [fail] step 6 (solid.fillet): invalid input: cannot fill the loop: invalid spline: invalid input: a picked edge is not on the face beside it
|
||||
cov-fillet-g2-five-edge-apex-corner [fail] step 12 (solid.fillet): invalid input: the setback must be more than 3.5056 mm at the corner (-0.000, 0.000, 30.000): the rounds' contact lines meet 3
|
||||
cov-fillet-g2-four-edge-apex-corner [fail] step 11 (solid.fillet): invalid input: the setback must be more than 3.9027 mm at the corner (0.000, 0.000, 30.000): the rounds' contact lines meet 3.
|
||||
|
||||
Reference in New Issue
Block a user