Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs =================================================================== diff -u -r6404 -r6521 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 6404) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 6521) @@ -21,6 +21,7 @@ using System; using System.Linq; +using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geometry; @@ -274,6 +275,57 @@ Assert.Throws(() => { MacroStabilityCommonHelper.CombineSoilProfileWithSurfaceLine(soilGeometryProbability, surfaceLine, new Soil()); }); } + [Test] + public void GivenDamEngineDataModelWhenFillingUpliftVanCalculationGridThenCorrectUpliftVanCalculationGridIsCreated() + { + // Given DamEngine data (DamProjectData) + DamProjectData expectedDamProjectData = FactoryForDamProjectData.CreateExampleDamProjectData(); + expectedDamProjectData.DamProjectCalculationSpecification.DamCalculationSpecifications[0] + .StabilityModelType = StabilityModelType.UpliftVan; + + Location expectedLocation = expectedDamProjectData.Dike.Locations[0]; + SurfaceLine2 expectedSurfaceLine2D = expectedLocation.SurfaceLine; + var damKernelInput = new DamKernelInput + { + SubSoilScenario = expectedLocation.Segment.SoilProfileProbabilities[0], + Location = expectedLocation, + DamFailureMechanismeCalculationSpecification = expectedDamProjectData.DamProjectCalculationSpecification.CurrentSpecification + }; + + // Determine the proper values for grid and traffic load using the helper methods + double xCoordinateLowestUpliftFactorPoint = (expectedSurfaceLine2D.CharacteristicPoints.GetPoint2D(CharacteristicPointType.DikeTopAtPolder).X + + expectedSurfaceLine2D.CharacteristicPoints.GetPoint2D(CharacteristicPointType.DikeToeAtPolder).X) * 0.5; + UpliftVanCalculationGrid expectedUpliftVanCalculationGrid = FillExpectedUpliftVanCalculationGrid(); + UpliftVanCalculationGrid createdUpliftVanCalculationGrid = MacroStabilityCommonHelper.FillUpliftVanCalculationGrid(damKernelInput, xCoordinateLowestUpliftFactorPoint); + CompareHelper.CompareUpliftVanCalculationGrid(expectedUpliftVanCalculationGrid, createdUpliftVanCalculationGrid, true); + } + + private static UpliftVanCalculationGrid FillExpectedUpliftVanCalculationGrid() + { + UpliftVanCalculationGrid upliftVanCalculationGrid = new UpliftVanCalculationGrid + { + IsGridsAutomatic = false, + LeftGridXCount = 6, + LeftGridXLeft = 11, + LeftGridXRight = 14.5, + LeftGridZBottom = 5.2667, + LeftGridZCount = 3, + LeftGridZTop = 7.8666, + RightGridXCount = 8, + RightGridXLeft = 18, + RightGridXRight = 24, + RightGridZBottom = 1.2, + RightGridZCount = 11, + RightGridZTop = 2.6, + TangentLineCount = 0, + TangentLineZBottom = 0, + TangentLineZTop = 0, + TangentLinesCreationMethod = TangentLinesDefinition.OnBoundaryLines, + TangentLineLevels = [] + }; + return upliftVanCalculationGrid; + } + private static SoilGeometryProbability CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike() { SoilGeometryProbability soilGeometryProbability = FactoryForSoilGeometryProbabilities.CreateSoilGeometryProbabilityWithSoilProfile1D();