public void Should_deinterlace_when_there_is_too_much_right_letf_going_and_coming() { var warehouse = new Warehouse(1, 2, 3); var clientWish1 = new ClientWishPos(1, 1, 1, 1, 3, 1); var clientWish2 = new ClientWishPos(2, 1, 1, 2, 3, 1); var clientWish3 = new ClientWishPos(3, 1, 1, 3, 3, 1); var clientWish4 = new ClientWishPos(4, 1, 2, 1, 3, 1); var clientWish5 = new ClientWishPos(5, 1, 2, 2, 3, 1); var clientWish6 = new ClientWishPos(6, 1, 2, 3, 3, 1); var wishes = new DummyClientWish { ClientWishes = new List <ClientWishPos> { clientWish1, clientWish2, clientWish3, clientWish4, clientWish5, clientWish6 } }; var solver = new SShapeSolver(warehouse, wishes); var orderWishesByAisle = solver.OrderWishesByAisle(wishes.ClientWishes, false); var wantedSolution = new List <ShiftPoint> { clientWish1.ConverToShiftPoint(), clientWish4.ConverToShiftPoint(), clientWish5.ConverToShiftPoint(), clientWish2.ConverToShiftPoint(), clientWish3.ConverToShiftPoint(), clientWish6.ConverToShiftPoint() }; Check.That(orderWishesByAisle).IsEqualTo(wantedSolution); }
public void Should_no_go_in_empty_aisles() { const int aiseLenght = 2; var warehouse = new Warehouse(1, 6, aiseLenght); var clientWish1 = new ClientWishPos(1, 1, 1, 1, aiseLenght, 1); var clientWish2 = new ClientWishPos(2, 1, 6, 1, aiseLenght, 1); var wishes = new DummyClientWish { ClientWishes = new List <ClientWishPos> { clientWish1, clientWish2 } }; var solver = new SShapeSolver(warehouse, wishes); var solution = solver.Solve(); var intermediatePoint = new ShiftPoint(1, 0); var intermediatePoint2 = new ShiftPoint(1, 3); var intermediatePoint3 = new ShiftPoint(8, 3); var intermediatePoint4 = new ShiftPoint(8, 0); var wantedSolution = new List <ShiftPoint> { _initShiftPoint, intermediatePoint, clientWish1.ConverToShiftPoint(), intermediatePoint2, intermediatePoint3, clientWish2.ConverToShiftPoint(), intermediatePoint4, _initShiftPoint }; Check.That(solution.ShiftPointList).IsEqualTo(wantedSolution); }
public void Should_reoganize_when_changing_aisles() { const int aiseLenght = 2; var warehouse = new Warehouse(1, 4, aiseLenght); var clientWish1 = new ClientWishPos(1, 1, 1, 1, aiseLenght, 1); var clientWish2 = new ClientWishPos(2, 1, 3, 1, aiseLenght, 1); var clientWish3 = new ClientWishPos(3, 1, 3, 2, aiseLenght, 1); var clientWish4 = new ClientWishPos(4, 1, 4, 2, aiseLenght, 1); var wishes = new DummyClientWish { ClientWishes = new List <ClientWishPos> { clientWish1, clientWish2, clientWish3, clientWish4 } }; var solver = new SShapeSolver(warehouse, wishes); var solution = solver.Solve(); var intermediatePoint = new ShiftPoint(1, 0); var intermediatePoint2 = new ShiftPoint(1, 3); var intermediatePoint3 = new ShiftPoint(4, 3); var intermediatePoint4 = new ShiftPoint(4, 2); var intermediatePoint5 = new ShiftPoint(4, 0); var wantedSolution = new List <ShiftPoint> { _initShiftPoint, intermediatePoint, clientWish1.ConverToShiftPoint(), intermediatePoint2, intermediatePoint3, clientWish3.ConverToShiftPoint(), clientWish4.ConverToShiftPoint(), intermediatePoint4, clientWish2.ConverToShiftPoint(), intermediatePoint5, _initShiftPoint }; Check.That(solution.ShiftPointList).IsEqualTo(wantedSolution); }
public void Should_priority_to_the_wish_on_the_same_position_in_a_pair_of_aisles() { var warehouse = new Warehouse(1, 2, 2); var clientWish1 = new ClientWishPos(1, 1, 1, 1, 2, 1); var clientWish2 = new ClientWishPos(2, 1, 1, 2, 2, 1); var clientWish3 = new ClientWishPos(3, 1, 2, 1, 2, 1); var wishes = new DummyClientWish { ClientWishes = new List <ClientWishPos> { clientWish1, clientWish2, clientWish3 } }; var solver = new SShapeSolver(warehouse, wishes); var orderWishesByAisle = solver.OrderWishesByAisle(wishes.ClientWishes, false); var wantedSolution = new List <ShiftPoint> { clientWish1.ConverToShiftPoint(), clientWish3.ConverToShiftPoint(), clientWish2.ConverToShiftPoint() }; Check.That(orderWishesByAisle).IsEqualTo(wantedSolution); }
public void Should_test_the_formula_for_wish_coordonates() { var nbBlock = 1; var blockIdx = 1; var aislesIdx = 1; var position = 1; var aislesLenght = 1; var wish = new ClientWishPos(1, blockIdx, aislesIdx, position, aislesLenght, nbBlock); Check.That(wish.WishX).Equals(1); //X do not change for block nbBlock = 2; blockIdx = 2; int wantedX = 1; wish = new ClientWishPos(1, blockIdx, aislesIdx, position, aislesLenght, nbBlock); Check.That(wish.WishX).Equals(wantedX); Check.That(wish.UpperLeftX).Equals(0); //X do not change for aislesLenght aislesLenght = 2; wish = new ClientWishPos(1, blockIdx, aislesIdx, position, aislesLenght, nbBlock); Check.That(wish.WishX).Equals(wantedX); Check.That(wish.UpperLeftX).Equals(0); // X do change for aislesidx aislesIdx = 2; wantedX = 2; wish = new ClientWishPos(1, blockIdx, aislesIdx, position, aislesLenght, nbBlock); Check.That(wish.WishX).Equals(wantedX); Check.That(wish.UpperLeftX).Equals(2); // X do change for aislesidx aislesIdx = 3; wantedX = 4; wish = new ClientWishPos(1, blockIdx, aislesIdx, position, aislesLenght, nbBlock); Check.That(wish.WishX).Equals(wantedX); Check.That(wish.UpperLeftX).Equals(3); }