Index: Riskeer/Common/src/Riskeer.Common.Data/FailureMechanism/IFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -r6e3bc0437167a40cf4a79f0f04e31dc61ef4407f -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Common/src/Riskeer.Common.Data/FailureMechanism/IFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../IFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 6e3bc0437167a40cf4a79f0f04e31dc61ef4407f) +++ Riskeer/Common/src/Riskeer.Common.Data/FailureMechanism/IFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../IFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -27,12 +27,6 @@ public interface IFailureMechanismSectionResultCalculateProbabilityStrategy { /// - /// Calculates the initial failure mechanism result probability per profile. - /// - /// The calculated initial failure mechanism result probability per profile. - double CalculateProfileProbability(); - - /// /// Calculates the initial failure mechanism result probability per section. /// /// The calculated initial failure mechanism result probability per section. Index: Riskeer/Common/src/Riskeer.Common.Data/Structures/StructuresFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -raeef94201acf00a365af7dd01d0b39ed1834963c -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Common/src/Riskeer.Common.Data/Structures/StructuresFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../StructuresFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision aeef94201acf00a365af7dd01d0b39ed1834963c) +++ Riskeer/Common/src/Riskeer.Common.Data/Structures/StructuresFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../StructuresFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -35,6 +35,12 @@ private readonly AdoptableFailureMechanismSectionResult sectionResult; private readonly IEnumerable> calculationScenarios; + /// + /// Creates a new instance of . + /// + /// The to get the probabilities for. + /// All the of the failure mechanism. + /// Thrown when any parameter is null. public StructuresFailureMechanismSectionResultCalculateProbabilityStrategy(AdoptableFailureMechanismSectionResult sectionResult, IEnumerable> calculationScenarios) { @@ -52,11 +58,6 @@ this.calculationScenarios = calculationScenarios; } - public double CalculateProfileProbability() - { - throw new NotImplementedException(); - } - public double CalculateSectionProbability() { return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios); Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -rac121b50c3b2b6b86d2df7b359c0abb4cfa80bc6 -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision ac121b50c3b2b6b86d2df7b359c0abb4cfa80bc6) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -57,11 +57,6 @@ this.calculationScenarios = calculationScenarios; } - public double CalculateProfileProbability() - { - return CalculateSectionProbability(); - } - public double CalculateSectionProbability() { return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios); Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs =================================================================== diff -u -rac121b50c3b2b6b86d2df7b359c0abb4cfa80bc6 -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision ac121b50c3b2b6b86d2df7b359c0abb4cfa80bc6) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -74,61 +74,6 @@ } [Test] - public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - GrassCoverErosionInwardsCalculationScenario calculationScenario1 = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section); - GrassCoverErosionInwardsCalculationScenario calculationScenario2 = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section); - GrassCoverErosionInwardsCalculationScenario calculationScenario3 = GrassCoverErosionInwardsCalculationScenarioTestFactory.CreateGrassCoverErosionInwardsCalculationScenario(section); - - calculationScenario1.IsRelevant = true; - calculationScenario1.Contribution = (RoundedDouble) 0.2111; - calculationScenario1.Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(1.1), null, null); - - calculationScenario2.IsRelevant = true; - calculationScenario2.Contribution = (RoundedDouble) 0.7889; - calculationScenario1.Output = new GrassCoverErosionInwardsOutput(new TestOvertoppingOutput(2.2), null, null); - - calculationScenario3.IsRelevant = false; - - GrassCoverErosionInwardsCalculationScenario[] calculationScenarios = - { - calculationScenario1, - calculationScenario2, - calculationScenario3 - }; - - var strategy = new GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, calculationScenarios); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.AreEqual(0.3973850177700996, profileProbability); - } - - [Test] - public void CalculateProfileProbability_NoScenarios_ReturnsNaN() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - var strategy = new GrassCoverErosionInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, Enumerable.Empty()); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.IsNaN(profileProbability); - } - - [Test] public void CalculateSectionProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() { // Setup Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -r7c898967a844e48f640836a5990a00560e697d87 -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 7c898967a844e48f640836a5990a00560e697d87) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -67,14 +67,11 @@ this.failureMechanism = failureMechanism; } - public double CalculateProfileProbability() - { - return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, failureMechanism.GeneralInput.ModelFactor); - } - public double CalculateSectionProbability() { - return Math.Min(1.0, CalculateProfileProbability() * failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(sectionResult.Section.Length)); + double profileProbability = sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, + failureMechanism.GeneralInput.ModelFactor); + return Math.Min(1.0, profileProbability * failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(sectionResult.Section.Length)); } } } \ No newline at end of file Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs =================================================================== diff -u -r7c898967a844e48f640836a5990a00560e697d87 -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision 7c898967a844e48f640836a5990a00560e697d87) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -92,61 +92,6 @@ } [Test] - public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(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 AdoptableFailureMechanismSectionResult(section); - - var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, Enumerable.Empty(), - new MacroStabilityInwardsFailureMechanism()); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.IsNaN(profileProbability); - } - - [Test] public void CalculateSectionProbability_MultipleScenariosForSectionWithSmallLength_ReturnsValueBasedOnRelevantScenarios() { // Setup Index: Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -r0c97a0df80285a0f24c86eecd19c3e28338a702b -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 0c97a0df80285a0f24c86eecd19c3e28338a702b) +++ Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -56,11 +56,6 @@ this.calculationScenarios = calculationScenarios; } - public double CalculateProfileProbability() - { - return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, scenario => scenario.Output.ProfileSpecificOutput); - } - public double CalculateSectionProbability() { return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, scenario => scenario.Output.SectionSpecificOutput); Index: Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -r0c97a0df80285a0f24c86eecd19c3e28338a702b -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 0c97a0df80285a0f24c86eecd19c3e28338a702b) +++ Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -76,14 +76,11 @@ this.assessmentSection = assessmentSection; } - public double CalculateProfileProbability() - { - return sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, assessmentSection.FailureMechanismContribution.NormativeProbability); - } - public double CalculateSectionProbability() { - return Math.Min(1.0, CalculateProfileProbability() * failureMechanism.PipingProbabilityAssessmentInput.GetN(sectionResult.Section.Length)); + double profileProbability = sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, + assessmentSection.FailureMechanismContribution.NormativeProbability); + return Math.Min(1.0, profileProbability * failureMechanism.PipingProbabilityAssessmentInput.GetN(sectionResult.Section.Length)); } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs =================================================================== diff -u -r0c97a0df80285a0f24c86eecd19c3e28338a702b -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision 0c97a0df80285a0f24c86eecd19c3e28338a702b) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -75,58 +75,6 @@ } [Test] - public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - var calculationScenario1 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - var calculationScenario2 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - var calculationScenario3 = ProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - - calculationScenario1.IsRelevant = true; - calculationScenario1.Contribution = (RoundedDouble) 0.2111; - - calculationScenario2.IsRelevant = true; - calculationScenario2.Contribution = (RoundedDouble) 0.7889; - - calculationScenario3.IsRelevant = false; - - ProbabilisticPipingCalculationScenario[] calculations = - { - calculationScenario1, - calculationScenario2, - calculationScenario3 - }; - - var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(sectionResult, calculations); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.AreEqual(0.24284668249632746, profileProbability); - } - - [Test] - public void CalculateProfileProbability_NoScenarios_ReturnsNaN() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - var strategy = new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, Enumerable.Empty()); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.IsNaN(profileProbability); - } - - [Test] public void CalculateSectionProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() { // Setup Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs =================================================================== diff -u -r0c97a0df80285a0f24c86eecd19c3e28338a702b -rb0cefe30e5099ee2f465ed7660199789e6d1b865 --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision 0c97a0df80285a0f24c86eecd19c3e28338a702b) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/SemiProbabilistic/SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) @@ -133,62 +133,6 @@ } [Test] - public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - var calculationScenario3 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation(section); - - calculationScenario1.IsRelevant = true; - calculationScenario1.Contribution = (RoundedDouble) 0.2111; - calculationScenario1.Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(1.1, 2.2, 3.3); - - calculationScenario2.IsRelevant = true; - calculationScenario2.Contribution = (RoundedDouble) 0.7889; - calculationScenario2.Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(4.4, 5.5, 6.6); - - calculationScenario3.IsRelevant = false; - - SemiProbabilisticPipingCalculationScenario[] calculations = - { - calculationScenario1, - calculationScenario2, - calculationScenario3 - }; - - var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub()); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.AreEqual(9.2969543564512289E-16, profileProbability); - } - - [Test] - public void CalculateProfileProbability_NoScenarios_ReturnsNaN() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - - var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, Enumerable.Empty(), - new PipingFailureMechanism(), new AssessmentSectionStub()); - - // Call - double profileProbability = strategy.CalculateProfileProbability(); - - // Assert - Assert.IsNaN(profileProbability); - } - - [Test] public void CalculateSectionProbability_MultipleScenariosForSectionWithSmallLength_ReturnsValueBasedOnRelevantScenarios() { // Setup