Index: Riskeer/Common/src/Riskeer.Common.Forms/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.cs =================================================================== diff -u -rb2a84d4ad12dde705c07722ef9c264b268bec879 -rc4c9fbb949dbce53ce4fe974ffed6284490aa4ba --- Riskeer/Common/src/Riskeer.Common.Forms/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.cs (.../AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.cs) (revision b2a84d4ad12dde705c07722ef9c264b268bec879) +++ Riskeer/Common/src/Riskeer.Common.Forms/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.cs (.../AdoptableWithProfileProbabilityFailureMechanismSectionResultRow.cs) (revision c4c9fbb949dbce53ce4fe974ffed6284490aa4ba) @@ -304,11 +304,21 @@ { try { - AssemblyResult = FailureMechanismSectionAssemblyGroupFactory.AssembleSection( - assessmentSection, IsRelevant, InitialFailureMechanismResult, InitialFailureMechanismResultProfileProbability, - InitialFailureMechanismResultSectionProbability, FurtherAnalysisNeeded, - SectionResult.RefinedProfileProbability, SectionResult.RefinedSectionProbability, - ProbabilityRefinementType, lengthEffectProvider.SectionN); + if (lengthEffectProvider.UseLengthEffect) + { + AssemblyResult = FailureMechanismSectionAssemblyGroupFactory.AssembleSection( + assessmentSection, IsRelevant, InitialFailureMechanismResult, InitialFailureMechanismResultProfileProbability, + InitialFailureMechanismResultSectionProbability, FurtherAnalysisNeeded, + SectionResult.RefinedProfileProbability, SectionResult.RefinedSectionProbability, + ProbabilityRefinementType, lengthEffectProvider.SectionN); + } + else + { + AssemblyResult = FailureMechanismSectionAssemblyGroupFactory.AssembleSection( + assessmentSection, IsRelevant, InitialFailureMechanismResult, + InitialFailureMechanismResultSectionProbability, FurtherAnalysisNeeded, + SectionResult.RefinedSectionProbability); + } } catch (AssemblyException e) { Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -rb2a84d4ad12dde705c07722ef9c264b268bec879 -rc4c9fbb949dbce53ce4fe974ffed6284490aa4ba --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRowTest.cs (.../AdoptableWithProfileProbabilityFailureMechanismSectionResultRowTest.cs) (revision b2a84d4ad12dde705c07722ef9c264b268bec879) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/AdoptableWithProfileProbabilityFailureMechanismSectionResultRowTest.cs (.../AdoptableWithProfileProbabilityFailureMechanismSectionResultRowTest.cs) (revision c4c9fbb949dbce53ce4fe974ffed6284490aa4ba) @@ -570,11 +570,59 @@ #region Assembly [Test] - public void Constructor_AssemblyRan_InputCorrectlySetOnCalculator() + public void Constructor_AssemblyRanWithoutLengthEffect_InputCorrectlySetOnCalculator() { // Setup const double initialProfileProbability = 0.1; const double initialSectionProbability = 0.2; + + var mocks = new MockRepository(); + var calculateStrategy = mocks.Stub(); + calculateStrategy.Stub(c => c.CalculateProfileProbability()).Return(initialProfileProbability); + calculateStrategy.Stub(c => c.CalculateSectionProbability()).Return(initialSectionProbability); + var errorProvider = mocks.Stub(); + var lengthEffectProvider = mocks.Stub(); + lengthEffectProvider.Stub(lep => lep.UseLengthEffect).Return(false); + mocks.ReplayAll(); + + var assessmentSection = new AssessmentSectionStub(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section) + { + RefinedSectionProbability = 0.001 + }; + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + var row = new AdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, calculateStrategy, errorProvider, lengthEffectProvider, assessmentSection, ConstructionProperties); + + // Assert + FailureMechanismSectionAssemblyInput input = calculator.FailureMechanismSectionAssemblyInput; + Assert.AreEqual(assessmentSection.FailureMechanismContribution.SignalingNorm, input.SignalingNorm); + Assert.AreEqual(assessmentSection.FailureMechanismContribution.LowerLimitNorm, input.LowerLimitNorm); + Assert.AreEqual(row.IsRelevant, input.IsRelevant); + Assert.IsTrue(input.HasProbabilitySpecified); + Assert.AreEqual(initialSectionProbability, input.InitialProfileProbability); + Assert.AreEqual(initialSectionProbability, input.InitialSectionProbability); + Assert.AreEqual(row.FurtherAnalysisNeeded, input.FurtherAnalysisNeeded); + Assert.AreEqual(row.RefinedSectionProbability, input.RefinedProfileProbability); + Assert.AreEqual(row.RefinedSectionProbability, input.RefinedSectionProbability); + } + + mocks.VerifyAll(); + } + + [Test] + public void Constructor_AssemblyRanWithLengthEffect_InputCorrectlySetOnCalculator() + { + // Setup + const double initialProfileProbability = 0.1; + const double initialSectionProbability = 0.2; const double n = 2.0; var mocks = new MockRepository(); @@ -583,6 +631,7 @@ calculateStrategy.Stub(c => c.CalculateSectionProbability()).Return(initialSectionProbability); var errorProvider = mocks.Stub(); var lengthEffectProvider = mocks.Stub(); + lengthEffectProvider.Stub(lep => lep.UseLengthEffect).Return(true); lengthEffectProvider.Stub(lep => lep.SectionN).Return(n); mocks.ReplayAll();