Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u -re435a360ae5009cfba77b9ca859c8880945d5781 -raa45215a1f556ae8b9abbad2d5e469aa38292213 --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision e435a360ae5009cfba77b9ca859c8880945d5781) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision aa45215a1f556ae8b9abbad2d5e469aa38292213) @@ -303,18 +303,27 @@ { try { - FmSectionAssemblyDirectResult simpleAssemblyResult = + FmSectionAssemblyDirectResult simpleAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly); + FmSectionAssemblyDirectResult detailedAssemblyResult; + FmSectionAssemblyDirectResult tailorMadeAssemblyResult; + if (simpleAssemblyResult.Result == EFmSectionCategory.NotApplicable || simpleAssemblyResult.Result == EFmSectionCategory.Iv) { - return FailureMechanismSectionAssemblyCreator.Create(simpleAssemblyResult); + detailedAssemblyResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Gr); + tailorMadeAssemblyResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Gr); } + else + { + detailedAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly); + tailorMadeAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly); + } IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); var output = (FmSectionAssemblyDirectResult) kernel.TranslateAssessmentResultWbi0A1( simpleAssemblyResult, - FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly), - FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly)); + detailedAssemblyResult, + tailorMadeAssemblyResult); return FailureMechanismSectionAssemblyCreator.Create(output); } @@ -330,18 +339,27 @@ { try { - FmSectionAssemblyDirectResult simpleAssemblyResult = + FmSectionAssemblyDirectResult simpleAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly); + FmSectionAssemblyDirectResult detailedAssemblyResult; + FmSectionAssemblyDirectResult tailorMadeAssemblyResult; + if (simpleAssemblyResult.Result == EFmSectionCategory.NotApplicable || simpleAssemblyResult.Result == EFmSectionCategory.Iv) { - return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(simpleAssemblyResult.Result); + detailedAssemblyResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Gr); + tailorMadeAssemblyResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Gr); } + else + { + detailedAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly); + tailorMadeAssemblyResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly); + } IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); var output = (FmSectionAssemblyDirectResult) kernel.TranslateAssessmentResultWbi0A1( simpleAssemblyResult, - FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly), - FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly)); + detailedAssemblyResult, + tailorMadeAssemblyResult); return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); } Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs =================================================================== diff -u -re435a360ae5009cfba77b9ca859c8880945d5781 -raa45215a1f556ae8b9abbad2d5e469aa38292213 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision e435a360ae5009cfba77b9ca859c8880945d5781) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision aa45215a1f556ae8b9abbad2d5e469aa38292213) @@ -1781,12 +1781,12 @@ [Test] [TestCase(FailureMechanismSectionAssemblyCategoryGroup.NotApplicable)] [TestCase(FailureMechanismSectionAssemblyCategoryGroup.Iv)] - public void AssembleCombinedWithProbabilities_WithSimpleAssemblyNotApplicableOrCategoryIv_ExpectedOutputReturnedByCalculator( + public void AssembleCombinedWithProbabilities_WithSimpleAssemblyNotApplicableOrCategoryIv_InputCorrectlySetToKernel( FailureMechanismSectionAssemblyCategoryGroup category) { // Setup var random = new Random(39); - var simpleAssembly = new FailureMechanismSectionAssembly(random.NextDouble(), category); + var simpleAssembly = new FailureMechanismSectionAssembly(double.NaN, category); var detailedAssembly = new FailureMechanismSectionAssembly(random.NextDouble(), random.NextEnumValue()); var tailorMadeAssembly = new FailureMechanismSectionAssembly(random.NextDouble(), random.NextEnumValue()); @@ -1800,11 +1800,14 @@ var calculator = new FailureMechanismSectionAssemblyCalculator(factory); // Call - FailureMechanismSectionAssembly assembly = calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); + calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); // Assert - AssertCalculatorOutput(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), - assembly); + AssertAssembly(simpleAssembly, kernel.SimpleAssessmentResultInput); + AssertAssembly(new FailureMechanismSectionAssembly(double.NaN, FailureMechanismSectionAssemblyCategoryGroup.None), + kernel.DetailedAssessmentResultInput); + AssertAssembly(new FailureMechanismSectionAssembly(double.NaN, FailureMechanismSectionAssemblyCategoryGroup.None), + kernel.TailorMadeAssessmentResultInput); } } @@ -1945,7 +1948,7 @@ [Test] [TestCase(FailureMechanismSectionAssemblyCategoryGroup.NotApplicable)] [TestCase(FailureMechanismSectionAssemblyCategoryGroup.Iv)] - public void AssembleCombined_WithSimpleAssemblyNotApplicableOrCategoryIv_ExpectedOutputReturnedByCalculator( + public void AssembleCombined_WithSimpleAssemblyNotApplicableOrCategoryIv_InputCorrectlySetToKernel( FailureMechanismSectionAssemblyCategoryGroup category) { // Setup @@ -1963,10 +1966,12 @@ var calculator = new FailureMechanismSectionAssemblyCalculator(factory); // Call - FailureMechanismSectionAssemblyCategoryGroup assembly = calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); + calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); // Assert - Assert.AreEqual(simpleAssembly, assembly); + Assert.AreEqual(simpleAssembly, GetGroup(kernel.SimpleAssessmentResultInput.Result)); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, GetGroup(kernel.DetailedAssessmentResultInput.Result)); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.None, GetGroup(kernel.TailorMadeAssessmentResultInput.Result)); } } @@ -2051,10 +2056,10 @@ } } - private static void AssertAssembly(FailureMechanismSectionAssembly simpleAssembly, FmSectionAssemblyDirectResult kernelInput) + private static void AssertAssembly(FailureMechanismSectionAssembly assembly, FmSectionAssemblyDirectResult kernelAssemblyResult) { - Assert.AreEqual(simpleAssembly.Probability, kernelInput.FailureProbability); - Assert.AreEqual(simpleAssembly.Group, GetGroup(kernelInput.Result)); + Assert.AreEqual(assembly.Probability, kernelAssemblyResult.FailureProbability ?? double.NaN); + Assert.AreEqual(assembly.Group, GetGroup(kernelAssemblyResult.Result)); } #endregion