Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculator.cs =================================================================== diff -u -r3e27a0f9cddd6e05a755d7f109032be0dc6b8864 -rb37d73c648e099a96a1c623f72391c909f3b0937 --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculator.cs (.../AssemblyCategoryBoundariesCalculator.cs) (revision 3e27a0f9cddd6e05a755d7f109032be0dc6b8864) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculator.cs (.../AssemblyCategoryBoundariesCalculator.cs) (revision b37d73c648e099a96a1c623f72391c909f3b0937) @@ -24,6 +24,7 @@ using AssemblyTool.Kernel.CategoriesOutput; using Ringtoets.AssemblyTool.Data.Input; using Ringtoets.AssemblyTool.Data.Output; +using Ringtoets.AssemblyTool.KernelWrapper.Creators; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; using Ringtoets.AssemblyTool.KernelWrapper.Kernels.CategoryBoundaries; @@ -64,9 +65,7 @@ kernel.Calculate(); - CalculationOutput output = kernel.AssessmentSectionCategoriesOutput; - - return null; + return AssemblyCategoryBoundariesResultCreator.CreateAssessmentSectionResult(kernel.AssessmentSectionCategoriesOutput); } } } \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculatorTest.cs =================================================================== diff -u -r3e27a0f9cddd6e05a755d7f109032be0dc6b8864 -rb37d73c648e099a96a1c623f72391c909f3b0937 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculatorTest.cs (.../AssemblyCategoryBoundariesCalculatorTest.cs) (revision 3e27a0f9cddd6e05a755d7f109032be0dc6b8864) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/CategoryBoundaries/AssemblyCategoryBoundariesCalculatorTest.cs (.../AssemblyCategoryBoundariesCalculatorTest.cs) (revision b37d73c648e099a96a1c623f72391c909f3b0937) @@ -20,9 +20,15 @@ // All rights reserved. using System; +using System.Linq; +using AssemblyTool.Kernel; +using AssemblyTool.Kernel.CategoriesOutput; +using AssemblyTool.Kernel.Data; +using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.AssemblyTool.Data.Input; +using Ringtoets.AssemblyTool.Data.Output; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.CategoryBoundaries; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Kernels; @@ -92,6 +98,7 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelWrapperFactory.Instance; AssemblyCategoryBoundariesKernelStub kernel = factory.LastCreatedAssemblyCategoryBoundariesKernel; + kernel.AssessmentSectionCategoriesOutput = CreateKernelOutput(); var calculator = new AssemblyCategoryBoundariesCalculator(factory); @@ -103,5 +110,47 @@ Assert.AreEqual(signalingNorm, kernel.SignalingNorm); } } + + [Test] + public void CalculateAssessmentSectionCategories_KernelWithCompleteOutput_OutputCorrectlyReturnedByCalculator() + { + // Setup + var random = new Random(11); + double lowerBoundaryNorm = random.NextDouble(); + double signalingNorm = random.NextDouble(); + var input = new AssemblyCategoryBoundariesCalculatorInput(signalingNorm, lowerBoundaryNorm); + CalculationOutput output = CreateKernelOutput(); + + using (new AssemblyToolKernelFactoryConfig()) + { + var factory = (TestAssemblyToolKernelFactory)AssemblyToolKernelWrapperFactory.Instance; + AssemblyCategoryBoundariesKernelStub kernel = factory.LastCreatedAssemblyCategoryBoundariesKernel; + kernel.AssessmentSectionCategoriesOutput = output; + + var calculator = new AssemblyCategoryBoundariesCalculator(factory); + + // Call + AssemblyCategoryBoundariesResult result = calculator.CalculateAssessmentSectionCategories(input); + + // Assert + Assert.AreEqual(output.Result.Length, result.Categories.Count()); + + CollectionAssert.AreEqual(output.Result.Select(o => o.LowerBoundary), result.Categories.Select(r => r.LowerBoundary)); + CollectionAssert.AreEqual(output.Result.Select(o => o.UpperBoundary), result.Categories.Select(r => r.UpperBoundary)); + } + } + + private static CalculationOutput CreateKernelOutput() + { + var random = new Random(11); + + return new CalculationOutput(new[] + { + new AssessmentSectionCategoriesOutput(random.NextEnumValue(), random.Next(1), random.Next(1, 2)), + new AssessmentSectionCategoriesOutput(random.NextEnumValue(), random.Next(1), random.Next(1, 2)), + new AssessmentSectionCategoriesOutput(random.NextEnumValue(), random.Next(1), random.Next(1, 2)), + new AssessmentSectionCategoriesOutput(random.NextEnumValue(), random.Next(1), random.Next(1, 2)) + }); + } } } \ No newline at end of file