test(posts): post the CI Fiber sample's own lead-ins and match it line for line

The sample regression fixture now carries each part's pierce, lead-in and
cut moves from the Cincinnati machine program as its saved cutting program.
A new test posts those saved programs without reassigning lead-ins and
requires the program body to equal the sample exactly: L2/L4 macro, G41/G42
side, lead-ins and every cut move (21,911 lines).

Mutation checks: dropping the largest-contour perimeter rule from the kerf
fix fails it at the first perimeter (L4 posted as L2), and forcing G41 fails
it at the first perimeter's G42. The existing tests still replace the saved
programs with OpenNest's own lead-ins first; their comment now says so
instead of describing the sample's leads wrongly.
This commit is contained in:
aj committed 2026-10-20 07:36:01 -04:00
1 parent 63233db108
commit cc2b3d1b81
2 files changed
+60 -5

No files matched your search

+7 -1
View File
@@ -100,7 +100,13 @@ validated and saved only when OK is pressed.
cover a square with a hole, kerf side for either winding, coordinate
transforms/formatting, lead-in rejection,
cut-off sequencing and output, table bounds, suppression/scribe handling, and
multi-sheet output in both modes. Run:
multi-sheet output in both modes.
[Sample regression tests](../OpenNest.Tests/CincinnatiCIFiber/CIFiberSampleRegressionTests.cs)
post a nest rebuilt from a Cincinnati machine sample, whose parts carry the
sample's own pierce, lead-in and cut moves. Posted unchanged, the program body
must match the sample line for line (macro, G41/G42 side, lead-ins and cuts).
The fixture stays outside the repository and the tests skip when
`test-config.json` does not point at it. Run:
```sh
dotnet test OpenNest.Tests/OpenNest.Tests.csproj --filter FullyQualifiedName~CincinnatiCIFiber