コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }