Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/CombinedAssemblyFailureMechanismInputFactory.cs =================================================================== diff -u -r1046921a24c7d047235317c67656befadef30cf9 -rc1220f5afd9d51169dddcca4e190247713be068b --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/CombinedAssemblyFailureMechanismInputFactory.cs (.../CombinedAssemblyFailureMechanismInputFactory.cs) (revision 1046921a24c7d047235317c67656befadef30cf9) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Assembly/CombinedAssemblyFailureMechanismInputFactory.cs (.../CombinedAssemblyFailureMechanismInputFactory.cs) (revision c1220f5afd9d51169dddcca4e190247713be068b) @@ -22,11 +22,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Core.Common.Base.Geometry; using Ringtoets.AssemblyTool.Data; -using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.Probability; +using Ringtoets.GrassCoverErosionInwards.Data; using Ringtoets.Piping.Data; namespace Ringtoets.Integration.Data.Assembly @@ -57,8 +56,8 @@ } var inputs = new List(); - PipingFailureMechanism pipingFailureMechanism = assessmentSection.Piping; + PipingFailureMechanism pipingFailureMechanism = assessmentSection.Piping; if (failureMechanisms.Contains(pipingFailureMechanism)) { inputs.Add(CreateCombinedAssemblyFailureMechanismInputItem(fm => fm.PipingProbabilityAssessmentInput.GetN( @@ -69,16 +68,17 @@ .ToArray())); } - return inputs; - } - - private static Func PipingAssemblyFunc - { - get + GrassCoverErosionInwardsFailureMechanism grassInwardsFailureMechanism = assessmentSection.GrassCoverErosionInwards; + if (failureMechanisms.Contains(grassInwardsFailureMechanism)) { - return (sectionResult, assessmentSection) => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( - sectionResult, assessmentSection.Piping, assessmentSection); + inputs.Add(CreateCombinedAssemblyFailureMechanismInputItem(fm => fm.GeneralInput.N, + grassInwardsFailureMechanism, + CreateCombinedSections(grassInwardsFailureMechanism.SectionResults, + assessmentSection, GrassCoverErosionInwardsAssemblyFunc) + .ToArray())); } + + return inputs; } private static CombinedAssemblyFailureMechanismInput CreateCombinedAssemblyFailureMechanismInputItem( @@ -112,5 +112,27 @@ return combinedSections.ToArray(); } + + #region Assembly Funcs + + private static Func PipingAssemblyFunc + { + get + { + return (sectionResult, assessmentSection) => PipingFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, assessmentSection.Piping, assessmentSection); + } + } + + private static Func GrassCoverErosionInwardsAssemblyFunc + { + get + { + return (sectionResult, assessmentSection) => GrassCoverErosionInwardsFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, assessmentSection.GrassCoverErosionInwards, assessmentSection); + } + } + + #endregion } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismInputFactoryTest.cs =================================================================== diff -u -r1046921a24c7d047235317c67656befadef30cf9 -rc1220f5afd9d51169dddcca4e190247713be068b --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismInputFactoryTest.cs (.../CombinedAssemblyFailureMechanismInputFactoryTest.cs) (revision 1046921a24c7d047235317c67656befadef30cf9) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Assembly/CombinedAssemblyFailureMechanismInputFactoryTest.cs (.../CombinedAssemblyFailureMechanismInputFactoryTest.cs) (revision c1220f5afd9d51169dddcca4e190247713be068b) @@ -30,7 +30,6 @@ using Ringtoets.Common.Data.Probability; using Ringtoets.Integration.Data.Assembly; using Ringtoets.Integration.TestUtil; -using Ringtoets.Piping.Data; namespace Ringtoets.Integration.Data.Test.Assembly { @@ -78,14 +77,18 @@ assessmentSection, failureMechanisms).ToArray(); // Assert - Assert.AreEqual(1, inputs.Length); - AssertPipingInput(assessmentSection.Piping, inputs[0]); + Assert.AreEqual(2, inputs.Length); + AssertInput(assessmentSection.Piping, fm => fm.PipingProbabilityAssessmentInput.GetN(fm.PipingProbabilityAssessmentInput.SectionLength), inputs[0]); + AssertInput(assessmentSection.GrassCoverErosionInwards, fm => fm.GeneralInput.N, inputs[1]); } } - private static void AssertPipingInput(PipingFailureMechanism pipingFailureMechanism, CombinedAssemblyFailureMechanismInput input) + private static void AssertInput(TFailureMechanism pipingFailureMechanism, + Func getExpectedNFunc, + CombinedAssemblyFailureMechanismInput input) + where TFailureMechanism : IFailureMechanism, IHasSectionResults { - double expectedN = pipingFailureMechanism.PipingProbabilityAssessmentInput.GetN(pipingFailureMechanism.PipingProbabilityAssessmentInput.SectionLength); + double expectedN = getExpectedNFunc(pipingFailureMechanism); Assert.AreEqual(expectedN, input.N); Assert.AreEqual(pipingFailureMechanism.Contribution, input.FailureMechanismContribution); @@ -101,7 +104,7 @@ for (var i = 0; i < originalSectionResults.Length; i++) { - var expectedSectionEnd = expectedSectionStart + originalSectionResults[i].Section.Length; + double expectedSectionEnd = expectedSectionStart + originalSectionResults[i].Section.Length; Assert.AreEqual(expectedSectionStart, inputSections[i].SectionStart); Assert.AreEqual(expectedSectionEnd, inputSections[i].SectionEnd);