Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs
===================================================================
diff -u -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e)
+++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -118,7 +118,7 @@
{
return calculator.AssembleDetailedAssessment(
failureMechanismSectionResult.DetailedAssessmentResult,
- failureMechanismSectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection),
+ failureMechanismSectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection),
CreateAssemblyCategoriesInput(failureMechanism, assessmentSection));
}
catch (FailureMechanismSectionAssemblyCalculatorException e)
Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs
===================================================================
diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea)
+++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Data/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -20,8 +20,10 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.Probability;
+using Riskeer.Common.Data.Structures;
namespace Riskeer.HeightStructures.Data
{
@@ -35,12 +37,14 @@
/// Gets the value for the detailed assessment of safety per failure mechanism section as a probability.
///
/// The section result to get the detailed assessment probability for.
+ /// 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 is no
/// calculation assigned to the section result or the calculation is not performed.
/// Thrown when any parameter is null.
public static double GetDetailedAssessmentProbability(this HeightStructuresFailureMechanismSectionResult sectionResult,
+ IEnumerable> calculationScenarios,
HeightStructuresFailureMechanism failureMechanism,
IAssessmentSection assessmentSection)
{
@@ -49,6 +53,11 @@
throw new ArgumentNullException(nameof(sectionResult));
}
+ if (calculationScenarios == null)
+ {
+ throw new ArgumentNullException(nameof(calculationScenarios));
+ }
+
if (failureMechanism == null)
{
throw new ArgumentNullException(nameof(failureMechanism));
Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs
===================================================================
diff -u -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs (.../HeightStructuresFailureMechanismSectionResultRow.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e)
+++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Forms/Views/HeightStructuresFailureMechanismSectionResultRow.cs (.../HeightStructuresFailureMechanismSectionResultRow.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -155,7 +155,7 @@
/// Gets the value representing the result of the detailed assessment.
///
[TypeConverter(typeof(NoProbabilityValueDoubleConverter))]
- public double DetailedAssessmentProbability => SectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection);
+ public double DetailedAssessmentProbability => SectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection);
///
/// Gets or sets the value representing the tailor made assessment result.
Index: Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs
===================================================================
diff -u -reeb9df26ec9ddb16249a6b4488df1d79fffdaf8e -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision eeb9df26ec9ddb16249a6b4488df1d79fffdaf8e)
+++ Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -236,7 +236,9 @@
failureMechanism, assessmentSection);
// Assert
- Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection),
+ Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ failureMechanism, assessmentSection),
calculator.DetailedAssessmentProbabilityInput);
Assert.AreEqual(sectionResult.DetailedAssessmentResult, calculator.DetailedAssessmentProbabilityOnlyResultInput);
AssertAssemblyCategoriesInput(assessmentSection, failureMechanism, calculator.DetailedAssessmentAssemblyCategoriesInput);
Index: Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs
===================================================================
diff -u -rd1c333df3a55ad8baba0d1cc0c4cff54c69668d7 -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision d1c333df3a55ad8baba0d1cc0c4cff54c69668d7)
+++ Riskeer/HeightStructures/test/Riskeer.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -20,10 +20,12 @@
// All rights reserved.
using System;
+using System.Linq;
using NUnit.Framework;
using Rhino.Mocks;
using Riskeer.Common.Data.AssessmentSection;
using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Data.Structures;
using Riskeer.Common.Data.TestUtil;
using Riskeer.HeightStructures.Data.TestUtil;
@@ -41,18 +43,38 @@
mocks.ReplayAll();
// Call
- TestDelegate call = () => HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.GetDetailedAssessmentProbability(
- null,
- new HeightStructuresFailureMechanism(),
- assessmentSection);
+ void Call() => HeightStructuresFailureMechanismSectionResultDetailedAssessmentExtensions.GetDetailedAssessmentProbability(
+ null, Enumerable.Empty>(),
+ new HeightStructuresFailureMechanism(), assessmentSection);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("sectionResult", exception.ParamName);
mocks.VerifyAll();
}
[Test]
+ public void GetDetailedAssessmentProbability_CalculationScenariosNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var assessmentSection = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var failureMechanismSectionResult = new HeightStructuresFailureMechanismSectionResult(section);
+
+ // Call
+ void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ null, new HeightStructuresFailureMechanism(), assessmentSection);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("calculationScenarios", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void GetDetailedAssessmentProbability_FailureMechanismNull_ThrowsArgumentNullException()
{
// Setup
@@ -64,10 +86,11 @@
var failureMechanismSectionResult = new HeightStructuresFailureMechanismSectionResult(section);
// Call
- TestDelegate call = () => failureMechanismSectionResult.GetDetailedAssessmentProbability(null, assessmentSection);
+ void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(), null, assessmentSection);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("failureMechanism", exception.ParamName);
mocks.VerifyAll();
}
@@ -80,10 +103,12 @@
var failureMechanismSectionResult = new HeightStructuresFailureMechanismSectionResult(section);
// Call
- TestDelegate call = () => failureMechanismSectionResult.GetDetailedAssessmentProbability(new HeightStructuresFailureMechanism(), null);
+ void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ new HeightStructuresFailureMechanism(), null);
// Assert
- var exception = Assert.Throws(call);
+ var exception = Assert.Throws(Call);
Assert.AreEqual("assessmentSection", exception.ParamName);
}
@@ -99,8 +124,9 @@
var failureMechanismSectionResult = new HeightStructuresFailureMechanismSectionResult(section);
// Call
- double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new HeightStructuresFailureMechanism(),
- assessmentSection);
+ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ new HeightStructuresFailureMechanism(), assessmentSection);
// Assert
Assert.IsNaN(detailedAssessmentProbability);
@@ -122,8 +148,9 @@
};
// Call
- double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new HeightStructuresFailureMechanism(),
- assessmentSection);
+ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ new HeightStructuresFailureMechanism(), assessmentSection);
// Assert
Assert.IsNaN(detailedAssessmentProbability);
@@ -150,8 +177,9 @@
};
// Call
- double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new HeightStructuresFailureMechanism(),
- assessmentSection);
+ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ new HeightStructuresFailureMechanism(), assessmentSection);
// Assert
Assert.AreEqual(0.21185539858339669, detailedAssessmentProbability);
Index: Riskeer/HeightStructures/test/Riskeer.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismSectionResultRowTest.cs
===================================================================
diff -u -r52690294f687517a9367ec30bc6fcd44bb18d9fe -rb0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29
--- Riskeer/HeightStructures/test/Riskeer.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismSectionResultRowTest.cs (.../HeightStructuresFailureMechanismSectionResultRowTest.cs) (revision 52690294f687517a9367ec30bc6fcd44bb18d9fe)
+++ Riskeer/HeightStructures/test/Riskeer.HeightStructures.Forms.Test/Views/HeightStructuresFailureMechanismSectionResultRowTest.cs (.../HeightStructuresFailureMechanismSectionResultRowTest.cs) (revision b0d25d2dab3c6ba9b1aff684a0cf41f842e0ec29)
@@ -831,7 +831,7 @@
sectionResult, calculationScenarios, failureMechanism, assessmentSection, ConstructionProperties);
// Assert
- Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), resultRow.DetailedAssessmentProbability);
+ Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection), resultRow.DetailedAssessmentProbability);
Assert.IsEmpty(resultRow.ColumnStateDefinitions[ConstructionProperties.DetailedAssessmentProbabilityIndex].ErrorText);
mocks.VerifyAll();
}
@@ -927,7 +927,10 @@
failureMechanism, assessmentSection, ConstructionProperties);
// Assert
- Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), resultRow.DetailedAssessmentProbability);
+ Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(
+ Enumerable.Empty>(),
+ failureMechanism, assessmentSection),
+ resultRow.DetailedAssessmentProbability);
Assert.IsEmpty(resultRow.ColumnStateDefinitions[ConstructionProperties.DetailedAssessmentProbabilityIndex].ErrorText);
mocks.VerifyAll();
}
@@ -1204,7 +1207,7 @@
double detailedAssessmentProbability = resultRow.DetailedAssessmentProbability;
// Assert
- Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), detailedAssessmentProbability);
+ Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection), detailedAssessmentProbability);
mocks.VerifyAll();
}
}