Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/Input/UpliftVanSlipPlane.cs
===================================================================
diff -u -r476c10932cea472a1475d63d32c2ad019bc5c57a -rc31f143df1707d110bd716a1dbc81b1b2d143c1b
--- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/Input/UpliftVanSlipPlane.cs (.../UpliftVanSlipPlane.cs) (revision 476c10932cea472a1475d63d32c2ad019bc5c57a)
+++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Calculators/UpliftVan/Input/UpliftVanSlipPlane.cs (.../UpliftVanSlipPlane.cs) (revision c31f143df1707d110bd716a1dbc81b1b2d143c1b)
@@ -52,6 +52,8 @@
///
/// Creates a new instance of .
///
+ /// The left grid.
+ /// The right grid.
/// Thrown when
/// or is null.
/// The following values are set:
@@ -74,6 +76,11 @@
///
/// Creates a new instance of .
///
+ /// The left grid.
+ /// The right grid.
+ /// The tangent line top boundary.
+ /// The tangent line bottom boundary.
+ /// The number of tangent lines.
/// Thrown when
/// or is null.
/// The following values are set:
Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Creators/Input/MacroStabilityInputCreator.cs
===================================================================
diff -u -rca2e4b3a0824dd8b142fae068b29ee2fbbd1069e -rc31f143df1707d110bd716a1dbc81b1b2d143c1b
--- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Creators/Input/MacroStabilityInputCreator.cs (.../MacroStabilityInputCreator.cs) (revision ca2e4b3a0824dd8b142fae068b29ee2fbbd1069e)
+++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.KernelWrapper/Creators/Input/MacroStabilityInputCreator.cs (.../MacroStabilityInputCreator.cs) (revision c31f143df1707d110bd716a1dbc81b1b2d143c1b)
@@ -93,7 +93,7 @@
throw new ArgumentNullException(nameof(extremeWaternet));
}
- return new MacroStabilityInput
+ var macroStabilityInput = new MacroStabilityInput
{
StabilityModel =
{
@@ -122,10 +122,7 @@
OnlyAbovePleistoceen = true,
AutoSearchArea = upliftVanInput.SlipPlane.GridAutomaticDetermined,
AutoTangentLines = upliftVanInput.SlipPlane.TangentLinesAutomaticAtBoundaries,
- AutomaticForbiddenZones = upliftVanInput.SlipPlaneConstraints.AutomaticForbiddenZones,
- TangentLineNumber = upliftVanInput.SlipPlane.TangentLineNumber,
- TangentLineZTop = upliftVanInput.SlipPlane.TangentZTop,
- TangentLineZBottom = upliftVanInput.SlipPlane.TangentZBottom
+ AutomaticForbiddenZones = upliftVanInput.SlipPlaneConstraints.AutomaticForbiddenZones
},
PreConstructionStages =
{
@@ -134,6 +131,10 @@
}
}
};
+
+ SetTangentLineProperties(upliftVanInput, macroStabilityInput);
+
+ return macroStabilityInput;
}
///
@@ -230,6 +231,16 @@
WaternetCreatorInputCreator.Create(waternetInput));
}
+ private static void SetTangentLineProperties(UpliftVanCalculatorInput upliftVanInput, MacroStabilityInput macroStabilityInput)
+ {
+ if (!upliftVanInput.SlipPlane.TangentLinesAutomaticAtBoundaries)
+ {
+ macroStabilityInput.PreprocessingInput.SearchAreaConditions.TangentLineNumber = upliftVanInput.SlipPlane.TangentLineNumber;
+ macroStabilityInput.PreprocessingInput.SearchAreaConditions.TangentLineZTop = upliftVanInput.SlipPlane.TangentZTop;
+ macroStabilityInput.PreprocessingInput.SearchAreaConditions.TangentLineZBottom = upliftVanInput.SlipPlane.TangentZBottom;
+ }
+ }
+
private static MacroStabilityInput CreateWaternet(ICollection soils, SurfaceLine surfaceLine,
SoilProfile soilProfile, WaternetCreatorInput waternetCreatorInput)
{
Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/MacroStabilityInputCreatorTest.cs
===================================================================
diff -u -rca2e4b3a0824dd8b142fae068b29ee2fbbd1069e -rc31f143df1707d110bd716a1dbc81b1b2d143c1b
--- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/MacroStabilityInputCreatorTest.cs (.../MacroStabilityInputCreatorTest.cs) (revision ca2e4b3a0824dd8b142fae068b29ee2fbbd1069e)
+++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.Test/Creators/Input/MacroStabilityInputCreatorTest.cs (.../MacroStabilityInputCreatorTest.cs) (revision c31f143df1707d110bd716a1dbc81b1b2d143c1b)
@@ -184,9 +184,9 @@
Assert.IsTrue(searchAreaConditions.OnlyAbovePleistoceen);
Assert.AreEqual(input.SlipPlane.GridAutomaticDetermined, searchAreaConditions.AutoSearchArea);
Assert.AreEqual(input.SlipPlane.TangentLinesAutomaticAtBoundaries, searchAreaConditions.AutoTangentLines);
- Assert.AreEqual(input.SlipPlane.TangentLineNumber, searchAreaConditions.TangentLineNumber);
- Assert.AreEqual(input.SlipPlane.TangentZTop, searchAreaConditions.TangentLineZTop);
- Assert.AreEqual(input.SlipPlane.TangentZBottom, searchAreaConditions.TangentLineZBottom);
+ Assert.AreEqual(1, searchAreaConditions.TangentLineNumber);
+ Assert.AreEqual(0, searchAreaConditions.TangentLineZTop);
+ Assert.AreEqual(0, searchAreaConditions.TangentLineZBottom);
Assert.AreEqual(input.SlipPlaneConstraints.AutomaticForbiddenZones, searchAreaConditions.AutomaticForbiddenZones);
Assert.AreEqual(2, macroStabilityInput.PreprocessingInput.PreConstructionStages.Count);
@@ -199,6 +199,38 @@
}
}
+ [Test]
+ public void CreateUpliftVan_ValidDataWithManualTangentLines_ReturnMacroStabilityInput()
+ {
+ // Setup
+ var random = new Random(21);
+ double tangentZTop = random.NextDouble();
+ double tangentZBottom = random.NextDouble();
+ int tangentLineNumber = random.Next();
+
+ UpliftVanCalculatorInput input = UpliftVanCalculatorInputTestFactory.Create(tangentZTop, tangentZBottom, tangentLineNumber);
+
+ LayerWithSoil[] layersWithSoil = LayerWithSoilCreator.Create(input.SoilProfile, out IDictionary layerLookup);
+ List soils = layersWithSoil.Select(lws => lws.Soil).ToList();
+
+ SurfaceLine surfaceLine = SurfaceLineCreator.Create(input.SurfaceLine);
+ SoilProfile soilProfile = SoilProfileCreator.Create(layersWithSoil);
+
+ var dailyWaternet = new Waternet();
+ var extremeWaternet = new Waternet();
+
+ // Call
+ MacroStabilityInput macroStabilityInput = MacroStabilityInputCreator.CreateUpliftVan(
+ input, soils, layerLookup, surfaceLine, soilProfile, dailyWaternet, extremeWaternet);
+
+ // Assert
+ SearchAreaConditions searchAreaConditions = macroStabilityInput.PreprocessingInput.SearchAreaConditions;
+ Assert.AreEqual(input.SlipPlane.TangentLinesAutomaticAtBoundaries, searchAreaConditions.AutoTangentLines);
+ Assert.AreEqual(input.SlipPlane.TangentLineNumber, searchAreaConditions.TangentLineNumber);
+ Assert.AreEqual(input.SlipPlane.TangentZTop, searchAreaConditions.TangentLineZTop);
+ Assert.AreEqual(input.SlipPlane.TangentZBottom, searchAreaConditions.TangentLineZBottom);
+ }
+
private static void AssertConstructionStages(
UpliftVanCalculatorInput input, StabilityInput stabilityModel, SoilProfile soilProfile,
Waternet dailyWaternet, Waternet extremeWaternet, IDictionary layerLookup)
Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactoryTest.cs
===================================================================
diff -u -rf08d80ff73aa6e92788ad00f00f1128257b5f287 -rc31f143df1707d110bd716a1dbc81b1b2d143c1b
--- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactoryTest.cs (.../UpliftVanCalculatorInputTestFactoryTest.cs) (revision f08d80ff73aa6e92788ad00f00f1128257b5f287)
+++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil.Test/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactoryTest.cs (.../UpliftVanCalculatorInputTestFactoryTest.cs) (revision c31f143df1707d110bd716a1dbc81b1b2d143c1b)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using NUnit.Framework;
using Riskeer.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan.Input;
using Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil.Calculators.UpliftVan.Input;
@@ -30,7 +31,7 @@
public class UpliftVanCalculatorInputTestFactoryTest
{
[Test]
- public void Create_Always_ReturnsUpliftVanCalculatorInput()
+ public void Create_WithoutParameters_ReturnsUpliftVanCalculatorInput()
{
// Call
UpliftVanCalculatorInput input = UpliftVanCalculatorInputTestFactory.Create();
@@ -66,5 +67,52 @@
Assert.AreEqual(1, input.SlipPlaneConstraints.SlipPlaneMinimumDepth);
Assert.AreEqual(0.7, input.SlipPlaneConstraints.SlipPlaneMinimumLength);
}
+
+ [Test]
+ public void Create_WithParameters_ReturnsUpliftVanCalculatorInput()
+ {
+ // Setup
+ var random = new Random(21);
+ double tangentZTop = random.NextDouble();
+ double tangentZBottom = random.NextDouble();
+ int tangentLineNumber = random.Next();
+
+ // Call
+ UpliftVanCalculatorInput input = UpliftVanCalculatorInputTestFactory.Create(tangentZTop, tangentZBottom, tangentLineNumber);
+
+ // Assert
+ Assert.AreEqual(-1, input.AssessmentLevel);
+ Assert.AreEqual(-1, input.WaterLevelRiverAverage);
+ Assert.AreEqual(-1, input.WaterLevelPolderExtreme);
+ Assert.AreEqual(-1, input.WaterLevelPolderDaily);
+ Assert.AreEqual(0.1, input.MinimumLevelPhreaticLineAtDikeTopRiver);
+ Assert.AreEqual(0.2, input.MinimumLevelPhreaticLineAtDikeTopPolder);
+ Assert.AreEqual(1.3, input.LeakageLengthOutwardsPhreaticLine3);
+ Assert.AreEqual(1.4, input.LeakageLengthInwardsPhreaticLine3);
+ Assert.AreEqual(1.5, input.LeakageLengthOutwardsPhreaticLine4);
+ Assert.AreEqual(1.6, input.LeakageLengthInwardsPhreaticLine4);
+ Assert.AreEqual(0.3, input.PiezometricHeadPhreaticLine2Outwards);
+ Assert.AreEqual(0.4, input.PiezometricHeadPhreaticLine2Inwards);
+ Assert.AreEqual(0.5, input.PenetrationLengthExtreme);
+ Assert.AreEqual(0.6, input.PenetrationLengthDaily);
+ Assert.IsTrue(input.AdjustPhreaticLine3And4ForUplift);
+ Assert.AreEqual(MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay, input.DikeSoilScenario);
+ Assert.IsFalse(input.MoveGrid);
+ Assert.AreEqual(1, input.MaximumSliceWidth);
+
+ Assert.IsNotNull(input.SurfaceLine);
+ Assert.IsNotNull(input.SoilProfile);
+ Assert.IsNotNull(input.DrainageConstruction);
+ Assert.IsNotNull(input.PhreaticLineOffsetsDaily);
+ Assert.IsNotNull(input.PhreaticLineOffsetsExtreme);
+ Assert.IsNotNull(input.SlipPlane);
+ Assert.AreEqual(tangentZTop, input.SlipPlane.TangentZTop);
+ Assert.AreEqual(tangentZBottom, input.SlipPlane.TangentZBottom);
+ Assert.AreEqual(tangentLineNumber, input.SlipPlane.TangentLineNumber);
+ Assert.IsNotNull(input.SlipPlaneConstraints);
+
+ Assert.AreEqual(1, input.SlipPlaneConstraints.SlipPlaneMinimumDepth);
+ Assert.AreEqual(0.7, input.SlipPlaneConstraints.SlipPlaneMinimumLength);
+ }
}
}
\ No newline at end of file
Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactory.cs
===================================================================
diff -u -r1ff6856c055a47896637a72ac196436c30801503 -rc31f143df1707d110bd716a1dbc81b1b2d143c1b
--- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactory.cs (.../UpliftVanCalculatorInputTestFactory.cs) (revision 1ff6856c055a47896637a72ac196436c30801503)
+++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.KernelWrapper.TestUtil/Calculators/UpliftVan/Input/UpliftVanCalculatorInputTestFactory.cs (.../UpliftVanCalculatorInputTestFactory.cs) (revision c31f143df1707d110bd716a1dbc81b1b2d143c1b)
@@ -39,6 +39,24 @@
/// The created .
public static UpliftVanCalculatorInput Create()
{
+ return Create(new UpliftVanSlipPlane());
+ }
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The tangent line top boundary.
+ /// The tangent line bottom boundary.
+ /// The number of tangent lines.
+ /// The created .
+ public static UpliftVanCalculatorInput Create(double tangentZTop, double tangentZBottom, int tangentLineNumber)
+ {
+ return Create(new UpliftVanSlipPlane(UpliftVanGridTestFactory.Create(), UpliftVanGridTestFactory.Create(),
+ tangentZTop, tangentZBottom, tangentLineNumber));
+ }
+
+ private static UpliftVanCalculatorInput Create(UpliftVanSlipPlane slipPlane)
+ {
MacroStabilityInwardsSurfaceLine surfaceLine = CreateValidSurfaceLine();
return new UpliftVanCalculatorInput(new UpliftVanCalculatorInput.ConstructionProperties
@@ -49,7 +67,7 @@
DrainageConstruction = new DrainageConstruction(),
PhreaticLineOffsetsExtreme = new PhreaticLineOffsets(),
PhreaticLineOffsetsDaily = new PhreaticLineOffsets(),
- SlipPlane = new UpliftVanSlipPlane(),
+ SlipPlane = slipPlane,
SlipPlaneConstraints = new UpliftVanSlipPlaneConstraints(1, 0.7),
WaterLevelRiverAverage = -1,
WaterLevelPolderExtreme = -1,