Files
solvecraft/plan/units/surface.surface_assert_valid.toml
T
chris 16a63c15d5 Merge current main for CurveBoundedSurface review
Co-Authored-By: Codex <noreply@openai.com>

# Conflicts:
#	crates/difftest/src/units/surface_surface_assert_valid.rs
#	crates/solidcore/src/surface/surface/assert_valid.rs
#	plan/units/surface.surface_assert_valid.toml
2026-10-30 18:57:54 -07:00

13 lines
3.0 KiB
TOML

id = "surface.surface_assert_valid"
upstream = ["source/SMLib/src/SmSurface.cpp", "source/SMLib/src/SmBSplineSurface.cpp", "source/SMLib/src/SmNurbsSrf.cpp", "source/SMLib/src/SmPlane.cpp", "source/SMLib/src/SmCone.cpp", "source/SMLib/src/SmCylinder.cpp", "source/SMLib/src/SmSphere.cpp", "source/SMLib/src/SmTorus.cpp", "source/SMLib/src/SmSurfOfRevolution.cpp", "source/SMLib/src/SmSurfOfExtrusion.cpp", "source/SMLib/src/SmAxis2Placement.cpp", "source/SMLib/src/SmPointSet.cpp"]
rust_module = "surface::surface::assert_valid"
depends_on = ["geom.assert_array", "surface.surface_p1", "surface.surface_p2", "surface.surface_p3", "surface.surface_p6", "surface.surface_p7", "surface.surface_p9", "nurbs.b_spline_surface_p1", "surface.plane_p1", "surface.cone_p1", "surface.sphere", "surface.torus", "surface.surf_of_revolution_p1", "surface.surf_of_extrusion_p1"]
soft_depends_on = []
est_lines = 1100
layer = 31
tests = []
status = "green"
claimed_by = ""
claimed_at = ""
notes = "PR #1621 implements CurveBoundedSurface validity with bounded containment and distinct report identities, 128 named cases plus 400 cbd generated cases. Before this main integration: 2598 cases, 2210 value passes, 388 guarded refusals, no mismatches. Current-main revalidation pending. PR #1460, issue #1419 (WP3a): SmSurface::AssertValid (virtual) and the SmBSplineSurface, SmPlane, SmCone, SmCylinder, SmSphere, SmTorus, SmSurfOfRevolution and SmAxis2Placement checks, with HasKnotMultiplicityGreaterThanDegree, HasInternalPole, HasDegenerateControlPointRow, HasSameParameterization (curve) and SmPointGrid::SetUpMonotonic (none of them in harness/callgraph). Pinned upstream behaviour (no fork torus flags). SmCurveBoundedSurface, SmSrfInVolume and SmOffsetSurface checks return Unported (WP3b). SmSurfOfExtrusion::AssertValid ported (WP3b, its own PR): 170 named fixture cases (fixtures/surface.surface_assert_valid/extrusion.json, from fixer-5's independent port: line, perpendicular, independent, coplanar and non-planar generators with and without a tangent along the extrusion, at three scales, levels, make and swap, and test 7/8 corruptions) and 400 generated extrusion cases ext0000.. on their own seed stream (main's gen cases unchanged). GATE COUNTS: TODO from the leader's run. GREEN (2026-10-30, after the merge with the extrusion cases): PASS surface.surface_assert_valid cases=2370 passed=2214 failed=0 deferred=0 max_rel_err=0e0 rejected=156 (rejected by the FFI guards: iso boundaries that cannot be built, HasInternalPole indexing outside the net). Interior knots above the degree (B-spline test 1) and sphere V intervals past a pole (sphere tests 3/4/5) are compared against C++; they are drawn by 300 generated cases ovf0000.. on their own seed stream, so every gen case keeps main's inputs. BSplineSurface::create_iso_parametric_curve now returns the calloc'd all-zero curve at such knots, as upstream. Regression tests: the tests module of crates/solidcore/src/surface/surface/assert_valid.rs and iso_curve_at_knot_above_degree_is_the_zero_curve in nurbs/b_spline_surface/p2.rs."