Repository navigation
difftest: trans_sweep_geometry op 8 makes its face with CreateFaceFromSurface and compares failed statuses - #692
Merged
bherbruck merged 5 commits intoOct 24, 2026
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mSurface The FaceSweepSame fixture built its face natively with SmBrep::CreateFaceFromSurface but in Rust as a bare face record, and a failed native CreateFaceFromSurface was recorded as a rejected fixture. The Rust runner now calls topology::brep::p8::create_face_from_surface on a B-rep with its infinite region, and the shim returns the failed status as the case output. The 11 cases that were rejected for it now compare SM_ERR on both sides; gen0411 now defers on the face-owned surface cache of a shell ray fire, so the unit is partial. Also explains in findings.md the small fixture rejections in blend.fillet_geom_p3, boolean.merge_p4 and offset.offset_executive_p2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brett19
marked this pull request as ready for review
October 24, 2026 00:09
…#685 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update after merging main (#685 landed):
gen0411now passes, so the unit is green again:PASS sweep.trans_sweep_geometry cases=788 passed=780 failed=0 deferred=0 rejected=8 max_rel_err=0e0(CI on the merged head). The unit toml is updated to green.Scope:
sweep.trans_sweep_geometryop 8 (FaceSweepSame), plus findings notes for a few small fixture rejections.What changed
topology::brep::p8::create_face_from_surfaceover the surface's natural domain, ontopology::brep::p3::new_brep(k, USE_DEFAULT, USE_DEFAULT). This matches the native fixture'snew SmBrep()+SmBrep::CreateFaceFromSurface. Before, the Rust side pushed a bare face record and set its surface by hand.CreateFaceFromSurfaceis now the case's output (its status) instead ofSC_ERR_ARG. The otherSC_ERR_ARGexits stay: a profile-curve constructor failure, a non-B-spline profile, a failedCreateLinearSweep, and a successful call that returns no face.CreateFaceFromSurfacefailed natively. All 11 now compare[1001](SM_ERRfromMakeFaceWithCurves: a near-degenerate or 1e-9-scale extrusion collapses to a curve) on both sides. The cases arenanoscale_fixture_{0,1,2,4,5}_8,gen0147,gen0256,gen0337,gen0386,gen0405andgen0471.rejected_constructor_{0,2}_8. Their profile curve constructor fails (a 1e-15 line, a 1e-15 radius circle) before any face exists, the same as their op 5-7 siblings.gen0411(a closed circle extrusion) passed against the bare face record. It now defers ontopology.face_p2("SmFace handle of a surface's face"). In Rust,MakeFaceWithCurvessplits the closed face, and finding the infinite region ray-fires the shell, which reaches the face-owned surface cache. This is the same shell ray-fire gap that fix: prepare face geometry for shell ray queries #613 / fix: prepare face geometry for shell ray queries (stacked on #613, merged with main) #685 address. The unit therefore goes from green to partial.blend.fillet_geom_p3:regress_corner_edge_on_edgeandregress_recalc_analytic_default.boolean.merge_p4: 3 plane operands whose face domain exceedsSM_INFINITE_PARAMETER.offset.offset_executive_p2: the 9review_sheet_*cases, where a tolerance-collapsed sheet is not representable.Difftest
Before (main):
After:
Local gate: fmt, clippy
-D warnings,cargo test -p solidcoreand the wasm32 check pass. Library code is unchanged.🤖 Generated with Claude Code