Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverterTests.cs =================================================================== diff -u -r5252 -r5268 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverterTests.cs (.../PlLinesToWaternetConverterTests.cs) (revision 5252) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverterTests.cs (.../PlLinesToWaternetConverterTests.cs) (revision 5268) @@ -94,7 +94,7 @@ public void GivenPlLinesFullyDefinedAtOrBelowBottomSoil1DProfile_WhenCreatingWaternetBasedOnPlLinesAnd1DSoilProfile_ThenReturnsEmptyWaternet(double offsetFromBottomOfProfile) { // Setup - SoilProfile1D soilProfile = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out GeometryPointString surfaceLine); + SoilProfile1D soilProfile = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out SurfaceLine2 surfaceLine); double bottomLevel = soilProfile.BottomLevel; double plLineZCoordinate = bottomLevel - offsetFromBottomOfProfile; @@ -116,7 +116,7 @@ plLine.Points.Add(new PlLinePoint(rightCoordinate, plLineZCoordinate)); // Call - Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile, surfaceLine, penetrationLength, leftCoordinate, rightCoordinate, IntrusionVerticalWaterPressureType.Standard); + Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile, surfaceLine, penetrationLength, IntrusionVerticalWaterPressureType.Standard); Assert.Multiple(() => { @@ -129,7 +129,7 @@ public class Given1DSoilProfileWithTwoClustersOfInBetweenAquifers { - private static GeometryPointString surfaceLine; + private static SurfaceLine2 surfaceLine; private readonly SoilProfile1D soilProfile1D = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out surfaceLine); [TestCase(IntrusionVerticalWaterPressureType.Standard, -2.110, 6)] @@ -153,9 +153,7 @@ }); const double penetrateLength = 2.1; - const double left = 0; - const double right = 100; - Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, left, right, pressureType); + Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, pressureType); // Pl 1 is the phreatic line and gets waternet line to bottom level of the deepest layer where PL 1 lies // Pl 2 gets waternet line to level of BottomAquiferLayer.TopLevel + penetrationLength @@ -294,7 +292,7 @@ const double penetrateLength = 2.1; const double left = 0; const double right = 100; - Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, left, right, pressureType); + Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, pressureType); // Expected: waternet line connected to pl1 has level: // - for DAM Standard and Semi time dependent types, -6.111 m + 1 mm (Pl1 is in bottom aquifer) @@ -319,8 +317,8 @@ public void GivenNullPlLines_WhenCreatingWaternetBasedOnPlLinesAnd1DSoilProfile_ThenReturnsNoHeadLines() { PlLines plLines = CreateAllPlLines(); - SoilProfile1D soilProfile1D = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out GeometryPointString surfaceLine); - Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, 0.5, 0, 0, IntrusionVerticalWaterPressureType.SemiTimeDependent); + SoilProfile1D soilProfile1D = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out SurfaceLine2 surfaceLine); + Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, 0.5, IntrusionVerticalWaterPressureType.SemiTimeDependent); // head lines Assert.That(waternet.HeadLineList, Has.Count.EqualTo(3)); Assert.Multiple(() => @@ -335,7 +333,7 @@ // check that no headline are added when Pl2, Pl3 or Pl4 does not exist or has no points plLines.Lines[PlLineType.Pl3] = null; plLines.Lines[PlLineType.Pl4].Points.Clear(); - waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, 0.5, 0, 0, IntrusionVerticalWaterPressureType.SemiTimeDependent); + waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, 0.5, IntrusionVerticalWaterPressureType.SemiTimeDependent); // head lines Assert.That(waternet.HeadLineList, Has.Count.EqualTo(1)); Assert.Multiple(() => @@ -351,9 +349,9 @@ public void Given1DSoilProfileWithoutAquifer_WhenCreatingWaternetBasedOnPlLinesAnd1DSoilProfile_ThenReturnsException() { PlLines plLines = CreateAllPlLines(); - SoilProfile1D soilProfile1D = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out GeometryPointString surfaceLine); + SoilProfile1D soilProfile1D = CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out SurfaceLine2 surfaceLine); const double penetrateLength = 2.1; - Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, 0, 0, IntrusionVerticalWaterPressureType.SemiTimeDependent); + Waternet waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, IntrusionVerticalWaterPressureType.SemiTimeDependent); Assert.Multiple(() => { Assert.That(waternet.HeadLineList, Has.Count.EqualTo(3)); @@ -362,7 +360,7 @@ // check that no waternet lines are added for pl4 when InBetweenAquiferLayer is null soilProfile1D = CreateSoilProfile1DWith1AquiferForTest(); - waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, 0, 0, IntrusionVerticalWaterPressureType.SemiTimeDependent); + waternet = PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrateLength, IntrusionVerticalWaterPressureType.SemiTimeDependent); Assert.Multiple(() => { Assert.That(waternet.HeadLineList, Has.Count.EqualTo(3)); @@ -380,7 +378,7 @@ // check that an exception is raised when no aquifer present soilProfile1D = CreateSoilProfile1DWithoutAquifersForTest(); - Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrationLength, 0, 0, IntrusionVerticalWaterPressureType.Standard), + Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrationLength, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("The deepest layer is not an aquifer in soilprofile 'DefaultNameSoilProfile1D'.")); } @@ -1310,15 +1308,15 @@ public void GivenSoilProfile1DIsNull_WhenCreatingWaternetBasedOnPlLinesAndOn1DProfile_ThenLanguageNLThrowsException() { var plLines = new PlLines(); - Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, null, null, 0, 0, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen ondergrond profiel gedefinieerd")); + Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, null, null, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen ondergrond profiel gedefinieerd")); } [Test] [SetUICulture("nl-NL")] public void GivenPlLinesIsNull_WhenCreatingWaternetBasedOnPlLinesAndOn1DProfile_ThenLanguageNLThrowsException() { var soilProfile1D = new SoilProfile1D(); - Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(null, soilProfile1D, null, 0, 0, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen object voor pn-lijnen gedefinieerd")); + Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(null, soilProfile1D, null, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen object voor pn-lijnen gedefinieerd")); } [Test] @@ -1327,7 +1325,7 @@ { var soilProfile1D = new SoilProfile1D(); var plLines = new PlLines(); - Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, null, 0, 0, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen object voor maaiveld gedefinieerd")); + Assert.That(() => PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, null, 0, IntrusionVerticalWaterPressureType.Standard), Throws.InstanceOf().With.Message.EqualTo("Geen object voor maaiveld gedefinieerd")); } [Test] @@ -1482,12 +1480,12 @@ }); } - private static SoilProfile1D CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out GeometryPointString surfaceLine) + private static SoilProfile1D CreateSoilProfile1DWithTwoClustersOfInBetweenAquifers(out SurfaceLine2 surfaceLine) { const double topLevel = 1.212; - surfaceLine = new GeometryPointString(); - surfaceLine.Points.Add(new PlLinePoint(0, topLevel)); - surfaceLine.Points.Add(new PlLinePoint(100, topLevel)); + surfaceLine = new SurfaceLine2(); + surfaceLine.EnsurePointOfType(0, topLevel, CharacteristicPointType.SurfaceLevelOutside); + surfaceLine.EnsurePointOfType(100, topLevel, CharacteristicPointType.SurfaceLevelInside); var soilProfile1D = new SoilProfile1D {