Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/InterfaceConversionHelper.cs
===================================================================
diff -u -r6353 -r6357
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/InterfaceConversionHelper.cs (.../InterfaceConversionHelper.cs) (revision 6353)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/InterfaceConversionHelper.cs (.../InterfaceConversionHelper.cs) (revision 6357)
@@ -75,7 +75,7 @@
/// the MStabModelType.
/// the MacroStability ModelOption
///
- public static StabilityModelOption ConvertToModelOptions(StabilityModelType stabilityModelType)
+ public static StabilityModelOption ConvertToMacroStabilityModelOption(StabilityModelType stabilityModelType)
{
// For the Macrostability kernel, the only supported options for now are Bishop and UpliftVan.
if (stabilityModelType != StabilityModelType.UpliftVan && stabilityModelType != StabilityModelType.Bishop)
@@ -95,10 +95,28 @@
return translationTable[stabilityModelType];
}
+ /// Converts ModelOption to the DamModelType.
+ /// This comes back from the kernel side so any model that can be matched is OK.
+ /// The model option.
+ /// the Dam MStabModelType
+ public static StabilityModelType ConvertToDamStabilityModelType(StabilityModelOption stabilityModelOption)
+ {
+ var translationTable = new Dictionary
+ {
+ {
+ StabilityModelOption.Bishop, StabilityModelType.Bishop
+ },
+ {
+ StabilityModelOption.UpliftVan, StabilityModelType.UpliftVan
+ }
+ };
+ return translationTable[stabilityModelOption];
+ }
+
/// Converts to GridOrientation.
/// The MStabGridPosition.
///
- public static OrientationType ConvertToGridOrientation(StabilityGridPosition stabilityGridPosition)
+ public static OrientationType ConvertToMacroStabilityGridOrientation(StabilityGridPosition stabilityGridPosition)
{
var translationTable = new Dictionary
{
@@ -112,6 +130,23 @@
return translationTable[stabilityGridPosition];
}
+ /// Converts to MStabGridPosition.
+ /// The grid orientation.
+ ///
+ public static StabilityGridPosition ConvertToDamGridPosition(OrientationType gridOrientation)
+ {
+ var translationTable = new Dictionary
+ {
+ {
+ OrientationType.Inwards, StabilityGridPosition.Right
+ },
+ {
+ OrientationType.Outwards, StabilityGridPosition.Left
+ }
+ };
+ return translationTable[gridOrientation];
+ }
+
/// Converts the type of to macro stability characteristic point.
/// Type of the dam characteristic point.
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/InterfaceConversionHelperTests.cs
===================================================================
diff -u -r6353 -r6357
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/InterfaceConversionHelperTests.cs (.../InterfaceConversionHelperTests.cs) (revision 6353)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/InterfaceConversionHelperTests.cs (.../InterfaceConversionHelperTests.cs) (revision 6357)
@@ -19,12 +19,15 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo;
+using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.Geotechnics;
using Deltares.MacroStability.Io.XmlInput;
using KellermanSoftware.CompareNetObjects;
using NUnit.Framework;
using CharacteristicPointType = Deltares.MacroStability.Io.XmlInput.CharacteristicPointType;
+using ConversionHelper = Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo.ConversionHelper;
namespace Deltares.DamEngine.Calculators.Tests.KernelWrappers.MacroStabilityCommon;
@@ -190,4 +193,63 @@
{
Assert.That(InterfaceConversionHelper.ConvertToDamCharacteristicPointType(kernelCharacteristicPointType), Is.EqualTo(damCharacteristicPointType));
}
+
+ [Test]
+ [TestCase(SearchAlgorithmType.Grid, StabilitySearchMethod.Grid)]
+ [TestCase(SearchAlgorithmType.BeeswarmAndLevenbergMarquardt, StabilitySearchMethod.BeeSwarm)]
+ public void CanConvertToDamSearchMethod(SearchAlgorithmType searchAlgorithm, StabilitySearchMethod stabilitySearchMethod)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToDamSearchMethod(searchAlgorithm), Is.EqualTo(stabilitySearchMethod));
+ }
+
+ [TestCase(SearchAlgorithmType.Beeswarm)]
+ [TestCase(SearchAlgorithmType.LevenbergMarquardt)]
+ [TestCase(SearchAlgorithmType.Single)]
+ public void CanConvertToDamSearchMethodHandleException(SearchAlgorithmType searchAlgorithm)
+ {
+ Assert.That(() => InterfaceConversionHelper.ConvertToDamSearchMethod(searchAlgorithm), Throws.InstanceOf());
+ }
+
+ [Test]
+ [TestCase(StabilitySearchMethod.Grid, SearchAlgorithmType.Grid)]
+ [TestCase(StabilitySearchMethod.BeeSwarm, SearchAlgorithmType.BeeswarmAndLevenbergMarquardt)]
+ public void ConvertToMacroStabilitySearchMethod(StabilitySearchMethod stabilitySearchMethod, SearchAlgorithmType searchAlgorithm)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToMacroStabilitySearchMethod(stabilitySearchMethod), Is.EqualTo(searchAlgorithm));
+ }
+
+ [Test]
+ [TestCase(StabilityModelOption.Bishop, StabilityModelType.Bishop)]
+ [TestCase(StabilityModelOption.UpliftVan, StabilityModelType.UpliftVan)]
+ public void CanConvertToMStabModelType(StabilityModelOption modelOption, StabilityModelType stabilityModelType)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToDamStabilityModelType(modelOption), Is.EqualTo(stabilityModelType));
+ }
+
+ [Test]
+ [TestCase(StabilityModelType.UpliftVan, StabilityModelOption.UpliftVan)]
+ public void CanConvertToModelOptions(StabilityModelType stabilityModelType, StabilityModelOption modelOption)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToMacroStabilityModelOption(stabilityModelType), Is.EqualTo(modelOption));
+ }
+
+ [TestCase(StabilityModelType.BishopUpliftVan)]
+ public void CanConvertToModelOptionsHandleException(StabilityModelType stabilityModelType)
+ {
+ Assert.That(() => InterfaceConversionHelper.ConvertToMacroStabilityModelOption(stabilityModelType), Throws.InstanceOf());
+ }
+
+ [TestCase(OrientationType.Outwards, StabilityGridPosition.Left)]
+ [TestCase(OrientationType.Inwards, StabilityGridPosition.Right)]
+ public static void CanConvertToMStabGridPosition(OrientationType gridOrientation, StabilityGridPosition stabilityGridPosition)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToDamGridPosition(gridOrientation), Is.EqualTo(stabilityGridPosition));
+ }
+
+ [TestCase(StabilityGridPosition.Left, OrientationType.Outwards)]
+ [TestCase(StabilityGridPosition.Right, OrientationType.Inwards)]
+ public static void CanConvertToGridOrientation(StabilityGridPosition stabilityGridPosition, OrientationType gridOrientation)
+ {
+ Assert.That(InterfaceConversionHelper.ConvertToMacroStabilityGridOrientation(stabilityGridPosition), Is.EqualTo(gridOrientation));
+ }
}
\ No newline at end of file