Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs
===================================================================
diff -u -r563 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 563)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 566)
@@ -381,8 +381,13 @@
inputSoilGeometryProbability.Probability = soilGeometryProbability.Probability;
if (soilGeometryProbability.SegmentFailureMechanismType.HasValue)
{
- //inputSoilGeometryProbability.SegmentFailureMechanismType = soilGeometryProbability.FailureMechanismSystemType;
+ inputSoilGeometryProbability.FailureMechanismSystemType = ConversionHelper.ConvertToInputFailureMechanismSystemType(soilGeometryProbability.SegmentFailureMechanismType.Value);
+ inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = true;
}
+ else
+ {
+ inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified = false;
+ }
if (soilGeometryProbability.SoilGeometryType == SoilGeometryType.SoilGeometry1D)
{
inputSoilGeometryProbability.SoilGeometryName = soilGeometryProbability.SoilGeometry1DName;
@@ -391,6 +396,7 @@
{
inputSoilGeometryProbability.SoilGeometryName = soilGeometryProbability.SoilGeometry2DName;
}
+ inputSoilGeometryProbability.SoilGeometryType = ConversionHelper.ConvertToInputSoilGeometryType(soilGeometryProbability.SoilGeometryType);
inputSegment.SoilGeometryProbability[i] = inputSoilGeometryProbability;
}
}
Index: dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs
===================================================================
diff -u -r530 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 530)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 566)
@@ -286,5 +286,59 @@
};
return translationTable[waterpressureInterpolationModel];
}
+
+ ///
+ /// Converts the type of to input soil geometry.
+ ///
+ /// Type of the soil geometry.
+ ///
+ public static SegmentSoilGeometryProbabilitySoilGeometryType ConvertToInputSoilGeometryType(SoilGeometryType soilGeometryType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {SoilGeometryType.SoilGeometry1D, SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry1D},
+ {SoilGeometryType.SoilGeometry2D, SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry2D}
+ };
+ return translationTable[soilGeometryType];
+ }
+
+ ///
+ /// Converts the type of to soil geometry.
+ ///
+ /// Type of the soil geometry.
+ ///
+ public static SoilGeometryType ConvertToSoilGeometryType(SegmentSoilGeometryProbabilitySoilGeometryType soilGeometryType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry1D, SoilGeometryType.SoilGeometry1D},
+ {SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry2D, SoilGeometryType.SoilGeometry2D}
+ };
+ return translationTable[soilGeometryType];
+ }
+
+ public static SegmentSoilGeometryProbabilityFailureMechanismSystemType ConvertToInputFailureMechanismSystemType(FailureMechanismSystemType segmentFailureMechanismType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {FailureMechanismSystemType.StabilityInside, SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityInside},
+ {FailureMechanismSystemType.StabilityOutside, SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityOutside},
+ {FailureMechanismSystemType.Piping, SegmentSoilGeometryProbabilityFailureMechanismSystemType.Piping},
+ {FailureMechanismSystemType.HorizontalBalance, SegmentSoilGeometryProbabilityFailureMechanismSystemType.HorizontalBalance}
+ };
+ return translationTable[segmentFailureMechanismType];
+ }
+
+ public static FailureMechanismSystemType ConvertToFailureMechanismSystemType(SegmentSoilGeometryProbabilityFailureMechanismSystemType failureMechanismSystemType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityInside, FailureMechanismSystemType.StabilityInside},
+ {SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityOutside, FailureMechanismSystemType.StabilityOutside},
+ {SegmentSoilGeometryProbabilityFailureMechanismSystemType.Piping, FailureMechanismSystemType.Piping},
+ {SegmentSoilGeometryProbabilityFailureMechanismSystemType.HorizontalBalance, FailureMechanismSystemType.HorizontalBalance}
+ };
+ return translationTable[failureMechanismSystemType];
+ }
}
}
\ No newline at end of file
Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r564 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 564)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 566)
@@ -27,6 +27,7 @@
using Deltares.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Io.XmlInput;
+using ConversionException = Deltares.DamEngine.Data.Standard.ConversionException;
using Location = Deltares.DamEngine.Data.General.Location;
using Segment = Deltares.DamEngine.Data.General.Segment;
using Soil = Deltares.DamEngine.Io.XmlInput.Soil;
@@ -108,12 +109,12 @@
{
if (segmentSoilProfileProbability.SoilGeometryType == SoilGeometryType.SoilGeometry1D)
{
- segmentSoilProfileProbability.SoilProfile = FindSoilProfile1DByName(project.Dike.SoilProfiles,
+ segmentSoilProfileProbability.SoilProfile = FindSoilProfile1DByName(project.Dike.SoilProfiles,
segmentSoilProfileProbability.SoilGeometry1DName);
}
else
{
- segmentSoilProfileProbability.SoilProfile2D = FindSoilProfile2DByName(project.Dike.SoilProfiles2D,
+ segmentSoilProfileProbability.SoilProfile2D = FindSoilProfile2DByName(project.Dike.SoilProfiles2D,
segmentSoilProfileProbability.SoilGeometry2DName);
}
}
@@ -367,8 +368,12 @@
soilGeometryProbability.Probability = inputSoilGeometryProbability.Probability;
if (inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified)
{
- //soilGeometryProbability.SegmentFailureMechanismType = inputSoilGeometryProbability.FailureMechanismSystemType;
+ soilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToFailureMechanismSystemType(inputSoilGeometryProbability.FailureMechanismSystemType);
}
+ else
+ {
+ soilGeometryProbability.SegmentFailureMechanismType = null;
+ }
if (inputSoilGeometryProbability.SoilGeometryType == SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry1D)
{
soilGeometryProbability.SoilGeometry1DName = inputSoilGeometryProbability.SoilGeometryName;
@@ -377,11 +382,21 @@
{
soilGeometryProbability.SoilGeometry2DName = inputSoilGeometryProbability.SoilGeometryName;
}
+ if (soilGeometryProbability.SoilGeometryType != ConversionHelper.ConvertToSoilGeometryType(inputSoilGeometryProbability.SoilGeometryType))
+ {
+ throw new ConversionException(typeof(SegmentSoilGeometryProbabilitySoilGeometryType), soilGeometryProbability.SoilGeometryType);
+ }
segment.SoilProfileProbabilities.Add(soilGeometryProbability);
}
}
- private static SoilProfile1D FindSoilProfile1DByName(IList soilProfiles, string name)
+ ///
+ /// Finds the SoilProfile1D by name.
+ ///
+ /// The soil profiles.
+ /// The name.
+ ///
+ public static SoilProfile1D FindSoilProfile1DByName(IList soilProfiles, string name)
{
foreach (var soilProfile1D in soilProfiles)
{
@@ -391,7 +406,13 @@
return null;
}
- private static SoilProfile2D FindSoilProfile2DByName(IList soilProfiles, string name)
+ ///
+ /// Finds the SoilProfile2D by name.
+ ///
+ /// The soil profiles.
+ /// The name.
+ ///
+ public static SoilProfile2D FindSoilProfile2DByName(IList soilProfiles, string name)
{
foreach (var soilProfile2D in soilProfiles)
{
Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/TestFiles/InputFile.xml
===================================================================
diff -u -r557 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/TestFiles/InputFile.xml (.../InputFile.xml) (revision 557)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/TestFiles/InputFile.xml (.../InputFile.xml) (revision 566)
@@ -69,6 +69,14 @@
+
+
+
+
+
+
+
+
Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r564 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 564)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 566)
@@ -314,11 +314,15 @@
{
soilProfileProbability.SegmentFailureMechanismType = FailureMechanismSystemType.StabilityInside;
soilProfileProbability.SoilGeometry2DName = "Profile2D " + (i + 1).ToString();
+ soilProfileProbability.SoilProfile2D = FillDamFromXmlInput.FindSoilProfile2DByName(damProjectData.Dike.SoilProfiles2D,
+ soilProfileProbability.SoilGeometry2DName);
}
else
{
soilProfileProbability.SegmentFailureMechanismType = FailureMechanismSystemType.Piping;
soilProfileProbability.SoilGeometry1DName = "Profile1D " + (i + 1).ToString();
+ soilProfileProbability.SoilProfile = FillDamFromXmlInput.FindSoilProfile1DByName(damProjectData.Dike.SoilProfiles,
+ soilProfileProbability.SoilGeometry1DName);
}
soilProfileProbability.Probability = 0.003 * (i + 1);
segment.SoilProfileProbabilities.Add(soilProfileProbability);
Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs
===================================================================
diff -u -r530 -r566
--- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 530)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 566)
@@ -183,11 +183,39 @@
}
[Test]
- [TestCase(WaterpressureInterpolationModel.Automatic, 0)]
- [TestCase(WaterpressureInterpolationModel.Hydrostatic, 1)]
- public void CanConvertToInputWaterpressureInterpolationModel(WaterpressureInterpolationModel inputInterpolationModel, int interpolationModel)
+ [TestCase(SoilGeometryType.SoilGeometry1D, SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry1D)]
+ [TestCase(SoilGeometryType.SoilGeometry2D, SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry2D)]
+ public void CanConvertToInputSoilGeometryType(SoilGeometryType soilGeometryType, SegmentSoilGeometryProbabilitySoilGeometryType inputSoilGeometryType)
{
- Assert.AreEqual(interpolationModel, ConversionHelper.ConvertToInputWaterpressureInterpolationModel(inputInterpolationModel));
+ Assert.AreEqual(inputSoilGeometryType, ConversionHelper.ConvertToInputSoilGeometryType(soilGeometryType));
}
+
+ [Test]
+ [TestCase(SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry1D, SoilGeometryType.SoilGeometry1D)]
+ [TestCase(SegmentSoilGeometryProbabilitySoilGeometryType.SoilGeometry2D, SoilGeometryType.SoilGeometry2D)]
+ public void CanConvertToSoilGeometryType(SegmentSoilGeometryProbabilitySoilGeometryType inputSoilGeometryType, SoilGeometryType soilGeometryType)
+ {
+ Assert.AreEqual(soilGeometryType, ConversionHelper.ConvertToSoilGeometryType(inputSoilGeometryType));
+ }
+
+ [Test]
+ [TestCase(SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityInside, FailureMechanismSystemType.StabilityInside)]
+ [TestCase(SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityOutside, FailureMechanismSystemType.StabilityOutside)]
+ [TestCase(SegmentSoilGeometryProbabilityFailureMechanismSystemType.Piping, FailureMechanismSystemType.Piping)]
+ [TestCase(SegmentSoilGeometryProbabilityFailureMechanismSystemType.HorizontalBalance, FailureMechanismSystemType.HorizontalBalance)]
+ public void CanConvertToInputFailureMechanismSystemType(FailureMechanismSystemType failureMechanismSystemType, SegmentSoilGeometryProbabilityFailureMechanismSystemType inputFailureMechanismSystemType)
+ {
+ Assert.AreEqual(inputFailureMechanismSystemType, ConversionHelper.ConvertToInputFailureMechanismSystemType(failureMechanismSystemType));
+ }
+
+ [Test]
+ [TestCase(FailureMechanismSystemType.StabilityInside, SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityInside)]
+ [TestCase(FailureMechanismSystemType.StabilityOutside, SegmentSoilGeometryProbabilityFailureMechanismSystemType.StabilityOutside)]
+ [TestCase(FailureMechanismSystemType.Piping, SegmentSoilGeometryProbabilityFailureMechanismSystemType.Piping)]
+ [TestCase(FailureMechanismSystemType.HorizontalBalance, SegmentSoilGeometryProbabilityFailureMechanismSystemType.HorizontalBalance)]
+ public void CanConvertToFailureMechanismSystemType(SegmentSoilGeometryProbabilityFailureMechanismSystemType inputFailureMechanismSystemType, FailureMechanismSystemType failureMechanismSystemType)
+ {
+ Assert.AreEqual(inputFailureMechanismSystemType, ConversionHelper.ConvertToInputFailureMechanismSystemType(failureMechanismSystemType));
+ }
}
}