Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs
===================================================================
diff -u -r5001 -r5002
--- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs (.../FactoryForSurfaceLines.cs) (revision 5001)
+++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs (.../FactoryForSurfaceLines.cs) (revision 5002)
@@ -813,4 +813,31 @@
surfaceLine.Geometry.SyncCalcPoints();
return surfaceLine;
}
+
+ ///
+ /// Creates a surface line, that contains a dike and is fully below SurfaceLineWithDikeAndDitch.
+ ///
+ /// surface line
+ public static SurfaceLine2 CreateSurfaceLineBelowSurfaceLineDikeAndDitch()
+ {
+ var surfaceLine = new SurfaceLine2
+ {
+ Name = "BelowSurfaceLineWithDikeAndDitch",
+ Geometry = new GeometryPointString(),
+ CharacteristicPoints =
+ {
+ GeometryMustContainPoint = true
+ }
+ };
+
+ surfaceLine.EnsurePointOfType(0.0, -10.0, CharacteristicPointType.SurfaceLevelOutside);
+ surfaceLine.EnsurePointOfType(10.0, -10.0, CharacteristicPointType.DikeToeAtRiver);
+ surfaceLine.EnsurePointOfType(34.5, -5.0, CharacteristicPointType.DikeTopAtRiver);
+ surfaceLine.EnsurePointOfType(40.5, -5.0, CharacteristicPointType.DikeTopAtPolder);
+ surfaceLine.EnsurePointOfType(50.5, -10.0, CharacteristicPointType.DikeToeAtPolder);
+ surfaceLine.EnsurePointOfType(75.0, -10.0, CharacteristicPointType.SurfaceLevelInside);
+
+ surfaceLine.Geometry.SyncCalcPoints();
+ return surfaceLine;
+ }
}
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs
===================================================================
diff -u -r5001 -r5002
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 5001)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelperTests.cs (.../MacroStabilityCommonHelperTests.cs) (revision 5002)
@@ -201,7 +201,7 @@
}
[Test, Ignore("Work in progress")]
- public void GivenSoilGeometryProbabilityWithSoilProfile2DAndSurfaceLineFullyAboveSoilProfile2DWhenCombiningThenLayerIsAddedOnTopOfSoilProfile2D()
+ public void GivenSoilGeometryProbabilityWithSoilProfile2DAndSurfaceLineFullyAboveTopBoundarySoilProfile2DWhenCombiningThenLayerIsAddedOnTopOfSoilProfile2D()
{
SoilGeometryProbability soilGeometryProbability = CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike();
SurfaceLine2 surfaceLine = FactoryForSurfaceLines.CreateSurfaceLineAboveSurfaceLineDikeAndDitch();
@@ -217,12 +217,35 @@
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.Right, Is.EqualTo(75.0).Within(cTolerance));
Assert.That(geometry.Bottom, Is.EqualTo(-20.0).Within(cTolerance));
Assert.That(geometry.MaxGeometryPointsZ, Is.EqualTo(10.0).Within(cTolerance));
});
}
+ [Test, Ignore("Work in progress")]
+ public void GivenSoilGeometryProbabilityWithSoilProfile2DAndSurfaceLineFullyBelowTopBoundarySoilProfile2DWhenCombiningThenMaterialAboveIsRemoved()
+ {
+ SoilGeometryProbability soilGeometryProbability = CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike();
+ SurfaceLine2 surfaceLine = FactoryForSurfaceLines.CreateSurfaceLineBelowSurfaceLineDikeAndDitch();
+ // Now combine the soilGeometryProbability with the surfaceLine which should result that the top part of the
+ // SoilProfile2D is removed (between top boundary of the SoilProfile2D and the surfaceLine)
+ 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(1));
+ Assert.That(geometry.Left, Is.EqualTo(0.0).Within(cTolerance));
+ Assert.That(geometry.Right, Is.EqualTo(75.0).Within(cTolerance));
+ Assert.That(geometry.Bottom, Is.EqualTo(-20.0).Within(cTolerance));
+ Assert.That(geometry.MaxGeometryPointsZ, Is.EqualTo(-5.0).Within(cTolerance));
+ });
+ }
+
private SoilGeometryProbability CreateSoilGeometryProbabilityWithSoilProfile2DWithSurfaceLineDitchDike()
{
SoilGeometryProbability soilGeometryProbability = FactoryForSoilGeometryProbabilities.CreateSoilGeometryProbabilityWithSoilProfile1D();