Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs =================================================================== diff -u -r4fb11605ba89dbc4704a2a50493e810f2aa95850 -r0021d57d71421c62a6475e9c5be470babd7463ec --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 4fb11605ba89dbc4704a2a50493e810f2aa95850) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -62,80 +62,9 @@ private static IEnumerable> CreateExportableFailureMechanismsWithProbability(AssessmentSection assessmentSection) { var exportableFailureMechanisms = new List>(); - exportableFailureMechanisms.Add(CreateExportablePipingFailureMechanism(assessmentSection)); + exportableFailureMechanisms.Add(ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(assessmentSection.Piping, assessmentSection)); return exportableFailureMechanisms; } - - private static ExportableFailureMechanism CreateExportablePipingFailureMechanism(AssessmentSection assessmentSection) - { - FailureMechanismAssembly failureMechanismAssembly = PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism(assessmentSection.Piping, assessmentSection); - - Dictionary failureMechanismSectionsLookup = - assessmentSection.Piping - .SectionResults - .ToDictionary(s => s, sectionResult => CreateExportableFailureMechanismSection(sectionResult.Section)); - - return new ExportableFailureMechanism( - new ExportableFailureMechanismAssemblyResultWithProbability(ExportableAssemblyMethod.WBI1B1, - failureMechanismAssembly.Group, - failureMechanismAssembly.Probability), - failureMechanismSectionsLookup.Values, - CreateExportablePipingFailureMechanismSectionResults(failureMechanismSectionsLookup, assessmentSection), - ExportableFailureMechanismType.STPH, - ExportableFailureMechanismGroup.Group2); - } - - private static IEnumerable CreateExportablePipingFailureMechanismSectionResults( - Dictionary failureMechanismSections, - AssessmentSection assessmentSection) - { - PipingFailureMechanism pipingFailureMechanism = assessmentSection.Piping; - IEnumerable pipingCalculationScenarios = pipingFailureMechanism.Calculations.Cast(); - - var exportableResults = new List(); - foreach (KeyValuePair failureMechanismSectionPair in failureMechanismSections) - { - PipingFailureMechanismSectionResult failureMechanismSectionResult = failureMechanismSectionPair.Key; - FailureMechanismSectionAssembly simpleAssembly = - PipingFailureMechanismAssemblyFactory.AssembleSimpleAssessment(failureMechanismSectionResult); - - FailureMechanismSectionAssembly detailedAssembly = - PipingFailureMechanismAssemblyFactory.AssembleDetailedAssessment(failureMechanismSectionResult, - pipingCalculationScenarios, - pipingFailureMechanism, - assessmentSection); - FailureMechanismSectionAssembly tailorMadeAssembly = - PipingFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(failureMechanismSectionResult, - pipingFailureMechanism, - assessmentSection); - FailureMechanismSectionAssembly combinedAssembly = - PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment(failureMechanismSectionResult, - pipingCalculationScenarios, - pipingFailureMechanism, - assessmentSection); - - exportableResults.Add( - new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability( - failureMechanismSectionPair.Value, - CreateExportableSectionAssemblyResultWithProbability(simpleAssembly, ExportableAssemblyMethod.WBI0E1), - CreateExportableSectionAssemblyResultWithProbability(detailedAssembly, ExportableAssemblyMethod.WBI0G5), - CreateExportableSectionAssemblyResultWithProbability(tailorMadeAssembly, ExportableAssemblyMethod.WBI0T5), - CreateExportableSectionAssemblyResultWithProbability(combinedAssembly, ExportableAssemblyMethod.WBI1B1))); - } - - return exportableResults; - } - - private static ExportableSectionAssemblyResultWithProbability CreateExportableSectionAssemblyResultWithProbability(FailureMechanismSectionAssembly assembly, - ExportableAssemblyMethod exportableAssemblyMethod) - { - return new ExportableSectionAssemblyResultWithProbability(exportableAssemblyMethod, assembly.Group, assembly.Probability); - } - - private static ExportableFailureMechanismSection CreateExportableFailureMechanismSection(FailureMechanismSection failureMechanismSection) - { - return new ExportableFailureMechanismSection(failureMechanismSection.Points, double.NaN, double.NaN); - } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs =================================================================== diff -u --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs (revision 0) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Factories/ExportablePipingFailureMechanismFactory.cs (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Ringtoets.AssemblyTool.Data; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Exceptions; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Integration.IO.Assembly; +using Ringtoets.Piping.Data; + +namespace Ringtoets.Integration.IO.Factories +{ + /// + /// Factory to create instances of + /// with assembly results for piping. + /// + public static class ExportablePipingFailureMechanismFactory + { + /// + /// Creates a + /// with assmebly results based on the input parameters. + /// + /// The piping failure mechanism to create a + /// for. + /// The assessment section this failure mechanism belongs to. + /// A with assembly results. + /// Thrown when any parameter is null. + /// Thrown when assembly results cannot be created. + public static ExportableFailureMechanism CreateExportablePipingFailureMechanism( + PipingFailureMechanism pipingFailureMechanism, + IAssessmentSection assessmentSection) + { + FailureMechanismAssembly failureMechanismAssembly = PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism(pipingFailureMechanism, assessmentSection); + + Dictionary failureMechanismSectionsLookup = + pipingFailureMechanism.SectionResults + .ToDictionary(s => s, sectionResult => CreateExportableFailureMechanismSection(sectionResult.Section)); + + return new ExportableFailureMechanism( + new ExportableFailureMechanismAssemblyResultWithProbability(ExportableAssemblyMethod.WBI1B1, + failureMechanismAssembly.Group, + failureMechanismAssembly.Probability), + failureMechanismSectionsLookup.Values, CreateExportablePipingFailureMechanismSectionResults(failureMechanismSectionsLookup, + pipingFailureMechanism, assessmentSection), + ExportableFailureMechanismType.STPH, + ExportableFailureMechanismGroup.Group2); + } + + /// + /// Creates a collection of + /// with assembly results based on the sections in . + /// + /// The mapping between the + /// and + /// The piping failure mechanism the sections belong to. + /// The assessment section the sections belong to. + /// A collection of . + /// Thrown when assembly results cannot be created. + private static IEnumerable CreateExportablePipingFailureMechanismSectionResults( + Dictionary failureMechanismSections, + PipingFailureMechanism pipingFailureMechanism, + IAssessmentSection assessmentSection) + { + IEnumerable pipingCalculationScenarios = pipingFailureMechanism.Calculations.Cast(); + + var exportableResults = new List(); + foreach (KeyValuePair failureMechanismSectionPair in failureMechanismSections) + { + PipingFailureMechanismSectionResult failureMechanismSectionResult = failureMechanismSectionPair.Key; + FailureMechanismSectionAssembly simpleAssembly = + PipingFailureMechanismAssemblyFactory.AssembleSimpleAssessment(failureMechanismSectionResult); + + FailureMechanismSectionAssembly detailedAssembly = + PipingFailureMechanismAssemblyFactory.AssembleDetailedAssessment(failureMechanismSectionResult, + pipingCalculationScenarios, + pipingFailureMechanism, + assessmentSection); + FailureMechanismSectionAssembly tailorMadeAssembly = + PipingFailureMechanismAssemblyFactory.AssembleTailorMadeAssessment(failureMechanismSectionResult, + pipingFailureMechanism, + assessmentSection); + FailureMechanismSectionAssembly combinedAssembly = + PipingFailureMechanismAssemblyFactory.AssembleCombinedAssessment(failureMechanismSectionResult, + pipingCalculationScenarios, + pipingFailureMechanism, + assessmentSection); + + exportableResults.Add( + new ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability( + failureMechanismSectionPair.Value, + CreateExportableSectionAssemblyResultWithProbability(simpleAssembly, ExportableAssemblyMethod.WBI0E1), + CreateExportableSectionAssemblyResultWithProbability(detailedAssembly, ExportableAssemblyMethod.WBI0G5), + CreateExportableSectionAssemblyResultWithProbability(tailorMadeAssembly, ExportableAssemblyMethod.WBI0T5), + CreateExportableSectionAssemblyResultWithProbability(combinedAssembly, ExportableAssemblyMethod.WBI1B1))); + } + + return exportableResults; + } + + private static ExportableSectionAssemblyResultWithProbability CreateExportableSectionAssemblyResultWithProbability(FailureMechanismSectionAssembly assembly, + ExportableAssemblyMethod exportableAssemblyMethod) + { + return new ExportableSectionAssemblyResultWithProbability(exportableAssemblyMethod, assembly.Group, assembly.Probability); + } + + private static ExportableFailureMechanismSection CreateExportableFailureMechanismSection(FailureMechanismSection failureMechanismSection) + { + return new ExportableFailureMechanismSection(failureMechanismSection.Points, double.NaN, double.NaN); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj =================================================================== diff -u -r4fb11605ba89dbc4704a2a50493e810f2aa95850 -r0021d57d71421c62a6475e9c5be470babd7463ec --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision 4fb11605ba89dbc4704a2a50493e810f2aa95850) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -37,6 +37,7 @@ + Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs =================================================================== diff -u -r4fb11605ba89dbc4704a2a50493e810f2aa95850 -r0021d57d71421c62a6475e9c5be470babd7463ec --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 4fb11605ba89dbc4704a2a50493e810f2aa95850) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -4,7 +4,6 @@ using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Framework; -using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; @@ -59,7 +58,6 @@ var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorfactory.LastCreatedAssessmentSectionAssemblyCalculator; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; - FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call ExportableAssessmentSection exportableAssessmentSection = ExportableAssessmentSectionFactory.CreateExportableAssessmentSection(assessmentSection); @@ -78,15 +76,9 @@ Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Probability, piping.FailureMechanismAssembly.Probability); Assert.AreEqual(ExportableFailureMechanismType.STPH, piping.Code); Assert.AreEqual(ExportableFailureMechanismGroup.Group2, piping.Group); + Assert.AreEqual(assessmentSection.Piping.Sections.Count(), piping.Sections.Count()); + Assert.AreEqual(assessmentSection.Piping.SectionResults.Count(), piping.SectionAssemblyResults.Count()); - AssertExportableFailureMechanismSections(assessmentSection.Piping.Sections, piping.Sections); - AssertExportablePipingFailureMechanismSectionResults(failureMechanismSectionAssemblyCalculator.SimpleAssessmentAssemblyOutput, - failureMechanismSectionAssemblyCalculator.DetailedAssessmentAssemblyOutput, - failureMechanismSectionAssemblyCalculator.TailorMadeAssessmentAssemblyOutput, - failureMechanismSectionAssemblyCalculator.CombinedAssemblyOutput, - piping.Sections, - piping.SectionAssemblyResults.Cast()); - CollectionAssert.IsEmpty(exportableAssessmentSection.FailureMechanismsWithoutProbability); Assert.IsNotNull(exportableAssessmentSection.CombinedSectionAssemblyResults); } @@ -117,82 +109,6 @@ } } - private static void AssertExportableFailureMechanismSections(IEnumerable expectedSections, - IEnumerable actualSections) - { - int expectedNrOfSections = expectedSections.Count(); - Assert.AreEqual(expectedNrOfSections, actualSections.Count()); - for (var i = 0; i < expectedNrOfSections; i++) - { - FailureMechanismSection expectedSection = expectedSections.ElementAt(i); - ExportableFailureMechanismSection actualSection = actualSections.ElementAt(i); - - AssertExportableFailureMechanismSection(expectedSection, actualSection); - } - } - - private static void AssertExportableFailureMechanismSection(FailureMechanismSection expectedSection, - ExportableFailureMechanismSection actualSection) - { - Assert.IsNaN(actualSection.StartDistance); - Assert.IsNaN(actualSection.EndDistance); - CollectionAssert.AreEqual(expectedSection.Points, actualSection.Geometry); - } - - private static void AssertExportablePipingFailureMechanismSectionResults(FailureMechanismSectionAssembly expectedSimpleAssembly, - FailureMechanismSectionAssembly expectedDetailedAssembly, - FailureMechanismSectionAssembly expectedTailorMadeAssembly, - FailureMechanismSectionAssembly expectedCombinedAssembly, - IEnumerable sections, - IEnumerable results) - { - int expectedNrOfResults = sections.Count(); - Assert.AreEqual(expectedNrOfResults, results.Count()); - - for (var i = 0; i < expectedNrOfResults; i++) - { - ExportableFailureMechanismSection section = sections.ElementAt(i); - ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability result = results.ElementAt(i); - - AssertExportablePipingFailureMechanismSectionResult(expectedSimpleAssembly, - expectedDetailedAssembly, - expectedTailorMadeAssembly, - expectedCombinedAssembly, - section, - result); - } - } - - private static void AssertExportablePipingFailureMechanismSectionResult(FailureMechanismSectionAssembly expectedSimpleAssembly, - FailureMechanismSectionAssembly expectedDetailedAssembly, - FailureMechanismSectionAssembly expectedTailorMadeAssembly, - FailureMechanismSectionAssembly expectedCombinedAssembly, - ExportableFailureMechanismSection expectedSection, - ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability actualResult) - { - Assert.AreSame(expectedSection, actualResult.FailureMechanismSection); - - ExportableSectionAssemblyResultWithProbability actualSimpleAssembly = actualResult.SimpleAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI0E1, actualSimpleAssembly.AssemblyMethod); - Assert.AreEqual(expectedSimpleAssembly.Group, actualSimpleAssembly.AssemblyCategory); - Assert.AreEqual(expectedSimpleAssembly.Probability, actualSimpleAssembly.Probability); - - ExportableSectionAssemblyResultWithProbability actualDetailedAssembly = actualResult.DetailedAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI0G5, actualDetailedAssembly.AssemblyMethod); - Assert.AreEqual(expectedDetailedAssembly.Group, actualDetailedAssembly.AssemblyCategory); - Assert.AreEqual(expectedDetailedAssembly.Probability, actualDetailedAssembly.Probability); - - ExportableSectionAssemblyResultWithProbability actualTailorMadeAssembly = actualResult.TailorMadeAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI0T5, actualTailorMadeAssembly.AssemblyMethod); - Assert.AreEqual(expectedTailorMadeAssembly.Group, actualTailorMadeAssembly.AssemblyCategory); - Assert.AreEqual(expectedTailorMadeAssembly.Probability, actualTailorMadeAssembly.Probability); - - ExportableSectionAssemblyResultWithProbability actualCombinedResult = actualResult.CombinedAssembly; - Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, actualCombinedResult.AssemblyMethod); - Assert.AreEqual(expectedCombinedAssembly.Group, actualCombinedResult.AssemblyCategory); - Assert.AreEqual(expectedCombinedAssembly.Probability, actualCombinedResult.Probability); - } - private static void AddFailureMechanismSections(IFailureMechanism failureMechanism) { const int numberOfSections = 3; Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs =================================================================== diff -u --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs (revision 0) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Factories/ExportablePipingFailureMechanismFactoryTest.cs (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Core.Common.Base.Geometry; +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.AssemblyTool.Data; +using Ringtoets.AssemblyTool.KernelWrapper.Calculators; +using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators; +using Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly; +using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Integration.IO.Assembly; +using Ringtoets.Integration.IO.Factories; +using Ringtoets.Piping.Data; + +namespace Ringtoets.Integration.IO.Test.Factories +{ + [TestFixture] + public class ExportablePipingFailureMechanismFactoryTest + { + [Test] + public void CreateExportablePipingFailureMechanism_FailureMechanismNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + // Call + TestDelegate call = () => ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(null, + assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + + mocks.VerifyAll(); + } + + [Test] + public void CreateExportablePipingFailureMechanism_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(new PipingFailureMechanism(), + null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] + public void CreateExportablePipingFailureMechanism_WithValidArguments_ReturnsExportableFailureMechanism() + { + // Setup + var failureMechanism = new PipingFailureMechanism(); + AddFailureMechanismSections(failureMechanism); + + var assessmentSection = new AssessmentSectionStub(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; + FailureMechanismSectionAssemblyCalculatorStub failureMechanismSectionAssemblyCalculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + ExportableFailureMechanism assemblyResult = + ExportablePipingFailureMechanismFactory.CreateExportablePipingFailureMechanism(failureMechanism, assessmentSection); + + // Assert + Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Group, assemblyResult.FailureMechanismAssembly.AssemblyCategory); + Assert.AreEqual(failureMechanismAssemblyCalculator.FailureMechanismAssemblyOutput.Probability, assemblyResult.FailureMechanismAssembly.Probability); + Assert.AreEqual(ExportableFailureMechanismType.STPH, assemblyResult.Code); + Assert.AreEqual(ExportableFailureMechanismGroup.Group2, assemblyResult.Group); + + AssertExportableFailureMechanismSections(failureMechanism.Sections, assemblyResult.Sections); + AssertExportablePipingFailureMechanismSectionResults(failureMechanismSectionAssemblyCalculator.SimpleAssessmentAssemblyOutput, + failureMechanismSectionAssemblyCalculator.DetailedAssessmentAssemblyOutput, + failureMechanismSectionAssemblyCalculator.TailorMadeAssessmentAssemblyOutput, + failureMechanismSectionAssemblyCalculator.CombinedAssemblyOutput, + assemblyResult.Sections, + assemblyResult.SectionAssemblyResults.Cast()); + } + } + + private static void AssertExportableFailureMechanismSections(IEnumerable expectedSections, + IEnumerable actualSections) + { + int expectedNrOfSections = expectedSections.Count(); + Assert.AreEqual(expectedNrOfSections, actualSections.Count()); + for (var i = 0; i < expectedNrOfSections; i++) + { + FailureMechanismSection expectedSection = expectedSections.ElementAt(i); + ExportableFailureMechanismSection actualSection = actualSections.ElementAt(i); + + AssertExportableFailureMechanismSection(expectedSection, actualSection); + } + } + + private static void AssertExportableFailureMechanismSection(FailureMechanismSection expectedSection, + ExportableFailureMechanismSection actualSection) + { + Assert.IsNaN(actualSection.StartDistance); + Assert.IsNaN(actualSection.EndDistance); + CollectionAssert.AreEqual(expectedSection.Points, actualSection.Geometry); + } + + private static void AssertExportablePipingFailureMechanismSectionResults(FailureMechanismSectionAssembly expectedSimpleAssembly, + FailureMechanismSectionAssembly expectedDetailedAssembly, + FailureMechanismSectionAssembly expectedTailorMadeAssembly, + FailureMechanismSectionAssembly expectedCombinedAssembly, + IEnumerable sections, + IEnumerable results) + { + int expectedNrOfResults = sections.Count(); + Assert.AreEqual(expectedNrOfResults, results.Count()); + + for (var i = 0; i < expectedNrOfResults; i++) + { + ExportableFailureMechanismSection section = sections.ElementAt(i); + ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability result = results.ElementAt(i); + + AssertExportablePipingFailureMechanismSectionResult(expectedSimpleAssembly, + expectedDetailedAssembly, + expectedTailorMadeAssembly, + expectedCombinedAssembly, + section, + result); + } + } + + private static void AssertExportablePipingFailureMechanismSectionResult(FailureMechanismSectionAssembly expectedSimpleAssembly, + FailureMechanismSectionAssembly expectedDetailedAssembly, + FailureMechanismSectionAssembly expectedTailorMadeAssembly, + FailureMechanismSectionAssembly expectedCombinedAssembly, + ExportableFailureMechanismSection expectedSection, + ExportableAggregatedFailureMechanismSectionAssemblyResultWithProbability actualResult) + { + Assert.AreSame(expectedSection, actualResult.FailureMechanismSection); + + ExportableSectionAssemblyResultWithProbability actualSimpleAssembly = actualResult.SimpleAssembly; + Assert.AreEqual(ExportableAssemblyMethod.WBI0E1, actualSimpleAssembly.AssemblyMethod); + Assert.AreEqual(expectedSimpleAssembly.Group, actualSimpleAssembly.AssemblyCategory); + Assert.AreEqual(expectedSimpleAssembly.Probability, actualSimpleAssembly.Probability); + + ExportableSectionAssemblyResultWithProbability actualDetailedAssembly = actualResult.DetailedAssembly; + Assert.AreEqual(ExportableAssemblyMethod.WBI0G5, actualDetailedAssembly.AssemblyMethod); + Assert.AreEqual(expectedDetailedAssembly.Group, actualDetailedAssembly.AssemblyCategory); + Assert.AreEqual(expectedDetailedAssembly.Probability, actualDetailedAssembly.Probability); + + ExportableSectionAssemblyResultWithProbability actualTailorMadeAssembly = actualResult.TailorMadeAssembly; + Assert.AreEqual(ExportableAssemblyMethod.WBI0T5, actualTailorMadeAssembly.AssemblyMethod); + Assert.AreEqual(expectedTailorMadeAssembly.Group, actualTailorMadeAssembly.AssemblyCategory); + Assert.AreEqual(expectedTailorMadeAssembly.Probability, actualTailorMadeAssembly.Probability); + + ExportableSectionAssemblyResultWithProbability actualCombinedResult = actualResult.CombinedAssembly; + Assert.AreEqual(ExportableAssemblyMethod.WBI1B1, actualCombinedResult.AssemblyMethod); + Assert.AreEqual(expectedCombinedAssembly.Group, actualCombinedResult.AssemblyCategory); + Assert.AreEqual(expectedCombinedAssembly.Probability, actualCombinedResult.Probability); + } + + private static void AddFailureMechanismSections(IFailureMechanism failureMechanism) + { + const int numberOfSections = 3; + + var startPoint = new Point2D(-1, -1); + var endPoint = new Point2D(15, 15); + double endPointStepsX = (endPoint.X - startPoint.X) / numberOfSections; + double endPointStepsY = (endPoint.Y - startPoint.Y) / numberOfSections; + + var sections = new List(); + for (var i = 1; i <= numberOfSections; i++) + { + endPoint = new Point2D(startPoint.X + endPointStepsX, startPoint.Y + endPointStepsY); + sections.Add(new FailureMechanismSection(i.ToString(), + new[] + { + startPoint, + endPoint + })); + startPoint = endPoint; + } + + FailureMechanismTestHelper.SetSections(failureMechanism, sections); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj =================================================================== diff -u -r4fb11605ba89dbc4704a2a50493e810f2aa95850 -r0021d57d71421c62a6475e9c5be470babd7463ec --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision 4fb11605ba89dbc4704a2a50493e810f2aa95850) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision 0021d57d71421c62a6475e9c5be470babd7463ec) @@ -39,6 +39,7 @@ +