Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs =================================================================== diff -u -r6a29395620a9ccb1c1e96767f8a137848ae8900a -rf8337bdd0627f170f760ebf42bca623567cf440f --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision 6a29395620a9ccb1c1e96767f8a137848ae8900a) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy.cs) (revision f8337bdd0627f170f760ebf42bca623567cf440f) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Probability; @@ -71,7 +72,10 @@ { double probability = sectionResult.GetInitialFailureMechanismResultProbability(calculationScenarios, failureMechanism.GeneralInput.ModelFactor); - return Math.Min(1.0, probability * failureMechanism.ProbabilityAssessmentInput.GetN(sectionResult.Section.Length)); + + MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection sectionConfiguration = + failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Single(c => ReferenceEquals(sectionResult.Section, c.Section)); + return Math.Min(1.0, probability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B)); } } } \ No newline at end of file Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -ra05c34f73bb94c532e121b758c18dcb586646b07 -rf8337bdd0627f170f760ebf42bca623567cf440f --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision a05c34f73bb94c532e121b758c18dcb586646b07) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision f8337bdd0627f170f760ebf42bca623567cf440f) @@ -148,9 +148,13 @@ { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + section + }); + AdoptableFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) @@ -172,9 +176,13 @@ { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + section + }); + AdoptableFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + var assessmentSection = new AssessmentSectionStub(); using (new AssemblyToolCalculatorFactoryConfig()) @@ -242,10 +250,10 @@ ProbabilityResultType = FailureMechanismAssemblyProbabilityResultType.P2 } }; - failureMechanism.SetSections(new[] + FailureMechanismTestHelper.SetSections(failureMechanism, new[] { FailureMechanismSectionTestFactory.CreateFailureMechanismSection() - }, "APath"); + }); var assessmentSection = new AssessmentSectionStub(); Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs =================================================================== diff -u -rb0cefe30e5099ee2f465ed7660199789e6d1b865 -rf8337bdd0627f170f760ebf42bca623567cf440f --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision b0cefe30e5099ee2f465ed7660199789e6d1b865) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategyTest.cs) (revision f8337bdd0627f170f760ebf42bca623567cf440f) @@ -134,11 +134,16 @@ { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var sectionResult = new AdoptableFailureMechanismSectionResult(section); + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + section + }); + AdoptableFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( sectionResult, Enumerable.Empty(), - new MacroStabilityInwardsFailureMechanism()); + failureMechanism); // Call double sectionProbability = strategy.CalculateSectionProbability(); @@ -149,7 +154,12 @@ private static MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy CreateStrategyForMultipleScenarios(FailureMechanismSection section) { - var sectionResult = new AdoptableFailureMechanismSectionResult(section); + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + section + }); + AdoptableFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); const double factorOfStability1 = 1.0 / 10.0; const double factorOfStability2 = 1.0 / 20.0; @@ -172,7 +182,7 @@ }; return new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( - sectionResult, calculations, new MacroStabilityInwardsFailureMechanism()); + sectionResult, calculations, failureMechanism); } } } \ No newline at end of file