Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r4995 -r4997 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 4995) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 4997) @@ -436,6 +436,12 @@ { GeometryHelper.ExtendGeometryLeft(subSoilScenario.SoilProfile2D.Geometry, surfaceLine2LeftX); } + + double surfaceLine2RightX = surfaceLine2.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X; + if (surfaceLine2RightX > subSoilScenario.SoilProfile2D.Geometry.GetGeometryBounds().Right) + { + GeometryHelper.ExtendGeometryRight(subSoilScenario.SoilProfile2D.Geometry, surfaceLine2RightX); + } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs =================================================================== diff -u -r4995 -r4997 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 4995) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 4997) @@ -144,6 +144,32 @@ }); } + [Test] + public void GivenSoilGeometryProbabilityWithSoilProfile2DAndMatchingSurfaceLineLongerOnRightWhenCombiningThenSoilProfile2DIsExtendedToTheRight() + { + SoilGeometryProbability soilGeometryProbability = CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike(); + // Create the same surfaceline as is used for creating the SoilProfile2D in the SoilGeometryProbability + // But now the SurfaceLine2 is longer on the right side (80.0 instead of 75.0) + SurfaceLine2 surfaceLine = FactoryForSurfaceLines.CreateSurfaceLineWithDikeAndDitch(); + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X = + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X + 5.0; + // Now combine the soilGeometryProbability with the same SurfaceLine2 which should result the SoilProfile2D + // being extended to the right with 5.0 meters + MacroStabilityCommonHelper.CombineSoilProfileWithSurfaceLine(soilGeometryProbability, surfaceLine, new Soil()); + GeometryData geometry = soilGeometryProbability.SoilProfile2D.Geometry; + // For debugging purposes + // GeometryExporter.ExportToFile(geometry, visualizationFolder + "Geometry.txt"); + // GeometryExporter.ExportToJsonFile(geometry, visualizationFolder + "Geometry.json"); + Assert.Multiple(() => + { + Assert.That(soilGeometryProbability.SoilProfileType, Is.EqualTo(SoilProfileType.ProfileType2D)); + Assert.That(geometry.Surfaces, Has.Count.EqualTo(2)); + Assert.That(geometry.Left, Is.EqualTo(0.0).Within(cTolerance)); + Assert.That(geometry.Right, Is.EqualTo(80.0).Within(cTolerance)); + Assert.That(geometry.Bottom, Is.EqualTo(-20.0).Within(cTolerance)); + }); + } + private SoilGeometryProbability CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike() { SoilGeometryProbability soilGeometryProbability = FactoryForSoilGeometryProbabilities.CreateSoilGeometryProbabilityWithSoilProfile1D();