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