Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs
===================================================================
diff -u -r2163 -r2197
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 2163)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 2197)
@@ -579,9 +579,9 @@
var soilGeometryProbability = new SoilGeometryProbability();
var inputSoilGeometryProbability = inputSegment.SoilGeometryProbability[i];
soilGeometryProbability.Probability = inputSoilGeometryProbability.Probability;
- if (inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified)
+ if (inputSoilGeometryProbability.SegmentFailureMechanismTypeSpecified)
{
- soilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToFailureMechanismSystemType(inputSoilGeometryProbability.FailureMechanismSystemType);
+ soilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToSegmentFailureMechanismType(inputSoilGeometryProbability.SegmentFailureMechanismType);
}
else
{
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/ConversionHelper.cs
===================================================================
diff -u -r2135 -r2197
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 2135)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 2197)
@@ -20,11 +20,13 @@
// All rights reserved.
using System.Collections.Generic;
+using System.Configuration;
using Deltares.DamEngine.Io.XmlInput;
using Deltares.DamEngine.Io.XmlOutput;
using Deltares.Geotechnics;
using Deltares.Geotechnics.Soils;
using Deltares.Standard;
+using Deltares.Standard.Extensions;
using Deltares.Standard.Logging;
using CharacteristicPointType = Deltares.Geotechnics.SurfaceLines.CharacteristicPointType;
@@ -341,11 +343,13 @@
return translationTable[soilProfileType];
}
+ /// The enumerated constants for input failure mechanism stability inside
public const int InputFailureMechanismStabilityInside = 0;
public const int InputFailureMechanismStabilityOutside = 1;
public const int InputFailureMechanismPiping = 2;
public const int InputFailureMechanismHorizontalBalance = 3;
-
+ public const int InputFailureMechanismFlowSlide = 4;
+
///
/// Converts the Dam failure mechanism type to the input failure mechanism type .
///
@@ -358,7 +362,8 @@
{FailureMechanismSystemType.StabilityInside, InputFailureMechanismStabilityInside},
{FailureMechanismSystemType.StabilityOutside, InputFailureMechanismStabilityOutside},
{FailureMechanismSystemType.Piping, InputFailureMechanismPiping},
- {FailureMechanismSystemType.HorizontalBalance, InputFailureMechanismHorizontalBalance}
+ {FailureMechanismSystemType.HorizontalBalance, InputFailureMechanismHorizontalBalance},
+ {FailureMechanismSystemType.FlowSlide, InputFailureMechanismFlowSlide}
};
return translationTable[segmentFailureMechanismType];
}
@@ -375,10 +380,55 @@
{InputFailureMechanismStabilityInside, FailureMechanismSystemType.StabilityInside},
{InputFailureMechanismStabilityOutside, FailureMechanismSystemType.StabilityOutside},
{InputFailureMechanismPiping, FailureMechanismSystemType.Piping},
- {InputFailureMechanismHorizontalBalance, FailureMechanismSystemType.HorizontalBalance}
+ {InputFailureMechanismHorizontalBalance, FailureMechanismSystemType.HorizontalBalance},
+ {InputFailureMechanismFlowSlide, FailureMechanismSystemType.FlowSlide},
};
return translationTable[failureMechanismSystemType];
}
+
+ /// The enumerated constants for input segment failure mechanism stability inside
+ public const int InputSegmentFailureMechanismAll = 0;
+ public const int InputSegmentFailureMechanismStability = 1;
+ public const int InputSegmentFailureMechanismPiping = 2;
+ public const int InputSegmentFailureMechanismLiquefaction = 3;
+
+ ///
+ /// Converts the Dam segment failure mechanism type to the input segment failure mechanism type .
+ ///
+ /// Type of the segment failure mechanism.
+ ///
+ public static int ConvertToInputSegmentFailureMechanismType(FailureMechanismSystemType segmentFailureMechanismType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {FailureMechanismSystemType.StabilityInside, InputSegmentFailureMechanismStability},
+ {FailureMechanismSystemType.StabilityOutside, InputSegmentFailureMechanismStability},
+ {FailureMechanismSystemType.Piping, InputSegmentFailureMechanismPiping},
+ {FailureMechanismSystemType.FlowSlide, InputSegmentFailureMechanismLiquefaction},
+ {FailureMechanismSystemType.HorizontalBalance, InputSegmentFailureMechanismStability}
+ };
+ return translationTable[segmentFailureMechanismType];
+ }
+
+ ///
+ /// Converts the input segment failure mechanism type to the Dam segment failure mechanism type .
+ ///
+ /// Type of the failure mechanism system.
+ ///
+ public static FailureMechanismSystemType ConvertToSegmentFailureMechanismType(int failureMechanismSystemType)
+ {
+ if (failureMechanismSystemType == InputSegmentFailureMechanismAll)
+ {
+ throw new ConversionException(typeof(FailureMechanismSystemType), failureMechanismSystemType);
+ }
+ var translationTable = new Dictionary()
+ {
+ {InputSegmentFailureMechanismStability, FailureMechanismSystemType.StabilityInside},
+ {InputSegmentFailureMechanismPiping, FailureMechanismSystemType.Piping},
+ {InputSegmentFailureMechanismLiquefaction, FailureMechanismSystemType.FlowSlide},
+ };
+ return translationTable[failureMechanismSystemType];
+ }
///
/// Converts the Dam piping model to the input piping model.
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs
===================================================================
diff -u -r2168 -r2197
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 2168)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 2197)
@@ -779,12 +779,12 @@
inputSoilGeometryProbability.Probability = soilGeometryProbability.Probability;
if (soilGeometryProbability.SegmentFailureMechanismType.HasValue)
{
- inputSoilGeometryProbability.FailureMechanismSystemType = ConversionHelper.ConvertToInputFailureMechanismSystemType(soilGeometryProbability.SegmentFailureMechanismType.Value);
- inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = true;
+ inputSoilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToInputSegmentFailureMechanismType(soilGeometryProbability.SegmentFailureMechanismType.Value);
+ inputSoilGeometryProbability.SegmentFailureMechanismTypeSpecified = true;
}
else
{
- inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = false;
+ inputSoilGeometryProbability.SegmentFailureMechanismTypeSpecified = false;
}
switch (soilGeometryProbability.SoilProfileType)
Index: DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs
===================================================================
diff -u -r2135 -r2197
--- DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 2135)
+++ DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 2197)
@@ -27,6 +27,7 @@
using Deltares.Geotechnics.Soils;
using Deltares.Geotechnics.SurfaceLines;
using Deltares.Standard;
+using Deltares.Standard.Extensions;
using Deltares.Standard.Logging;
using NUnit.Framework;
@@ -198,26 +199,55 @@
}
[Test]
- [TestCase(0, FailureMechanismSystemType.StabilityInside)]
- [TestCase(1, FailureMechanismSystemType.StabilityOutside)]
- [TestCase(2, FailureMechanismSystemType.Piping)]
- [TestCase(3, FailureMechanismSystemType.HorizontalBalance)]
+ [TestCase(FailureMechanismSystemType.StabilityInside, ConversionHelper.InputFailureMechanismStabilityInside)]
+ [TestCase(FailureMechanismSystemType.StabilityOutside, ConversionHelper.InputFailureMechanismStabilityOutside)]
+ [TestCase(FailureMechanismSystemType.Piping, ConversionHelper.InputFailureMechanismPiping)]
+ [TestCase(FailureMechanismSystemType.HorizontalBalance, ConversionHelper.InputFailureMechanismHorizontalBalance)]
+ [TestCase(FailureMechanismSystemType.FlowSlide, ConversionHelper.InputFailureMechanismFlowSlide)]
public void CanConvertToInputFailureMechanismSystemType(FailureMechanismSystemType failureMechanismSystemType, int inputFailureMechanismSystemType)
{
Assert.AreEqual(inputFailureMechanismSystemType, ConversionHelper.ConvertToInputFailureMechanismSystemType(failureMechanismSystemType));
}
[Test]
- [TestCase(FailureMechanismSystemType.StabilityInside, 0)]
- [TestCase(FailureMechanismSystemType.StabilityOutside, 1)]
- [TestCase(FailureMechanismSystemType.Piping,2)]
- [TestCase(FailureMechanismSystemType.HorizontalBalance, 3)]
+ [TestCase(ConversionHelper.InputFailureMechanismStabilityInside, FailureMechanismSystemType.StabilityInside)]
+ [TestCase(ConversionHelper.InputFailureMechanismStabilityOutside, FailureMechanismSystemType.StabilityOutside)]
+ [TestCase(ConversionHelper.InputFailureMechanismPiping, FailureMechanismSystemType.Piping)]
+ [TestCase(ConversionHelper.InputFailureMechanismHorizontalBalance, FailureMechanismSystemType.HorizontalBalance)]
+ [TestCase(ConversionHelper.InputFailureMechanismFlowSlide, FailureMechanismSystemType.FlowSlide)]
public void CanConvertToFailureMechanismSystemType(int inputFailureMechanismSystemType, FailureMechanismSystemType failureMechanismSystemType)
{
Assert.AreEqual(failureMechanismSystemType, ConversionHelper.ConvertToFailureMechanismSystemType(inputFailureMechanismSystemType));
}
[Test]
+ [TestCase(FailureMechanismSystemType.StabilityInside, ConversionHelper.InputSegmentFailureMechanismStability)]
+ [TestCase(FailureMechanismSystemType.StabilityOutside, ConversionHelper.InputSegmentFailureMechanismStability)]
+ [TestCase(FailureMechanismSystemType.Piping, ConversionHelper.InputSegmentFailureMechanismPiping)]
+ [TestCase(FailureMechanismSystemType.HorizontalBalance, ConversionHelper.InputSegmentFailureMechanismStability)]
+ [TestCase(FailureMechanismSystemType.FlowSlide, ConversionHelper.InputSegmentFailureMechanismLiquefaction)]
+ public void CanConvertToInputSegmentFailureMechanismType(FailureMechanismSystemType failureMechanismSystemType, int inputFailureMechanismSystemType)
+ {
+ Assert.AreEqual(inputFailureMechanismSystemType, ConversionHelper.ConvertToInputSegmentFailureMechanismType(failureMechanismSystemType));
+ }
+
+ [Test]
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismStability, FailureMechanismSystemType.StabilityInside)]
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismPiping, FailureMechanismSystemType.Piping)]
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismLiquefaction, FailureMechanismSystemType.FlowSlide)]
+ public void CanConvertToSegmentFailureMechanismType(int inputFailureMechanismSystemType, FailureMechanismSystemType failureMechanismSystemType)
+ {
+ Assert.AreEqual(failureMechanismSystemType, ConversionHelper.ConvertToSegmentFailureMechanismType(inputFailureMechanismSystemType));
+ }
+
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismAll)]
+ [ExpectedException(typeof(ConversionException), ExpectedMessage = "Couldn't convert '0' to type FailureMechanismSystemType")]
+ public void CannotConvertToSegmentFailureMechanismType(int inputFailureMechanismSystemType)
+ {
+ ConversionHelper.ConvertToSegmentFailureMechanismType(inputFailureMechanismSystemType);
+ }
+
+ [Test]
[TestCase(InputAnalysisType.AdaptGeometry, AnalysisType.AdaptGeometry)]
[TestCase(InputAnalysisType.NoAdaption, AnalysisType.NoAdaption)]
public void CanConvertToInputAnalysisType(AnalysisType analysisType, InputAnalysisType inputAnalysisType)