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);
        }