Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Kernels/UpliftVan/UpliftVanKernelWrapper.cs =================================================================== diff -u -r75630f09cc8a68394325d35a881c8e372913268f -rca7ddd190b0430262aa722d3d7b70906c2e68605 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Kernels/UpliftVan/UpliftVanKernelWrapper.cs (.../UpliftVanKernelWrapper.cs) (revision 75630f09cc8a68394325d35a881c8e372913268f) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.KernelWrapper/Kernels/UpliftVan/UpliftVanKernelWrapper.cs (.../UpliftVanKernelWrapper.cs) (revision ca7ddd190b0430262aa722d3d7b70906c2e68605) @@ -44,26 +44,12 @@ { stabilityModel = new StabilityModel { - ModelOption = ModelOptions.UpliftVan, - SearchAlgorithm = SearchAlgorithm.Grid, - GridOrientation = GridOrientation.Inwards, + LocationDaily = null, SlipPlaneConstraints = new SlipPlaneConstraints(), + GridOrientation = GridOrientation.Inwards, SlipCircle = new SlipCircle(), - GeneticAlgorithmOptions = new GeneticAlgorithmOptions - { - EliteCount = 2, - PopulationCount = 60, - GenerationCount = 50, - MutationRate = 0.3, - CrossOverScatterFraction = 0, - CrossOverSinglePointFraction = 0.7, - CrossOverDoublePointFraction = 0.3, - MutationJumpFraction = 0, - MutationCreepFraction = 0.9, - MutationInverseFraction = 0.1, - MutationCreepReduction = 0.05, - Seed = 1 - } + SearchAlgorithm = SearchAlgorithm.Grid, + ModelOption = ModelOptions.UpliftVan }; FactorOfStability = double.NaN; Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Kernels/UpliftVan/UpliftVanKernelWrapperTest.cs =================================================================== diff -u -r98893373912f751309ca68fa432e3b9abd9ec2ce -rca7ddd190b0430262aa722d3d7b70906c2e68605 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Kernels/UpliftVan/UpliftVanKernelWrapperTest.cs (.../UpliftVanKernelWrapperTest.cs) (revision 98893373912f751309ca68fa432e3b9abd9ec2ce) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Kernels/UpliftVan/UpliftVanKernelWrapperTest.cs (.../UpliftVanKernelWrapperTest.cs) (revision ca7ddd190b0430262aa722d3d7b70906c2e68605) @@ -21,6 +21,8 @@ using System; using System.Xml.Schema; +using Core.Common.TestUtil; +using Core.Common.Utils.Reflection; using Deltares.WTIStability; using Deltares.WTIStability.Data.Geo; using NUnit.Framework; @@ -78,7 +80,10 @@ { CurveList = { - curve1, curve2, curve3, curve4 + curve1, + curve2, + curve3, + curve4 } }; var kernel = new UpliftVanKernelWrapper @@ -91,11 +96,17 @@ { Points = { - point1, point2, point3, point4 + point1, + point2, + point3, + point4 }, Curves = { - curve1, curve2, curve3, curve4 + curve1, + curve2, + curve3, + curve4 }, Loops = { @@ -154,7 +165,10 @@ { CurveList = { - curve1, curve2, curve3, curve4 + curve1, + curve2, + curve3, + curve4 } }; var geometrySurface = new GeometrySurface @@ -172,11 +186,17 @@ { Points = { - point1, point2, point3, point4 + point1, + point2, + point3, + point4 }, Curves = { - curve1, curve2, curve3, curve4 + curve1, + curve2, + curve3, + curve4 }, Loops = { @@ -221,5 +241,101 @@ $"Parameter name: index{Environment.NewLine}" + $"Fatale fout in Uplift-Van berekening", exception.Message); } + + [Test] + public void Calculate_CompleteInput_InputCorrectlySetToWrappedKernel() + { + // Setup + var random = new Random(21); + var soilModel = new SoilModel(); + var soilProfile2D = new SoilProfile2D(); + var stabilityLocation = new StabilityLocation(); + var surfaceLine = new SurfaceLine2(); + double maximumSliceWidth = random.NextDouble(); + var slipPlaneUpliftVan = new SlipPlaneUpliftVan(); + bool moveGrid = random.NextBoolean(); + bool gridAutomaticDetermined = random.NextBoolean(); + bool createZones = random.NextBoolean(); + bool automaticForbiddenZones = random.NextBoolean(); + double slipPlaneMinimumDepth = random.NextDouble(); + double slipPlaneMinimumLength = random.NextDouble(); + + // Call + var kernel = new UpliftVanKernelWrapper + { + SoilModel = soilModel, + SoilProfile = soilProfile2D, + Location = stabilityLocation, + SurfaceLine = surfaceLine, + MaximumSliceWidth = maximumSliceWidth, + SlipPlaneUpliftVan = slipPlaneUpliftVan, + MoveGrid = moveGrid, + GridAutomaticDetermined = gridAutomaticDetermined, + CreateZones = createZones, + AutomaticForbiddenZones = automaticForbiddenZones, + SlipPlaneMinimumDepth = slipPlaneMinimumDepth, + SlipPlaneMinimumLength = slipPlaneMinimumLength + }; + + // Assert + var stabilityModel = TypeUtils.GetField(kernel, "stabilityModel"); + + #region Relevant default values + + Assert.IsNull(stabilityModel.LocationDaily); + Assert.IsNotNull(stabilityModel.SlipPlaneConstraints); + Assert.AreEqual(GridOrientation.Inwards, stabilityModel.GridOrientation); + Assert.IsNotNull(stabilityModel.SlipCircle); + Assert.AreEqual(SearchAlgorithm.Grid, stabilityModel.SearchAlgorithm); + Assert.AreEqual(ModelOptions.UpliftVan, stabilityModel.ModelOption); + Assert.IsEmpty(stabilityModel.MultiplicationFactorsCPhiForUpliftList); // No multiplication factors CPhi for WBI + Assert.IsEmpty(stabilityModel.UniformLoads); // No traffic load for WBI + + #endregion + + #region Wrapped values + + Assert.AreSame(surfaceLine, stabilityModel.SurfaceLine2); + Assert.AreSame(stabilityLocation, stabilityModel.Location); + Assert.AreSame(soilModel, stabilityModel.SoilModel); + Assert.AreSame(soilProfile2D, stabilityModel.SoilProfile); + Assert.AreEqual(maximumSliceWidth, stabilityModel.MaximumSliceWidth); + Assert.AreSame(slipPlaneUpliftVan, stabilityModel.SlipPlaneUpliftVan); + Assert.AreEqual(moveGrid, stabilityModel.MoveGrid); + Assert.AreEqual(gridAutomaticDetermined, stabilityModel.SlipCircle.Auto); + Assert.AreEqual(createZones, stabilityModel.SlipPlaneConstraints.CreateZones); + Assert.AreEqual(automaticForbiddenZones, stabilityModel.SlipPlaneConstraints.AutomaticForbiddenZones); + Assert.AreEqual(slipPlaneMinimumDepth, stabilityModel.SlipPlaneConstraints.SlipPlaneMinDepth); + Assert.AreEqual(slipPlaneMinimumLength, stabilityModel.SlipPlaneConstraints.SlipPlaneMinLength); + + #endregion + + #region Irrelevant default values + + Assert.AreEqual(0.0, stabilityModel.FileVersionAsRead); // Set by XML serialization + Assert.IsNull(stabilityModel.MinimumSafetyCurve); // Output + Assert.IsFalse(stabilityModel.OnlyMinimumSafetyCurve); // Only for Bishop + Assert.IsFalse(stabilityModel.AutoGenerateGeneticSpencer); // Only for Spencer + Assert.AreEqual(SlipPlanePosition.High, stabilityModel.SlipPlanePosition); // Only for Spencer + Assert.AreEqual(0.8, stabilityModel.RequiredForcePointsInSlices); // Only for Spencer + Assert.AreEqual(60.0, stabilityModel.MaxAllowedAngleBetweenSlices); // Only for Spencer + Assert.IsNotNull(stabilityModel.GeneticAlgorithmOptions); // Only for genetic search algorithm + Assert.IsNotNull(stabilityModel.LevenbergMarquardtOptions); // Only for Levenberg Marquardt search algorithm + Assert.AreEqual(ShearStrengthModel.CPhi, stabilityModel.DefaultShearStrengthModel); // Unused property + Assert.AreEqual(50.0, stabilityModel.NumberOfGridMoves); // Only for Bishop + Assert.IsEmpty(stabilityModel.ConsolidationMatrix.ConsolidationValues); + + #endregion + + #region Automatically set values + + Assert.AreSame(soilProfile2D.Geometry, stabilityModel.GeometryData); + Assert.IsNotNull(stabilityModel.GeotechnicsData); + Assert.AreSame(soilProfile2D.Geometry, stabilityModel.GeotechnicsData.Geometry); + Assert.IsNotNull(stabilityModel.ConsolidationMatrix); + Assert.IsNotNull(stabilityModel.ConsolidationLoad); + + #endregion + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test.csproj =================================================================== diff -u -r98893373912f751309ca68fa432e3b9abd9ec2ce -rca7ddd190b0430262aa722d3d7b70906c2e68605 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test.csproj (.../Ringtoets.MacroStabilityInwards.KernelWrapper.Test.csproj) (revision 98893373912f751309ca68fa432e3b9abd9ec2ce) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test/Ringtoets.MacroStabilityInwards.KernelWrapper.Test.csproj (.../Ringtoets.MacroStabilityInwards.KernelWrapper.Test.csproj) (revision ca7ddd190b0430262aa722d3d7b70906c2e68605) @@ -93,6 +93,10 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base + + {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} + Core.Common.Utils + {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil