public void ConstructorWithGridsAndTangent_ExpectedValues() { // Setup var random = new Random(11); double tangentZTop = random.NextDouble(); double tangentZBottom = random.NextDouble(); int tangentLineNumber = random.Next(); UpliftVanGrid leftGrid = UpliftVanGridTestFactory.Create(); UpliftVanGrid rightGrid = UpliftVanGridTestFactory.Create(); // Call var slipPlane = new UpliftVanSlipPlane(leftGrid, rightGrid, tangentZTop, tangentZBottom, tangentLineNumber); // Assert Assert.IsFalse(slipPlane.GridAutomaticDetermined); Assert.AreSame(leftGrid, slipPlane.LeftGrid); Assert.AreSame(rightGrid, slipPlane.RightGrid); Assert.IsFalse(slipPlane.TangentLinesAutomaticAtBoundaries); Assert.AreEqual(tangentZTop, slipPlane.TangentZTop); Assert.AreEqual(tangentZBottom, slipPlane.TangentZBottom); Assert.AreEqual(tangentLineNumber, slipPlane.TangentLineNumber); Assert.AreEqual(4, slipPlane.TangentLineNumberOfRefinements); Assert.AreEqual(0, slipPlane.GridNumberOfRefinements); }
/// <summary> /// Creates a new instance of <see cref="UpliftVanSlipPlane"/>. /// </summary> /// <param name="leftGrid">The left grid.</param> /// <param name="rightGrid">The right grid.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="leftGrid"/> /// or <paramref name="rightGrid"/> is <c>null</c>.</exception> /// <remarks>The following values are set: /// <list type="bullet"> /// <item><see cref="GridAutomaticDetermined"/> is set to <c>false</c>;</item> /// <item><see cref="TangentLinesAutomaticAtBoundaries"/> is set to <c>true</c>;</item> /// <item><see cref="TangentZTop"/> is set to <see cref="double.NaN"/>;</item> /// <item><see cref="TangentZBottom"/> is set to <see cref="double.NaN"/>;</item> /// <item><see cref="TangentLineNumber"/> is set to <c>0</c>.</item> /// </list> /// </remarks> public UpliftVanSlipPlane(UpliftVanGrid leftGrid, UpliftVanGrid rightGrid) : this(double.NaN, double.NaN, 0) { SetGrids(leftGrid, rightGrid); TangentLinesAutomaticAtBoundaries = true; GridNumberOfRefinements = 0; }
/// <summary> /// Creates a new instance of <see cref="UpliftVanSlipPlane"/>. /// </summary> /// <param name="leftGrid">The left grid.</param> /// <param name="rightGrid">The right grid.</param> /// <param name="tangentZTop">The tangent line top boundary.</param> /// <param name="tangentZBottom">The tangent line bottom boundary.</param> /// <param name="tangentLineNumber">The number of tangent lines.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="leftGrid"/> /// or <paramref name="rightGrid"/> is <c>null</c>.</exception> /// <remarks>The following values are set: /// <list type="bullet"> /// <item><see cref="GridAutomaticDetermined"/> is set to <c>false</c>;</item> /// <item><see cref="TangentLinesAutomaticAtBoundaries"/> is set to <c>false</c>.</item> /// </list> /// </remarks> public UpliftVanSlipPlane(UpliftVanGrid leftGrid, UpliftVanGrid rightGrid, double tangentZTop, double tangentZBottom, int tangentLineNumber) : this(tangentZTop, tangentZBottom, tangentLineNumber) { SetGrids(leftGrid, rightGrid); GridNumberOfRefinements = 0; }
private static void AssertGrid(CalculationGrid originalGrid, UpliftVanGrid actualGrid) { Assert.AreEqual(originalGrid.GridXLeft, actualGrid.XLeft); Assert.AreEqual(originalGrid.GridXRight, actualGrid.XRight); Assert.AreEqual(originalGrid.GridZTop, actualGrid.ZTop); Assert.AreEqual(originalGrid.GridZBottom, actualGrid.ZBottom); Assert.AreEqual(originalGrid.GridXNumber, actualGrid.NumberOfHorizontalPoints); Assert.AreEqual(originalGrid.GridZNumber, actualGrid.NumberOfVerticalPoints); }
/// <summary> /// Asserts whether <paramref name="actual"/> is equal to <paramref name="expected"/>. /// </summary> /// <param name="expected">The expected <see cref="UpliftVanGrid"/>.</param> /// <param name="actual">The actual <see cref="UpliftVanGrid"/>.</param> /// <exception cref="AssertionException">Thrown when <paramref name="actual"/> /// is not equal to <paramref name="expected"/>.</exception> private static void AssertUpliftVanGrid(UpliftVanGrid expected, UpliftVanGrid actual) { Assert.AreEqual(expected.XLeft, actual.XLeft); Assert.AreEqual(expected.XRight, actual.XRight); Assert.AreEqual(expected.ZTop, actual.ZTop); Assert.AreEqual(expected.ZBottom, actual.ZBottom); Assert.AreEqual(expected.NumberOfHorizontalPoints, actual.NumberOfHorizontalPoints); Assert.AreEqual(expected.NumberOfVerticalPoints, actual.NumberOfVerticalPoints); }
private static void AssertGrid(MacroStabilityInwardsGrid expectedGrid, UpliftVanGrid actualGrid) { Assert.AreEqual(expectedGrid.XLeft, actualGrid.XLeft); Assert.AreEqual(expectedGrid.XRight, actualGrid.XRight); Assert.AreEqual(expectedGrid.ZTop, actualGrid.ZTop); Assert.AreEqual(expectedGrid.ZBottom, actualGrid.ZBottom); Assert.AreEqual(expectedGrid.NumberOfHorizontalPoints, actualGrid.NumberOfHorizontalPoints); Assert.AreEqual(expectedGrid.NumberOfVerticalPoints, actualGrid.NumberOfVerticalPoints); }
private static MacroStabilityInwardsGrid ConvertGrid(UpliftVanGrid grid) { return(new MacroStabilityInwardsGrid(grid.XLeft, grid.XRight, grid.ZTop, grid.ZBottom) { NumberOfHorizontalPoints = grid.NumberOfHorizontalPoints, NumberOfVerticalPoints = grid.NumberOfVerticalPoints }); }
/// <summary> /// Creates a <see cref="UpliftVanCalculationGridResult"/> based on the information /// given in the <paramref name="upliftVanCalculationGrid"/>. /// </summary> /// <param name="upliftVanCalculationGrid">The output to create the result for.</param> /// <returns>A new <see cref="UpliftVanCalculationGridResult"/> with information /// taken from the <paramref name="upliftVanCalculationGrid"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="upliftVanCalculationGrid"/> /// is <c>null</c>.</exception> public static UpliftVanCalculationGridResult Create(UpliftVanCalculationGrid upliftVanCalculationGrid) { if (upliftVanCalculationGrid == null) { throw new ArgumentNullException(nameof(upliftVanCalculationGrid)); } UpliftVanGrid leftGrid = CreateGrid(upliftVanCalculationGrid.LeftGrid); UpliftVanGrid rightGrid = CreateGrid(upliftVanCalculationGrid.RightGrid); return(new UpliftVanCalculationGridResult(leftGrid, rightGrid, upliftVanCalculationGrid.TangentLines)); }
public void ConstructorWithGrids_RightGridNull_ThrowsArgumentNullException() { // Setup UpliftVanGrid grid = UpliftVanGridTestFactory.Create(); // Call void Call() => new UpliftVanSlipPlane(grid, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("rightGrid", exception.ParamName); }
public void Constructor_RightGridNull_ThrowsArgumentNullException() { // Setup UpliftVanGrid grid = UpliftVanGridTestFactory.Create(); // Call TestDelegate call = () => new UpliftVanCalculationGridResult(grid, null, Enumerable.Empty <double>()); // Assert var exception = Assert.Throws <ArgumentNullException>(call); Assert.AreEqual("rightGrid", exception.ParamName); }
public void Constructor_TangentLinesNull_ThrowsArgumentNullException() { // Setup UpliftVanGrid leftGrid = UpliftVanGridTestFactory.Create(); UpliftVanGrid rightGrid = UpliftVanGridTestFactory.Create(); // Call TestDelegate call = () => new UpliftVanCalculationGridResult(leftGrid, rightGrid, null); // Assert var exception = Assert.Throws <ArgumentNullException>(call); Assert.AreEqual("tangentLines", exception.ParamName); }
private void SetGrids(UpliftVanGrid leftGrid, UpliftVanGrid rightGrid) { if (leftGrid == null) { throw new ArgumentNullException(nameof(leftGrid)); } if (rightGrid == null) { throw new ArgumentNullException(nameof(rightGrid)); } LeftGrid = leftGrid; RightGrid = rightGrid; }
private static CalculationGrid CreateGrid(UpliftVanSlipPlane slipPlane, UpliftVanGrid grid) { var calculationGrid = new CalculationGrid(); if (!slipPlane.GridAutomaticDetermined) { calculationGrid.GridXLeft = grid.XLeft; calculationGrid.GridXRight = grid.XRight; calculationGrid.GridZTop = grid.ZTop; calculationGrid.GridZBottom = grid.ZBottom; calculationGrid.GridXNumber = grid.NumberOfHorizontalPoints; calculationGrid.GridZNumber = grid.NumberOfVerticalPoints; } return(calculationGrid); }
/// <summary> /// Converts <see cref="MacroStabilityInwardsInput"/> slip plane properties /// into <see cref="UpliftVanSlipPlane"/>. /// </summary> /// <param name="input">The input to get the properties from.</param> /// <returns>The converted <see cref="UpliftVanSlipPlane"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="input"/> /// is <c>null</c>.</exception> public static UpliftVanSlipPlane Convert(MacroStabilityInwardsInput input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } if (input.GridDeterminationType == MacroStabilityInwardsGridDeterminationType.Automatic) { return(new UpliftVanSlipPlane()); } UpliftVanGrid leftGrid = ConvertGrid(input.LeftGrid); UpliftVanGrid rightGrid = ConvertGrid(input.RightGrid); return(input.TangentLineDeterminationType == MacroStabilityInwardsTangentLineDeterminationType.Specified ? new UpliftVanSlipPlane(leftGrid, rightGrid, input.TangentLineZTop, input.TangentLineZBottom, input.TangentLineNumber) : new UpliftVanSlipPlane(leftGrid, rightGrid)); }
public void ConstructorWithGrids_ExpectedValues() { // Setup UpliftVanGrid leftGrid = UpliftVanGridTestFactory.Create(); UpliftVanGrid rightGrid = UpliftVanGridTestFactory.Create(); // Call var slipPlane = new UpliftVanSlipPlane(leftGrid, rightGrid); // Assert Assert.IsFalse(slipPlane.GridAutomaticDetermined); Assert.AreSame(leftGrid, slipPlane.LeftGrid); Assert.AreSame(rightGrid, slipPlane.RightGrid); Assert.IsTrue(slipPlane.TangentLinesAutomaticAtBoundaries); Assert.IsNaN(slipPlane.TangentZTop); Assert.IsNaN(slipPlane.TangentZBottom); Assert.AreEqual(0, slipPlane.TangentLineNumber); Assert.AreEqual(4, slipPlane.TangentLineNumberOfRefinements); Assert.AreEqual(0, slipPlane.GridNumberOfRefinements); }
public void Constructor_ValidParameters_ExpectedValues() { // Setup UpliftVanGrid leftGrid = UpliftVanGridTestFactory.Create(); UpliftVanGrid rightGrid = UpliftVanGridTestFactory.Create(); double[] tangentLines = { 0, 1, 1.5, 2 }; // Call var result = new UpliftVanCalculationGridResult(leftGrid, rightGrid, tangentLines); // Assert Assert.AreSame(leftGrid, result.LeftGrid); Assert.AreSame(rightGrid, result.RightGrid); Assert.AreSame(tangentLines, result.TangentLines); }
public void Constructor_ExpectedValues() { // Setup var random = new Random(21); double xLeft = random.Next(); double xRight = random.Next(); double zTop = random.Next(); double zBottom = random.Next(); int numberOfHorizontalPoints = random.Next(); int numberOfVerticalPoints = random.Next(); // Call var grid = new UpliftVanGrid(xLeft, xRight, zTop, zBottom, numberOfHorizontalPoints, numberOfVerticalPoints); // Assert Assert.AreEqual(xLeft, grid.XLeft); Assert.AreEqual(xRight, grid.XRight); Assert.AreEqual(zTop, grid.ZTop); Assert.AreEqual(zBottom, grid.ZBottom); Assert.AreEqual(numberOfHorizontalPoints, grid.NumberOfHorizontalPoints); Assert.AreEqual(numberOfVerticalPoints, grid.NumberOfVerticalPoints); }
public void Create_WithSlipPlane_ReturnUpliftVanCalculationGrid() { // Setup var random = new Random(21); double leftGridXLeft = random.NextDouble(); double leftGridXRight = random.NextDouble(); double leftGridZTop = random.NextDouble(); double leftGridZBottom = random.NextDouble(); int leftGridXNumber = random.Next(); int leftGridZNumber = random.Next(); double rightGridXLeft = random.NextDouble(); double rightGridXRight = random.NextDouble(); double rightGridZTop = random.NextDouble(); double rightGridZBottom = random.NextDouble(); int rightGridXNumber = random.Next(); int rightGridZNumber = random.Next(); var leftGrid = new UpliftVanGrid(leftGridXLeft, leftGridXRight, leftGridZTop, leftGridZBottom, leftGridXNumber, leftGridZNumber); var rightGrid = new UpliftVanGrid(rightGridXLeft, rightGridXRight, rightGridZTop, rightGridZBottom, rightGridXNumber, rightGridZNumber); var slipPlane = new UpliftVanSlipPlane(leftGrid, rightGrid); // Call UpliftVanCalculationGrid upliftVanCalculationGrid = UpliftVanCalculationGridCreator.Create(slipPlane); // Assert Assert.AreEqual(leftGridXLeft, upliftVanCalculationGrid.LeftGrid.GridXLeft); Assert.AreEqual(leftGridXRight, upliftVanCalculationGrid.LeftGrid.GridXRight); Assert.AreEqual(leftGridZTop, upliftVanCalculationGrid.LeftGrid.GridZTop); Assert.AreEqual(leftGridZBottom, upliftVanCalculationGrid.LeftGrid.GridZBottom); Assert.AreEqual(leftGridXNumber, upliftVanCalculationGrid.LeftGrid.GridXNumber); Assert.AreEqual(leftGridZNumber, upliftVanCalculationGrid.LeftGrid.GridZNumber); Assert.AreEqual(rightGridXLeft, upliftVanCalculationGrid.RightGrid.GridXLeft); Assert.AreEqual(rightGridXRight, upliftVanCalculationGrid.RightGrid.GridXRight); Assert.AreEqual(rightGridZTop, upliftVanCalculationGrid.RightGrid.GridZTop); Assert.AreEqual(rightGridZBottom, upliftVanCalculationGrid.RightGrid.GridZBottom); Assert.AreEqual(rightGridXNumber, upliftVanCalculationGrid.RightGrid.GridXNumber); Assert.AreEqual(rightGridZNumber, upliftVanCalculationGrid.RightGrid.GridZNumber); Assert.IsNull(upliftVanCalculationGrid.TangentLines); // Irrelevant - Only for output }
public void Convert_WithResult_ReturnConvertedSlipPlaneUpliftVan() { // Setup UpliftVanGrid leftGrid = UpliftVanGridTestFactory.Create(); UpliftVanGrid rightGrid = UpliftVanGridTestFactory.Create(); double[] tangentLines = { 3, 2, 1.5 }; var result = new UpliftVanCalculationGridResult(leftGrid, rightGrid, tangentLines); // Call MacroStabilityInwardsSlipPlaneUpliftVan output = MacroStabilityInwardsSlipPlaneUpliftVanConverter.Convert(result); // Assert CollectionAssert.AreEqual(tangentLines, output.TangentLines.Select(tl => tl.Value), new DoubleWithToleranceComparer(1e-2)); AssertGrid(leftGrid, output.LeftGrid); AssertGrid(rightGrid, output.RightGrid); }
/// <summary> /// Creates a new instance of <see cref="UpliftVanCalculationGridResult"/>. /// </summary> /// <param name="leftGrid">The left grid of the result.</param> /// <param name="rightGrid">The right grid of the result.</param> /// <param name="tangentLines">The tangent lines of the result.</param> /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception> internal UpliftVanCalculationGridResult(UpliftVanGrid leftGrid, UpliftVanGrid rightGrid, IEnumerable <double> tangentLines) { if (leftGrid == null) { throw new ArgumentNullException(nameof(leftGrid)); } if (rightGrid == null) { throw new ArgumentNullException(nameof(rightGrid)); } if (tangentLines == null) { throw new ArgumentNullException(nameof(tangentLines)); } LeftGrid = leftGrid; RightGrid = rightGrid; TangentLines = tangentLines; }