Пример #1
0
        public void Check_If_Correctly_Balanced_Uneven_Rows()
        {
            int containerCount = 0;
            int count          = 0;

            for (int i = 0; i < 5; i++)
            {
                rows.Add(new Row());
            }
            foreach (var row in rows)
            {
                row.AddEmptyStackToRow(new Stack());
                foreach (var stack in row.Stacks)
                {
                    if (count < 3)
                    {
                        stack.TryToPlaceContainer(new Container(30000, ContainerVariant.Normal));
                        stack.TryToPlaceContainer(new Container(30000, ContainerVariant.Normal));
                        containers.Add(new Container(30000, ContainerVariant.Normal));
                        containers.Add(new Container(30000, ContainerVariant.Normal));
                        count++;
                    }
                    else
                    {
                        stack.TryToPlaceContainer(new Container(4000, ContainerVariant.Normal));
                        stack.TryToPlaceContainer(new Container(4000, ContainerVariant.Normal));
                        containers.Add(new Container(4000, ContainerVariant.Normal));
                        containers.Add(new Container(4000, ContainerVariant.Normal));
                    }
                }
            }



            rows = ContainerBalancer.BalanceRows(rows);
            double difference = ContainerBalancer.GetBalanceDifference(rows);


            foreach (var row in rows)
            {
                foreach (var stack in row.Stacks)
                {
                    containerCount += stack.Containers.Count;
                }
            }
            Assert.AreEqual(containers.Count, containerCount);
            Assert.AreEqual(0, difference);
        }
Пример #2
0
        public void Check_If_Correct_Balance_Difference()
        {
            rows.Add(new Row());
            rows.Add(new Row());
            rows[0].AddEmptyStackToRow(new Stack());
            rows[1].AddEmptyStackToRow(new Stack());

            rows[0].TryToPlaceContainerInStackList(new Container(30000, ContainerVariant.Normal), 0);
            rows[0].TryToPlaceContainerInStackList(new Container(30000, ContainerVariant.Normal), 0);
            rows[1].TryToPlaceContainerInStackList(new Container(20000, ContainerVariant.Normal), 0);
            rows[1].TryToPlaceContainerInStackList(new Container(20000, ContainerVariant.Normal), 0);


            double balance = ContainerBalancer.GetBalanceDifference(rows);

            Assert.AreEqual(20, balance);
        }