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