Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DSurfaceLineHelperTests.cs =================================================================== diff -u -r5127 -r5261 --- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DSurfaceLineHelperTests.cs (.../SoilProfile2DSurfaceLineHelperTests.cs) (revision 5127) +++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DSurfaceLineHelperTests.cs (.../SoilProfile2DSurfaceLineHelperTests.cs) (revision 5261) @@ -544,4 +544,20 @@ c.HeadPoint.X.IsNearEqual(curve.EndPoint.X) && c.HeadPoint.Z.IsNearEqual(curve.EndPoint.Z))); } + + [TestCase (0.0, 0, true)] + [TestCase (0.0, 3, false)] + [TestCase (1.0, 0, false)] + [Test] + public void TestIsLayerAboveOriginalSurfaceLine(double surfaceZ, int layer, bool expectedLayerAbove) + { + // Given + SurfaceLine2 surfaceLine = FactoryForSurfaceLines.CreateHorizontalSurfaceLine(surfaceZ, -50.0, 60.0); + SoilProfile2D soilProfile = FactoryForSoilProfiles.CreateSoilProfile2DWithSixSurfacesFormingTwoLayers(); + soilProfile.Geometry.RegenerateGeometry(); + // When + bool result = SoilProfile2DSurfaceLineHelper.IsLayerAboveOriginalSurfaceLine(soilProfile.Surfaces[layer], surfaceLine.Geometry); + // Then + Assert.That(result, Is.EqualTo(expectedLayerAbove)); + } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs =================================================================== diff -u -r5238 -r5261 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs (.../FactoryForSurfaceLines.cs) (revision 5238) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForSurfaceLines.cs (.../FactoryForSurfaceLines.cs) (revision 5261) @@ -313,15 +313,15 @@ /// Creates a horizontal surface line. /// /// surface line - public static SurfaceLine2 CreateHorizontalSurfaceLine(double level) + public static SurfaceLine2 CreateHorizontalSurfaceLine(double level, double left = -10, double right = 10) { var surfaceLine = new SurfaceLine2 { Name = "HorizontalLine" }; - surfaceLine.EnsurePointOfType(-10, level, CharacteristicPointType.SurfaceLevelOutside); - surfaceLine.EnsurePointOfType(10, level, CharacteristicPointType.SurfaceLevelInside); + surfaceLine.EnsurePointOfType(left, level, CharacteristicPointType.SurfaceLevelOutside); + surfaceLine.EnsurePointOfType(right, level, CharacteristicPointType.SurfaceLevelInside); surfaceLine.Geometry.SyncCalcPoints(); return surfaceLine; Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs =================================================================== diff -u -r5260 -r5261 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs (.../SoilProfile2DSurfaceLineHelper.cs) (revision 5260) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile2DSurfaceLineHelper.cs (.../SoilProfile2DSurfaceLineHelper.cs) (revision 5261) @@ -343,7 +343,7 @@ } } - private static bool IsLayerAboveOriginalSurfaceLine(SoilLayer2D layer, GeometryPointString surfaceLine) + internal static bool IsLayerAboveOriginalSurfaceLine(SoilLayer2D layer, GeometryPointString surfaceLine) { if (layer == null || surfaceLine == null) {