Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs =================================================================== diff -u -rac057bfc203ff382b76cc8f1fc370f8359321848 -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (.../AssessmentSectionAssemblyCalculator.cs) (revision ac057bfc203ff382b76cc8f1fc370f8359321848) +++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (.../AssessmentSectionAssemblyCalculator.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -94,7 +94,7 @@ } } - public IEnumerable AssembleCombinedFailureMechanismSections( + public CombinedFailureMechanismSectionAssemblyResultWrapper AssembleCombinedFailureMechanismSections( IEnumerable> input, double assessmentSectionLength) { if (input == null) @@ -117,7 +117,9 @@ IEnumerable combinedSectionResults = kernel.DetermineCombinedResultPerCommonSectionBoi3C1(failureMechanismResults, false); - return CombinedFailureMechanismSectionAssemblyCreator.Create(failureMechanismResults, combinedSectionResults); + return new CombinedFailureMechanismSectionAssemblyResultWrapper( + CombinedFailureMechanismSectionAssemblyCreator.Create(failureMechanismResults, combinedSectionResults), + AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); } catch (AssemblyException e) { Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs =================================================================== diff -u -r471224d51d3bab0b29df0f0cba10edb319b1a7ca -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (.../IAssessmentSectionAssemblyCalculator.cs) (revision 471224d51d3bab0b29df0f0cba10edb319b1a7ca) +++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (.../IAssessmentSectionAssemblyCalculator.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -49,11 +49,11 @@ /// /// The collection of failure mechanism section collections to assemble for. /// The length of the assessment section. - /// A collection of . + /// A representing the assembly results. /// Thrown when is null. /// Thrown when /// an error occurs while assembling. - IEnumerable AssembleCombinedFailureMechanismSections( + CombinedFailureMechanismSectionAssemblyResultWrapper AssembleCombinedFailureMechanismSections( IEnumerable> input, double assessmentSectionLength); } } \ No newline at end of file Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs =================================================================== diff -u -rac057bfc203ff382b76cc8f1fc370f8359321848 -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs (.../AssessmentSectionAssemblyCalculatorTest.cs) (revision ac057bfc203ff382b76cc8f1fc370f8359321848) +++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/AssessmentSectionAssemblyCalculatorTest.cs (.../AssessmentSectionAssemblyCalculatorTest.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -357,20 +357,23 @@ var calculator = new AssessmentSectionAssemblyCalculator(factory); // Call - CombinedFailureMechanismSectionAssembly[] output = calculator.AssembleCombinedFailureMechanismSections(new[] + CombinedFailureMechanismSectionAssemblyResultWrapper output = calculator.AssembleCombinedFailureMechanismSections(new[] { new[] { new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) } - }, random.NextDouble()).ToArray(); + }, random.NextDouble()); // Assert CombinedFailureMechanismSectionAssemblyKernelStub kernel = factory.LastCreatedCombinedFailureMechanismSectionAssemblyKernel; CombinedFailureMechanismSectionAssemblyAssert.AssertAssembly(new[] { kernel.FailureMechanismResult - }, kernel.CombinedSectionResults, output); + }, kernel.CombinedSectionResults, output.AssemblyResults); + Assert.AreEqual(AssemblyMethod.BOI3A1, output.CommonSectionAssemblyMethod); + Assert.AreEqual(AssemblyMethod.BOI3B1, output.FailureMechanismResultsAssemblyMethod); + Assert.AreEqual(AssemblyMethod.BOI3C1, output.CombinedSectionResultAssemblyMethod); } } @@ -393,13 +396,12 @@ // Call void Call() => calculator.AssembleCombinedFailureMechanismSections(new[] - { - new[] - { - new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) - } - }, random.NextDouble()) - .ToArray(); + { + new[] + { + new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) + } + }, random.NextDouble()); // Assert var exception = Assert.Throws(Call); @@ -425,13 +427,12 @@ // Call void Call() => calculator.AssembleCombinedFailureMechanismSections(new[] - { - new[] - { - new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) - } - }, random.NextDouble()) - .ToArray(); + { + new[] + { + new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) + } + }, random.NextDouble()); // Assert var exception = Assert.Throws(Call); @@ -457,13 +458,12 @@ // Call void Call() => calculator.AssembleCombinedFailureMechanismSections(new[] - { - new[] - { - new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) - } - }, random.NextDouble()) - .ToArray(); + { + new[] + { + new CombinedAssemblyFailureMechanismSection(0, 1, random.NextEnumValue()) + } + }, random.NextDouble()); // Assert var exception = Assert.Throws(Call); Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/AssessmentSectionAssemblyCalculatorStub.cs =================================================================== diff -u -rbc8755f429f1825e00a87aefdbb08c60ea580cab -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/AssessmentSectionAssemblyCalculatorStub.cs (.../AssessmentSectionAssemblyCalculatorStub.cs) (revision bc8755f429f1825e00a87aefdbb08c60ea580cab) +++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/AssessmentSectionAssemblyCalculatorStub.cs (.../AssessmentSectionAssemblyCalculatorStub.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -70,7 +70,7 @@ /// /// Gets or sets the output of the combined failure mechanism section assembly. /// - public IEnumerable CombinedFailureMechanismSectionAssemblyOutput { get; set; } + public CombinedFailureMechanismSectionAssemblyResultWrapper CombinedFailureMechanismSectionAssemblyOutput { get; set; } public AssessmentSectionAssemblyResultWrapper AssembleAssessmentSection(IEnumerable failureMechanismProbabilities, double maximumAllowableFloodingProbability, double signalFloodingProbability) { @@ -89,7 +89,7 @@ AssemblyMethod.BOI2A1, AssemblyMethod.BOI2A2)); } - public IEnumerable AssembleCombinedFailureMechanismSections( + public CombinedFailureMechanismSectionAssemblyResultWrapper AssembleCombinedFailureMechanismSections( IEnumerable> input, double assessmentSectionLength) { if (ThrowExceptionOnCalculate) @@ -100,13 +100,14 @@ CombinedFailureMechanismSectionsInput = input; AssessmentSectionLength = assessmentSectionLength; - return CombinedFailureMechanismSectionAssemblyOutput ?? (CombinedFailureMechanismSectionAssemblyOutput = new[] + return CombinedFailureMechanismSectionAssemblyOutput ?? (CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] { new CombinedFailureMechanismSectionAssembly( new CombinedAssemblyFailureMechanismSection( 0, 1, FailureMechanismSectionAssemblyGroup.Zero), input.Select(failureMechanism => FailureMechanismSectionAssemblyGroup.Dominant).ToArray()) - }); + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1)); } } } \ No newline at end of file Index: Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs =================================================================== diff -u -r471224d51d3bab0b29df0f0cba10edb319b1a7ca -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs (.../AssessmentSectionAssemblyFactory.cs) (revision 471224d51d3bab0b29df0f0cba10edb319b1a7ca) +++ Riskeer/Integration/src/Riskeer.Integration.Data/Assembly/AssessmentSectionAssemblyFactory.cs (.../AssessmentSectionAssemblyFactory.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -117,11 +117,11 @@ }) .ToDictionary(x => x.FailureMechanism, x => x.Index); - IEnumerable output = calculator.AssembleCombinedFailureMechanismSections( + CombinedFailureMechanismSectionAssemblyResultWrapper output = calculator.AssembleCombinedFailureMechanismSections( CombinedAssemblyFailureMechanismSectionFactory.CreateInput(assessmentSection, failureMechanismsToAssemble.Keys), assessmentSection.ReferenceLine.Length); - return CombinedFailureMechanismSectionAssemblyResultFactory.Create(output, failureMechanismsToAssemble, assessmentSection); + return CombinedFailureMechanismSectionAssemblyResultFactory.Create(output.AssemblyResults, failureMechanismsToAssemble, assessmentSection); } catch (AssessmentSectionAssemblyCalculatorException e) { Index: Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs =================================================================== diff -u -r471224d51d3bab0b29df0f0cba10edb319b1a7ca -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision 471224d51d3bab0b29df0f0cba10edb319b1a7ca) +++ Riskeer/Integration/test/Riskeer.Integration.Data.Test/Assembly/AssessmentSectionAssemblyFactoryTest.cs (.../AssessmentSectionAssemblyFactoryTest.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -216,11 +216,12 @@ { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; - calculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20), - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 21) - }; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20), + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 21) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); // Call CombinedFailureMechanismSectionAssemblyResult[] output = AssessmentSectionAssemblyFactory.AssembleCombinedPerFailureMechanismSection( @@ -238,7 +239,7 @@ }) .ToDictionary(x => x.FailureMechanism, x => x.Index); CombinedFailureMechanismSectionAssemblyResult[] expectedOutput = CombinedFailureMechanismSectionAssemblyResultFactory.Create( - calculator.CombinedFailureMechanismSectionAssemblyOutput, failureMechanisms, assessmentSection).ToArray(); + calculator.CombinedFailureMechanismSectionAssemblyOutput.AssemblyResults, failureMechanisms, assessmentSection).ToArray(); Assert.AreEqual(expectedOutput.Length, output.Length); for (var i = 0; i < expectedOutput.Length; i++) Index: Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Factories/AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs (.../AssessmentSectionAssemblyMapDataFeaturesFactoryTest.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -77,7 +77,8 @@ CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20), CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 21) }; - calculator.CombinedFailureMechanismSectionAssemblyOutput = failureMechanismSectionAssembly; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + failureMechanismSectionAssembly, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); // Call IEnumerable features = AssessmentSectionAssemblyMapDataFeaturesFactory.CreateCombinedFailureMechanismSectionAssemblyFeatures(assessmentSection); Index: Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs (.../AssemblyResultPerSectionMapViewTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/Integration/test/Riskeer.Integration.Forms.Test/Views/AssemblyResultPerSectionMapViewTest.cs (.../AssemblyResultPerSectionMapViewTest.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -147,7 +147,8 @@ { CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 21) }; - calculator.CombinedFailureMechanismSectionAssemblyOutput = failureMechanismSectionAssembly; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + failureMechanismSectionAssembly, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); using (var view = new AssemblyResultPerSectionMapView(assessmentSection)) { @@ -253,10 +254,11 @@ { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; - calculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 10) - }; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 10) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); using (var view = new AssemblyResultPerSectionMapView(assessmentSection)) { @@ -277,10 +279,11 @@ mapData.Collection.ElementAt(assemblyResultsIndex)); // When - calculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20) - }; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); IEnumerable failureMechanisms = assessmentSection.GetFailureMechanisms(); failureMechanisms.ElementAt(random.Next(failureMechanisms.Count())).NotifyObservers(); @@ -304,10 +307,11 @@ { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; - calculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 10) - }; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 10) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); using (var view = new AssemblyResultPerSectionMapView(assessmentSection)) { @@ -328,10 +332,11 @@ mapData.Collection.ElementAt(assemblyResultsIndex)); // When - calculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20) - }; + calculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + CombinedFailureMechanismSectionAssemblyTestFactory.Create(assessmentSection, 20) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); assessmentSection.NotifyObservers(); // Then Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -rbe7bc76ff670773f4c8ea10b943a0f3ac792efbf --- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs (.../AssemblyExporterTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Exporters/AssemblyExporterTest.cs (.../AssemblyExporterTest.cs) (revision be7bc76ff670773f4c8ea10b943a0f3ac792efbf) @@ -239,7 +239,8 @@ { var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; - assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = Array.Empty(); + assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + Array.Empty(), AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); fileDisposeHelper.LockFiles(); @@ -311,13 +312,14 @@ var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; - assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = new[] - { - new CombinedFailureMechanismSectionAssembly(new CombinedAssemblyFailureMechanismSection(0, 2.5, FailureMechanismSectionAssemblyGroup.II), - failureMechanisms.Select(fm => FailureMechanismSectionAssemblyGroup.II)), - new CombinedFailureMechanismSectionAssembly(new CombinedAssemblyFailureMechanismSection(2.5, 5, FailureMechanismSectionAssemblyGroup.III), - failureMechanisms.Select(fm => FailureMechanismSectionAssemblyGroup.III)) - }; + assessmentSectionAssemblyCalculator.CombinedFailureMechanismSectionAssemblyOutput = new CombinedFailureMechanismSectionAssemblyResultWrapper( + new[] + { + new CombinedFailureMechanismSectionAssembly(new CombinedAssemblyFailureMechanismSection(0, 2.5, FailureMechanismSectionAssemblyGroup.II), + failureMechanisms.Select(fm => FailureMechanismSectionAssemblyGroup.II)), + new CombinedFailureMechanismSectionAssembly(new CombinedAssemblyFailureMechanismSection(2.5, 5, FailureMechanismSectionAssemblyGroup.III), + failureMechanisms.Select(fm => FailureMechanismSectionAssemblyGroup.III)) + }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); } } } \ No newline at end of file