Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs =================================================================== diff -u -r81ff35f292bb938395188b7568235a03d7c19e40 -r30dc5287e714dafbd695b82fbaf868e36ca3c00d --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 81ff35f292bb938395188b7568235a03d7c19e40) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.cs) (revision 30dc5287e714dafbd695b82fbaf868e36ca3c00d) @@ -39,14 +39,14 @@ /// /// The section result to get the detailed assessment probability for. /// All calculation scenarios in the failure mechanism. - /// The failure mechanism the calculations belong to. + /// The model factor used to calculate a reliablity from a stability factor. /// 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 MacroStabilityInwardsFailureMechanismSectionResult sectionResult, IEnumerable calculationScenarios, - MacroStabilityInwardsFailureMechanism failureMechanism) + double modelFactor) { if (sectionResult == null) { @@ -58,11 +58,6 @@ throw new ArgumentNullException(nameof(calculationScenarios)); } - if (failureMechanism == null) - { - throw new ArgumentNullException(nameof(failureMechanism)); - } - MacroStabilityInwardsCalculationScenario[] relevantScenarios = sectionResult.GetCalculationScenarios(calculationScenarios).ToArray(); if (relevantScenarios.Length == 0 || !relevantScenarios.All(s => s.HasOutput) || Math.Abs(sectionResult.GetTotalContribution(relevantScenarios) - 1.0) > 1e-6) @@ -73,7 +68,7 @@ double totalDetailedAssessmentProbability = 0; foreach (MacroStabilityInwardsCalculationScenario scenario in relevantScenarios) { - DerivedMacroStabilityInwardsOutput derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(scenario.Output, failureMechanism); + DerivedMacroStabilityInwardsOutput derivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(scenario.Output, modelFactor); totalDetailedAssessmentProbability += derivedOutput.MacroStabilityInwardsProbability * (double) scenario.Contribution; } Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs =================================================================== diff -u -r81ff35f292bb938395188b7568235a03d7c19e40 -r30dc5287e714dafbd695b82fbaf868e36ca3c00d --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 81ff35f292bb938395188b7568235a03d7c19e40) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensionsTest.cs) (revision 30dc5287e714dafbd695b82fbaf868e36ca3c00d) @@ -39,7 +39,7 @@ { // Call void Call() => MacroStabilityInwardsFailureMechanismSectionResultDetailedAssessmentExtensions.GetDetailedAssessmentProbability( - null, Enumerable.Empty(), new MacroStabilityInwardsFailureMechanism()); + null, Enumerable.Empty(), 1.1); // Assert var exception = Assert.Throws(Call); @@ -54,34 +54,17 @@ var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); // Call - void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(null, new MacroStabilityInwardsFailureMechanism()); + void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(null, 1.1); // Assert var exception = Assert.Throws(Call); Assert.AreEqual("calculationScenarios", exception.ParamName); } [Test] - public void GetDetailedAssessmentProbability_FailureMechanismNull_ThrowsArgumentNullException() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); - - // Call - void Call() => failureMechanismSectionResult.GetDetailedAssessmentProbability(Enumerable.Empty(), null); - - // Assert - var exception = Assert.Throws(Call); - Assert.AreEqual("failureMechanism", exception.ParamName); - } - - [Test] public void GetDetailedAssessmentProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); @@ -108,7 +91,7 @@ }; // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, 1.1); // Assert Assert.AreEqual(0.99012835996547233, detailedAssessmentProbability, 1e-8); @@ -118,14 +101,11 @@ public void GetDetailedAssessmentProbability_NoScenarios_ReturnsNaN() { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(Enumerable.Empty(), - failureMechanism); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(Enumerable.Empty(), 1.1); // Assert Assert.IsNaN(detailedAssessmentProbability); @@ -135,8 +115,6 @@ public void GetDetailedAssessmentProbability_NoRelevantScenarios_ReturnsNaN() { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); @@ -146,7 +124,7 @@ }; // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculationScenarios, failureMechanism); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculationScenarios, 1.1); // Assert Assert.IsNaN(detailedAssessmentProbability); @@ -156,8 +134,6 @@ public void GetDetailedAssessmentProbability_ScenarioNotCalculated_ReturnsNaN() { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); @@ -167,7 +143,7 @@ double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(new[] { macroStabilityInwardsCalculationScenario - }, failureMechanism); + }, 1.1); // Assert Assert.IsNaN(detailedAssessmentProbability); @@ -177,8 +153,6 @@ public void GetDetailedAssessmentProbability_ScenarioWithNaNResults_ReturnsNaN() { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new MacroStabilityInwardsFailureMechanismSectionResult(section); @@ -202,7 +176,7 @@ }; // Call - double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, failureMechanism); + double detailedAssessmentProbability = failureMechanismSectionResult.GetDetailedAssessmentProbability(calculations, 1.1); // Assert Assert.IsNaN(detailedAssessmentProbability); @@ -215,7 +189,6 @@ public void GetDetailedAssessmentProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contributionA, double contributionB) { // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); MacroStabilityInwardsCalculationScenario scenarioA = MacroStabilityInwardsCalculationScenarioTestFactory.CreateNotCalculatedMacroStabilityInwardsCalculationScenario(section); MacroStabilityInwardsCalculationScenario scenarioB = MacroStabilityInwardsCalculationScenarioTestFactory.CreateNotCalculatedMacroStabilityInwardsCalculationScenario(section); @@ -229,7 +202,7 @@ { scenarioA, scenarioB - }, failureMechanism); + }, 1.1); // Assert Assert.IsNaN(detailedAssessmentProbability);