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); } } }
private static List <Tag> GetTags(IEnumerable <string> args) { var container = ContainerConstructor.Configure(args); var app = container.Resolve <Application>(); return(app.GetTags().ToList()); }
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); }
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); }
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); } }
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(); } }
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); }
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); }
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(); } }