Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsSemiProbabilisticCalculationService.cs =================================================================== diff -u -rda31d7f34c54ec5800146246aa26509a6e78c118 -r977062f457f7e99785741716c660d7afe8e25a11 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsSemiProbabilisticCalculationService.cs (.../MacroStabilityInwardsSemiProbabilisticCalculationService.cs) (revision da31d7f34c54ec5800146246aa26509a6e78c118) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsSemiProbabilisticCalculationService.cs (.../MacroStabilityInwardsSemiProbabilisticCalculationService.cs) (revision 977062f457f7e99785741716c660d7afe8e25a11) @@ -37,6 +37,7 @@ private readonly double contribution; private readonly double stabilityFactor; + private readonly double modelFactor; private double macroStabilityInwardsProbability; private double macroStabilityInwardsReliability; @@ -54,19 +55,22 @@ /// The length of the assessment section. /// The contribution of macro stability inwards to the total failure. /// The stability factor of the calculation result. + /// The model factor of the calculation result. private MacroStabilityInwardsSemiProbabilisticCalculationService(double norm, double constantA, double constantB, double assessmentSectionLength, double contribution, - double stabilityFactor) + double stabilityFactor, + double modelFactor) { this.norm = norm; this.constantA = constantA; this.constantB = constantB; this.assessmentSectionLength = assessmentSectionLength; this.contribution = contribution; this.stabilityFactor = stabilityFactor; + this.modelFactor = modelFactor; } /// @@ -107,7 +111,8 @@ probabilityAssessmentInput.A, probabilityAssessmentInput.B, probabilityAssessmentInput.SectionLength, - contribution / 100, calculation.Output.FactorOfStability); + contribution / 100, calculation.Output.FactorOfStability, + generalInput.ModelFactor); calculator.Calculate(); @@ -151,7 +156,7 @@ /// The estimated reliability based on the stability factor. private double CalculateEstimatedReliability() { - return (6.21 * stabilityFactor) - 2.88; + return ((stabilityFactor / modelFactor) - 0.41) / 0.15; } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsSemiProbabilisticCalculationServiceTest.cs =================================================================== diff -u -rda31d7f34c54ec5800146246aa26509a6e78c118 -r977062f457f7e99785741716c660d7afe8e25a11 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsSemiProbabilisticCalculationServiceTest.cs (.../MacroStabilityInwardsSemiProbabilisticCalculationServiceTest.cs) (revision da31d7f34c54ec5800146246aa26509a6e78c118) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/MacroStabilityInwardsSemiProbabilisticCalculationServiceTest.cs (.../MacroStabilityInwardsSemiProbabilisticCalculationServiceTest.cs) (revision 977062f457f7e99785741716c660d7afe8e25a11) @@ -178,10 +178,11 @@ } [Test] - [TestCase(0.75)] - [TestCase(0.55)] - [TestCase(0.30)] - public void MacroStabilityInwardsReliability_DifferentInputs_ReturnsExpectedValues(double factorOfStability) + [TestCase(0.75, 1.98365)] + [TestCase(0.55, 0.72579)] + [TestCase(0.30, -0.84654)] + public void MacroStabilityInwardsReliability_DifferentInputs_ReturnsExpectedValues(double factorOfStability, + double expectedResult) { // Setup var random = new Random(21); @@ -204,13 +205,13 @@ RoundedDouble result = calculation.SemiProbabilisticOutput.MacroStabilityInwardsReliability; // Assert - Assert.AreEqual(GetDerivedEstimatedReliability(factorOfStability), result, result.GetAccuracy()); + Assert.AreEqual(expectedResult, result, result.GetAccuracy()); } [Test] - [TestCase(0.75, 0.037743005)] - [TestCase(0.55, 0.2961520790)] - [TestCase(0.30, 0.845423280)] + [TestCase(0.75, 0.023647)] + [TestCase(0.55, 0.233984)] + [TestCase(0.30, 0.801374)] public void MacroStabilityInwardsProbability_DifferentInputs_ReturnsExpectedValues(double factorOfStability, double expectedResult) { @@ -239,11 +240,6 @@ Assert.AreEqual(expectedResult, result, accuracy); // Probability is a derived output from reliability, hence accuracy is determined by the accuracy of the reliability } - private static double GetDerivedEstimatedReliability(double stabilityFactor) - { - return (6.21 * stabilityFactor) - 2.88; - } - private static double GetRequiredProbability(double norm, double contribution, double constantA,