Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs
===================================================================
diff -u -re0389e1a7f5438c212fec019bd5f8dfcdf1fc9f6 -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs (.../DerivedPipingOutputFactory.cs) (revision e0389e1a7f5438c212fec019bd5f8dfcdf1fc9f6)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutputFactory.cs (.../DerivedPipingOutputFactory.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -21,6 +21,7 @@
using System;
using Core.Common.Util;
+using Ringtoets.Common.Data.AssessmentSection;
namespace Ringtoets.Piping.Data
{
@@ -33,27 +34,33 @@
/// Creates a new based on the given parameters.
///
/// The output of a calculation.
- /// General input that influences the
- /// probability estimate for a piping assessment.
- /// The norm to assess for.
- /// The contribution of piping as a percentage (0-100)
- /// to the total of the failure probability of the assessment section.
+ /// The failure mechanism the calculation belongs to.
+ /// The assessment section the calculation belongs to.
/// The created .
- /// Thrown when
- /// or is null.
- public static DerivedPipingOutput Create(PipingOutput output, PipingProbabilityAssessmentInput probabilityAssessmentInput,
- double norm, double contribution)
+ /// Thrown when any parameter is null.
+ public static DerivedPipingOutput Create(PipingOutput output,
+ PipingFailureMechanism 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));
+ }
+
+ double norm = assessmentSection.FailureMechanismContribution.Norm;
+ double contribution = failureMechanism.Contribution;
+ PipingProbabilityAssessmentInput probabilityAssessmentInput = failureMechanism.PipingProbabilityAssessmentInput;
+
double upliftFactorOfSafety = output.UpliftFactorOfSafety;
double heaveFactorOfSafety = output.HeaveFactorOfSafety;
double sellmeijerFactorOfSafety = output.SellmeijerFactorOfSafety;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs
===================================================================
diff -u -r271e81c620b40ebce812a9595b22ed0e4e7ce94a -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision 271e81c620b40ebce812a9595b22ed0e4e7ce94a)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -80,10 +80,7 @@
double totalAssessmentLayerTwoA = 0;
foreach (PipingCalculationScenario scenario in calculationScenarios)
{
- DerivedPipingOutput derivedOutput = DerivedPipingOutputFactory.Create(scenario.Output,
- failureMechanism.PipingProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm,
- failureMechanism.Contribution);
+ DerivedPipingOutput derivedOutput = DerivedPipingOutputFactory.Create(scenario.Output, failureMechanism, assessmentSection);
totalAssessmentLayerTwoA += derivedOutput.PipingProbability * (double) scenario.Contribution;
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs
===================================================================
diff -u -rdf44be36b5c375ff32cd94086af5e6610ec9fc3a -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs (.../PipingOutputProperties.cs) (revision df44be36b5c375ff32cd94086af5e6610ec9fc3a)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs (.../PipingOutputProperties.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -299,10 +299,7 @@
private void CreateDerivedOutput(PipingOutput output, PipingFailureMechanism failureMechanism,
IAssessmentSection assessmentSection)
{
- derivedOutput = DerivedPipingOutputFactory.Create(output,
- failureMechanism.PipingProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm,
- failureMechanism.Contribution);
+ derivedOutput = DerivedPipingOutputFactory.Create(output, failureMechanism, assessmentSection);
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenarioRow.cs
===================================================================
diff -u -re38673ff639b5d86a2f55997e2d0d876ba4737f7 -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenarioRow.cs (.../PipingScenarioRow.cs) (revision e38673ff639b5d86a2f55997e2d0d876ba4737f7)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingScenarioRow.cs (.../PipingScenarioRow.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -66,8 +66,7 @@
if (calculation.HasOutput)
{
- derivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism.PipingProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ derivedOutput = DerivedPipingOutputFactory.Create(calculation.Output, failureMechanism, assessmentSection);
}
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputFactoryTest.cs
===================================================================
diff -u -rdf44be36b5c375ff32cd94086af5e6610ec9fc3a -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputFactoryTest.cs (.../DerivedPipingOutputFactoryTest.cs) (revision df44be36b5c375ff32cd94086af5e6610ec9fc3a)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputFactoryTest.cs (.../DerivedPipingOutputFactoryTest.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -21,6 +21,8 @@
using System;
using NUnit.Framework;
+using Rhino.Mocks;
+using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Piping.Data.Test
@@ -31,58 +33,88 @@
[Test]
public void Create_OutputNull_ThrowsArgumentNullException()
{
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
// Call
TestDelegate call = () => DerivedPipingOutputFactory.Create(null,
- new PipingProbabilityAssessmentInput(),
- double.NaN,
- double.NaN);
+ new PipingFailureMechanism(),
+ 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 = () => DerivedPipingOutputFactory.Create(new PipingOutput(new PipingOutput.ConstructionProperties()),
null,
- double.NaN,
- double.NaN);
+ 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 = () => DerivedPipingOutputFactory.Create(new PipingOutput(new PipingOutput.ConstructionProperties()),
+ new PipingFailureMechanism(),
+ null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("assessmentSection", exception.ParamName);
+ }
+
+ [Test]
public void Create_ValidData_ReturnsExpectedValue()
{
// Setup
- var probabilityAssessmentInput = new PipingProbabilityAssessmentInput
+ var failureMechanism = new PipingFailureMechanism
{
- SectionLength = 6000
+ PipingProbabilityAssessmentInput =
+ {
+ SectionLength = 6000
+ },
+ Contribution = 100
};
+ var mocks = new MockRepository();
+ IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
+
var calculatorResult = new PipingOutput(new PipingOutput.ConstructionProperties
{
UpliftFactorOfSafety = 1.2,
HeaveFactorOfSafety = 1.4,
SellmeijerFactorOfSafety = 0.9
});
- const double norm = 1.0 / 30000;
// Call
- DerivedPipingOutput derivedOutput = DerivedPipingOutputFactory.Create(calculatorResult, probabilityAssessmentInput, norm, 1000);
+ DerivedPipingOutput derivedOutput = DerivedPipingOutputFactory.Create(calculatorResult, failureMechanism, assessmentSection);
// Assert
- Assert.AreEqual(7.3663305570026214e-06, derivedOutput.UpliftProbability, 1e-6);
- Assert.AreEqual(7.0183607399734309e-08, derivedOutput.HeaveProbability, 1e-6);
- Assert.AreEqual(1.0988e-5, derivedOutput.SellmeijerProbability, 1e-6);
- Assert.AreEqual(5.26477, derivedOutput.PipingReliability, derivedOutput.PipingReliability.GetAccuracy());
- Assert.AreEqual(3.96281, derivedOutput.RequiredReliability, derivedOutput.RequiredReliability.GetAccuracy());
- Assert.AreEqual(1.329, derivedOutput.PipingFactorOfSafety, derivedOutput.PipingFactorOfSafety.GetAccuracy());
+ Assert.AreEqual(0.0030333773290253025, derivedOutput.UpliftProbability, 1e-6);
+ Assert.AreEqual(0.00017624686431291146, derivedOutput.HeaveProbability, 1e-6);
+ Assert.AreEqual(0.13596896289025881, derivedOutput.SellmeijerProbability, 1e-6);
+ Assert.AreEqual(3.57331, derivedOutput.PipingReliability, derivedOutput.PipingReliability.GetAccuracy());
+ Assert.AreEqual(2.28655, derivedOutput.RequiredReliability, derivedOutput.RequiredReliability.GetAccuracy());
+ Assert.AreEqual(1.563, derivedOutput.PipingFactorOfSafety, derivedOutput.PipingFactorOfSafety.GetAccuracy());
+ mocks.VerifyAll();
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputPropertiesTest.cs
===================================================================
diff -u -rdf44be36b5c375ff32cd94086af5e6610ec9fc3a -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputPropertiesTest.cs (.../PipingOutputPropertiesTest.cs) (revision df44be36b5c375ff32cd94086af5e6610ec9fc3a)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingOutputPropertiesTest.cs (.../PipingOutputPropertiesTest.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -136,8 +136,7 @@
var properties = new PipingOutputProperties(output, failureMechanism, assessmentSection);
// Assert
- var expectedDerivedOutput = DerivedPipingOutputFactory.Create(output, failureMechanism.PipingProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ var expectedDerivedOutput = DerivedPipingOutputFactory.Create(output, failureMechanism, assessmentSection);
const string probabilityFormat = "1/{0:n0}";
Assert.AreEqual(upliftFactorOfSafety, properties.UpliftFactorOfSafety, properties.UpliftFactorOfSafety.GetAccuracy());
Assert.AreEqual(expectedDerivedOutput.UpliftReliability, properties.UpliftReliability, properties.UpliftReliability.GetAccuracy());
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingScenarioRowTest.cs
===================================================================
diff -u -rdf44be36b5c375ff32cd94086af5e6610ec9fc3a -r8ab72c61cfda487718df57b1e2a441394804f529
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingScenarioRowTest.cs (.../PipingScenarioRowTest.cs) (revision df44be36b5c375ff32cd94086af5e6610ec9fc3a)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingScenarioRowTest.cs (.../PipingScenarioRowTest.cs) (revision 8ab72c61cfda487718df57b1e2a441394804f529)
@@ -103,8 +103,7 @@
// Assert
DerivedPipingOutput expectedDerivedOutput = DerivedPipingOutputFactory.Create(
- calculation.Output, failureMechanism.PipingProbabilityAssessmentInput,
- assessmentSection.FailureMechanismContribution.Norm, failureMechanism.Contribution);
+ calculation.Output, failureMechanism, assessmentSection);
Assert.AreSame(calculation, row.Calculation);
Assert.AreEqual(calculation.Name, row.Name);