Index: Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs
===================================================================
diff -u -r89796712386c9c6cdb332d605d109618a61caba7 -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs (.../ClosingStructuresFailureMechanismAssemblyFactory.cs) (revision 89796712386c9c6cdb332d605d109618a61caba7)
+++ Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs (.../ClosingStructuresFailureMechanismAssemblyFactory.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -78,7 +78,7 @@
/// The failure mechanism section result to
/// assemble the detailed assembly for.
/// The calculation scenarios belonging to this section.
- /// The failure mechanism this section belongs to.
+ /// All calculation scenarios in the failure mechanism.
/// The this section belongs to.
/// A .
/// Thrown when any parameter is null.
@@ -181,7 +181,7 @@
/// The failure mechanism section result to
/// combine the assemblies for.
/// The calculation scenarios belonging to this section.
- /// The failure mechanism this section belongs to.
+ /// All calculation scenarios in the failure mechanism.
/// The this section belongs to.
/// A .
/// Thrown when any parameter is null.
Index: Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs
===================================================================
diff -u -r126a8d11d058eb09a70cf5842d2c86bf48dc61fa -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 126a8d11d058eb09a70cf5842d2c86bf48dc61fa)
+++ Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Data/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -44,8 +44,9 @@
/// All calculation scenarios in the failure mechanism.
/// The failure mechanism the section result belongs to.
/// The assessment section the section result belongs to.
- /// The calculated detailed assessment probability; or when there are no
- /// performed or relevant calculations.
+ /// The calculated detailed assessment probability; or when there
+ /// are no relevant calculations, when not all relevant calculations are performed or when the
+ /// contribution of the relevant calculations don't add up to 1.
/// Thrown when any parameter is null.
public static double GetDetailedAssessmentProbability(this ClosingStructuresFailureMechanismSectionResult sectionResult,
IEnumerable> calculationScenarios,
Index: Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs
===================================================================
diff -u -r32bccb614897671503ac4814381f684b2a357bd1 -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision 32bccb614897671503ac4814381f684b2a357bd1)
+++ Riskeer/ClosingStructures/src/Riskeer.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -39,8 +39,7 @@
public static class ClosingStructuresDataSynchronizationService
{
///
- /// Removes the , unassigns it from the calculations in
- /// and clears all dependent data, either directly or indirectly.
+ /// Removes the and clears all dependent data, either directly or indirectly.
///
/// The structure to be removed.
/// The
@@ -77,8 +76,7 @@
}
///
- /// Clears all structures, unassigns them from the calculations in the
- /// and clears all data that depends on it, either directly or indirectly.
+ /// Clears all structures and clears all data that depends on it, either directly or indirectly.
///
/// The to
/// clear the structures from.
Index: Riskeer/ClosingStructures/test/Riskeer.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs
===================================================================
diff -u -r126a8d11d058eb09a70cf5842d2c86bf48dc61fa -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/ClosingStructures/test/Riskeer.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 126a8d11d058eb09a70cf5842d2c86bf48dc61fa)
+++ Riskeer/ClosingStructures/test/Riskeer.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../ClosingStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -116,6 +116,48 @@
}
[Test]
+ public void GetDetailedAssessmentProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
+ {
+ // Setup
+ var failureMechanism = new ClosingStructuresFailureMechanism();
+
+ var mocks = new MockRepository();
+ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var failureMechanismSectionResult = new ClosingStructuresFailureMechanismSectionResult(section);
+
+ StructuresCalculationScenario calculationScenario1 = ClosingStructuresCalculationScenarioTestFactory.CreateClosingStructuresCalculationScenario(section);
+ StructuresCalculationScenario calculationScenario2 = ClosingStructuresCalculationScenarioTestFactory.CreateClosingStructuresCalculationScenario(section);
+ StructuresCalculationScenario calculationScenario3 = ClosingStructuresCalculationScenarioTestFactory.CreateClosingStructuresCalculationScenario(section);
+
+ calculationScenario1.IsRelevant = true;
+ calculationScenario1.Contribution = (RoundedDouble) 0.2111;
+ calculationScenario1.Output = new TestStructuresOutput(1.1);
+
+ calculationScenario2.IsRelevant = true;
+ calculationScenario2.Contribution = (RoundedDouble) 0.7889;
+ calculationScenario1.Output = new TestStructuresOutput(2.2);
+
+ calculationScenario3.IsRelevant = false;
+
+ StructuresCalculationScenario[] calculations =
+ {
+ calculationScenario1,
+ calculationScenario2,
+ calculationScenario3
+ };
+
+ // Call
+ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism, assessmentSection);
+
+ // Assert
+ Assert.AreEqual(0.3973850177700996, detailedAssessmentProbability);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void GetDetailedAssessmentProbability_NoScenarios_ReturnsNaN()
{
// Setup
@@ -196,7 +238,7 @@
}
[Test]
- public void GetDetailedAssessmentProbability_ScenarioWithNanResults_ReturnsNaN()
+ public void GetDetailedAssessmentProbability_ScenarioWithNaNResults_ReturnsNaN()
{
// Setup
var failureMechanism = new ClosingStructuresFailureMechanism();
@@ -311,11 +353,19 @@
StructuresCalculationScenario calculationScenario3 = ClosingStructuresCalculationScenarioTestFactory.CreateNotCalculatedClosingStructuresCalculationScenario(section);
calculationScenario3.IsRelevant = false;
+ StructuresCalculationScenario calculationScenario4 = ClosingStructuresCalculationScenarioTestFactory.CreateNotCalculatedClosingStructuresCalculationScenario(
+ FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new[]
+ {
+ new Point2D(5.0, 0.0),
+ new Point2D(10.0, 0.0)
+ }));
+
StructuresCalculationScenario[] calculationScenarios =
{
calculationScenario,
calculationScenario2,
- calculationScenario3
+ calculationScenario3,
+ calculationScenario4
};
// Call
Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs
===================================================================
diff -u -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29 -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
+++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -77,7 +77,7 @@
///
/// The failure mechanism section result to
/// assemble the detailed assembly for.
- /// The calculation scenarios belonging to this section.
+ /// All calculation scenarios in the failure mechanism.
/// The failure mechanism this section belongs to.
/// The this section belongs to.
/// A .
@@ -180,7 +180,7 @@
///
/// The failure mechanism section result to
/// combine the assemblies for.
- /// The calculation scenarios belonging to this section.
+ /// All calculation scenarios in the failure mechanism.
/// The failure mechanism this section belongs to.
/// The this section belongs to.
/// A .
Index: Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs
===================================================================
diff -u -r168c742c76779963c6698233953919b330b0f7a6 -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 168c742c76779963c6698233953919b330b0f7a6)
+++ Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -116,6 +116,48 @@
}
[Test]
+ public void GetDetailedAssessmentProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
+ {
+ // Setup
+ var failureMechanism = new HeightStructuresFailureMechanism();
+
+ var mocks = new MockRepository();
+ IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mocks);
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var failureMechanismSectionResult = new HeightStructuresFailureMechanismSectionResult(section);
+
+ StructuresCalculationScenario calculationScenario1 = HeightStructuresCalculationScenarioTestFactory.CreateHeightStructuresCalculationScenario(section);
+ StructuresCalculationScenario calculationScenario2 = HeightStructuresCalculationScenarioTestFactory.CreateHeightStructuresCalculationScenario(section);
+ StructuresCalculationScenario calculationScenario3 = HeightStructuresCalculationScenarioTestFactory.CreateHeightStructuresCalculationScenario(section);
+
+ calculationScenario1.IsRelevant = true;
+ calculationScenario1.Contribution = (RoundedDouble) 0.2111;
+ calculationScenario1.Output = new TestStructuresOutput(1.1);
+
+ calculationScenario2.IsRelevant = true;
+ calculationScenario2.Contribution = (RoundedDouble) 0.7889;
+ calculationScenario1.Output = new TestStructuresOutput(2.2);
+
+ calculationScenario3.IsRelevant = false;
+
+ StructuresCalculationScenario[] calculations =
+ {
+ calculationScenario1,
+ calculationScenario2,
+ calculationScenario3
+ };
+
+ // Call
+ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism, assessmentSection);
+
+ // Assert
+ Assert.AreEqual(0.3973850177700996, detailedAssessmentProbability);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void GetDetailedAssessmentProbability_NoScenarios_ReturnsNaN()
{
// Setup
@@ -196,7 +238,7 @@
}
[Test]
- public void GetDetailedAssessmentProbability_ScenarioWithNanResults_ReturnsNaN()
+ public void GetDetailedAssessmentProbability_ScenarioWithNaNResults_ReturnsNaN()
{
// Setup
var failureMechanism = new HeightStructuresFailureMechanism();
@@ -215,10 +257,10 @@
StructuresCalculationScenario calculationScenario2 = HeightStructuresCalculationScenarioTestFactory.CreateNotCalculatedHeightStructuresCalculationScenario(section);
calculationScenario1.IsRelevant = true;
- calculationScenario1.Contribution = (RoundedDouble)contribution1;
+ calculationScenario1.Contribution = (RoundedDouble) contribution1;
calculationScenario2.IsRelevant = true;
- calculationScenario2.Contribution = (RoundedDouble)contribution2;
+ calculationScenario2.Contribution = (RoundedDouble) contribution2;
calculationScenario2.Output = new TestStructuresOutput(double.NaN);
StructuresCalculationScenario[] calculations =
@@ -252,8 +294,8 @@
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
StructuresCalculationScenario scenarioA = HeightStructuresCalculationScenarioTestFactory.CreateNotCalculatedHeightStructuresCalculationScenario(section);
StructuresCalculationScenario scenarioB = HeightStructuresCalculationScenarioTestFactory.CreateNotCalculatedHeightStructuresCalculationScenario(section);
- scenarioA.Contribution = (RoundedDouble)contributionA;
- scenarioB.Contribution = (RoundedDouble)contributionB;
+ scenarioA.Contribution = (RoundedDouble) contributionA;
+ scenarioB.Contribution = (RoundedDouble) contributionB;
var result = new HeightStructuresFailureMechanismSectionResult(section);
@@ -311,11 +353,19 @@
StructuresCalculationScenario calculationScenario3 = HeightStructuresCalculationScenarioTestFactory.CreateNotCalculatedHeightStructuresCalculationScenario(section);
calculationScenario3.IsRelevant = false;
+ StructuresCalculationScenario calculationScenario4 = HeightStructuresCalculationScenarioTestFactory.CreateNotCalculatedHeightStructuresCalculationScenario(
+ FailureMechanismSectionTestFactory.CreateFailureMechanismSection(new []
+ {
+ new Point2D(5.0, 0.0),
+ new Point2D(10.0, 0.0)
+ }));
+
StructuresCalculationScenario[] calculationScenarios =
{
calculationScenario,
calculationScenario2,
- calculationScenario3
+ calculationScenario3,
+ calculationScenario4
};
// Call
Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs
===================================================================
diff -u -r77f595651b934a75a5625828a9027d7c48e8e5f9 -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 77f595651b934a75a5625828a9027d7c48e8e5f9)
+++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -234,10 +234,6 @@
}, true);
var sectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());
- MacroStabilityInwardsCalculationScenario[] calculationScenarios =
- {
- MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput(hydraulicBoundaryLocation)
- };
using (new AssemblyToolCalculatorFactoryConfig())
{
@@ -247,14 +243,14 @@
// Call
MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment(
sectionResult,
- calculationScenarios,
+ Enumerable.Empty(),
failureMechanism,
assessmentSection);
// Assert
Assert.AreEqual(sectionResult.DetailedAssessmentResult, calculator.DetailedAssessmentProbabilityOnlyResultInput);
Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(
- calculationScenarios,
+ Enumerable.Empty(),
failureMechanism,
assessmentSection),
calculator.DetailedAssessmentProbabilityInput);
Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs
===================================================================
diff -u -r9c297dba6739032bcaddfb5ceb3452082c54db4a -r08c7192d465fc82be39dbd1b546adc0f00301ec3
--- Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 9c297dba6739032bcaddfb5ceb3452082c54db4a)
+++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 08c7192d465fc82be39dbd1b546adc0f00301ec3)
@@ -233,10 +233,6 @@
}, true);
var sectionResult = new PipingFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection());
- PipingCalculationScenario[] calculationScenarios =
- {
- PipingCalculationScenarioTestFactory.CreatePipingCalculationScenarioWithValidInput(hydraulicBoundaryLocation)
- };
using (new AssemblyToolCalculatorFactoryConfig())
{
@@ -246,14 +242,14 @@
// Call
PipingFailureMechanismAssemblyFactory.AssembleDetailedAssessment(
sectionResult,
- calculationScenarios,
+ Enumerable.Empty(),
failureMechanism,
assessmentSection);
// Assert
Assert.AreEqual(sectionResult.DetailedAssessmentResult, calculator.DetailedAssessmentProbabilityOnlyResultInput);
Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(
- calculationScenarios,
+ Enumerable.Empty(),
failureMechanism,
assessmentSection),
calculator.DetailedAssessmentProbabilityInput);