Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs =================================================================== diff -u -r1a7e949a3a94f976dd41a7a568701a7674685427 -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision 1a7e949a3a94f976dd41a7a568701a7674685427) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -229,33 +229,7 @@ throw new ArgumentNullException(nameof(categories)); } - if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityCalculationResultType), tailorMadeAssessmentResult)) - { - throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), - (int) tailorMadeAssessmentResult, - typeof(TailorMadeAssessmentProbabilityCalculationResultType)); - } - - TailorMadeProbabilityCalculationResult tailorMadeProbabilityCalculationResult; - switch (tailorMadeAssessmentResult) - { - case TailorMadeAssessmentProbabilityCalculationResultType.None: - tailorMadeProbabilityCalculationResult = new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.None); - break; - case TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible: - tailorMadeProbabilityCalculationResult = new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.FV); - break; - case TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed: - tailorMadeProbabilityCalculationResult = new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.NGO); - break; - case TailorMadeAssessmentProbabilityCalculationResultType.Probability: - tailorMadeProbabilityCalculationResult = new TailorMadeProbabilityCalculationResult(new Probability(probability)); - break; - default: - throw new NotSupportedException(); - } - - return new TailorMadeCalculationInputFromProbability(tailorMadeProbabilityCalculationResult, + return new TailorMadeCalculationInputFromProbability(ConvertTailorMadeProbabilityCalculationResult(tailorMadeAssessmentResult, probability), categories.Select(category => new FailureMechanismSectionCategory( ConvertFailureMechanismSectionAssemblyCategoryGroup(category.Group), new Probability(category.LowerBoundary), @@ -305,5 +279,45 @@ throw new NotSupportedException(); } } + + /// + /// Converts a and the given + /// to a . + /// + /// The tailor made assessment result to create + /// the input for. + /// The calculated probability to create the input for. + /// The converted . + /// Thrown when: + /// is an invalid . + /// Thrown when + /// is a valid but unsupported . + /// Thrown when any input parameter has an + /// invalid value. + private static TailorMadeProbabilityCalculationResult ConvertTailorMadeProbabilityCalculationResult( + TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityCalculationResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentProbabilityCalculationResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentProbabilityCalculationResultType.None: + return new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.None); + case TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible: + return new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.FV); + case TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed: + return new TailorMadeProbabilityCalculationResult(TailorMadeProbabilityCalculationResultGroup.NGO); + case TailorMadeAssessmentProbabilityCalculationResultType.Probability: + return new TailorMadeProbabilityCalculationResult(new Probability(probability)); + default: + throw new NotSupportedException(); + } + } } } \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs =================================================================== diff -u -r1a7e949a3a94f976dd41a7a568701a7674685427 -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision 1a7e949a3a94f976dd41a7a568701a7674685427) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -132,6 +132,37 @@ } [Test] + public void AssembleTailorMadeAssessment_WithInvalidAssessmentResultTypeEnumInput_ThrowFailureMechanismSectionAssemblyCalculatorException() + { + // Setup + var random = new Random(39); + double probability = random.NextDouble(); + var categories = new[] + { + new FailureMechanismSectionAssemblyCategory(random.NextDouble(), + random.NextDouble(), + random.NextEnumValue()) + }; + + using (new AssemblyToolKernelFactoryConfig()) + { + var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; + var calculator = new FailureMechanismSectionAssemblyCalculator(factory); + + // Call + TestDelegate test = () => calculator.AssembleTailorMadeAssessment((TailorMadeAssessmentProbabilityCalculationResultType) 99, + probability, + categories); + + // Assert + var exception = Assert.Throws(test); + Exception innerException = exception.InnerException; + Assert.IsInstanceOf(innerException); + Assert.AreEqual(innerException.Message, exception.Message); + } + } + + [Test] public void AssembleTailorMadeAssessment_WithInvalidCategoryEnumInput_ThrowFailureMechanismSectionAssemblyCalculatorException() { // Setup @@ -147,10 +178,6 @@ using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionAssemblyCategoryResult = new CalculationOutput( - new FailureMechanismSectionAssemblyCategoryResult(FailureMechanismSectionCategoryGroup.Iv, Probability.NaN)); - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); // Call Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs =================================================================== diff -u -ra9238f94c62a8feaa5d84250b1c99e2eca163afc -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision a9238f94c62a8feaa5d84250b1c99e2eca163afc) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -54,7 +54,11 @@ Assert.IsNull(calculator.TailorMadeAssessmentCategoriesInput); Assert.AreEqual(0.0, calculator.TailorMadeAssessmentProbabilityInput); - Assert.AreEqual((TailorMadeAssessmentProbabilityAndDetailedCalculationResultType) 0, calculator.TailorMadeAssessmentProbabilityAndDetailedCalculationResultInput); + + Assert.AreEqual((TailorMadeAssessmentProbabilityAndDetailedCalculationResultType) 0, + calculator.TailorMadeAssessmentProbabilityAndDetailedCalculationResult); + Assert.AreEqual((TailorMadeAssessmentProbabilityCalculationResultType) 0, + calculator.TailorMadeAssessmentProbabilityCalculationResultType); Assert.IsNull(calculator.TailorMadeAssessmentAssemblyOutput); Assert.IsNull(calculator.CombinedSimpleAssemblyInput); Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs =================================================================== diff -u -ra9238f94c62a8feaa5d84250b1c99e2eca163afc -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision a9238f94c62a8feaa5d84250b1c99e2eca163afc) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -224,7 +224,9 @@ (TailorMadeAssessmentAssemblyOutput = new FailureMechanismSectionAssembly(1, FailureMechanismSectionAssemblyCategoryGroup.VIv)); } - public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, double probability, IEnumerable categories) + public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability, + IEnumerable categories) { if (ThrowExceptionOnCalculate) { Index: Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.cs =================================================================== diff -u -r712c1aad8e5486980f259491130e4ae07ea48149 -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.cs (.../TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.cs) (revision 712c1aad8e5486980f259491130e4ae07ea48149) +++ Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.cs (.../TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -65,6 +65,5 @@ /// [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentResultType_NotAssessed))] NotAssessed = 5 - } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityCalculationResultType.cs =================================================================== diff -u -r10da55f5cb8bf1b8a8309e43f923072a29db254d -r5180f3c52adce7b8214e51b81b0ad8c7b21f4521 --- Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityCalculationResultType.cs (.../TailorMadeAssessmentProbabilityCalculationResultType.cs) (revision 10da55f5cb8bf1b8a8309e43f923072a29db254d) +++ Ringtoets/Common/src/Ringtoets.Common.Primitives/TailorMadeAssessmentProbabilityCalculationResultType.cs (.../TailorMadeAssessmentProbabilityCalculationResultType.cs) (revision 5180f3c52adce7b8214e51b81b0ad8c7b21f4521) @@ -57,6 +57,5 @@ /// [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentResultType_NotAssessed))] NotAssessed = 4 - } } \ No newline at end of file