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(); } }