Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs
===================================================================
diff -u
--- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (revision 0)
+++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -0,0 +1,80 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Data.Probability;
+
+namespace Riskeer.MacroStabilityInwards.Data
+{
+ ///
+ /// Strategy to calculate probabilities for .
+ ///
+ public class MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy : IFailureMechanismSectionResultCalculateProbabilityStrategy
+ {
+ private readonly AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult;
+ private readonly IEnumerable calculationScenarios;
+ private readonly MacroStabilityInwardsFailureMechanism failureMechanism;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The to get the probabilities for.
+ /// All the of the failure mechanism.
+ /// The failure mechanism the calculation scenarios belong to.
+ /// Thrown when any parameter is null.
+ public MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
+ IEnumerable calculationScenarios,
+ MacroStabilityInwardsFailureMechanism failureMechanism)
+ {
+ if (sectionResult == null)
+ {
+ throw new ArgumentNullException(nameof(sectionResult));
+ }
+
+ if (calculationScenarios == null)
+ {
+ throw new ArgumentNullException(nameof(calculationScenarios));
+ }
+
+ if (failureMechanism == null)
+ {
+ throw new ArgumentNullException(nameof(failureMechanism));
+ }
+
+ this.sectionResult = sectionResult;
+ this.calculationScenarios = calculationScenarios;
+ this.failureMechanism = failureMechanism;
+ }
+
+ public double CalculateProfileProbability()
+ {
+ return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, failureMechanism.GeneralInput.ModelFactor);
+ }
+
+ public double CalculateSectionProbability()
+ {
+ return CalculateProfileProbability() * failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(sectionResult.Section.Length);
+ }
+ }
+}
\ No newline at end of file
Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs
===================================================================
diff -u
--- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (revision 0)
+++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -0,0 +1,203 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using Core.Common.Base.Data;
+using NUnit.Framework;
+using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Data.TestUtil;
+using Riskeer.MacroStabilityInwards.Data.TestUtil;
+
+namespace Riskeer.MacroStabilityInwards.Data.Test
+{
+ [TestFixture]
+ public class MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest
+ {
+ [Test]
+ public void Constructor_SectionResultNull_ThrowsArgumentNullException()
+ {
+ // Call
+ void Call() => new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ null, Enumerable.Empty(), new MacroStabilityInwardsFailureMechanism());
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("sectionResult", exception.ParamName);
+ }
+
+ [Test]
+ public void Constructor_CalculationScenariosNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+
+ // Call
+ void Call() => new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section), null, new MacroStabilityInwardsFailureMechanism());
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("calculationScenarios", exception.ParamName);
+ }
+
+ [Test]
+ public void Constructor_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+
+ // Call
+ void Call() => new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section),
+ Enumerable.Empty(), null);
+
+ // Assert
+ var exception = Assert.Throws(Call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void Constructor_ExpectedValues()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+
+ // Call
+ var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section), Enumerable.Empty(),
+ new MacroStabilityInwardsFailureMechanism());
+
+ // Assert
+ Assert.IsInstanceOf(strategy);
+ }
+
+ [Test]
+ public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
+
+ const double factorOfStability1 = 1.0 / 10.0;
+ const double factorOfStability2 = 1.0 / 20.0;
+
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario1 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(factorOfStability1, section);
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario2 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(factorOfStability2, section);
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario3 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateIrrelevantMacroStabilityInwardsCalculationScenario(section);
+
+ macroStabilityInwardsCalculationScenario1.Contribution = (RoundedDouble) 0.2111;
+ macroStabilityInwardsCalculationScenario2.Contribution = (RoundedDouble) 0.7889;
+
+ MacroStabilityInwardsCalculationScenario[] calculations =
+ {
+ macroStabilityInwardsCalculationScenario1,
+ macroStabilityInwardsCalculationScenario2,
+ macroStabilityInwardsCalculationScenario3
+ };
+
+ var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, calculations, new MacroStabilityInwardsFailureMechanism());
+
+ // Call
+ double profileProbability = strategy.CalculateProfileProbability();
+
+ // Assert
+ Assert.AreEqual(0.99012835, profileProbability, 1e-8);
+ }
+
+ [Test]
+ public void CalculateProfileProbability_NoScenarios_ReturnsNaN()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
+
+ var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, Enumerable.Empty(),
+ new MacroStabilityInwardsFailureMechanism());
+
+ // Call
+ double profileProbability = strategy.CalculateProfileProbability();
+
+ // Assert
+ Assert.IsNaN(profileProbability);
+ }
+
+ [Test]
+ public void CalculateSectionProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
+
+ const double factorOfStability1 = 1.0 / 10.0;
+ const double factorOfStability2 = 1.0 / 20.0;
+
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario1 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(factorOfStability1, section);
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario2 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(factorOfStability2, section);
+ MacroStabilityInwardsCalculationScenario macroStabilityInwardsCalculationScenario3 =
+ MacroStabilityInwardsCalculationScenarioTestFactory.CreateIrrelevantMacroStabilityInwardsCalculationScenario(section);
+
+ macroStabilityInwardsCalculationScenario1.Contribution = (RoundedDouble) 0.2111;
+ macroStabilityInwardsCalculationScenario2.Contribution = (RoundedDouble) 0.7889;
+
+ MacroStabilityInwardsCalculationScenario[] calculations =
+ {
+ macroStabilityInwardsCalculationScenario1,
+ macroStabilityInwardsCalculationScenario2,
+ macroStabilityInwardsCalculationScenario3
+ };
+
+ var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, calculations, new MacroStabilityInwardsFailureMechanism());
+
+ // Call
+ double profileProbability = strategy.CalculateSectionProbability();
+
+ // Assert
+ Assert.AreEqual(0.99078184, profileProbability, 1e-8);
+ }
+
+ [Test]
+ public void CalculateSectionProbability_NoScenarios_ReturnsNaN()
+ {
+ // Setup
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
+
+ var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, Enumerable.Empty(),
+ new MacroStabilityInwardsFailureMechanism());
+
+ // Call
+ double sectionProbability = strategy.CalculateSectionProbability();
+
+ // Assert
+ Assert.IsNaN(sectionProbability);
+ }
+ }
+}
\ No newline at end of file
Index: Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs
===================================================================
diff -u -re2aac3d024a59aeaeb5f4803e9360b046a8b24f3 -r4c5b838896048250be3167fdf0fe6ed8b89c328e
--- Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision e2aac3d024a59aeaeb5f4803e9360b046a8b24f3)
+++ Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -31,39 +31,39 @@
public class ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy : IFailureMechanismSectionResultCalculateProbabilityStrategy
{
private readonly AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult;
- private readonly IEnumerable calculations;
+ private readonly IEnumerable calculationScenarios;
///
/// Creates a new instance of .
///
/// The to get the probabilities for.
- /// All the of the failure mechanism.
+ /// All the of the failure mechanism.
/// Thrown when any parameter is null.
public ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
- IEnumerable calculations)
+ IEnumerable calculationScenarios)
{
if (sectionResult == null)
{
throw new ArgumentNullException(nameof(sectionResult));
}
- if (calculations == null)
+ if (calculationScenarios == null)
{
- throw new ArgumentNullException(nameof(calculations));
+ throw new ArgumentNullException(nameof(calculationScenarios));
}
this.sectionResult = sectionResult;
- this.calculations = calculations;
+ this.calculationScenarios = calculationScenarios;
}
public double CalculateProfileProbability()
{
- return sectionResult.GetInitialFailureMechanismResultProbability(calculations, scenario => scenario.Output.ProfileSpecificOutput);
+ return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, scenario => scenario.Output.ProfileSpecificOutput);
}
public double CalculateSectionProbability()
{
- return sectionResult.GetInitialFailureMechanismResultProbability(calculations, scenario => scenario.Output.SectionSpecificOutput);
+ return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, scenario => scenario.Output.SectionSpecificOutput);
}
}
}
\ No newline at end of file
Index: Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs
===================================================================
diff -u -re2aac3d024a59aeaeb5f4803e9360b046a8b24f3 -r4c5b838896048250be3167fdf0fe6ed8b89c328e
--- Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision e2aac3d024a59aeaeb5f4803e9360b046a8b24f3)
+++ Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -33,20 +33,20 @@
public class SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy : IFailureMechanismSectionResultCalculateProbabilityStrategy
{
private readonly AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult;
- private readonly IEnumerable calculations;
+ private readonly IEnumerable calculationScenarios;
private readonly PipingFailureMechanism failureMechanism;
private readonly IAssessmentSection assessmentSection;
///
/// Creates a new instance of .
///
/// The to get the probabilities for.
- /// All the of the failure mechanism.
+ /// All the of the failure mechanism.
/// The failure mechanism the calculation scenarios belong to.
/// The assessment section the failure mechanism belongs to.
/// Thrown when any parameter is null.
public SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
- IEnumerable calculations,
+ IEnumerable calculationScenarios,
PipingFailureMechanism 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)
@@ -71,14 +71,14 @@
}
this.sectionResult = sectionResult;
- this.calculations = calculations;
+ this.calculationScenarios = calculationScenarios;
this.failureMechanism = failureMechanism;
this.assessmentSection = assessmentSection;
}
public double CalculateProfileProbability()
{
- return sectionResult.GetInitialFailureMechanismResultProbability(calculations, assessmentSection.FailureMechanismContribution.Norm);
+ return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, assessmentSection.FailureMechanismContribution.Norm);
}
public double CalculateSectionProbability()
Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs
===================================================================
diff -u -re2aac3d024a59aeaeb5f4803e9360b046a8b24f3 -r4c5b838896048250be3167fdf0fe6ed8b89c328e
--- Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision e2aac3d024a59aeaeb5f4803e9360b046a8b24f3)
+++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -26,7 +26,6 @@
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Data.TestUtil;
using Riskeer.Piping.Data.Probabilistic;
-using Riskeer.Piping.Data.TestUtil;
using Riskeer.Piping.Data.TestUtil.Probabilistic;
namespace Riskeer.Piping.Data.Test.Probabilistic
@@ -47,7 +46,7 @@
}
[Test]
- public void Constructor_CalculationsNull_ThrowsArgumentNullException()
+ public void Constructor_CalculationScenariosNull_ThrowsArgumentNullException()
{
// Setup
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
@@ -58,7 +57,7 @@
// Assert
var exception = Assert.Throws(Call);
- Assert.AreEqual("calculations", exception.ParamName);
+ Assert.AreEqual("calculationScenarios", exception.ParamName);
}
[Test]
@@ -74,8 +73,6 @@
// Assert
Assert.IsInstanceOf(strategy);
}
-
- #region CalculateProfileProbability
[Test]
public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
@@ -130,126 +127,6 @@
}
[Test]
- public void CalculateProfileProbability_NoRelevantScenarios_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario.IsRelevant = false;
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new[]
- {
- calculationScenario
- });
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- public void CalculateProfileProbability_ScenarioNotCalculated_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = ProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(
- section);
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new[]
- {
- calculationScenario
- });
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- public void CalculateProfileProbability_ScenarioWithNaNResults_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- const double contribution1 = 0.2;
- const double contribution2 = 0.8;
-
- var calculationScenario1 =
- ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 =
- ProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- calculationScenario1.IsRelevant = true;
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
-
- calculationScenario2.IsRelevant = true;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
- calculationScenario2.Output = new ProbabilisticPipingOutput(new TestPartialProbabilisticPipingOutput(double.NaN, null),
- new TestPartialProbabilisticPipingOutput(double.NaN, null));
-
- ProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations);
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- [TestCase(0.0, 0.0)]
- [TestCase(0.0, 0.5)]
- [TestCase(0.3, 0.7 + 1e-4)]
- public void CalculateProfileProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contribution1, double contribution2)
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
-
- ProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations);
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- #endregion
-
- #region CalculateSectionProbability
-
- [Test]
public void CalculateSectionProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
{
// Setup
@@ -300,123 +177,5 @@
// Assert
Assert.IsNaN(sectionProbability);
}
-
- [Test]
- public void CalculateSectionProbability_NoRelevantScenarios_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario.IsRelevant = false;
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new[]
- {
- calculationScenario
- });
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- public void CalculateSectionProbability_ScenarioNotCalculated_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = ProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(
- section);
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new[]
- {
- calculationScenario
- });
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- public void CalculateSectionProbability_ScenarioWithNaNResults_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- const double contribution1 = 0.2;
- const double contribution2 = 0.8;
-
- var calculationScenario1 =
- ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 =
- ProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- calculationScenario1.IsRelevant = true;
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
-
- calculationScenario2.IsRelevant = true;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
- calculationScenario2.Output = new ProbabilisticPipingOutput(new TestPartialProbabilisticPipingOutput(double.NaN, null),
- new TestPartialProbabilisticPipingOutput(double.NaN, null));
-
- ProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations);
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- [TestCase(0.0, 0.0)]
- [TestCase(0.0, 0.5)]
- [TestCase(0.3, 0.7 + 1e-4)]
- public void CalculateSectionProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contribution1, double contribution2)
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
-
- ProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations);
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- #endregion
}
}
\ No newline at end of file
Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs
===================================================================
diff -u -re2aac3d024a59aeaeb5f4803e9360b046a8b24f3 -r4c5b838896048250be3167fdf0fe6ed8b89c328e
--- Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision e2aac3d024a59aeaeb5f4803e9360b046a8b24f3)
+++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision 4c5b838896048250be3167fdf0fe6ed8b89c328e)
@@ -55,7 +55,7 @@
}
[Test]
- public void Constructor_CalculationsNull_ThrowsArgumentNullException()
+ public void Constructor_CalculationScenariosNull_ThrowsArgumentNullException()
{
// Setup
var mocks = new MockRepository();
@@ -70,7 +70,7 @@
// Assert
var exception = Assert.Throws(Call);
- Assert.AreEqual("calculations", exception.ParamName);
+ Assert.AreEqual("calculationScenarios", exception.ParamName);
mocks.VerifyAll();
}
@@ -130,9 +130,7 @@
Assert.IsInstanceOf(strategy);
mocks.VerifyAll();
}
-
- #region CalculateProfileProbability
-
+
[Test]
public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
{
@@ -190,121 +188,6 @@
}
[Test]
- public void CalculateProfileProbability_NoRelevantScenarios_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario.IsRelevant = false;
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new []
- {
- calculationScenario
- },
- new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- public void CalculateProfileProbability_ScenarioNotCalculated_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = SemiProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new []
- {
- calculationScenario
- },
- new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- public void CalculateProfileProbability_ScenarioWithNaNResults_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- calculationScenario1.IsRelevant = true;
- calculationScenario1.Contribution = (RoundedDouble) 0.2;
-
- calculationScenario2.IsRelevant = true;
- calculationScenario2.Contribution = (RoundedDouble) 0.8;
- calculationScenario2.Output = new SemiProbabilisticPipingOutput(new SemiProbabilisticPipingOutput.ConstructionProperties());
-
- SemiProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- [Test]
- [TestCase(0.0, 0.0)]
- [TestCase(0.0, 0.5)]
- [TestCase(0.3, 0.7 + 1e-4)]
- public void CalculateProfileProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contribution1, double contribution2)
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
-
- SemiProbabilisticPipingCalculationScenario[] calculations = new[]
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double profileProbability = strategy.CalculateProfileProbability();
-
- // Assert
- Assert.IsNaN(profileProbability);
- }
-
- #endregion
-
- #region CalculateSectionProbability
-
- [Test]
public void CalculateSectionProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios()
{
// Setup
@@ -359,118 +242,5 @@
// Assert
Assert.IsNaN(sectionProbability);
}
-
- [Test]
- public void CalculateSectionProbability_NoRelevantScenarios_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario.IsRelevant = false;
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new []
- {
- calculationScenario
- },
- new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- public void CalculateSectionProbability_ScenarioNotCalculated_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario = SemiProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, new []
- {
- calculationScenario
- },
- new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- public void CalculateSectionProbability_ScenarioWithNaNResults_ReturnsNaN()
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateNotCalculatedCalculation(section);
-
- calculationScenario1.IsRelevant = true;
- calculationScenario1.Contribution = (RoundedDouble) 0.2;
-
- calculationScenario2.IsRelevant = true;
- calculationScenario2.Contribution = (RoundedDouble) 0.8;
- calculationScenario2.Output = new SemiProbabilisticPipingOutput(new SemiProbabilisticPipingOutput.ConstructionProperties());
-
- SemiProbabilisticPipingCalculationScenario[] calculations =
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- [Test]
- [TestCase(0.0, 0.0)]
- [TestCase(0.0, 0.5)]
- [TestCase(0.3, 0.7 + 1e-4)]
- public void CalculateSectionProbability_RelevantScenarioContributionsDoNotAddUpTo1_ReturnNaN(double contribution1, double contribution2)
- {
- // Setup
- FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
- var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section);
-
- var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section);
- calculationScenario1.Contribution = (RoundedDouble) contribution1;
- calculationScenario2.Contribution = (RoundedDouble) contribution2;
-
- SemiProbabilisticPipingCalculationScenario[] calculations = new[]
- {
- calculationScenario1,
- calculationScenario2
- };
-
- var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub());
-
- // Call
- double sectionProbability = strategy.CalculateSectionProbability();
-
- // Assert
- Assert.IsNaN(sectionProbability);
- }
-
- #endregion
}
}
\ No newline at end of file