From ad877383ce3336d2e2d4e6032c48a3cd6adeb3ea Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 16 Mar 2026 00:22:50 -0400 Subject: [PATCH] feat: add CuttingResult struct Co-Authored-By: Claude Sonnet 4.6 --- .../CNC/CuttingStrategy/CuttingResult.cs | 11 +++++++++ OpenNest.Engine.Tests/CuttingResultTests.cs | 23 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 OpenNest.Core/CNC/CuttingStrategy/CuttingResult.cs create mode 100644 OpenNest.Engine.Tests/CuttingResultTests.cs diff --git a/OpenNest.Core/CNC/CuttingStrategy/CuttingResult.cs b/OpenNest.Core/CNC/CuttingStrategy/CuttingResult.cs new file mode 100644 index 0000000..933db14 --- /dev/null +++ b/OpenNest.Core/CNC/CuttingStrategy/CuttingResult.cs @@ -0,0 +1,11 @@ +using OpenNest.CNC; +using OpenNest.Geometry; + +namespace OpenNest.CNC.CuttingStrategy +{ + public readonly struct CuttingResult + { + public Program Program { get; init; } + public Vector LastCutPoint { get; init; } + } +} diff --git a/OpenNest.Engine.Tests/CuttingResultTests.cs b/OpenNest.Engine.Tests/CuttingResultTests.cs new file mode 100644 index 0000000..ab600dd --- /dev/null +++ b/OpenNest.Engine.Tests/CuttingResultTests.cs @@ -0,0 +1,23 @@ +using OpenNest.CNC; +using OpenNest.CNC.CuttingStrategy; +using OpenNest.Geometry; +using Xunit; + +namespace OpenNest.Engine.Tests; + +public class CuttingResultTests +{ + [Fact] + public void CuttingResult_StoresValues() + { + var pgm = new Program(); + pgm.Codes.Add(new RapidMove(new Vector(1, 2))); + var point = new Vector(3, 4); + + var result = new CuttingResult { Program = pgm, LastCutPoint = point }; + + Assert.Same(pgm, result.Program); + Assert.Equal(3, result.LastCutPoint.X); + Assert.Equal(4, result.LastCutPoint.Y); + } +}