diff --git a/OpenNest.Console/Program.cs b/OpenNest.Console/Program.cs
index 5471388f..bc5a4a9a 100644
--- a/OpenNest.Console/Program.cs
+++ b/OpenNest.Console/Program.cs
@@ -115,7 +115,7 @@ static class NestConsole
Console.Error.WriteLine(
engine.IsJobEngine
? $"Error: engine '{engine.Name}' is a whole-job engine; single-plate fill supports: {string.Join(", ", PlateFillService.BuiltInStrategies)}. Use --autonest for whole-job engines."
- : $"Error: unknown engine '{engine.Name}'. Fill strategies: {string.Join(", ", PlateFillService.BuiltInStrategies)} (whole-job engines such as StockLadder require --autonest)"
+ : $"Error: unknown engine '{engine.Name}'. Fill strategies: {string.Join(", ", PlateFillService.BuiltInStrategies)} (whole-job engines such as Irregular require --autonest)"
);
return 1;
}
diff --git a/OpenNest.Engine.Tests/Jobs/GoldenLayoutTests.cs b/OpenNest.Engine.Tests/Jobs/GoldenLayoutTests.cs
index 9a49c1ad..fbe7dc9f 100644
--- a/OpenNest.Engine.Tests/Jobs/GoldenLayoutTests.cs
+++ b/OpenNest.Engine.Tests/Jobs/GoldenLayoutTests.cs
@@ -1,6 +1,8 @@
using System.Globalization;
using OpenNest.CNC;
using OpenNest.Engine.Jobs;
+using OpenNest.Engine.Jobs.Adapters;
+using OpenNest.Engine.Jobs.Placement;
using OpenNest.Geometry;
using Xunit;
@@ -293,13 +295,18 @@ public class GoldenLayoutTests
///
/// OrderedPlateNester has no legacy counterpart, so it is pinned with plain deterministic
- /// poses (via its production wiring: StockLadderNestingEngine's default nester) instead of
- /// a legacy-parity comparison.
+ /// poses instead of a legacy-parity comparison. Parts are requested largest first.
///
[Fact]
- public void OrderedViaStockLadder_MixedJob_GoldenLayout()
+ public void Ordered_MixedJob_GoldenLayout()
{
- var result = SolveStable(new StockLadderNestingEngine(), MixedJob("Fill"));
+ var mixed = MixedJob("Fill");
+ var job = new NestJob(
+ mixed.Parts.OrderByDescending(p => DrawingJobMapper.CreateDrawing(p).Area),
+ mixed.Plates,
+ mixed.Options
+ );
+ var result = SolveStable(new NestJobRunner(_ => new OrderedPlateNester()), job);
Assert.Equal(NestJobStatus.Complete, result.Status);
AssertGolden(
result,
@@ -371,38 +378,6 @@ public class GoldenLayoutTests
}
}
- [Fact]
- public void StockLadder_ProgressStream_GoldenSequence()
- {
- var stages = new List();
- var legacyPhases = new SortedSet();
- var result = new StockLadderNestingEngine().Solve(
- ProgressJob(),
- new StageCollector(stages, legacyPhases)
- );
-
- Assert.Equal(NestJobStatus.Complete, result.Status);
- Assert.Equal(
- new[]
- {
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "small", 0, 0),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "large", 0, 0),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "small", 0, 0),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "large", 0, 0),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "small", 0, 0),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "large", 0, 0),
- new AuthoritativeStage(NestJobStage.PlateCommitted, "small", 1, 4),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "small", 1, 4),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "large", 1, 4),
- new AuthoritativeStage(NestJobStage.PlateCommitted, "small", 2, 9),
- new AuthoritativeStage(NestJobStage.EvaluatingCandidate, "small", 2, 9),
- },
- stages
- );
- // StockLadder evaluates its nester without a progress sink.
- Assert.Empty(legacyPhases);
- }
-
[Fact]
public void FixedStrategy_ProgressStream_GoldenSequence()
{
diff --git a/OpenNest.Engine.Tests/Jobs/NestJobCostTests.cs b/OpenNest.Engine.Tests/Jobs/NestJobCostTests.cs
index 889292d8..8b8f1569 100644
--- a/OpenNest.Engine.Tests/Jobs/NestJobCostTests.cs
+++ b/OpenNest.Engine.Tests/Jobs/NestJobCostTests.cs
@@ -35,9 +35,6 @@ public class NestJobCostTests
Assert.Equal(expected, LegacyNestJobCost.EstimateNetArea(job, sheet));
Assert.Equal(expected, NestJobCost.NetSheetArea(job, sheet));
Assert.Equal(expected, NestJobCost.NetSheetArea(job.Options, stock, new Box(x, y, width, height)));
-#pragma warning disable CS0618 // Compatibility API must retain the old result.
- Assert.Equal(expected, StockLadderNestingEngine.EstimateNetArea(job, sheet));
-#pragma warning restore CS0618
}
[Theory]
@@ -68,7 +65,7 @@ public class NestJobCostTests
[InlineData(0.5, 7, 100)]
[InlineData(0.5, 6, 70)]
[InlineData(0.5, 5, 70)]
- public void StockLadderFixtureRetainsThresholds(double rate, double minimum, double expected)
+ public void NetSheetAreaRetainsLegacyThresholds(double rate, double minimum, double expected)
{
var part = new NestJobPart("part", PartGeometrySnapshot.FromProgram(TestDrawingFactory.Rectangle(4, 4)), 1);
var stock = new NestPlateStock("sheet", new Size(10, 10));
diff --git a/OpenNest.Engine.Tests/Jobs/StockCostTests.cs b/OpenNest.Engine.Tests/Jobs/StockCostTests.cs
index e64ec79a..38f76715 100644
--- a/OpenNest.Engine.Tests/Jobs/StockCostTests.cs
+++ b/OpenNest.Engine.Tests/Jobs/StockCostTests.cs
@@ -7,7 +7,7 @@ public class StockCostTests
{
public static IEnumerable