Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs =================================================================== diff -u -r508157dfe8615caaf50d75a9dd5d5b8c86e3ee81 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision 508157dfe8615caaf50d75a9dd5d5b8c86e3ee81) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStubTest.cs (.../FailureMechanismSectionAssemblyCalculatorStubTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -1111,8 +1111,8 @@ CreateAssemblyCategoriesInput()); // Assert - Assert.AreEqual(1.0, assembly.Probability); - Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.VIv, assembly.Group); + Assert.AreEqual(0.0, assembly.Probability); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.IIv, assembly.Group); } [Test] @@ -1189,8 +1189,8 @@ CreateAssemblyCategoriesInput()); // Assert - Assert.AreEqual(0.0, assembly.Probability); - Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.VIv, assembly.Group); + Assert.AreEqual(1.0, assembly.Probability); + Assert.AreEqual(FailureMechanismSectionAssemblyCategoryGroup.VIIv, assembly.Group); } [Test] Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs =================================================================== diff -u -r508157dfe8615caaf50d75a9dd5d5b8c86e3ee81 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision 508157dfe8615caaf50d75a9dd5d5b8c86e3ee81) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -447,11 +447,11 @@ throw new FailureMechanismSectionAssemblyCalculatorException("Message", new Exception()); } - DetailedAssessmentProbabilityInput = probability; + ManualAssemblyProbabilityInput = probability; AssemblyCategoriesInput = assemblyCategoriesInput; - return DetailedAssessmentAssemblyOutput ?? - (DetailedAssessmentAssemblyOutput = new FailureMechanismSectionAssembly(0, FailureMechanismSectionAssemblyCategoryGroup.VIv)); + return ManualAssemblyAssemblyOutput ?? + (ManualAssemblyAssemblyOutput = new FailureMechanismSectionAssembly(0, FailureMechanismSectionAssemblyCategoryGroup.IIv)); } public FailureMechanismSectionAssembly AssembleManual(double probability, double n, AssemblyCategoriesInput assemblyCategoriesInput) Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs (.../ClosingStructuresFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresFailureMechanismAssemblyFactory.cs (.../ClosingStructuresFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -25,9 +25,9 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; -using Ringtoets.Common.Primitives; namespace Ringtoets.ClosingStructures.Data { @@ -218,15 +218,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( ClosingStructuresFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -239,49 +237,76 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(ClosingStructuresFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (ClosingStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (ClosingStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(ClosingStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.GeneralInput.N, - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismAssemblyFactoryTest.cs (.../ClosingStructuresFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Data.Test/ClosingStructuresFailureMechanismAssemblyFactoryTest.cs (.../ClosingStructuresFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -676,7 +677,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new ClosingStructuresFailureMechanism(); @@ -700,51 +701,18 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = ClosingStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput( + failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new ClosingStructuresFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - ClosingStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = ClosingStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj =================================================================== diff -u -rda7bb9a6d96d7118d6dcdc2ee17a11d5b43f44c7 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision da7bb9a6d96d7118d6dcdc2ee17a11d5b43f44c7) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Ringtoets.Common.Data.csproj (.../Ringtoets.Common.Data.csproj) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -16,6 +16,7 @@ + Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Ringtoets.Common.Data.Test.csproj =================================================================== diff -u -rda7bb9a6d96d7118d6dcdc2ee17a11d5b43f44c7 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Ringtoets.Common.Data.Test.csproj (.../Ringtoets.Common.Data.Test.csproj) (revision da7bb9a6d96d7118d6dcdc2ee17a11d5b43f44c7) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Ringtoets.Common.Data.Test.csproj (.../Ringtoets.Common.Data.Test.csproj) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -20,6 +20,7 @@ + Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs (.../DuneErosionFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Data/DuneErosionFailureMechanismAssemblyFactory.cs (.../DuneErosionFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -174,33 +175,23 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (DuneErosionFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs (.../DuneErosionFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismAssemblyFactoryTest.cs (.../DuneErosionFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -427,7 +427,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -453,34 +453,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new DuneErosionFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - DuneErosionFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -25,9 +25,9 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; -using Ringtoets.Common.Primitives; namespace Ringtoets.GrassCoverErosionInwards.Data { @@ -220,15 +220,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( GrassCoverErosionInwardsFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -241,49 +239,76 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(GrassCoverErosionInwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(GrassCoverErosionInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.GeneralInput.N, - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -676,7 +677,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); @@ -700,51 +701,18 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput( + failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -175,40 +176,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (GrassCoverErosionOutwardsFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverErosionOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -427,7 +427,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -453,34 +453,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new GrassCoverErosionOutwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresFailureMechanismAssemblyFactory.cs (.../HeightStructuresFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -25,9 +25,9 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; -using Ringtoets.Common.Primitives; namespace Ringtoets.HeightStructures.Data { @@ -220,15 +220,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( HeightStructuresFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -241,49 +239,76 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(HeightStructuresFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (HeightStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (HeightStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(HeightStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.GeneralInput.N, - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismAssemblyFactoryTest.cs (.../HeightStructuresFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -676,7 +677,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new HeightStructuresFailureMechanism(); @@ -700,51 +701,18 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = HeightStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput( + failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new HeightStructuresFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - HeightStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = HeightStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -174,40 +175,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (GrassCoverSlipOffInwardsFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.cs (.../GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -174,40 +175,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (GrassCoverSlipOffOutwardsFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityOutwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityOutwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,10 +21,12 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.Probability; @@ -221,15 +223,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( MacroStabilityOutwardsFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -241,24 +241,17 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - var sectionAssemblies = new List(); - foreach (MacroStabilityOutwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism, - assessmentSection)); - } - } + IEnumerable sectionAssemblies = + failureMechanism.SectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult, + failureMechanism, + assessmentSection))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + try { return calculator.Assemble(sectionAssemblies); @@ -272,11 +265,10 @@ private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(MacroStabilityOutwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.MacroStabilityOutwardsProbabilityAssessmentInput.GetN( - failureMechanism.MacroStabilityOutwardsProbabilityAssessmentInput.SectionLength), - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.MacroStabilityOutwardsProbabilityAssessmentInput.GetN( + failureMechanism.MacroStabilityOutwardsProbabilityAssessmentInput.SectionLength), + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactory.cs (.../MicrostabilityFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactory.cs (.../MicrostabilityFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -174,40 +175,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (MicrostabilityFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactory.cs (.../PipingStructureFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactory.cs (.../PipingStructureFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -174,40 +175,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (PipingStructureFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -140,40 +141,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (StrengthStabilityLengthwiseConstructionFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactory.cs (.../TechnicalInnovationFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactory.cs (.../TechnicalInnovationFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -140,40 +141,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (TechnicalInnovationFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.cs (.../WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.cs (.../WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -140,40 +141,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (WaterPressureAsphaltCoverFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverSlipOffInwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffInwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverSlipOffInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -406,7 +406,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -432,34 +432,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new GrassCoverSlipOffInwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - GrassCoverSlipOffInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactoryTest.cs (.../GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -405,7 +405,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -431,34 +431,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new GrassCoverSlipOffOutwardsFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - GrassCoverSlipOffOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MacroStabilityOutwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityOutwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -677,7 +677,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new MacroStabilityOutwardsFailureMechanism(); @@ -701,49 +701,13 @@ assessmentSection); // Assert - Assert.AreEqual(failureMechanism.SectionResults.Single().ManualAssemblyCategoryGroup, + Assert.AreEqual(sectionResult.ManualAssemblyCategoryGroup, calculator.FailureMechanismSectionCategories.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new MacroStabilityOutwardsFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - MacroStabilityOutwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyCategoryGroup = true; - sectionResult.ManualAssemblyCategoryGroup = new Random(39).NextEnumValue(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - MacroStabilityOutwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactoryTest.cs (.../MicrostabilityFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/MicrostabilityFailureMechanismAssemblyFactoryTest.cs (.../MicrostabilityFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -406,7 +406,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -432,34 +432,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new MicrostabilityFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - MicrostabilityFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - MicrostabilityFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactoryTest.cs (.../PipingStructureFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/PipingStructureFailureMechanismAssemblyFactoryTest.cs (.../PipingStructureFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -406,7 +406,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -432,34 +432,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new PipingStructureFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - PipingStructureFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactoryTest.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactoryTest.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -326,7 +326,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -352,34 +352,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new StrengthStabilityLengthwiseConstructionFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - StrengthStabilityLengthwiseConstructionFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactoryTest.cs (.../TechnicalInnovationFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/TechnicalInnovationFailureMechanismAssemblyFactoryTest.cs (.../TechnicalInnovationFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -325,7 +325,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -351,34 +351,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new TechnicalInnovationFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - TechnicalInnovationFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - TechnicalInnovationFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactoryTest.cs (.../WaterPressureAsphaltCoverFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/StandAlone/AssemblyFactories/WaterPressureAsphaltCoverFailureMechanismAssemblyFactoryTest.cs (.../WaterPressureAsphaltCoverFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -325,7 +325,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -351,34 +351,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new WaterPressureAsphaltCoverFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - WaterPressureAsphaltCoverFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -26,10 +26,10 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.Probability; -using Ringtoets.Common.Primitives; namespace Ringtoets.MacroStabilityInwards.Data { @@ -238,15 +238,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( MacroStabilityInwardsFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -259,52 +257,81 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(MacroStabilityInwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (MacroStabilityInwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (MacroStabilityInwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(sectionResult.Section.Length), - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN( + sectionResult.Section.Length), + assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism.Calculations.Cast(), - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism.Calculations.Cast(), + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } - private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(MacroStabilityInwardsFailureMechanism failureMechanism, + private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(MacroStabilityInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN( - failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.SectionLength), - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN( + failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.SectionLength), + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -756,7 +757,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new MacroStabilityInwardsFailureMechanism(); @@ -780,53 +781,16 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - Enumerable.Empty(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual( + sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(0.0, failureMechanism, assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - MacroStabilityInwardsFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - Enumerable.Empty(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismAssemblyFactory.cs (.../PipingFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismAssemblyFactory.cs (.../PipingFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -26,10 +26,10 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.Probability; -using Ringtoets.Common.Primitives; namespace Ringtoets.Piping.Data { @@ -238,15 +238,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( PipingFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -259,52 +257,81 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(PipingFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (PipingFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (PipingFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - failureMechanism.PipingProbabilityAssessmentInput.GetN(sectionResult.Section.Length), - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + failureMechanism.PipingProbabilityAssessmentInput.GetN( + sectionResult.Section.Length), + assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism.Calculations.Cast(), - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism.Calculations.Cast(), + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.PipingProbabilityAssessmentInput.GetN( - failureMechanism.PipingProbabilityAssessmentInput.SectionLength), - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.PipingProbabilityAssessmentInput.GetN( + failureMechanism.PipingProbabilityAssessmentInput.SectionLength), + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -757,7 +758,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new PipingFailureMechanism(); @@ -781,53 +782,16 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - Enumerable.Empty(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual( + sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(0.0, failureMechanism, assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - PipingFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - Enumerable.Empty(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismAssemblyFactory.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -25,9 +25,9 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.Kernels; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; -using Ringtoets.Common.Primitives; namespace Ringtoets.StabilityPointStructures.Data { @@ -218,15 +218,13 @@ /// /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when any parameter is null. /// Thrown when the /// could not be created. public static FailureMechanismAssembly AssembleFailureMechanism( StabilityPointStructuresFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - bool considerManualAssembly = true) + IAssessmentSection assessmentSection) { if (failureMechanism == null) { @@ -239,49 +237,76 @@ } IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); + IEnumerable sectionAssemblies = AssembleSections(failureMechanism, + assessmentSection, + assemblyCategoriesInput); + + try + { + IFailureMechanismAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + } + catch (FailureMechanismAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } + + /// + /// Assembles the combined assembly for all sections in the . + /// + /// The failure mechanism to assemble for. + /// The the failure mechanism belongs to. + /// The object containing the input parameters for determining the assembly categories. + /// Thrown when a + /// could not be created. + /// A collection of all section assembly results. + private static IEnumerable AssembleSections(StabilityPointStructuresFailureMechanism failureMechanism, + IAssessmentSection assessmentSection, + AssemblyCategoriesInput assemblyCategoriesInput) + { + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismSectionAssemblyCalculator sectionCalculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); - AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); var sectionAssemblies = new List(); - try + foreach (StabilityPointStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) { - foreach (StabilityPointStructuresFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (sectionResult.UseManualAssemblyProbability) { - if (sectionResult.UseManualAssemblyProbability && considerManualAssembly) + try { - sectionAssemblies.Add(sectionCalculator.AssembleDetailedAssessment( - DetailedAssessmentProbabilityOnlyResultType.Probability, - sectionResult.ManualAssemblyProbability, - assemblyCategoriesInput)); + sectionAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, assemblyCategoriesInput); } - else + catch (FailureMechanismSectionAssemblyCalculatorException e) { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult, - failureMechanism, - assessmentSection)); + throw new AssemblyException(e.Message, e); } } + else + { + sectionAssembly = AssembleCombinedAssessment(sectionResult, + failureMechanism, + assessmentSection); + } - IFailureMechanismAssemblyCalculator calculator = - calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); - - return calculator.Assemble(sectionAssemblies, assemblyCategoriesInput); + sectionAssemblies.Add(sectionAssembly); } - catch (Exception e) when (e is FailureMechanismAssemblyCalculatorException || e is FailureMechanismSectionAssemblyCalculatorException) - { - throw new AssemblyException(e.Message, e); - } + + return sectionAssemblies; } private static AssemblyCategoriesInput CreateAssemblyCategoriesInput(StabilityPointStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { - return new AssemblyCategoriesInput(failureMechanism.GeneralInput.N, - failureMechanism.Contribution, - assessmentSection.FailureMechanismContribution.SignalingNorm, - assessmentSection.FailureMechanismContribution.LowerLimitNorm); + return AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection); } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -30,6 +30,7 @@ using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssemblyTool; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Exceptions; using Ringtoets.Common.Data.FailureMechanism; @@ -676,7 +677,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var failureMechanism = new StabilityPointStructuresFailureMechanism(); @@ -700,51 +701,18 @@ assessmentSection); // Assert - FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleDetailedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); + FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput( + failureMechanism.GeneralInput.N, + failureMechanism, + assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - failureMechanism.AddSection(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); - sectionResult.UseManualAssemblyProbability = true; - sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); - mocks.ReplayAll(); - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( - failureMechanism, - assessmentSection, - false); - - // Assert - FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( - failureMechanism.SectionResults.Single(), - failureMechanism, - assessmentSection); - AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); - mocks.VerifyAll(); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismAssemblyFactory.cs (.../StabilityStoneCoverFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismAssemblyFactory.cs (.../StabilityStoneCoverFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -175,40 +176,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (StabilityStoneCoverFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Data.Test/StabilityStoneCoverFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Data.Test/StabilityStoneCoverFailureMechanismAssemblyFactoryTest.cs (.../StabilityStoneCoverFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Data.Test/StabilityStoneCoverFailureMechanismAssemblyFactoryTest.cs (.../StabilityStoneCoverFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -427,7 +427,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -453,34 +453,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new StabilityStoneCoverFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.cs (.../WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.cs (.../WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; @@ -175,40 +176,30 @@ /// /// The failure mechanism section results to /// get the assembly for. - /// Indicator whether the manual assembly should be used in the assembly. /// A . /// Thrown when /// is null. /// Thrown when the /// could not be created. public static FailureMechanismAssemblyCategoryGroup AssembleFailureMechanism( - IEnumerable failureMechanismSectionResults, - bool considerManualAssembly = true) + IEnumerable failureMechanismSectionResults) { if (failureMechanismSectionResults == null) { throw new ArgumentNullException(nameof(failureMechanismSectionResults)); } - var sectionAssemblies = new List(); - foreach (WaveImpactAsphaltCoverFailureMechanismSectionResult sectionResult in failureMechanismSectionResults) - { - if (sectionResult.UseManualAssemblyCategoryGroup && considerManualAssembly) - { - sectionAssemblies.Add(sectionResult.ManualAssemblyCategoryGroup); - } - else - { - sectionAssemblies.Add(AssembleCombinedAssessment(sectionResult)); - } - } + IEnumerable sectionAssemblies = + failureMechanismSectionResults.Select(sectionResult => (sectionResult.UseManualAssemblyCategoryGroup + ? sectionResult.ManualAssemblyCategoryGroup + : AssembleCombinedAssessment(sectionResult))).ToArray(); IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; IFailureMechanismAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismAssemblyCalculator(AssemblyToolKernelFactory.Instance); try - { + { return calculator.Assemble(sectionAssemblies); } catch (FailureMechanismAssemblyCalculatorException e) Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rbbbfacd9e38cf43c98dba73e39694850fb932a66 -r76d5e546e8087c3cd169dd2e6bb04556d88eec87 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismAssemblyFactoryTest.cs (.../WaveImpactAsphaltCoverFailureMechanismAssemblyFactoryTest.cs) (revision bbbfacd9e38cf43c98dba73e39694850fb932a66) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismAssemblyFactoryTest.cs (.../WaveImpactAsphaltCoverFailureMechanismAssemblyFactoryTest.cs) (revision 76d5e546e8087c3cd169dd2e6bb04556d88eec87) @@ -427,7 +427,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyTrue_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() { // Setup var sectionResults = new[] @@ -453,34 +453,6 @@ } [Test] - public void AssembleFailureMechanism_WithManualInputConsiderManualAssemblyFalse_SetsInputOnCalculator() - { - // Setup - var sectionResults = new[] - { - new WaveImpactAsphaltCoverFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) - { - UseManualAssemblyCategoryGroup = true, - ManualAssemblyCategoryGroup = new Random(39).NextEnumValue() - } - }; - - using (new AssemblyToolCalculatorFactoryConfig()) - { - var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; - - // Call - WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism(sectionResults, false); - - // Assert - FailureMechanismSectionAssemblyCategoryGroup assemblyCategory = - WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleCombinedAssessment(sectionResults.Single()); - Assert.AreEqual(assemblyCategory, calculator.FailureMechanismSectionCategories.Single()); - } - } - - [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup