Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs =================================================================== diff -u -r74df3b2f37b578eb5f0d5c8d33379d965805bb8e -r7eb43c9d8cad4783b413a74fe290ba561f3afc03 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs (.../DerivedMacroStabilityInwardsOutputFactory.cs) (revision 74df3b2f37b578eb5f0d5c8d33379d965805bb8e) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs (.../DerivedMacroStabilityInwardsOutputFactory.cs) (revision 7eb43c9d8cad4783b413a74fe290ba561f3afc03) @@ -68,7 +68,7 @@ contribution); double requiredReliability = StatisticsConverter.ProbabilityToReliability(requiredProbability); - double macroStabilityInwardsReliability = CalculateEstimatedReliability(factorOfStability); + double macroStabilityInwardsReliability = CalculateEstimatedReliability(factorOfStability, failureMechanism.GeneralInput.ModelFactor); double macroStabilityInwardsProbability = StatisticsConverter.ReliabilityToProbability(macroStabilityInwardsReliability); double macroStabilityInwardsFactorOfSafety = macroStabilityInwardsReliability / requiredReliability; @@ -97,13 +97,14 @@ /// /// Calculates the estimated reliability of the macro stability inwards failure mechanism - /// based on the stability factor. + /// based on the stability factor and model factor. /// /// The factory of stability to calculate the reliability for. - /// The estimated reliability based on the stability factor. - private static double CalculateEstimatedReliability(double factorOfStability) + /// The model factor of the calculation result. + /// The estimated reliability based on the stability and model factor. + private static double CalculateEstimatedReliability(double factorOfStability, double modelFactor) { - return (6.21 * factorOfStability) - 2.88; + return ((factorOfStability / modelFactor) - 0.41) / 0.15; } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs =================================================================== diff -u -r5c7faf8283e49113a2c7b9e17086148a99f13d2e -r7eb43c9d8cad4783b413a74fe290ba561f3afc03 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs (.../DerivedMacroStabilityInwardsOutputFactoryTest.cs) (revision 5c7faf8283e49113a2c7b9e17086148a99f13d2e) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs (.../DerivedMacroStabilityInwardsOutputFactoryTest.cs) (revision 7eb43c9d8cad4783b413a74fe290ba561f3afc03) @@ -109,9 +109,9 @@ // Assert Assert.AreEqual(output.FactorOfStability, derivedOutput.FactorOfStability, derivedOutput.FactorOfStability.GetAccuracy()); - Assert.AreEqual(0.707, derivedOutput.MacroStabilityInwardsFactorOfSafety, derivedOutput.MacroStabilityInwardsFactorOfSafety.GetAccuracy()); - Assert.AreEqual(0.073605149538226278, derivedOutput.MacroStabilityInwardsProbability, 1e-6); - Assert.AreEqual(1.44946, derivedOutput.MacroStabilityInwardsReliability, derivedOutput.MacroStabilityInwardsReliability.GetAccuracy()); + Assert.AreEqual(0.805, derivedOutput.MacroStabilityInwardsFactorOfSafety, derivedOutput.MacroStabilityInwardsFactorOfSafety.GetAccuracy()); + Assert.AreEqual(0.049327007121741082, derivedOutput.MacroStabilityInwardsProbability, 1e-6); + Assert.AreEqual(1.65141, derivedOutput.MacroStabilityInwardsReliability, derivedOutput.MacroStabilityInwardsReliability.GetAccuracy()); Assert.AreEqual(0.020161290322580648d, derivedOutput.RequiredProbability, 1e-6); Assert.AreEqual(2.05043, derivedOutput.RequiredReliability, derivedOutput.RequiredReliability.GetAccuracy()); mocks.VerifyAll(); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -r5ac330cbf482b60883be8428b68ab1bde6848eeb -r7eb43c9d8cad4783b413a74fe290ba561f3afc03 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 5ac330cbf482b60883be8428b68ab1bde6848eeb) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 7eb43c9d8cad4783b413a74fe290ba561f3afc03) @@ -143,7 +143,7 @@ macroStabilityInwardsCalculationScenario3.IsRelevant = false; - var calculations = new[] + MacroStabilityInwardsCalculationScenario[] calculations = { macroStabilityInwardsCalculationScenario1, macroStabilityInwardsCalculationScenario2, @@ -154,7 +154,7 @@ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism, assessmentSection); // Assert - Assert.AreEqual(0.99801160064610306, detailedAssessmentProbability, 1e-8); + Assert.AreEqual(0.99686512181936182, detailedAssessmentProbability, 1e-8); mocks.VerifyAll(); } @@ -194,7 +194,7 @@ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); - var calculationScenarios = new[] + MacroStabilityInwardsCalculationScenario[] calculationScenarios = { MacroStabilityInwardsCalculationScenarioTestFactory.CreateIrrelevantMacroStabilityInwardsCalculationScenario(section) }; @@ -261,7 +261,7 @@ calculationScenario2.Contribution = (RoundedDouble) contribution2; calculationScenario2.Output = MacroStabilityInwardsOutputTestFactory.CreateOutput(); - var calculations = new[] + MacroStabilityInwardsCalculationScenario[] calculations = { calculationScenario1, calculationScenario2 @@ -350,7 +350,7 @@ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario3 = MacroStabilityInwardsCalculationScenarioTestFactory.CreateIrrelevantMacroStabilityInwardsCalculationScenario(section); - var calculationScenarios = new[] + MacroStabilityInwardsCalculationScenario[] calculationScenarios = { macroStabilityInwardsCalculationScenario, macroStabilityInwardsCalculationScenario2, @@ -438,7 +438,7 @@ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario = MacroStabilityInwardsCalculationScenarioTestFactory.CreateNotCalculatedMacroStabilityInwardsCalculationScenario(section); MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario2 = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithNaNOutput(section); - var calculationScenarios = new[] + MacroStabilityInwardsCalculationScenario[] calculationScenarios = { macroStabilityInwardsCalculationScenario, macroStabilityInwardsCalculationScenario2 Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsFailureMechanismPropertiesTest.cs =================================================================== diff -u -r2109804607e2c1041dc78167f44c116f0bee45df -r7eb43c9d8cad4783b413a74fe290ba561f3afc03 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsFailureMechanismPropertiesTest.cs (.../MacroStabilityInwardsFailureMechanismPropertiesTest.cs) (revision 2109804607e2c1041dc78167f44c116f0bee45df) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsFailureMechanismPropertiesTest.cs (.../MacroStabilityInwardsFailureMechanismPropertiesTest.cs) (revision 7eb43c9d8cad4783b413a74fe290ba561f3afc03) @@ -108,7 +108,7 @@ // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); - Assert.AreEqual(9, dynamicProperties.Count); + Assert.AreEqual(10, dynamicProperties.Count); const string generalCategory = "Algemeen"; const string lengthEffectCategory = "Lengte-effect parameters"; @@ -151,7 +151,7 @@ PropertyDescriptor modelFactorProperty = dynamicProperties[modelFactorPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(modelFactorProperty, - generalCategory, + modelSettingsCategory, "Modelfactor [-]", "Modelfactor die wordt gebruikt bij de berekening van de benaderde faalkans op basis van de berekende stabiliteitsfactor.", true); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsFailureMechanismResultViewIntegrationTest.cs =================================================================== diff -u -r4190ed11a0efa6f11e5b9c5b767afd8e8db6022b -r7eb43c9d8cad4783b413a74fe290ba561f3afc03 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsFailureMechanismResultViewIntegrationTest.cs (.../MacroStabilityInwardsFailureMechanismResultViewIntegrationTest.cs) (revision 4190ed11a0efa6f11e5b9c5b767afd8e8db6022b) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Integration.Test/MacroStabilityInwardsFailureMechanismResultViewIntegrationTest.cs (.../MacroStabilityInwardsFailureMechanismResultViewIntegrationTest.cs) (revision 7eb43c9d8cad4783b413a74fe290ba561f3afc03) @@ -26,7 +26,6 @@ using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; -using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Integration.Data; using Ringtoets.Integration.TestUtil; @@ -62,7 +61,7 @@ // Import failure mechanism sections and ensure the data grid view is updated DataImportHelper.ImportReferenceLine(assessmentSection); - IFailureMechanism failureMechanism = assessmentSection.MacroStabilityInwards; + MacroStabilityInwardsFailureMechanism failureMechanism = assessmentSection.MacroStabilityInwards; DataImportHelper.ImportFailureMechanismSections(assessmentSection, failureMechanism); Assert.AreEqual(283, dataGridView.Rows.Count); Assert.AreEqual("-", dataGridView.Rows[22].Cells[detailedAssessmentIndex].FormattedValue); @@ -125,15 +124,19 @@ FactorOfStability = 0.5 }); calculation1.NotifyObservers(); - Assert.AreEqual(ProbabilityFormattingHelper.Format(0.5), + string expectedProbability = ProbabilityFormattingHelper.Format( + DerivedMacroStabilityInwardsOutputFactory.Create(calculation1.Output, + failureMechanism, + assessmentSection).MacroStabilityInwardsProbability); + Assert.AreEqual(expectedProbability, dataGridView.Rows[22].Cells[detailedAssessmentIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[detailedAssessmentIndex].ErrorText); // Add another, nested calculation without surface line and ensure the data grid view is updated when the surface line is set var calculation3 = new MacroStabilityInwardsCalculationScenario(); nestedCalculationGroup.Children.Add(calculation3); nestedCalculationGroup.NotifyObservers(); - Assert.AreEqual(ProbabilityFormattingHelper.Format(0.5), + Assert.AreEqual(expectedProbability, dataGridView.Rows[22].Cells[detailedAssessmentIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[detailedAssessmentIndex].ErrorText); @@ -167,7 +170,7 @@ // Set contribution again so we have a probability. calculation1.Contribution = (RoundedDouble) 1.0; calculation1.NotifyObservers(); - Assert.AreEqual(ProbabilityFormattingHelper.Format(0.5), + Assert.AreEqual(expectedProbability, dataGridView.Rows[22].Cells[detailedAssessmentIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[detailedAssessmentIndex].ErrorText);