コード例 #1
0
ファイル: RowTest.cs プロジェクト: LuukdeKinderen/S2Software
        public void When_Container_Is_Valuable_It_Only_Ends_Up_In_Even_Stacks()
        {
            //Arrange
            ShipRow sr = new ShipRow(7);

            //Act
            for (int i = 0; i < 30; i++)
            {
                Container container = ContainerConstructor.CreateContainer(true, false, 30000);
                sr.AddContainer(container);
            }

            //Assert
            for (int i = 0; i < sr.Stacks.Count; i++)
            {
                if (i % 2 == 0)
                {
                    Assert.AreEqual(1, sr.Stacks[i].ContainerCount);
                }
                else
                {
                    Assert.AreEqual(0, sr.Stacks[i].ContainerCount);
                }
            }
        }
コード例 #2
0
        private static List <Tag> GetTags(IEnumerable <string> args)
        {
            var container = ContainerConstructor.Configure(args);
            var app       = container.Resolve <Application>();

            return(app.GetTags().ToList());
        }
コード例 #3
0
        public void When_Container_Is_Added_TotalWeight_Is_Increased()
        {
            //Arrange
            Random    r        = new Random();
            Container c        = ContainerConstructor.CreateRandom(r);
            Stack     s        = new Stack();
            int       expected = s.TotalWeight + c.weight;

            //Act
            s.AddContainer(c);

            //Assert
            Assert.AreEqual(expected, s.TotalWeight);
        }
コード例 #4
0
        public void When_Stack_Already_Has_Valuable_Container_Can_Not_Add_New_Valuable_Container()
        {
            //Arrange
            Stack     s         = new Stack();
            Container valuable1 = ContainerConstructor.CreateContainer(true, false, 5000);
            Container valuable2 = ContainerConstructor.CreateContainer(true, false, 5000);

            //Act
            s.AddContainer(valuable1);

            //Assert
            bool addedContainer   = s.AddContainer(valuable2);
            bool canFindContainer = s.Containers.Contains(valuable2);

            Assert.IsFalse(addedContainer);
            Assert.IsFalse(canFindContainer);
        }
コード例 #5
0
ファイル: RowTest.cs プロジェクト: LuukdeKinderen/S2Software
        public void When_Container_Is_Cooled_It_Only_Ends_Up_In_First_Stack()
        {
            //Arange
            ShipRow sr = new ShipRow(7);

            //Act
            for (int i = 0; i < 30; i++)
            {
                Container cooledContainer = ContainerConstructor.CreateContainer(false, true, 30000);
                sr.AddContainer(cooledContainer);
            }

            //Assert
            Assert.IsTrue(sr.Stacks[0].ContainerCount > 0);
            for (int i = 1; i < sr.Stacks.Count; i++)
            {
                Assert.AreEqual(0, sr.Stacks[i].ContainerCount);
            }
        }
コード例 #6
0
ファイル: ShipTest.cs プロジェクト: LuukdeKinderen/S2Software
        public void WhenShipIsFilledItIsInBalance()
        {
            //Arrange
            Ship             ship       = new Ship(6, 8);
            List <Container> containers = ContainerConstructor.CreateRandomContainers(1000);

            //Act
            containers.SortForShip();
            ship.DistributeMaxAndReturn(containers);

            //Assert
            if (ship.PercentageLeft < 40 || ship.PercentageLeft > 60)
            {
                Assert.Fail();
            }
            if (ship.PercentageRight < 40 || ship.PercentageRight > 60)
            {
                Assert.Fail();
            }
        }
コード例 #7
0
        public void ValuableContainerIsAlwaysOnTopOfTheStack()
        {
            //Arrange
            Stack     s        = new Stack();
            Container c1       = ContainerConstructor.CreateContainer(false, false, 5000);
            Container c2       = ContainerConstructor.CreateContainer(false, false, 5000);
            Container c3       = ContainerConstructor.CreateContainer(false, false, 5000);
            Container valuable = ContainerConstructor.CreateContainer(true, false, 5000);

            //Act
            s.AddContainer(c1);
            s.AddContainer(c2);
            s.AddContainer(c3);
            s.AddContainer(valuable);

            //Assert
            int indexOfValuable = s.Containers.IndexOf(valuable);

            Assert.AreEqual(0, indexOfValuable);
        }
コード例 #8
0
        public void When_BottomLoad_Is_Too_High_Container_Will_Fail_To_Add()
        {
            //Arrange
            Stack s = new Stack();

            s.AddContainer(ContainerConstructor.CreateContainer(false, false, 30000));
            s.AddContainer(ContainerConstructor.CreateContainer(false, false, 30000));
            s.AddContainer(ContainerConstructor.CreateContainer(false, false, 30000));
            s.AddContainer(ContainerConstructor.CreateContainer(false, false, 30000));
            s.AddContainer(ContainerConstructor.CreateContainer(false, false, 30000));

            //Act
            Container testContainer = ContainerConstructor.CreateContainer(false, false, 4000);

            //Assert
            bool addedContainer   = s.AddContainer(testContainer);
            bool canFindContainer = s.Containers.Contains(testContainer);

            Assert.IsFalse(addedContainer);
            Assert.IsFalse(canFindContainer);
        }
コード例 #9
0
ファイル: RowTest.cs プロジェクト: LuukdeKinderen/S2Software
        public void Every_Fourth_Stack_Is_Lower_Than_The_Stack_Before_Or_After_That_If_One_Of_Those_Has_A_Valuable_Container()
        {
            //Arrange
            ShipRow          sr         = new ShipRow(7);
            List <Container> containers = ContainerConstructor.CreateRandomContainers(500);

            containers.SortForShip();

            //Act
            foreach (Container container in containers)
            {
                sr.AddContainer(container);
            }

            //Assert
            if (sr.Stacks[2].HasValuable && sr.Stacks[3].ContainerCount >= sr.Stacks[2].ContainerCount)
            {
                Assert.Fail();
            }
            if (sr.Stacks[4].HasValuable && sr.Stacks[3].ContainerCount >= sr.Stacks[4].ContainerCount)
            {
                Assert.Fail();
            }
        }