Index: Riskeer/Common/test/Riskeer.Common.Data.TestUtil/FailureMechanismTestHelper.cs
===================================================================
diff -u -r9d13fc4925bbab28ecc91ed7754a391749e53e1c -r74f6ee8b46fe57f0c79771536609cf638100de29
--- Riskeer/Common/test/Riskeer.Common.Data.TestUtil/FailureMechanismTestHelper.cs (.../FailureMechanismTestHelper.cs) (revision 9d13fc4925bbab28ecc91ed7754a391749e53e1c)
+++ Riskeer/Common/test/Riskeer.Common.Data.TestUtil/FailureMechanismTestHelper.cs (.../FailureMechanismTestHelper.cs) (revision 74f6ee8b46fe57f0c79771536609cf638100de29)
@@ -52,12 +52,12 @@
///
/// The failure mechanism to add sections to.
/// The number of sections to add to the .
- public static void AddSections(IFailureMechanism failureMechanism, int numberOfSections)
+ public static void AddSections(IFailurePath failureMechanism, int numberOfSections)
{
AddSections(failureMechanism, numberOfSections, new Point2D(-1, -1), new Point2D(15, 15));
}
- private static void AddSections(IFailureMechanism failureMechanism, int numberOfSections, Point2D startPoint, Point2D endPoint)
+ private static void AddSections(IFailurePath failureMechanism, int numberOfSections, Point2D startPoint, Point2D endPoint)
{
double endPointStepsX = (endPoint.X - startPoint.X) / numberOfSections;
double endPointStepsY = (endPoint.Y - startPoint.Y) / numberOfSections;
Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs
===================================================================
diff -u -r81a1ee36a074aaba2550106a26687e82c3e11109 -r74f6ee8b46fe57f0c79771536609cf638100de29
--- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 81a1ee36a074aaba2550106a26687e82c3e11109)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 74f6ee8b46fe57f0c79771536609cf638100de29)
@@ -165,6 +165,13 @@
exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Generic);
+ foreach (SpecificFailurePath specificFailurePath in assessmentSection.SpecificFailurePaths)
+ {
+ AddFailureMechanismWhenInAssembly(
+ exportableFailureMechanisms, specificFailurePath, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ FailureMechanismAssemblyFactory.AssembleSection, ExportableFailureMechanismType.Specific);
+ }
+
return exportableFailureMechanisms;
}
Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs
===================================================================
diff -u -r2077c21eebd3514bbc3f49f2cf9039100760f966 -r74f6ee8b46fe57f0c79771536609cf638100de29
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 2077c21eebd3514bbc3f49f2cf9039100760f966)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 74f6ee8b46fe57f0c79771536609cf638100de29)
@@ -65,6 +65,9 @@
};
ReferenceLineTestFactory.SetReferenceLineGeometry(assessmentSection.ReferenceLine);
+ assessmentSection.SpecificFailurePaths.Add(new SpecificFailurePath());
+ assessmentSection.SpecificFailurePaths.Add(new SpecificFailurePath());
+
FailureMechanismTestHelper.AddSections(assessmentSection.Piping, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.MacroStabilityInwards, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.GrassCoverErosionInwards, random.Next(1, 10));
@@ -82,6 +85,8 @@
FailureMechanismTestHelper.AddSections(assessmentSection.GrassCoverSlipOffInwards, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.PipingStructure, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.WaterPressureAsphaltCover, random.Next(1, 10));
+ FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailurePaths.First(), random.Next(1, 10));
+ FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailurePaths.Last(), random.Next(1, 10));
using (new AssemblyToolCalculatorFactoryConfig())
{
@@ -98,8 +103,8 @@
Assert.AreEqual(AssessmentSectionAssemblyGroup.APlus, exportableAssessmentSectionAssemblyResult.AssemblyGroup);
Assert.AreEqual(0.14, exportableAssessmentSectionAssemblyResult.Probability);
- AssertExportableFailureMechanismsWithoutProbability(exportableAssessmentSection.FailureMechanisms,
- assessmentSection);
+ AssertExportableFailureMechanisms(exportableAssessmentSection.FailureMechanisms,
+ assessmentSection);
CollectionAssert.IsEmpty(exportableAssessmentSection.CombinedSectionAssemblies);
}
@@ -120,6 +125,9 @@
};
ReferenceLineTestFactory.SetReferenceLineGeometry(assessmentSection.ReferenceLine);
+ assessmentSection.SpecificFailurePaths.Add(new SpecificFailurePath());
+ assessmentSection.SpecificFailurePaths.Add(new SpecificFailurePath());
+
FailureMechanismTestHelper.AddSections(assessmentSection.Piping, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.MacroStabilityInwards, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.GrassCoverErosionInwards, random.Next(1, 10));
@@ -138,7 +146,11 @@
FailureMechanismTestHelper.AddSections(assessmentSection.PipingStructure, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.WaterPressureAsphaltCover, random.Next(1, 10));
- foreach (IFailureMechanism failureMechanism in assessmentSection.GetFailureMechanisms())
+ FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailurePaths.First(), random.Next(1, 10));
+ FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailurePaths.Last(), random.Next(1, 10));
+
+ foreach (IFailurePath failureMechanism in assessmentSection.GetFailureMechanisms()
+ .Concat(assessmentSection.SpecificFailurePaths))
{
failureMechanism.InAssembly = false;
}
@@ -163,61 +175,86 @@
}
}
- private static void AssertExportableFailureMechanismsWithoutProbability(
+ private static void AssertExportableFailureMechanisms(
IEnumerable exportableFailureMechanisms,
AssessmentSection assessmentSection)
{
- Assert.AreEqual(15, exportableFailureMechanisms.Count());
+ Assert.AreEqual(17, exportableFailureMechanisms.Count());
AssertExportableFailureMechanism(assessmentSection.Piping,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(0));
AssertExportableFailureMechanism(assessmentSection.MacroStabilityInwards,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(1));
AssertExportableFailureMechanism(assessmentSection.GrassCoverErosionInwards,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(2));
AssertExportableFailureMechanism(assessmentSection.HeightStructures,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(3));
AssertExportableFailureMechanism(assessmentSection.ClosingStructures,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(4));
AssertExportableFailureMechanism(assessmentSection.StabilityPointStructures,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(5));
AssertExportableFailureMechanism(assessmentSection.StabilityStoneCover,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(6));
AssertExportableFailureMechanism(assessmentSection.WaveImpactAsphaltCover,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(7));
AssertExportableFailureMechanism(assessmentSection.GrassCoverErosionOutwards,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(8));
AssertExportableFailureMechanism(assessmentSection.DuneErosion,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(9));
AssertExportableFailureMechanism(assessmentSection.Microstability,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(10));
AssertExportableFailureMechanism(assessmentSection.GrassCoverSlipOffOutwards,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(11));
AssertExportableFailureMechanism(assessmentSection.GrassCoverSlipOffInwards,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(12));
AssertExportableFailureMechanism(assessmentSection.PipingStructure,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(13));
AssertExportableFailureMechanism(assessmentSection.WaterPressureAsphaltCover,
+ ExportableFailureMechanismType.Generic,
exportableFailureMechanisms.ElementAt(14));
+
+ AssertExportableFailureMechanism(assessmentSection.SpecificFailurePaths.First(),
+ ExportableFailureMechanismType.Specific,
+ exportableFailureMechanisms.ElementAt(15));
+
+ AssertExportableFailureMechanism(assessmentSection.SpecificFailurePaths.Last(),
+ ExportableFailureMechanismType.Specific,
+ exportableFailureMechanisms.ElementAt(16));
}
private static void AssertExportableFailureMechanism(IFailurePath failureMechanism,
+ ExportableFailureMechanismType expectedFailureMechanismType,
ExportableFailureMechanism actualExportableFailureMechanism)
{
+ Assert.AreEqual(expectedFailureMechanismType, actualExportableFailureMechanism.FailureMechanismType);
Assert.AreEqual(failureMechanism.Code, actualExportableFailureMechanism.Code);
ExportableFailureMechanismAssemblyResult exportableFailureMechanismAssemblyResult = actualExportableFailureMechanism.FailureMechanismAssembly;