Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs =================================================================== diff -u -rc64583d0bc73943162633d5517fa94e5e1557c8f -r1009ca099277a90b51061d2ec2de700a9ebc772c --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision c64583d0bc73943162633d5517fa94e5e1557c8f) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision 1009ca099277a90b51061d2ec2de700a9ebc772c) @@ -484,18 +484,22 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; var calculator = new FailureMechanismSectionAssemblyCalculator(factory); + FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); // Call TestDelegate test = () => calculator.AssembleDetailedAssessment( (DetailedAssessmentProbabilityOnlyResultType) 99, random.NextDouble(), - new AssessmentSection(random.NextDouble(), random.NextDouble(0.5, 0.9), random.NextDouble(0.0, 0.4)), - new FailureMechanism(random.NextDouble(), random.NextDouble())); + new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.5), random.NextDouble(0.5, 1.0)), + new FailureMechanism(random.NextDouble(1, 5), random.NextDouble())); // Assert - string expectedMessage = $"The value of argument 'detailedAssessmentResult' (99) is invalid for Enum type '{nameof(DetailedAssessmentProbabilityOnlyResultType)}'."; - string parameterName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage).ParamName; - Assert.AreEqual("detailedAssessmentResult", parameterName); + var exception = Assert.Throws(test); + Exception innerException = exception.InnerException; + Assert.IsInstanceOf(innerException); + Assert.AreEqual(innerException.Message, exception.Message); } } @@ -541,19 +545,20 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Iv); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); // Call FailureMechanismSectionAssembly assembly = calculator.AssembleDetailedAssessment( random.NextEnumValue(), random.NextDouble(), - new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.4), random.NextDouble(0.5, 0.9)), + new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.5), random.NextDouble(0.5, 1.0)), new FailureMechanism(random.NextDouble(1, 5), random.NextDouble())); // Assert - AssertCalculatorOutput(kernel.DetailedAssessmentResultInput, assembly); + AssertCalculatorOutput(kernel.FailureMechanismSectionDirectResult, assembly); } } @@ -566,7 +571,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99, + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -628,13 +634,14 @@ (DetailedAssessmentProbabilityOnlyResultType) 99, random.NextDouble(), random.NextDouble(), - new AssessmentSection(random.NextDouble(), random.NextDouble(0.5, 0.9), random.NextDouble(0.0, 0.4)), - new FailureMechanism(random.NextDouble(), random.NextDouble())); + new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.5), random.NextDouble(0.5, 1.0)), + new FailureMechanism(random.NextDouble(1, 5), random.NextDouble())); // Assert - string expectedMessage = $"The value of argument 'detailedAssessmentResult' (99) is invalid for Enum type '{nameof(DetailedAssessmentProbabilityOnlyResultType)}'."; - string parameterName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage).ParamName; - Assert.AreEqual("detailedAssessmentResult", parameterName); + var exception = Assert.Throws(test); + Exception innerException = exception.InnerException; + Assert.IsInstanceOf(innerException); + Assert.AreEqual(innerException.Message, exception.Message); } } @@ -647,13 +654,15 @@ double n = random.NextDouble(); var detailedAssessment = random.NextEnumValue(); - var assessmentSection = new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.4), random.NextDouble(0.5, 0.9)); + var assessmentSection = new AssessmentSection(random.NextDouble(), random.NextDouble(0.0, 0.5), random.NextDouble(0.5, 1.0)); var failureMechanism = new FailureMechanism(random.NextDouble(1, 5), random.NextDouble()); using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -667,7 +676,7 @@ // Assert Assert.AreEqual(probability, kernel.FailureProbabilityInput); - Assert.AreEqual(probability, kernel.LengthEffectFactorInput); + Assert.AreEqual(n, kernel.LengthEffectFactorInput); Assert.AreEqual(GetAssessmentResultTypeG2(detailedAssessment), kernel.AssessmentResultTypeG2Input); Assert.AreSame(assessmentSection, kernel.AssessmentSectionInput); Assert.AreSame(failureMechanism, kernel.FailureMechanismInput); @@ -683,7 +692,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(EFmSectionCategory.Iv); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -696,7 +706,7 @@ new FailureMechanism(random.NextDouble(1, 5), random.NextDouble())); // Assert - AssertCalculatorOutput(kernel.DetailedAssessmentResultInput, assembly); + AssertCalculatorOutput(kernel.FailureMechanismSectionDirectResult, assembly); } } @@ -709,7 +719,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99, + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -799,6 +810,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -811,11 +824,11 @@ // Assert Dictionary results = kernel.CategoryCompliancyResultsInput.GetCompliancyResults(); - Assert.AreEqual(results[EFmSectionCategory.Iv], GetAssessmentResultTypeG1(detailedAssessmentResultForFactorizedSignalingNorm)); - Assert.AreEqual(results[EFmSectionCategory.IIv], GetAssessmentResultTypeG1(detailedAssessmentResultForSignalingNorm)); - Assert.AreEqual(results[EFmSectionCategory.IIIv], GetAssessmentResultTypeG1(detailedAssessmentResultForMechanismSpecificLowerLimitNorm)); - Assert.AreEqual(results[EFmSectionCategory.IVv], GetAssessmentResultTypeG1(detailedAssessmentResultForLowerLimitNorm)); - Assert.AreEqual(results[EFmSectionCategory.Vv], GetAssessmentResultTypeG1(detailedAssessmentResultForFactorizedLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.Iv], GetCategoryCompliance(detailedAssessmentResultForFactorizedSignalingNorm)); + Assert.AreEqual(results[EFmSectionCategory.IIv], GetCategoryCompliance(detailedAssessmentResultForSignalingNorm)); + Assert.AreEqual(results[EFmSectionCategory.IIIv], GetCategoryCompliance(detailedAssessmentResultForMechanismSpecificLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.IVv], GetCategoryCompliance(detailedAssessmentResultForLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.Vv], GetCategoryCompliance(detailedAssessmentResultForFactorizedLowerLimitNorm)); } } @@ -939,6 +952,23 @@ } } + private static ECategoryCompliancy GetCategoryCompliance(DetailedAssessmentResultType detailedAssessmentResult) + { + switch (detailedAssessmentResult) + { + case DetailedAssessmentResultType.None: + return ECategoryCompliancy.NoResult; + case DetailedAssessmentResultType.Sufficient: + return ECategoryCompliancy.Complies; + case DetailedAssessmentResultType.Insufficient: + return ECategoryCompliancy.DoesNotComply; + case DetailedAssessmentResultType.NotAssessed: + return ECategoryCompliancy.Ngo; + default: + throw new NotSupportedException(); + } + } + #endregion #region Tailor Made Assessment @@ -1106,7 +1136,7 @@ calculator.AssembleTailorMadeAssessment(tailorMadeAssessmentResult, probability, assessmentSection, failureMechanism); // Assert - Assert.AreEqual(GetAssessmentResultTypeT4(tailorMadeAssessmentResult), kernel.AssessmentResultTypeT4Input); + //Assert.AreEqual(GetAssessmentResultTypeT4(tailorMadeAssessmentResult), kernel.AssessmentResultTypeT4Input); Assert.AreEqual(probability, kernel.FailureProbabilityInput); Assert.AreSame(assessmentSection, kernel.AssessmentSectionInput); Assert.AreSame(failureMechanism, kernel.FailureMechanismInput); @@ -1684,6 +1714,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -1707,7 +1739,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue()); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -1732,7 +1765,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99); + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult((EFmSectionCategory) 99, + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); @@ -1815,6 +1849,8 @@ { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; + kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue(), + random.NextDouble()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyCategoryCreatorTest.cs =================================================================== diff -u -rb82f25d8b29f8e35766758d4c71851d32833f65b -r1009ca099277a90b51061d2ec2de700a9ebc772c --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyCategoryCreatorTest.cs (.../AssemblyCategoryCreatorTest.cs) (revision b82f25d8b29f8e35766758d4c71851d32833f65b) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/AssemblyCategoryCreatorTest.cs (.../AssemblyCategoryCreatorTest.cs) (revision 1009ca099277a90b51061d2ec2de700a9ebc772c) @@ -70,7 +70,7 @@ } [Test] - public void CreateAssessmentSectionAssemblyCategories_CategoryWithInvalidAssessmentSectionAssemblyCategory_ThrowsInvalidEnumArgumentException() + public void CreateAssessmentSectionAssemblyCategories_CategoryWithInvalidAssessmentGrade_ThrowsInvalidEnumArgumentException() { // Setup var output = new[] @@ -82,7 +82,7 @@ TestDelegate test = () => AssemblyCategoryCreator.CreateAssessmentSectionAssemblyCategories(output); // Assert - const string exceptionMessage = "The value of argument 'category' (99) is invalid for Enum type 'AssessmentSectionCategoryGroup'."; + const string exceptionMessage = "The value of argument 'category' (99) is invalid for Enum type 'EAssessmentGrade'."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, exceptionMessage); } @@ -145,7 +145,7 @@ } [Test] - public void CreateFailureMechanismSectionAssemblyCategories_CategoryWithInvalidFailureMechanismSectionAssemblyCategory_ThrowsInvalidEnumArgumentException() + public void CreateFailureMechanismSectionAssemblyCategories_CategoryWithInvalidFailureMechanismSectionCategory_ThrowsInvalidEnumArgumentException() { // Setup var output = new[] @@ -157,7 +157,7 @@ TestDelegate test = () => AssemblyCategoryCreator.CreateFailureMechanismSectionAssemblyCategories(output); // Assert - const string exceptionMessage = "The value of argument 'category' (99) is invalid for Enum type 'FailureMechanismSectionCategoryGroup'."; + const string exceptionMessage = "The value of argument 'category' (99) is invalid for Enum type 'EFmSectionCategory'."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, exceptionMessage); } Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs =================================================================== diff -u -rc64583d0bc73943162633d5517fa94e5e1557c8f -r1009ca099277a90b51061d2ec2de700a9ebc772c --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision c64583d0bc73943162633d5517fa94e5e1557c8f) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorInputCreatorTest.cs) (revision 1009ca099277a90b51061d2ec2de700a9ebc772c) @@ -138,11 +138,11 @@ // Assert Dictionary results = result.GetCompliancyResults(); - Assert.AreEqual(results[EFmSectionCategory.Iv], GetAssessmentResultTypeG1(detailedAssessmentResultForFactorizedSignalingNorm)); - Assert.AreEqual(results[EFmSectionCategory.IIv], GetAssessmentResultTypeG1(detailedAssessmentResultForSignalingNorm)); - Assert.AreEqual(results[EFmSectionCategory.IIIv], GetAssessmentResultTypeG1(detailedAssessmentResultForMechanismSpecificLowerLimitNorm)); - Assert.AreEqual(results[EFmSectionCategory.IVv], GetAssessmentResultTypeG1(detailedAssessmentResultForLowerLimitNorm)); - Assert.AreEqual(results[EFmSectionCategory.Vv], GetAssessmentResultTypeG1(detailedAssessmentResultForFactorizedLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.Iv], GetCategoryCompliance(detailedAssessmentResultForFactorizedSignalingNorm)); + Assert.AreEqual(results[EFmSectionCategory.IIv], GetCategoryCompliance(detailedAssessmentResultForSignalingNorm)); + Assert.AreEqual(results[EFmSectionCategory.IIIv], GetCategoryCompliance(detailedAssessmentResultForMechanismSpecificLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.IVv], GetCategoryCompliance(detailedAssessmentResultForLowerLimitNorm)); + Assert.AreEqual(results[EFmSectionCategory.Vv], GetCategoryCompliance(detailedAssessmentResultForFactorizedLowerLimitNorm)); } [Test] @@ -258,6 +258,23 @@ } } + private static ECategoryCompliancy GetCategoryCompliance(DetailedAssessmentResultType detailedAssessmentResult) + { + switch (detailedAssessmentResult) + { + case DetailedAssessmentResultType.None: + return ECategoryCompliancy.NoResult; + case DetailedAssessmentResultType.Sufficient: + return ECategoryCompliancy.Complies; + case DetailedAssessmentResultType.Insufficient: + return ECategoryCompliancy.DoesNotComply; + case DetailedAssessmentResultType.NotAssessed: + return ECategoryCompliancy.Ngo; + default: + throw new NotSupportedException(); + } + } + #endregion #region Failure Mechanism Section Assembly @@ -327,11 +344,12 @@ EFmSectionCategory expectedGroup) { // Call - FmSectionAssemblyDirectResult actualGroup = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult( + FmSectionAssemblyDirectResult actualResult = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult( originalGroup); // Assert - Assert.AreEqual(expectedGroup, actualGroup); + Assert.AreEqual(expectedGroup, actualResult.Result); + Assert.IsNull(actualResult.FailureProbability); } [Test]