Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Creators/Input/SlipPlaneUpliftVanCreator.cs =================================================================== diff -u -r566943640717a91ff377a58a341bbbe1bcd2e516 -r526ac79e431d2a09d771bea0c7783c8562074de7 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Creators/Input/SlipPlaneUpliftVanCreator.cs (.../SlipPlaneUpliftVanCreator.cs) (revision 566943640717a91ff377a58a341bbbe1bcd2e516) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Creators/Input/SlipPlaneUpliftVanCreator.cs (.../SlipPlaneUpliftVanCreator.cs) (revision 526ac79e431d2a09d771bea0c7783c8562074de7) @@ -56,23 +56,27 @@ kernelSlipPlane.SlipPlaneLeftGrid = CreateGrid(slipPlane.LeftGrid); kernelSlipPlane.SlipPlaneRightGrid = CreateGrid(slipPlane.RightGrid); } - if (!slipPlane.TangentLinesAutomaticAtBoundaries) - { - kernelSlipPlane.SlipPlaneTangentLine = CreateTangentline(slipPlane); - } + kernelSlipPlane.SlipPlaneTangentLine = CreateTangentline(slipPlane); + return kernelSlipPlane; } private static SlipCircleTangentLine CreateTangentline(UpliftVanSlipPlane slipPlane) { - return new SlipCircleTangentLine + var tangentLine = new SlipCircleTangentLine { - AutomaticAtBoundaries = slipPlane.TangentLinesAutomaticAtBoundaries, - TangentLineZTop = slipPlane.TangentZTop, - TangentLineZBottom = slipPlane.TangentZBottom, - TangentLineNumber = slipPlane.TangentLineNumber + AutomaticAtBoundaries = slipPlane.TangentLinesAutomaticAtBoundaries }; + + if (!slipPlane.TangentLinesAutomaticAtBoundaries) + { + tangentLine.TangentLineZTop = slipPlane.TangentZTop; + tangentLine.TangentLineZBottom = slipPlane.TangentZBottom; + tangentLine.TangentLineNumber = slipPlane.TangentLineNumber; + } + + return tangentLine; } private static SlipCircleGrid CreateGrid(UpliftVanGrid grid) Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/SlipPlaneUpliftVanCreatorTest.cs =================================================================== diff -u -r10e060be0b77c159b3e99a7200e43c4326b17642 -r526ac79e431d2a09d771bea0c7783c8562074de7 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/SlipPlaneUpliftVanCreatorTest.cs (.../SlipPlaneUpliftVanCreatorTest.cs) (revision 10e060be0b77c159b3e99a7200e43c4326b17642) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/SlipPlaneUpliftVanCreatorTest.cs (.../SlipPlaneUpliftVanCreatorTest.cs) (revision 526ac79e431d2a09d771bea0c7783c8562074de7) @@ -108,8 +108,73 @@ // Assert Assert.AreEqual(ActiveSideType.Left, slipPlaneUpliftVan.ActiveSide); Assert.IsNotNull(slipPlaneUpliftVan.SlipPlaneLeftGrid); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXLeft); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXRight); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZTop); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZBottom); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXNumber); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZNumber); Assert.IsNotNull(slipPlaneUpliftVan.SlipPlaneRightGrid); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXLeft); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXRight); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZTop); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZBottom); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXNumber); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZNumber); Assert.IsNotNull(slipPlaneUpliftVan.SlipPlaneTangentLine); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineZTop); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineZBottom); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineNumber); + Assert.AreEqual(slipPlane.TangentLinesAutomaticAtBoundaries, slipPlaneUpliftVan.SlipPlaneTangentLine.AutomaticAtBoundaries); } + + [Test] + public void Create_SlipPlaneTangentLinesAutomaticAtBoundaries_ReturnSlipPlaneUpliftVan() + { + // Setup + var random = new Random(21); + var leftGridXLeft = new RoundedDouble(2, random.NextDouble()); + var leftGridXRight = new RoundedDouble(2, random.NextDouble()); + var leftGridZTop = new RoundedDouble(2, random.NextDouble()); + var leftGridZBottom = new RoundedDouble(2, random.NextDouble()); + int leftGridXNumber = random.Next(); + int leftGridZNumber = random.Next(); + var rightGridXLeft = new RoundedDouble(2, random.NextDouble()); + var rightGridXRight = new RoundedDouble(2, random.NextDouble()); + var rightGridZTop = new RoundedDouble(2, random.NextDouble()); + var rightGridZBottom = new RoundedDouble(2, 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 + SlipPlaneUpliftVan slipPlaneUpliftVan = SlipPlaneUpliftVanCreator.Create(slipPlane); + + // Assert + Assert.AreEqual(ActiveSideType.Left, slipPlaneUpliftVan.ActiveSide); + Assert.AreEqual(leftGridXLeft, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXLeft); + Assert.AreEqual(leftGridXRight, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXRight); + Assert.AreEqual(leftGridZTop, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZTop); + Assert.AreEqual(leftGridZBottom, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZBottom); + Assert.AreEqual(leftGridXNumber, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridXNumber); + Assert.AreEqual(leftGridZNumber, slipPlaneUpliftVan.SlipPlaneLeftGrid.GridZNumber); + Assert.AreSame(slipPlaneUpliftVan, slipPlaneUpliftVan.SlipPlaneLeftGrid.Owner); // Automatically synced + Assert.AreEqual(rightGridXLeft, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXLeft); + Assert.AreEqual(rightGridXRight, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXRight); + Assert.AreEqual(rightGridZTop, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZTop); + Assert.AreEqual(rightGridZBottom, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZBottom); + Assert.AreEqual(rightGridXNumber, slipPlaneUpliftVan.SlipPlaneRightGrid.GridXNumber); + Assert.AreEqual(rightGridZNumber, slipPlaneUpliftVan.SlipPlaneRightGrid.GridZNumber); + Assert.AreSame(slipPlaneUpliftVan, slipPlaneUpliftVan.SlipPlaneRightGrid.Owner); // Automatically synced + Assert.AreEqual(slipPlane.TangentLinesAutomaticAtBoundaries, slipPlaneUpliftVan.SlipPlaneTangentLine.AutomaticAtBoundaries); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineZTop); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineZBottom); + Assert.AreEqual(0, slipPlaneUpliftVan.SlipPlaneTangentLine.TangentLineNumber); + Assert.AreSame(slipPlaneUpliftVan, slipPlaneUpliftVan.SlipCircleTangentLine.TangentLinesBoundaries); // Automatically synced + Assert.AreEqual(10, slipPlaneUpliftVan.SlipPlaneTangentLine.MaxSpacingBetweenBoundaries); // Only used in case of auto grid determination combined with specified tangent lines (unsupported by calculator) + } } } \ No newline at end of file