diff --git a/OpenNest.Tests/CuttingStrategy/ArcLeadInTangentTests.cs b/OpenNest.Tests/CuttingStrategy/ArcLeadInTangentTests.cs index ea768c89..079656d2 100644 --- a/OpenNest.Tests/CuttingStrategy/ArcLeadInTangentTests.cs +++ b/OpenNest.Tests/CuttingStrategy/ArcLeadInTangentTests.cs @@ -2,6 +2,7 @@ using OpenNest.CNC; using OpenNest.CNC.CuttingStrategy; using OpenNest.Geometry; using OpenNest.Math; +using static OpenNest.Tests.CuttingStrategy.LeadInTestHelpers; namespace OpenNest.Tests.CuttingStrategy; @@ -168,9 +169,6 @@ public class ArcLeadInTangentTests program.Codes.Add(new LinearMove(point)); } - private static ShapeProfile Profile(Part part) => new(part.Program.ToGeometry() - .Where(e => SpecialLayers.IsMaterial(e.Layer)).ToList()); - private static IEnumerable Leads(Part part, Layer layer) => part.Program.ToGeometry().Where(e => e.Layer == layer); @@ -182,10 +180,4 @@ public class ArcLeadInTangentTests var radial = (point - arc.Center).Normalize(); return arc.IsReversed ? new Vector(radial.Y, -radial.X) : new Vector(-radial.Y, radial.X); } - - private static void AssertPoint(Vector expected, Vector actual) - { - Assert.Equal(expected.X, actual.X, 8); - Assert.Equal(expected.Y, actual.Y, 8); - } } diff --git a/OpenNest.Tests/CuttingStrategy/CutoutCornerLeadInTests.cs b/OpenNest.Tests/CuttingStrategy/CutoutCornerLeadInTests.cs index b0cfba2f..9adbe463 100644 --- a/OpenNest.Tests/CuttingStrategy/CutoutCornerLeadInTests.cs +++ b/OpenNest.Tests/CuttingStrategy/CutoutCornerLeadInTests.cs @@ -1,6 +1,7 @@ using OpenNest.CNC; using OpenNest.CNC.CuttingStrategy; using OpenNest.Geometry; +using static OpenNest.Tests.CuttingStrategy.LeadInTestHelpers; namespace OpenNest.Tests.CuttingStrategy; @@ -283,9 +284,6 @@ public class CutoutCornerLeadInTests program.Codes.Add(new LinearMove(point)); } - private static ShapeProfile Profile(Part part) => new(part.Program.ToGeometry() - .Where(e => SpecialLayers.IsMaterial(e.Layer)).ToList()); - private static Shape Cutout(Part part) => Assert.Single(Profile(part).Cutouts); private static Line SingleLeadIn(Part part) => Assert.IsType(Assert.Single( @@ -297,10 +295,4 @@ public class CutoutCornerLeadInTests AssertPoint(corner + direction / direction.DistanceTo(Vector.Zero) * LeadLength, lead.StartPoint); Assert.Equal(LeadLength, lead.Length, 8); } - - private static void AssertPoint(Vector expected, Vector actual) - { - Assert.Equal(expected.X, actual.X, 8); - Assert.Equal(expected.Y, actual.Y, 8); - } } diff --git a/OpenNest.Tests/CuttingStrategy/LeadInTestHelpers.cs b/OpenNest.Tests/CuttingStrategy/LeadInTestHelpers.cs new file mode 100644 index 00000000..9f76603a --- /dev/null +++ b/OpenNest.Tests/CuttingStrategy/LeadInTestHelpers.cs @@ -0,0 +1,20 @@ +using OpenNest.CNC; +using OpenNest.CNC.CuttingStrategy; +using OpenNest.Geometry; + +namespace OpenNest.Tests.CuttingStrategy; + +/// Helpers the lead-in tests share. Import with using static. +internal static class LeadInTestHelpers +{ + /// Asserts both coordinates match to 8 decimal places. + public static void AssertPoint(Vector expected, Vector actual) + { + Assert.Equal(expected.X, actual.X, 8); + Assert.Equal(expected.Y, actual.Y, 8); + } + + /// The part's shape profile, leaving out rapid, scribe and break layers. + public static ShapeProfile Profile(Part part) => new(part.Program.ToGeometry() + .Where(e => SpecialLayers.IsMaterial(e.Layer)).ToList()); +} diff --git a/OpenNest.Tests/CuttingStrategy/PerimeterCornerLeadInTests.cs b/OpenNest.Tests/CuttingStrategy/PerimeterCornerLeadInTests.cs index bd4d29d1..f573ee4e 100644 --- a/OpenNest.Tests/CuttingStrategy/PerimeterCornerLeadInTests.cs +++ b/OpenNest.Tests/CuttingStrategy/PerimeterCornerLeadInTests.cs @@ -1,6 +1,7 @@ using OpenNest.CNC; using OpenNest.CNC.CuttingStrategy; using OpenNest.Geometry; +using static OpenNest.Tests.CuttingStrategy.LeadInTestHelpers; namespace OpenNest.Tests.CuttingStrategy; @@ -254,9 +255,6 @@ public class PerimeterCornerLeadInTests program.Codes.Add(new LinearMove(point)); } - private static ShapeProfile Profile(Part part) => new(part.Program.ToGeometry() - .Where(e => SpecialLayers.IsMaterial(e.Layer)).ToList()); - private static Shape Perimeter(Part part) { var perimeter = Profile(part).Perimeter; @@ -275,10 +273,4 @@ public class PerimeterCornerLeadInTests private static Line SingleLead(Part part, Layer layer) => Assert.IsType(Assert.Single( part.Program.ToGeometry().Where(e => e.Layer == layer))); - - private static void AssertPoint(Vector expected, Vector actual) - { - Assert.Equal(expected.X, actual.X, 8); - Assert.Equal(expected.Y, actual.Y, 8); - } }