예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Ship width,length,height");
            string result = Console.ReadLine();

            string[] values = result.Split(",");

            var    ship       = new Ship(Convert.ToInt32(values[0]), Convert.ToInt32(values[0]), Convert.ToInt32(values[0]));
            Random r          = new Random();
            var    Containers = new List <Container>();

            for (int i = 0; i < 5; i++)
            {
                var container = new Container(r.Next(4000, 30000), ContainerType.ValuableAndCooled);
                Containers.Add(container);
            }
            for (int i = 0; i < 200; i++)
            {
                var container = new Container(r.Next(4000, 30000), ContainerType.Normal);
                Containers.Add(container);
            }
            for (int i = 0; i < 5; i++)
            {
                var container = new Container(r.Next(4000, 30000), ContainerType.Valuable);
                Containers.Add(container);
            }
            for (int i = 0; i < 30; i++)
            {
                var container = new Container(r.Next(4000, 30000), ContainerType.Cooled);
                Containers.Add(container);
            }
            ContainerDistributor.DistributeContainers(Containers, ship);
        }
        public IShip ParseToDistributor(IShip ship, IList <IContainer> containers)
        {
            IContainerDistributor distributor = new ContainerDistributor(ship, containers);
            IShip          iShip = distributor.Distribute();
            ShipRuleTester test  = new ShipRuleTester(iShip, distributor);

            Error  = (test.TestMaximumWeight() || test.TestMinimumWeight() || test.TestBalance() || test.TestSlotWeightMaxCapacity() || test.TestContainersLeftOver());
            Reason = test.Reason;
            return(iShip);
        }
        public void TestShipFailureMinimumWeight()
        {
            IShip FailureShip = new Ship(4, 4, 60000000, containerList);
            IContainerDistributor nastyDistribute = new ContainerDistributor(FailureShip, containerList);
            ShipRuleTester        ruleTester      = new ShipRuleTester(FailureShip, nastyDistribute);

            bool FailureMinimumWeightTest = ruleTester.TestMinimumWeight();

            Assert.IsTrue(FailureMinimumWeightTest);
        }
        public void TestMaxStackWeightSucceed()
        {
            int   width        = 3;
            int   height       = 3;
            IShip originalShip = new Ship(width, height, (width * height) * 150000, containerList);
            IContainerDistributor distributor = new ContainerDistributor(originalShip, containerList);
            ShipRuleTester        ruleTester  = new ShipRuleTester(originalShip, distributor);

            bool OriginalSlotWeightMaxTest = ruleTester.TestSlotWeightMaxCapacity();


            Assert.IsFalse(OriginalSlotWeightMaxTest);
        }
        public void TestMaximumWeightSucceed()
        {
            /// <summary> TestRun with original Information</summary>
            /// <remarks> This test should return true</remarks>
            int   width        = 3;
            int   height       = 3;
            IShip originalShip = new Ship(width, height, (width * height) * 150000, containerList);
            IContainerDistributor distributor = new ContainerDistributor(originalShip, containerList);
            ShipRuleTester        ruleTester  = new ShipRuleTester(originalShip, distributor);

            bool OriginalMaxWeightTest = ruleTester.TestMaximumWeight();

            Assert.IsFalse(OriginalMaxWeightTest);
        }