Skip to content

fix(geometry): Triangle2D.Reverse reverses the stored vertex order (Q4) - #229

Merged
michaldengusiak merged 4 commits into
sow/2026-Q4from
fix/triangle2d-reverse-q4
Nov 1, 2026
Merged

michaldengusiak merged 4 commits into
sow/2026-Q4from
fix/triangle2d-reverse-q4

Conversation

@michaldengusiak

@michaldengusiak michaldengusiak commented Nov 1, 2026 •

Copy link
Copy Markdown

Ready for review (marked 2026-11-01 09:15 UTC under michaldengusiak). Pilot LOOP-1. Do not merge without the owner's exact approval line for the final head.

This delivery does not close F2, the tamper promise, teardown, continuity, S-09 or Phase 1a.

Change

Triangle2D.Reverse() did nothing: points.Reverse(); on a Point2D[] binds to LINQ and the result was discarded. It is now Array.Reverse(points);, the same fix SAM#228 made in Triangle3D. No signature, JSON or tolerance change.

Face.Reverse() reaches this method through IReversible when an edge is a Triangle2D, so the earlier "no callers" record was incomplete. Such a face is built by the public implicit Face2D(Triangle2D) operator. Record: documentation/Triangle2D-Reverse-Q4.md.

Heads

Item SHA
Base sow/2026-Q4 15d8c9097360ffd2580ef3b82239e70c3b646c94
Controller-tested and Codex-reviewed content 914be22451da79dcc9b0aedf0f02e70496781245
Tested content (adds the Face2D test after the owner's PR review; production code unchanged) 5d608857004b3ad30b6d2f9e6546af7f53999f0b
Final head (one record-only commit, touches only the record) 2646daea74e7e22529e181cd7ecf4d938b909d2f

Local checks at 5d608857 (developer run, Debug, outside MXC)

Check Result
dotnet test SAM/SAM.Tests/SAM.Tests.csproj -p:NuGetAudit=false Full suite, no filter: 3981 passed, 0 failed, 0 skipped
Fail-first control Order, orientation, IReversible and Face2D tests fail on the unfixed source; the other 2 of 6 pass, as expected of a no-op

Local checks at 914be224 (not repeated at 5d608857)

Check Result
Controller build and test, MXC profile G, Debug Filtered run, not the full suite: 3978 passed, 0 failed, 0 skipped
Excluded from that run SAM.Tests.PartOBaselineReferenceTests.ARenamedDesign_IsFoundByIdentity and SAM.Tests.PartOBaselineReferenceTests.ARuntimeHint_FindsADesignTheLocatorCannot_AndIsNotPersisted, owner direction 29: they fail under MXC on File.Move access denied. Both passed in a separate local run outside MXC
samctl spdx Pass
Independent review, Codex gpt-6.1-sol High ACCEPT, round 1 of 3, no findings
Acceptance gate Passed

GitHub checks at the final head

spdx, build (Release) and test (Release) passed at 2646daea. The test (Release) job log reports 3981 total, 3981 passed, and has a Passed line for both excluded tests and all six new tests, with no Failed line.

Not run: SAM.Core.Grasshopper.Tests, which needs Rhino.

Not covered: the internal-edge branch of Face.Reverse() has no test.

🤖 Generated with Claude Code

michaldengusiak and others added 4 commits November 1, 2026 07:53
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@michaldengusiak
michaldengusiak marked this pull request as ready for review November 1, 2026 09:15
@michaldengusiak
michaldengusiak merged commit 61532d0 into sow/2026-Q4 Nov 1, 2026
3 checks passed
@michaldengusiak
michaldengusiak deleted the fix/triangle2d-reverse-q4 branch November 1, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant