Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -r5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs) (revision 5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -117,7 +117,7 @@ { return calculator.AssembleDetailedAssessment( failureMechanismSectionResult.DetailedAssessmentResult, - failureMechanismSectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), + failureMechanismSectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection), CreateAssemblyCategoriesInput(failureMechanism, assessmentSection)); } catch (FailureMechanismSectionAssemblyCalculatorException e) Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs =================================================================== diff -u -r1f76045f08612f7b8259c460771c7cdbdb5447a7 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 1f76045f08612f7b8259c460771c7cdbdb5447a7) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Collections.Generic; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Probability; @@ -35,12 +36,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 GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult, + IEnumerable calculationScenarios, GrassCoverErosionInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { @@ -49,6 +52,11 @@ throw new ArgumentNullException(nameof(sectionResult)); } + if (calculationScenarios == null) + { + throw new ArgumentNullException(nameof(calculationScenarios)); + } + if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs =================================================================== diff -u -r5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs) (revision 5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRow.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -128,10 +128,7 @@ /// is a valid value, but unsupported. public SimpleAssessmentValidityOnlyResultType SimpleAssessmentResult { - get - { - return SectionResult.SimpleAssessmentResult; - } + get => SectionResult.SimpleAssessmentResult; set { SectionResult.SimpleAssessmentResult = value; @@ -146,10 +143,7 @@ /// is a valid value, but unsupported. public DetailedAssessmentProbabilityOnlyResultType DetailedAssessmentResult { - get - { - return SectionResult.DetailedAssessmentResult; - } + get => SectionResult.DetailedAssessmentResult; set { SectionResult.DetailedAssessmentResult = value; @@ -161,13 +155,7 @@ /// Gets the value representing the result of the detailed assessment. /// [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] - public double DetailedAssessmentProbability - { - get - { - return SectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection); - } - } + public double DetailedAssessmentProbability => SectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism, assessmentSection); /// /// Gets or sets the value representing the tailor made assessment result. @@ -176,10 +164,7 @@ /// is a valid value, but unsupported. public TailorMadeAssessmentProbabilityCalculationResultType TailorMadeAssessmentResult { - get - { - return SectionResult.TailorMadeAssessmentResult; - } + get => SectionResult.TailorMadeAssessmentResult; set { SectionResult.TailorMadeAssessmentResult = value; @@ -197,10 +182,7 @@ [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] public double TailorMadeAssessmentProbability { - get - { - return SectionResult.TailorMadeAssessmentProbability; - } + get => SectionResult.TailorMadeAssessmentProbability; set { SectionResult.TailorMadeAssessmentProbability = value; @@ -211,46 +193,22 @@ /// /// Gets the simple assembly category group. /// - public string SimpleAssemblyCategoryGroup - { - get - { - return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); - } - } + public string SimpleAssemblyCategoryGroup => FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(simpleAssemblyCategoryGroup); /// /// Gets the detailed assembly category group. /// - public string DetailedAssemblyCategoryGroup - { - get - { - return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); - } - } + public string DetailedAssemblyCategoryGroup => FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(detailedAssemblyCategoryGroup); /// /// Gets the tailor made assembly category group. /// - public string TailorMadeAssemblyCategoryGroup - { - get - { - return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); - } - } + public string TailorMadeAssemblyCategoryGroup => FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(tailorMadeAssemblyCategoryGroup); /// /// Gets the combined assembly category group. /// - public string CombinedAssemblyCategoryGroup - { - get - { - return FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); - } - } + public string CombinedAssemblyCategoryGroup => FailureMechanismSectionAssemblyCategoryGroupHelper.GetCategoryGroupDisplayName(combinedAssemblyCategoryGroup); /// /// Gets the combined assembly probability. @@ -266,10 +224,7 @@ /// is a valid value, but unsupported. public bool UseManualAssembly { - get - { - return SectionResult.UseManualAssembly; - } + get => SectionResult.UseManualAssembly; set { SectionResult.UseManualAssembly = value; @@ -287,10 +242,7 @@ [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] public double ManualAssemblyProbability { - get - { - return SectionResult.ManualAssemblyProbability; - } + get => SectionResult.ManualAssemblyProbability; set { SectionResult.ManualAssemblyProbability = value; Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -r5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 5e5c2d499b8746b356f4c7ef7dac45bdfc0113e1) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -220,7 +220,7 @@ 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/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -rf1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision f1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2019. All rights reserved. +// Copyright (C) Stichting Deltares 2019. All rights reserved. // // This file is part of Riskeer. // @@ -20,6 +20,8 @@ // All rights reserved. using System; +using System.Linq; +using Core.Common.Base.Data; using NUnit.Framework; using Rhino.Mocks; using Riskeer.Common.Data.AssessmentSection; @@ -41,17 +43,37 @@ mocks.ReplayAll(); // Call - TestDelegate call = () => GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.GetDetailedAssessmentProbability(null, - new GrassCoverErosionInwardsFailureMechanism(), - assessmentSection); + void Call() => GrassCoverErosionInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.GetDetailedAssessmentProbability( + null, Enumerable.Empty(), new GrassCoverErosionInwardsFailureMechanism(), 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 GrassCoverErosionInwardsFailureMechanismSectionResult(section); + + // Call + void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability( + null, new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("calculationScenarios", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] public void GetDetailedAssessmentProbability_FailureMechanismNull_ThrowsArgumentNullException() { // Setup @@ -63,10 +85,11 @@ var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(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(); } @@ -79,79 +102,165 @@ var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); // Call - TestDelegate call = () => failureMechanismSectionResult.GetDetailedAssessmentProbability(new GrassCoverErosionInwardsFailureMechanism(), null); + void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability( + Enumerable.Empty(), new GrassCoverErosionInwardsFailureMechanism(), null); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("assessmentSection", exception.ParamName); } [Test] - public void GetDetailedAssessmentProbability_SectionResultWithoutCalculation_ReturnsNaN() + public void GetDetailedAssessmentProbability_NoScenarios_ReturnsNaN() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(Enumerable.Empty(), + failureMechanism, + assessmentSection); // Assert Assert.IsNaN(detailedAssessmentProbability); mocks.VerifyAll(); } [Test] - public void GetDetailedAssessmentProbability_CalculationWithoutOutput_ReturnsNaN() + public void GetDetailedAssessmentProbability_NoRelevantScenarios_ReturnsNaN() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section) - { - Calculation = new GrassCoverErosionInwardsCalculation() - }; + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + GrassCoverErosionInwardsCalculationScenario calculationScenario = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section); + calculationScenario.IsRelevant = false; + // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability( + new[] + { + calculationScenario + }, + failureMechanism, + assessmentSection); // Assert Assert.IsNaN(detailedAssessmentProbability); mocks.VerifyAll(); } [Test] - public void GetDetailedAssessmentProbability_CalculationWithOutput_ReturnsDerivedProbability() + public void GetDetailedAssessmentProbability_ScenarioNotCalculated_ReturnsNaN() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + + GrassCoverErosionInwardsCalculationScenario calculationScenario = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateNotCalculatedGrassCoverErosionInwardsCalculationScenario(section); + + // Call + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new[] + { + calculationScenario + }, failureMechanism, assessmentSection); + + // Assert + Assert.IsNaN(detailedAssessmentProbability); + mocks.VerifyAll(); + } + + [Test] + public void GetDetailedAssessmentProbability_ScenarioWithNanResults_ReturnsNaN() + { + // Setup + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var mocks = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(failureMechanism, mocks); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section) + var failureMechanismSectionResult = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + + const double contribution1 = 0.2; + const double contribution2 = 0.8; + + GrassCoverErosionInwardsCalculationScenario calculationScenario1 = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section); + GrassCoverErosionInwardsCalculationScenario calculationScenario2 = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateNotCalculatedGrassCoverErosionInwardsCalculationScenario(section); + + calculationScenario1.IsRelevant = true; + calculationScenario1.Contribution = (RoundedDouble)contribution1; + + calculationScenario2.IsRelevant = true; + calculationScenario2.Contribution = (RoundedDouble)contribution2; + calculationScenario2.Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(double.NaN), null, null); + + GrassCoverErosionInwardsCalculationScenario[] calculations = { - Calculation = new GrassCoverErosionInwardsCalculation - { - Output = new TestGrassCoverErosionInwardsOutput() - } + calculationScenario1, + calculationScenario2 }; // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism, assessmentSection); // Assert - Assert.AreEqual(0.5, detailedAssessmentProbability); + Assert.IsNaN(detailedAssessmentProbability); mocks.VerifyAll(); } + + [Test] + [TestCase(0.2, 0.8 - 1e5)] + [TestCase(0.0, 0.5)] + [TestCase(0.3, 0.7 + 1e-5)] + [TestCase(-5, -8)] + [TestCase(13, 2)] + public void GetDetailedAssessmentProbability_RelevantScenarioContributionDoNotAddUpTo1_ReturnNaN(double contributionA, double contributionB) + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + GrassCoverErosionInwardsCalculationScenario scenarioA = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateNotCalculatedGrassCoverErosionInwardsCalculationScenario(section); + GrassCoverErosionInwardsCalculationScenario scenarioB = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateNotCalculatedGrassCoverErosionInwardsCalculationScenario(section); + scenarioA.Contribution = (RoundedDouble)contributionA; + scenarioB.Contribution = (RoundedDouble)contributionB; + + var result = new GrassCoverErosionInwardsFailureMechanismSectionResult(section); + + // Call + double detailedAssessmentProbability = result.GetDetailedAssessmentProbability(new[] + { + scenarioA, + scenarioB + }, failureMechanism, assessmentSection); + + // Assert + Assert.IsNaN(detailedAssessmentProbability); + mocks.VerifyAll(); + } } } \ No newline at end of file Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -re9800d75c970440a6e650e8ccf21d6bc50827c4d -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs) (revision e9800d75c970440a6e650e8ccf21d6bc50827c4d) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultRowTest.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -886,7 +886,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(); } @@ -982,7 +982,8 @@ 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(); } Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs =================================================================== diff -u -r3af68bc0c3e12d97181e1799c0b22e7e6ac1e934 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 3af68bc0c3e12d97181e1799c0b22e7e6ac1e934) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -39,14 +39,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 calculations in the failure mechanism. + /// All calculation scenarios in the failure mechanism. /// The failure mechanism the calculations belong to. /// The assessment section the calculations belong to. /// The calculated detailed assessment probability; or when there are no /// performed or relevant calculations. /// Thrown when any parameter is null. public static double GetDetailedAssessmentProbability(this MacroStabilityInwardsFailureMechanismSectionResult sectionResult, - IEnumerable calculations, + IEnumerable calculationScenarios, MacroStabilityInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { @@ -55,9 +55,9 @@ throw new ArgumentNullException(nameof(sectionResult)); } - if (calculations == null) + if (calculationScenarios == null) { - throw new ArgumentNullException(nameof(calculations)); + throw new ArgumentNullException(nameof(calculationScenarios)); } if (failureMechanism == null) @@ -70,7 +70,7 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - MacroStabilityInwardsCalculationScenario[] relevantScenarios = sectionResult.GetCalculationScenarios(calculations).ToArray(); + MacroStabilityInwardsCalculationScenario[] relevantScenarios = sectionResult.GetCalculationScenarios(calculationScenarios).ToArray(); bool relevantScenarioAvailable = relevantScenarios.Length != 0; if (!relevantScenarioAvailable || !relevantScenarios.All(s => s.HasOutput) || Math.Abs(sectionResult.GetTotalContribution(relevantScenarios) - 1.0) > 1e-6) Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -r15fda4749eeceea8e584fca6d95514e4e4a9383e -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 15fda4749eeceea8e584fca6d95514e4e4a9383e) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -55,7 +55,7 @@ } [Test] - public void GetDetailedAssessmentProbability_CalculationsNull_ThrowsArgumentNullException() + public void GetDetailedAssessmentProbability_CalculationScenariosNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); @@ -71,7 +71,7 @@ // Assert var exception = Assert.Throws(Call); - Assert.AreEqual("calculations", exception.ParamName); + Assert.AreEqual("calculationScenarios", exception.ParamName); mocks.VerifyAll(); } Index: Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultDetailedAssessmentExtensions.cs =================================================================== diff -u -r948f2515a260904928ef82614996881afbadf615 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 948f2515a260904928ef82614996881afbadf615) +++ Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -38,14 +38,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 calculations in the failure mechanism. + /// All calculation scenarios in the failure mechanism. /// The failure mechanism the calculations belong to. /// The assessment section the calculations belong to. /// The calculated detailed assessment probability; or when there are no /// performed or relevant calculations. /// Thrown when any parameter is null. public static double GetDetailedAssessmentProbability(this PipingFailureMechanismSectionResult sectionResult, - IEnumerable calculations, + IEnumerable calculationScenarios, PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { @@ -54,9 +54,9 @@ throw new ArgumentNullException(nameof(sectionResult)); } - if (calculations == null) + if (calculationScenarios == null) { - throw new ArgumentNullException(nameof(calculations)); + throw new ArgumentNullException(nameof(calculationScenarios)); } if (failureMechanism == null) @@ -69,7 +69,7 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - PipingCalculationScenario[] relevantScenarios = sectionResult.GetCalculationScenarios(calculations).ToArray(); + PipingCalculationScenario[] relevantScenarios = sectionResult.GetCalculationScenarios(calculationScenarios).ToArray(); bool relevantScenarioAvailable = relevantScenarios.Length != 0; if (!relevantScenarioAvailable || !relevantScenarios.All(s => s.HasOutput) || Math.Abs(sectionResult.GetTotalContribution(relevantScenarios) - 1.0) > 1e-6) Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -r4b92bd983416d0a8de64bbf170a7671821522540 -rafa2eda2dd59089149cf23c5dfc38f4d2965c1df --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 4b92bd983416d0a8de64bbf170a7671821522540) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../PipingFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision afa2eda2dd59089149cf23c5dfc38f4d2965c1df) @@ -55,7 +55,7 @@ } [Test] - public void GetDetailedAssessmentProbability_CalculationsNull_ThrowsArgumentNullException() + public void GetDetailedAssessmentProbability_CalculationScenariosNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); @@ -71,7 +71,7 @@ // Assert var exception = Assert.Throws(Call); - Assert.AreEqual("calculations", exception.ParamName); + Assert.AreEqual("calculationScenarios", exception.ParamName); mocks.VerifyAll(); }