test(repro02,repro03): assert exact board solid count to guard hole-cut and wrapper-exclusion paths#99
Conversation
…uit#6 regression Tighten STEP regression coverage for two board-only fixtures that were previously guarded only by a loose `meshes.length > 0` OCCT import check. repro02 (rotated-pill hole board): - Adds `solidCount = 1` assertion to guard against the complex rotated-pill hole cutting code fragmenting the board into multiple MANIFOLD_SOLID_BREP entities or spuriously generating component boxes for source_components that have no pcb_component entry. repro03 (hole-wrapper component exclusion): - Adds MANIFOLD_SOLID_BREP presence check (previously absent). - Adds `solidCount = 1` assertion to guard against hole-wrapper pcb_components (subcircuit containers) incorrectly receiving fallback component boxes. If such a regression reoccurs, solidCount would jump above 1 and the test would fail. Both paths are non-overlapping with the existing open guards: - basics04 / repro01 → component box counts (PRs tscircuit#94, tscircuit#97) - basics06 / kicad-step → external STEP model counts (PR tscircuit#96) /claim tscircuit#6
|
@colorbank is attempting to deploy a commit to the tscircuit Team on Vercel. A member of the Team first needs to authorize it. |
|
Quick unblock request: the code CI checks are green, but the remaining failing status is Vercel authorization. Current status:
Could a tscircuit team member please authorize the Vercel deployment so the final status can proceed? Thank you! |
|
Hi maintainers — quick follow-up on this claim. My Algora claim for this PR is still showing Pending: https://algora.io/claims/E88WdA3bZxZQuaT8 Current status from the PR:
If this looks good, could someone please authorize the Vercel deployment and help review/release the associated bounty claim? Thank you! |
Summary
Tightens STEP regression coverage for two board-only fixtures that were previously guarded only by a loose
meshes.length > 0OCCT import check.repro02 — rotated-pill hole board
Adds an exact
solidCountassertion after the existingMANIFOLD_SOLID_BREPpresence check:Why 1?
repro02.jsoncontainssource_components(MP1-4, Xpattern1-4) but nopcb_componententries. The STEP converter only generates component boxes forcad_componentrecords. Without those, the board itself is the only solid. A regression that:…would cause
solidCount > 1and fail this guard.repro03 — hole-wrapper component exclusion
Adds two new assertions:
expect(stepText).toContain("MANIFOLD_SOLID_BREP")— basic presence check (was missing)solidCount = 1guard — hole-wrapper pcb_components must never receive fallback boxesWhy 1? All
pcb_componententries inrepro03.jsonare subcircuit hole-wrapper containers (obstructs_within_bounds). Restoring the erroneous fallback that generates boxes for these wrappers would pushsolidCountabove 1 and fail the test — exactly the regressionrepro03was designed to catch.Non-overlap with existing open PRs
basics04,repro01basics06,kicad-steprepro04+ production fallback codepcb_silkscreen_rect,pcb_smtpad)repro02,repro03— untouched by all aboveNo conflicts, purely additive test assertions on two fixtures not covered by any open PR.
/claim #6