Index: Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyHelper.cs =================================================================== diff -u -rf71c21b148694b7cc55a8421788c2a6c9cc00d8a -r1c6e42882810c407d90bbe92002a82f77d7d660d --- Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyHelper.cs (.../FailurePathAssemblyHelper.cs) (revision f71c21b148694b7cc55a8421788c2a6c9cc00d8a) +++ Riskeer/Common/src/Riskeer.Common.Data/FailurePath/FailurePathAssemblyHelper.cs (.../FailurePathAssemblyHelper.cs) (revision 1c6e42882810c407d90bbe92002a82f77d7d660d) @@ -48,6 +48,11 @@ throw new ArgumentNullException(nameof(performFailurePathAssemblyFunc)); } + if (!failurePath.InAssembly) + { + return double.NaN; + } + FailurePathAssemblyResult assemblyResult = failurePath.AssemblyResult; return assemblyResult.ProbabilityResultType == FailurePathAssemblyProbabilityResultType.Manual ? assemblyResult.ManualFailurePathAssemblyProbability Index: Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyHelperTest.cs =================================================================== diff -u -rf71c21b148694b7cc55a8421788c2a6c9cc00d8a -r1c6e42882810c407d90bbe92002a82f77d7d660d --- Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyHelperTest.cs (.../FailurePathAssemblyHelperTest.cs) (revision f71c21b148694b7cc55a8421788c2a6c9cc00d8a) +++ Riskeer/Common/test/Riskeer.Common.Data.Test/FailurePath/FailurePathAssemblyHelperTest.cs (.../FailurePathAssemblyHelperTest.cs) (revision 1c6e42882810c407d90bbe92002a82f77d7d660d) @@ -57,36 +57,59 @@ } [Test] - public void AssembleFailurePath_WithFailurePathAssemblyProbabilityResultTypeManual_ReturnsExpectedResult() + public void AssembleFailurePath_WithFailureInAssemblyFalse_ReturnsNaN() { // Setup var random = new Random(21); double probability = random.NextDouble(); var mocks = new MockRepository(); var failurePath = mocks.Stub(); + mocks.ReplayAll(); + + failurePath.InAssembly = false; + + // Call + double assemblyResult = FailurePathAssemblyHelper.AssembleFailurePath(failurePath, () => probability); + + // Assert + Assert.IsNaN(assemblyResult); + mocks.VerifyAll(); + } + + [Test] + public void AssembleFailurePath_WithFailurePathAssemblyProbabilityResultTypeManual_ReturnsExpectedProbability() + { + // Setup + var random = new Random(21); + double assemblyProbability = random.NextDouble(); + + var mocks = new MockRepository(); + var failurePath = mocks.Stub(); failurePath.Stub(fp => fp.AssemblyResult) .Return(new FailurePathAssemblyResult { ProbabilityResultType = FailurePathAssemblyProbabilityResultType.Manual, - ManualFailurePathAssemblyProbability = probability + ManualFailurePathAssemblyProbability = assemblyProbability }); mocks.ReplayAll(); + failurePath.InAssembly = true; + // Call double assemblyResult = FailurePathAssemblyHelper.AssembleFailurePath(failurePath, () => double.NaN); // Assert - Assert.AreEqual(probability, assemblyResult); + Assert.AreEqual(assemblyProbability, assemblyResult); mocks.VerifyAll(); } [Test] - public void AssembleFailurePath_WithFailurePathAssemblyProbabilityResultTypeAutomatic_ReturnsExpectedResult() + public void AssembleFailurePath_WithFailurePathAssemblyProbabilityResultTypeAutomatic_ReturnsExpectedProbability() { // Setup var random = new Random(21); - double probability = random.NextDouble(); + double assemblyProbability = random.NextDouble(); var mocks = new MockRepository(); var failurePath = mocks.Stub(); @@ -98,11 +121,13 @@ }); mocks.ReplayAll(); + failurePath.InAssembly = true; + // Call - double assemblyResult = FailurePathAssemblyHelper.AssembleFailurePath(failurePath, () => probability); + double assemblyResult = FailurePathAssemblyHelper.AssembleFailurePath(failurePath, () => assemblyProbability); // Assert - Assert.AreEqual(probability, assemblyResult); + Assert.AreEqual(assemblyProbability, assemblyResult); mocks.VerifyAll(); } }