public void EmptyInput_Construct_NoneReturned() { //Arrange var none = Option <Pyramid <int> > .None; var constructor = new PyramidConstructor <int>(); var input = new List <IList <int> >(); //Act var result = constructor.ConstructPyramidFromDataLines(input); //Assert Assert.AreSame(none, result); }
public void SingleLineInput_Construct_PyramidWithOnlyTopReturned() { //Arrange var expectedResult = new Option <Pyramid <int> >(new Pyramid <int>(1)); var constructor = new PyramidConstructor <int>(); var input = new List <IList <int> > { new List <int> { 1 } }; //Act var result = constructor.ConstructPyramidFromDataLines(input); //Assert Assert.AreEqual(expectedResult, result); }
public void NormalInput_Construct_ExpectedPyramidReturned() { //Arrange var p4_1 = new Pyramid <int>(-11); var p4_2 = new Pyramid <int>(200); var p4_3 = new Pyramid <int>(300); var p4_4 = new Pyramid <int>(0); var p3_1 = new Pyramid <int>(p4_1, 4, p4_2); var p3_2 = new Pyramid <int>(p4_2, 5, p4_3); var p3_3 = new Pyramid <int>(p4_3, 6, p4_4); var p2_1 = new Pyramid <int>(p3_1, 2, p3_2); var p2_2 = new Pyramid <int>(p3_2, 3, p3_3); var p1_1 = new Pyramid <int>(p2_1, 1, p2_2); var expectedResult = new Option <Pyramid <int> >(p1_1); var constructor = new PyramidConstructor <int>(); var input = new List <IList <int> > { new List <int> { 1 }, new List <int> { 2, 3 }, new List <int> { 4, 5, 6 }, new List <int> { -11, 200, 300, 0 }, }; //Act var result = constructor.ConstructPyramidFromDataLines(input); //Assert Assert.AreEqual(expectedResult, result); }
public void InputLinesNotInAscendingByOneOrder_Construct_ExceptionIsThrown() { //Arrange var constructor = new PyramidConstructor <int>(); var invalidInput = new List <IList <int> > { new List <int> { 0, 1 }, new List <int> { 2 }, new List <int> { 3, 4, 5 } }; //Act void ConstructOp() => constructor.ConstructPyramidFromDataLines(invalidInput); //Assert Assert.Throws <InvalidOperationException>(ConstructOp); }