Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u -r65392dc8c1737c96dad4c997287a5d7a952b6f19 -rc848c6126c729cb3e4ce79cc121ba62758dbc0ff --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision 65392dc8c1737c96dad4c997287a5d7a952b6f19) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision c848c6126c729cb3e4ce79cc121ba62758dbc0ff) @@ -257,17 +257,18 @@ } } - public FailureMechanismSectionAssembly AssembleTailorMadeAssessment( - TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, - double probability, - AssemblyCategoriesInput assemblyCategoriesInput) + public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, + double probability, + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution) { try { ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); CategoriesList categories = categoriesKernel.CalculateFmSectionCategoryLimitsWbi02( - new AssessmentSection(1, assemblyCategoriesInput.SignalingNorm, assemblyCategoriesInput.LowerLimitNorm), - new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution)); + normativeNorm, + new FailureMechanism(failureMechanismN, failureMechanismContribution)); IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0T7( Index: Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u -r7c20988fe416b2cbc8931f92ca0ce6d93774a8e4 -rc848c6126c729cb3e4ce79cc121ba62758dbc0ff --- Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (.../IFailureMechanismSectionAssemblyCalculator.cs) (revision 7c20988fe416b2cbc8931f92ca0ce6d93774a8e4) +++ Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (.../IFailureMechanismSectionAssemblyCalculator.cs) (revision c848c6126c729cb3e4ce79cc121ba62758dbc0ff) @@ -129,13 +129,17 @@ /// The /// to assemble for. /// The probability to calculate with. - /// The input parameters used to determine the assembly categories. + /// The norm which has been defined on the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The contribution of a failure mechanism. /// A . /// Thrown when /// an error occurs while assembling. FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, double probability, - AssemblyCategoriesInput assemblyCategoriesInput); + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution); /// /// Assembles the tailor made assessment based on the input parameters. Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs =================================================================== diff -u -r65392dc8c1737c96dad4c997287a5d7a952b6f19 -rc848c6126c729cb3e4ce79cc121ba62758dbc0ff --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision 65392dc8c1737c96dad4c997287a5d7a952b6f19) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision c848c6126c729cb3e4ce79cc121ba62758dbc0ff) @@ -1324,7 +1324,9 @@ TestDelegate test = () => calculator.AssembleTailorMadeAssessment( (TailorMadeAssessmentProbabilityAndDetailedCalculationResultType) 99, random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert var exception = Assert.Throws(test); @@ -1340,24 +1342,33 @@ var random = new Random(39); var tailorMadeAssessmentResult = random.NextEnumValue(); double probability = random.NextDouble(); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(); + double normativeNorm = random.NextDouble(); + double n = random.NextDouble(); + double failureMechanismContribution = random.NextDouble(); using (new AssemblyToolKernelFactoryConfig()) { var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; + AssemblyCategoriesKernelStub categoriesKernel = factory.LastCreatedAssemblyCategoriesKernel; + categoriesKernel.FailureMechanismSectionCategoriesOutputWbi02 = CategoriesListTestFactory.CreateFailureMechanismSectionCategories(); + FailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; kernel.FailureMechanismSectionDirectResult = new FmSectionAssemblyDirectResult(random.NextEnumValue()); var calculator = new FailureMechanismSectionAssemblyCalculator(factory); // Call - calculator.AssembleTailorMadeAssessment(tailorMadeAssessmentResult, probability, assemblyCategoriesInput); + calculator.AssembleTailorMadeAssessment(tailorMadeAssessmentResult, probability, normativeNorm, n, failureMechanismContribution); // Assert + Assert.AreEqual(normativeNorm, categoriesKernel.AssessmentSectionNorm); + Assert.AreEqual(n, categoriesKernel.N); + Assert.AreEqual(failureMechanismContribution, categoriesKernel.FailureMechanismContribution); + + Assert.AreSame(categoriesKernel.FailureMechanismSectionCategoriesOutputWbi02, kernel.FailureMechanismSectionCategories); EAssessmentResultTypeT4 expectedResultType = FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT4(tailorMadeAssessmentResult); Assert.AreEqual(expectedResultType, kernel.AssessmentResultTypeT4Input); Assert.AreEqual(probability, kernel.FailureProbabilityInput); - AssertAssemblyCategoriesInput(assemblyCategoriesInput, kernel); } } @@ -1366,7 +1377,9 @@ { // Setup var random = new Random(39); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(); + double normativeNorm = random.NextDouble(); + double n = random.NextDouble(); + double failureMechanismContribution = random.NextDouble(); using (new AssemblyToolKernelFactoryConfig()) { @@ -1382,15 +1395,18 @@ // Call calculator.AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability, double.NaN, - assemblyCategoriesInput); + normativeNorm, + n, + failureMechanismContribution); // Assert + Assert.AreEqual(normativeNorm, categoriesKernel.AssessmentSectionNorm); + Assert.AreEqual(n, categoriesKernel.N); + Assert.AreEqual(failureMechanismContribution, categoriesKernel.FailureMechanismContribution); + + Assert.AreSame(categoriesKernel.FailureMechanismSectionCategoriesOutputWbi02, kernel.FailureMechanismSectionCategories); Assert.AreEqual(EAssessmentResultTypeT4.Gr, kernel.AssessmentResultTypeT4Input); Assert.IsNaN(kernel.FailureProbabilityInput); - AssertAssemblyCategoriesInput(assemblyCategoriesInput, - categoriesKernel, - categoriesKernel.FailureMechanismSectionCategoriesOutputWbi02, - kernel); } } @@ -1411,7 +1427,9 @@ FailureMechanismSectionAssembly assembly = calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert AssertCalculatorOutput(kernel.FailureMechanismSectionDirectResult, assembly); @@ -1435,7 +1453,9 @@ TestDelegate test = () => calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert var exception = Assert.Throws(test); @@ -1461,7 +1481,9 @@ TestDelegate test = () => calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert var exception = Assert.Throws(test); @@ -1487,7 +1509,9 @@ TestDelegate test = () => calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert var exception = Assert.Throws(test); Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs =================================================================== diff -u -re12bddac63f27d4d1d8cfa165961bc2d2dc9a37e -rc848c6126c729cb3e4ce79cc121ba62758dbc0ff --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision e12bddac63f27d4d1d8cfa165961bc2d2dc9a37e) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision c848c6126c729cb3e4ce79cc121ba62758dbc0ff) @@ -635,7 +635,9 @@ FailureMechanismSectionAssembly assembly = calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert Assert.AreEqual(1.0, assembly.Probability); @@ -658,7 +660,9 @@ FailureMechanismSectionAssembly assembly = calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert Assert.AreSame(calculator.TailorMadeAssessmentAssemblyOutput, assembly); @@ -669,19 +673,23 @@ { // Setup var random = new Random(39); - double probability = random.NextDouble(); var tailorMadeAssessmentResult = random.NextEnumValue(); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(); + double probability = random.NextDouble(); + double normativeNorm = random.NextDouble(); + double n = random.NextDouble(); + double failureMechanismContribution = random.NextDouble(); var calculator = new FailureMechanismSectionAssemblyCalculatorStub(); // Call - calculator.AssembleTailorMadeAssessment(tailorMadeAssessmentResult, probability, assemblyCategoriesInput); + calculator.AssembleTailorMadeAssessment(tailorMadeAssessmentResult, probability, normativeNorm, n, failureMechanismContribution); // Assert Assert.AreEqual(tailorMadeAssessmentResult, calculator.TailorMadeAssessmentProbabilityAndDetailedCalculationResultInput); Assert.AreEqual(probability, calculator.TailorMadeAssessmentProbabilityInput); - Assert.AreSame(assemblyCategoriesInput, calculator.AssemblyCategoriesInput); + Assert.AreEqual(normativeNorm, calculator.TailorMadeNormativeNormInput); + Assert.AreEqual(n, calculator.TailorMadeFailureMechanismNInput); + Assert.AreEqual(failureMechanismContribution, calculator.TailorMadeFailureMechanismContributionInput); } [Test] @@ -698,7 +706,9 @@ TestDelegate test = () => calculator.AssembleTailorMadeAssessment( random.NextEnumValue(), random.NextDouble(), - CreateAssemblyCategoriesInput()); + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); // Assert var exception = Assert.Throws(test); Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs =================================================================== diff -u -rd3ed011cd5b51ca857bd009072f0ce7c8e73dc01 -rc848c6126c729cb3e4ce79cc121ba62758dbc0ff --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision d3ed011cd5b51ca857bd009072f0ce7c8e73dc01) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision c848c6126c729cb3e4ce79cc121ba62758dbc0ff) @@ -127,11 +127,26 @@ public double TailorMadeAssessmentProbabilityInput { get; private set; } /// - /// Gets the 'N' parameter input of the tailor made assessment calculation. + /// Gets the 'N' parameter of a failure mechanism section input of the tailor made assessment calculation. /// public double TailorMadeAssessmentFailureMechanismSectionNInput { get; private set; } /// + /// Gets the normative norm input of the tailor made assessment calculation. + /// + public double TailorMadeNormativeNormInput { get; private set; } + + /// + /// Gets the 'N' parameter of a failure mechanism input of the tailor made assessment calculation. + /// + public double TailorMadeFailureMechanismNInput { get; private set; } + + /// + /// Gets the failure mechanism contribution input of the tailor made assessment calculation. + /// + public double TailorMadeFailureMechanismContributionInput { get; private set; } + + /// /// Gets the result type of the tailor made assessment calculation with a category group. /// public TailorMadeAssessmentCategoryGroupResultType TailorMadeAssessmentCategoryGroupResultInput { get; private set; } @@ -335,7 +350,9 @@ public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, double probability, - AssemblyCategoriesInput assemblyCategoriesInput) + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution) { if (ThrowExceptionOnCalculate) { @@ -344,7 +361,9 @@ TailorMadeAssessmentProbabilityAndDetailedCalculationResultInput = tailorMadeAssessmentResult; TailorMadeAssessmentProbabilityInput = probability; - AssemblyCategoriesInput = assemblyCategoriesInput; + TailorMadeNormativeNormInput = normativeNorm; + TailorMadeFailureMechanismNInput = failureMechanismN; + TailorMadeFailureMechanismContributionInput = failureMechanismContribution; return TailorMadeAssessmentAssemblyOutput ?? (TailorMadeAssessmentAssemblyOutput = new FailureMechanismSectionAssembly(1, FailureMechanismSectionAssemblyCategoryGroup.VIv));