Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationImporter.cs =================================================================== diff -u -rb85ea570b1c4b07ac07df0912089909bc5304cbc -r120c0735a3c22ff8772394362cb25e1ba28daa37 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationImporter.cs (.../MacroStabilityInwardsCalculationConfigurationImporter.cs) (revision b85ea570b1c4b07ac07df0912089909bc5304cbc) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationImporter.cs (.../MacroStabilityInwardsCalculationConfigurationImporter.cs) (revision 120c0735a3c22ff8772394362cb25e1ba28daa37) @@ -29,6 +29,7 @@ using Ringtoets.Common.IO.Configurations.Import; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; +using Ringtoets.MacroStabilityInwards.IO.Configurations.Helpers; using Ringtoets.MacroStabilityInwards.IO.Properties; using Ringtoets.MacroStabilityInwards.Primitives; @@ -93,6 +94,9 @@ && TrySetStochasticSoilProfile(calculationConfiguration, calculation) && TrySetScenarioParameters(calculationConfiguration.Scenario, calculation)) { + SetDikeSoilScenario(calculationConfiguration, calculation); + SetGridDeterminationType(calculationConfiguration, calculation); + SetTangentLineDeterminationType(calculationConfiguration, calculation); return calculation; } return null; @@ -252,5 +256,71 @@ } return true; } + + /// + /// Assigns the dike soil scenario. + /// + /// The read calculation read. + /// The calculation to configure. + private static void SetDikeSoilScenario(MacroStabilityInwardsCalculationConfiguration configuration, + MacroStabilityInwardsCalculationScenario calculation) + { + if (!configuration.DikeSoilScenario.HasValue) + { + return; + } + + var dikeSoilScenario = (MacroStabilityInwardsDikeSoilScenario?) new ConfigurationDikeSoilScenarioTypeConverter() + .ConvertTo(configuration.DikeSoilScenario.Value, typeof(MacroStabilityInwardsDikeSoilScenario)); + + if (dikeSoilScenario.HasValue) + { + calculation.InputParameters.DikeSoilScenario = dikeSoilScenario.Value; + } + } + + /// + /// Assigns the grid determination type. + /// + /// The read calculation read. + /// The calculation to configure. + private static void SetGridDeterminationType(MacroStabilityInwardsCalculationConfiguration configuration, + MacroStabilityInwardsCalculationScenario calculation) + { + if (!configuration.GridDeterminationType.HasValue) + { + return; + } + + var gridDeterminationType = (MacroStabilityInwardsGridDeterminationType?) new ConfigurationGridDeterminationTypeConverter() + .ConvertTo(configuration.GridDeterminationType.Value, typeof(MacroStabilityInwardsGridDeterminationType)); + + if (gridDeterminationType.HasValue) + { + calculation.InputParameters.GridDeterminationType = gridDeterminationType.Value; + } + } + + /// + /// Assigns the tangent line determination type. + /// + /// The read calculation read. + /// The calculation to configure. + private static void SetTangentLineDeterminationType(MacroStabilityInwardsCalculationConfiguration configuration, + MacroStabilityInwardsCalculationScenario calculation) + { + if (!configuration.TangentLineDeterminationType.HasValue) + { + return; + } + + var tangentLineDeterminationType = (MacroStabilityInwardsTangentLineDeterminationType?) new ConfigurationTangentLineDeterminationTypeConverter() + .ConvertTo(configuration.TangentLineDeterminationType.Value, typeof(MacroStabilityInwardsTangentLineDeterminationType)); + + if (tangentLineDeterminationType.HasValue) + { + calculation.InputParameters.TangentLineDeterminationType = tangentLineDeterminationType.Value; + } + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs =================================================================== diff -u -rb13759ad077f9e2b4104de000b5bdeafa9abe358 -r120c0735a3c22ff8772394362cb25e1ba28daa37 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision b13759ad077f9e2b4104de000b5bdeafa9abe358) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision 120c0735a3c22ff8772394362cb25e1ba28daa37) @@ -429,7 +429,10 @@ UseAssessmentLevelManualInput = manualAssessmentLevel, SurfaceLine = surfaceLine, StochasticSoilModel = stochasticSoilModel, - StochasticSoilProfile = stochasticSoilProfile + StochasticSoilProfile = stochasticSoilProfile, + DikeSoilScenario = MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay, + GridDeterminationType = MacroStabilityInwardsGridDeterminationType.Automatic, + TangentLineDeterminationType = MacroStabilityInwardsTangentLineDeterminationType.LayerSeparated }, IsRelevant = false, Contribution = (RoundedDouble) 0.088 @@ -447,18 +450,24 @@ MacroStabilityInwardsCalculationScenario actualCalculation) { Assert.AreEqual(expectedCalculation.Name, actualCalculation.Name); - Assert.AreEqual(expectedCalculation.InputParameters.UseAssessmentLevelManualInput, actualCalculation.InputParameters.UseAssessmentLevelManualInput); - if (expectedCalculation.InputParameters.UseAssessmentLevelManualInput) + + MacroStabilityInwardsInput expectedInput = expectedCalculation.InputParameters; + MacroStabilityInwardsInput actualInput = actualCalculation.InputParameters; + Assert.AreEqual(expectedInput.UseAssessmentLevelManualInput, actualInput.UseAssessmentLevelManualInput); + if (expectedInput.UseAssessmentLevelManualInput) { - Assert.AreEqual(expectedCalculation.InputParameters.AssessmentLevel.Value, actualCalculation.InputParameters.AssessmentLevel.Value); + Assert.AreEqual(expectedInput.AssessmentLevel.Value, actualInput.AssessmentLevel.Value); } else { - Assert.AreSame(expectedCalculation.InputParameters.HydraulicBoundaryLocation, actualCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.AreSame(expectedInput.HydraulicBoundaryLocation, actualInput.HydraulicBoundaryLocation); } - Assert.AreSame(expectedCalculation.InputParameters.SurfaceLine, actualCalculation.InputParameters.SurfaceLine); - Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilModel, actualCalculation.InputParameters.StochasticSoilModel); - Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilProfile, actualCalculation.InputParameters.StochasticSoilProfile); + Assert.AreSame(expectedInput.SurfaceLine, actualInput.SurfaceLine); + Assert.AreSame(expectedInput.StochasticSoilModel, actualInput.StochasticSoilModel); + Assert.AreSame(expectedInput.StochasticSoilProfile, actualInput.StochasticSoilProfile); + Assert.AreEqual(expectedInput.DikeSoilScenario, actualInput.DikeSoilScenario); + Assert.AreEqual(expectedInput.GridDeterminationType, actualInput.GridDeterminationType); + Assert.AreEqual(expectedInput.TangentLineDeterminationType, actualInput.TangentLineDeterminationType); Assert.AreEqual(expectedCalculation.IsRelevant, actualCalculation.IsRelevant); Assert.AreEqual(expectedCalculation.Contribution, actualCalculation.Contribution, actualCalculation.Contribution.GetAccuracy());