mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-10 11:04:13 -04:00
44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using OpenNest.Geometry;
|
|
using OpenNest.Sequencing;
|
|
|
|
namespace OpenNest.Tests.Sequencing;
|
|
|
|
public class ManualPartSequencingTests
|
|
{
|
|
[Fact]
|
|
public void Move_SetsExactOneBasedSequenceWithoutChangingQuantity()
|
|
{
|
|
var drawing = TestHelpers.MakeSquareDrawing();
|
|
var first = new Part(drawing, new Vector(0, 0));
|
|
var second = new Part(drawing, new Vector(20, 0));
|
|
var third = new Part(drawing, new Vector(40, 0));
|
|
var plate = TestHelpers.MakePlate(60, 120, first, second, third);
|
|
var nested = drawing.Quantity.Nested;
|
|
var reorders = 0;
|
|
plate.PartsReordered += (_, _) => reorders++;
|
|
|
|
Assert.True(ManualPartSequencing.Move(plate, third, 1));
|
|
Assert.Equal(new[] { third, first, second }, plate.Parts);
|
|
Assert.True(ManualPartSequencing.Move(plate, first, 3));
|
|
Assert.Equal(new[] { third, second, first }, plate.Parts);
|
|
Assert.Equal(nested, drawing.Quantity.Nested);
|
|
Assert.Equal(2, reorders);
|
|
}
|
|
|
|
[Fact]
|
|
public void Move_RejectsAbsentPartAndOutOfRangeWithoutChangingPlate()
|
|
{
|
|
var drawing = TestHelpers.MakeSquareDrawing();
|
|
var part = new Part(drawing, new Vector(0, 0));
|
|
var plate = TestHelpers.MakePlate(60, 120, part);
|
|
var reorders = 0;
|
|
plate.PartsReordered += (_, _) => reorders++;
|
|
|
|
Assert.False(ManualPartSequencing.Move(plate, part, 0));
|
|
Assert.False(ManualPartSequencing.Move(plate, part, 2));
|
|
Assert.False(ManualPartSequencing.Move(plate, new Part(drawing, new Vector(0, 0)), 1));
|
|
Assert.Equal(new[] { part }, plate.Parts);
|
|
Assert.Equal(0, reorders);
|
|
}
|
|
}
|