Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs =================================================================== diff -u -r2c456961e1bdf241eddb652aaa1bc0029538ecf4 -r90ee5dda56b89051befda60df923e791c11fdfc4 --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision 2c456961e1bdf241eddb652aaa1bc0029538ecf4) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreator.cs) (revision 90ee5dda56b89051befda60df923e791c11fdfc4) @@ -321,6 +321,76 @@ } /// + /// Creates a based on the given . + /// + /// The tailor made assessment result to create the result for. + /// The created tailor made calculation result. + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid but unsupported . + public static EAssessmentResultTypeT3 CreateAssessmentResultTypeT3(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityCalculationResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentProbabilityCalculationResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentProbabilityCalculationResultType.None: + return EAssessmentResultTypeT3.Gr; + case TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT3.Fv; + case TailorMadeAssessmentProbabilityCalculationResultType.Probability: + return EAssessmentResultTypeT3.ResultSpecified; + case TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed: + return EAssessmentResultTypeT3.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the given . + /// + /// The tailor made assessment result to create the result for. + /// The created tailor made calculation result. + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid but unsupported . + public static EAssessmentResultTypeT4 CreateAssessmentResultTypeT4(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.None: + return EAssessmentResultTypeT4.Gr; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT4.Fv; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability: + return EAssessmentResultTypeT4.ResultSpecified; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Sufficient: + return EAssessmentResultTypeT4.V; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Insufficient: + return EAssessmentResultTypeT4.Vn; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.NotAssessed: + return EAssessmentResultTypeT4.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// /// Creates based on the given parameters. /// /// The tailor made assessment result to create Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs =================================================================== diff -u -r2c456961e1bdf241eddb652aaa1bc0029538ecf4 -r90ee5dda56b89051befda60df923e791c11fdfc4 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision 2c456961e1bdf241eddb652aaa1bc0029538ecf4) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision 90ee5dda56b89051befda60df923e791c11fdfc4) @@ -892,10 +892,10 @@ EAssessmentResultTypeT1 result = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT1(detailedAssessmentResult); // Assert - Assert.AreEqual(result, GetTailorMadeCalculationResult(detailedAssessmentResult)); + Assert.AreEqual(result, GetAssessmentResultTypeT1(detailedAssessmentResult)); } - private static EAssessmentResultTypeT1 GetTailorMadeCalculationResult(TailorMadeAssessmentResultType detailedAssessmentResult) + private static EAssessmentResultTypeT1 GetAssessmentResultTypeT1(TailorMadeAssessmentResultType detailedAssessmentResult) { switch (detailedAssessmentResult) { @@ -914,6 +914,97 @@ } } + [Test] + public void CreateAssessmentResultTypeT3_InvalidEnumInput_ThrowInvalidEnumArgumentException() + { + // Call + TestDelegate test = () => FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT3((TailorMadeAssessmentProbabilityCalculationResultType) 99); + + // Assert + string expectedMessage = $"The value of argument 'tailorMadeAssessmentResult' (99) is invalid for Enum type '{nameof(TailorMadeAssessmentProbabilityCalculationResultType)}'."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); + } + + [Test] + [TestCase(TailorMadeAssessmentProbabilityCalculationResultType.None)] + [TestCase(TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible)] + [TestCase(TailorMadeAssessmentProbabilityCalculationResultType.Probability)] + [TestCase(TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed)] + public void CreateAssessmentResultTypeT3_ValidInput_ReturnsTailorMadeCalculationResult(TailorMadeAssessmentProbabilityCalculationResultType detailedAssessmentResult) + { + // Call + EAssessmentResultTypeT3 result = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT3(detailedAssessmentResult); + + // Assert + Assert.AreEqual(result, GetAssessmentResultTypeT3(detailedAssessmentResult)); + } + + private static EAssessmentResultTypeT3 GetAssessmentResultTypeT3(TailorMadeAssessmentProbabilityCalculationResultType detailedAssessmentResult) + { + switch (detailedAssessmentResult) + { + case TailorMadeAssessmentProbabilityCalculationResultType.None: + return EAssessmentResultTypeT3.Gr; + case TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT3.Fv; + case TailorMadeAssessmentProbabilityCalculationResultType.Probability: + return EAssessmentResultTypeT3.ResultSpecified; + case TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed: + return EAssessmentResultTypeT3.Ngo; + default: + throw new NotSupportedException(); + } + } + + [Test] + public void CreateAssessmentResultTypeT4_InvalidEnumInput_ThrowInvalidEnumArgumentException() + { + // Call + TestDelegate test = () => FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT4((TailorMadeAssessmentProbabilityAndDetailedCalculationResultType) 99); + + // Assert + string expectedMessage = $"The value of argument 'tailorMadeAssessmentResult' (99) is invalid for Enum type '{nameof(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType)}'."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); + } + + [Test] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.None)] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.ProbabilityNegligible)] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability)] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Sufficient)] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Insufficient)] + [TestCase(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.NotAssessed)] + public void CreateAssessmentResultTypeT4_ValidInput_ReturnsTailorMadeCalculationResult( + TailorMadeAssessmentProbabilityAndDetailedCalculationResultType detailedAssessmentResult) + { + // Call + EAssessmentResultTypeT4 result = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT4(detailedAssessmentResult); + + // Assert + Assert.AreEqual(result, GetAssessmentResultTypeT4(detailedAssessmentResult)); + } + + private static EAssessmentResultTypeT4 GetAssessmentResultTypeT4(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType detailedAssessmentResult) + { + switch (detailedAssessmentResult) + { + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.None: + return EAssessmentResultTypeT4.Gr; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT4.Fv; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability: + return EAssessmentResultTypeT4.ResultSpecified; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Sufficient: + return EAssessmentResultTypeT4.V; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Insufficient: + return EAssessmentResultTypeT4.Vn; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.NotAssessed: + return EAssessmentResultTypeT4.Ngo; + default: + throw new NotSupportedException(); + } + } + #endregion } } \ No newline at end of file