Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs
===================================================================
diff -u -re751a698f14762ba8279c2e0f88e9312ffe574fb -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs (.../DerivedMacroStabilityInwardsOutputFactory.cs) (revision e751a698f14762ba8279c2e0f88e9312ffe574fb)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/DerivedMacroStabilityInwardsOutputFactory.cs (.../DerivedMacroStabilityInwardsOutputFactory.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -21,6 +21,7 @@
using System;
using Core.Common.Util;
+using Ringtoets.Common.Data.AssessmentSection;
namespace Ringtoets.MacroStabilityInwards.Data
{
@@ -33,33 +34,38 @@
/// Calculates the semi-probabilistic results given a with .
///
/// The output of a calculation.
- /// General input that influences the probability estimate for a
- /// macro stability inwards assessment.
- /// The norm to assess for.
- /// The contribution of macro stability inwards as a percentage (0-100) to the total of the failure probability
- /// of the assessment section.
- /// Thrown when or
- /// is null.
+ /// The failure mechanism the output belongs to.
+ /// The assessment section the output belongs to.
+ /// Thrown when any parameter is null.
public static DerivedMacroStabilityInwardsOutput Create(MacroStabilityInwardsOutput output,
- MacroStabilityInwardsProbabilityAssessmentInput probabilityAssessmentInput,
- double norm, double contribution)
+ MacroStabilityInwardsFailureMechanism failureMechanism,
+ IAssessmentSection assessmentSection)
{
if (output == null)
{
throw new ArgumentNullException(nameof(output));
}
- if (probabilityAssessmentInput == null)
+ if (failureMechanism == null)
{
- throw new ArgumentNullException(nameof(probabilityAssessmentInput));
+ throw new ArgumentNullException(nameof(failureMechanism));
}
+ if (assessmentSection == null)
+ {
+ throw new ArgumentNullException(nameof(assessmentSection));
+ }
+
+ MacroStabilityInwardsProbabilityAssessmentInput probabilityAssessmentInput = failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput;
+ double contribution = failureMechanism.Contribution / 100;
+ double norm = assessmentSection.FailureMechanismContribution.Norm;
+
double factorOfStability = output.FactorOfStability;
double requiredProbability = CalculateRequiredProbability(probabilityAssessmentInput.A,
probabilityAssessmentInput.B,
probabilityAssessmentInput.SectionLength,
norm,
- contribution / 100);
+ contribution);
double requiredReliability = StatisticsConverter.ProbabilityToReliability(requiredProbability);
double macroStabilityInwardsReliability = CalculateEstimatedReliability(factorOfStability);
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSection2aAssessmentResultExtensions.cs
===================================================================
diff -u -rfb3c4216478c0f072cf2f1a94053e81756ced5c7 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSection2aAssessmentResultExtensions.cs (.../MacroStabilityInwardsFailureMechanismSection2aAssessmentResultExtensions.cs) (revision fb3c4216478c0f072cf2f1a94053e81756ced5c7)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSection2aAssessmentResultExtensions.cs (.../MacroStabilityInwardsFailureMechanismSection2aAssessmentResultExtensions.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -80,10 +80,9 @@
double totalAssessmentLayerTwoA = 0;
foreach (MacroStabilityInwardsCalculationScenario scenario in calculationScenarios)
{
- var derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(scenario.Output,
- failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm,
- failureMechanism.Contribution);
+ DerivedMacroStabilityInwardsOutput derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(scenario.Output,
+ failureMechanism,
+ assessmentSection);
totalAssessmentLayerTwoA += derivedOutput.MacroStabilityInwardsProbability * (double) scenario.Contribution;
}
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsOutputProperties.cs
===================================================================
diff -u -rf9241a51f8525620485436283b49f525fc6cfff5 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsOutputProperties.cs (.../MacroStabilityInwardsOutputProperties.cs) (revision f9241a51f8525620485436283b49f525fc6cfff5)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/PropertyClasses/MacroStabilityInwardsOutputProperties.cs (.../MacroStabilityInwardsOutputProperties.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -151,8 +151,7 @@
MacroStabilityInwardsFailureMechanism failureMechanism,
IAssessmentSection assessmentSection)
{
- derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(output, failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(output, failureMechanism, assessmentSection);
}
}
}
\ No newline at end of file
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs
===================================================================
diff -u -re38673ff639b5d86a2f55997e2d0d876ba4737f7 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs (.../MacroStabilityInwardsScenarioRow.cs) (revision e38673ff639b5d86a2f55997e2d0d876ba4737f7)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs (.../MacroStabilityInwardsScenarioRow.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -67,8 +67,7 @@
if (Calculation.HasOutput)
{
- derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
}
}
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs
===================================================================
diff -u -re751a698f14762ba8279c2e0f88e9312ffe574fb -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs (.../DerivedMacroStabilityInwardsOutputFactoryTest.cs) (revision e751a698f14762ba8279c2e0f88e9312ffe574fb)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/DerivedMacroStabilityInwardsOutputFactoryTest.cs (.../DerivedMacroStabilityInwardsOutputFactoryTest.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -21,6 +21,8 @@
using System;
using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.MacroStabilityInwards.Data.TestUtil;
@@ -32,53 +34,83 @@
[Test]
public void Create_OutputNull_ThrowsArgumentNullException()
{
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
TestDelegate call = () => DerivedMacroStabilityInwardsOutputFactory.Create(null,
- new MacroStabilityInwardsProbabilityAssessmentInput(),
- double.NaN,
- double.NaN);
+ new MacroStabilityInwardsFailureMechanism(),
+ assessmentSection);
// Assert
var exception = Assert.Throws(call);
Assert.AreEqual("output", exception.ParamName);
+ mocks.VerifyAll();
}
[Test]
- public void Create_ProbabilityAssessmentInputNull_ThrowsArgumentNullException()
+ public void Create_FailureMechanismNull_ThrowsArgumentNullException()
{
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
TestDelegate call = () => DerivedMacroStabilityInwardsOutputFactory.Create(MacroStabilityInwardsOutputTestFactory.CreateOutput(),
- null,
- double.NaN,
- double.NaN);
+ null,
+ assessmentSection);
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual("probabilityAssessmentInput", exception.ParamName);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ mocks.VerifyAll();
}
[Test]
+ public void Create_AssessmentSectionNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => DerivedMacroStabilityInwardsOutputFactory.Create(MacroStabilityInwardsOutputTestFactory.CreateOutput(),
+ new MacroStabilityInwardsFailureMechanism(),
+ null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("assessmentSection", exception.ParamName);
+ }
+
+ [Test]
public void Create_ValidData_ReturnsExpectedValue()
{
// Setup
- var probabilityAssessmentInput = new MacroStabilityInwardsProbabilityAssessmentInput
+ var failureMechanism = new MacroStabilityInwardsFailureMechanism
{
- SectionLength = 6000
+ MacroStabilityInwardsProbabilityAssessmentInput =
+ {
+ SectionLength = 6000
+ },
+ Contribution = 100
};
+ var mocks = new MockRepository();
+ IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
+
MacroStabilityInwardsOutput output = MacroStabilityInwardsOutputTestFactory.CreateRandomOutput();
- const double norm = 1.0 / 30000;
// Call
- DerivedMacroStabilityInwardsOutput derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(output, probabilityAssessmentInput, norm, 1000);
+ DerivedMacroStabilityInwardsOutput derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(output, failureMechanism, assessmentSection);
// Assert
Assert.AreEqual(0.697, derivedOutput.FactorOfStability, derivedOutput.FactorOfStability.GetAccuracy());
- Assert.AreEqual(0.38, derivedOutput.MacroStabilityInwardsFactorOfSafety, derivedOutput.MacroStabilityInwardsFactorOfSafety.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(6.7204301075268831E-05, derivedOutput.RequiredProbability, 1e-6);
- Assert.AreEqual(3.81824, derivedOutput.RequiredReliability, derivedOutput.RequiredReliability.GetAccuracy());
+ Assert.AreEqual(0.020161290322580648d, derivedOutput.RequiredProbability, 1e-6);
+ Assert.AreEqual(2.05043, derivedOutput.RequiredReliability, derivedOutput.RequiredReliability.GetAccuracy());
+ mocks.VerifyAll();
}
}
}
\ No newline at end of file
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsOutputPropertiesTest.cs
===================================================================
diff -u -r0bc724e93170500800aa7e5d3bf641ab44eeeac7 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsOutputPropertiesTest.cs (.../MacroStabilityInwardsOutputPropertiesTest.cs) (revision 0bc724e93170500800aa7e5d3bf641ab44eeeac7)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsOutputPropertiesTest.cs (.../MacroStabilityInwardsOutputPropertiesTest.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -129,10 +129,7 @@
// Assert
DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(
- output,
- failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm,
- failureMechanism.Contribution);
+ output, failureMechanism, assessmentSection);
Assert.AreEqual(expectedDerivedOutput.FactorOfStability, properties.MacroStabilityInwardsFactorOfStability,
properties.MacroStabilityInwardsFactorOfStability.GetAccuracy());
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs
===================================================================
diff -u -re38673ff639b5d86a2f55997e2d0d876ba4737f7 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs (.../MacroStabilityInwardsScenarioRowTest.cs) (revision e38673ff639b5d86a2f55997e2d0d876ba4737f7)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs (.../MacroStabilityInwardsScenarioRowTest.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -109,8 +109,7 @@
Assert.AreEqual(calculation.Contribution * 100, row.Contribution);
DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(
- calculation.Output, failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ calculation.Output, failureMechanism, assessmentSection);
Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedDerivedOutput.MacroStabilityInwardsProbability), row.FailureProbabilityMacroStabilityInwards);
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs
===================================================================
diff -u -r8ab72c61cfda487718df57b1e2a441394804f529 -r31eb717b3eae473dc7846e6dbe48d06e92b4b964
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs (.../DerivedPipingOutputFactory.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs (.../DerivedPipingOutputFactory.cs) (revision 31eb717b3eae473dc7846e6dbe48d06e92b4b964)
@@ -58,7 +58,7 @@
}
double norm = assessmentSection.FailureMechanismContribution.Norm;
- double contribution = failureMechanism.Contribution;
+ double contribution = failureMechanism.Contribution / 100;
PipingProbabilityAssessmentInput probabilityAssessmentInput = failureMechanism.PipingProbabilityAssessmentInput;
double upliftFactorOfSafety = output.UpliftFactorOfSafety;
@@ -81,7 +81,7 @@
probabilityAssessmentInput.B,
probabilityAssessmentInput.SectionLength,
norm,
- contribution / 100);
+ contribution);
double requiredReliability = StatisticsConverter.ProbabilityToReliability(requiredProbability);
return new DerivedPipingOutput(upliftFactorOfSafety, upliftReliability,