Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillDamEngineFromWti.cs
===================================================================
diff -u -r2002 -r2003
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillDamEngineFromWti.cs (.../FillDamEngineFromWti.cs) (revision 2002)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillDamEngineFromWti.cs (.../FillDamEngineFromWti.cs) (revision 2003)
@@ -21,6 +21,7 @@
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.Geotechnics;
+using Deltares.MacroStability.Data;
using Deltares.MacroStability.Kernel;
namespace Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo
@@ -39,12 +40,27 @@
Location = new Location();
SoilProfile2D = new SoilProfile2D();
SurfaceLine2 = new SurfaceLine2();
- TransferLocation(kernelModel, Location);
- TransferSoilProfile2D(kernelModel, SoilProfile2D);
- TransferSurfaceLine2(kernelModel, SurfaceLine2);
- TransferParametersMStab(kernelModel, FailureMechanismParametersMStab);
+ FailureMechanismParametersMStab = new FailureMechanismParametersMStab();
+ TransferWtiStabilityModel(kernelModel.StabilityModel, FailureMechanismParametersMStab);
+
+// TransferLocation(kernelModel, Location);
+// TransferSoilProfile2D(kernelModel, SoilProfile2D);
+// TransferSurfaceLine2(kernelModel, SurfaceLine2);
+// TransferParametersMStab(kernelModel, FailureMechanismParametersMStab);
}
+ private void TransferWtiStabilityModel(StabilityModel kernelModelStabilityModel, FailureMechanismParametersMStab failureMechanismParametersMStab)
+ {
+ // kernelModelStabilityModel.MoveGrid is not in DamEngine datamodel
+ // kernelModelStabilityModel.MaximumSliceWidth is not in DamEngine datamodel
+ failureMechanismParametersMStab.MStabParameters.SearchMethod =
+ ConversionHelper.ConvertToDamSearchMethod(kernelModelStabilityModel.SearchAlgorithm);
+ failureMechanismParametersMStab.MStabParameters.Model =
+ ConversionHelper.ConvertToMStabModelType(kernelModelStabilityModel.ModelOption);
+ failureMechanismParametersMStab.MStabParameters.GridPosition =
+ ConversionHelper.ConvertToMStabGridPosition(kernelModelStabilityModel.GridOrientation);
+ }
+
/// Transfers the parameters m stab.
/// The kernel model.
/// The MStab parameters.
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs
===================================================================
diff -u -r2002 -r2003
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs (.../MacroStabilityIoTests.cs) (revision 2002)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs (.../MacroStabilityIoTests.cs) (revision 2003)
@@ -96,9 +96,38 @@
}
- private DamProjectData CreateExampleDamProjectData()
+ [TestCase("Benchmark 1-01b.wti")]
+ [TestCase("Benchmark 2-04a.wti")]
+ [Category(Categories.WorkInProgress)]
+ public void GivenWtiFileWhenFillingToDamEngineDataAndWritingBackToKernelDataThenTheResultingFileIsEqualToOriginalFile(string fileNameIn)
{
- return TestDataCreator.CreateExampleDamProjectData();
+ // Given Wti file
+ string fullFileNameIn = Path.Combine(WtiFilesMap, fileNameIn);
+
+ // When filling to DamEngine data
+ string xmlInput = File.ReadAllText(fullFileNameIn);
+ KernelModel kernelModel = WtiDeserializer.Deserialize(xmlInput);
+ FillDamEngineFromWti fillDamEngineFromWti = new FillDamEngineFromWti();
+ fillDamEngineFromWti.FillDamProjectDataFromKernelModel(kernelModel);
+
+
+ // And writing back to kernel data
+ FillWtiKernelData fillWtiKernelData = new FillWtiKernelData()
+ {
+ FailureMechanismParametersMStab = fillDamEngineFromWti.FailureMechanismParametersMStab,
+ Location = fillDamEngineFromWti.Location,
+ SoilProfile2D = fillDamEngineFromWti.SoilProfile2D,
+ SurfaceLine2 = fillDamEngineFromWti.SurfaceLine2
+ };
+ KernelModel actualKernelModel = fillWtiKernelData.CreateKernelModel();
+ string xmlOutput = WtiSerializer.Serialize(actualKernelModel);
+ string fileNameOut = fileNameIn + ".out";
+ string fullFileNameOut = Path.Combine(WtiFilesMap, fileNameOut);
+ File.WriteAllText(fullFileNameOut, xmlOutput);
+
+ // Then the resulting file is equal to the original file
+ // Assert.AreEqual(xmlInput, xmlOutput);
+
}
[TestCase("ValidateOk.xml")]
@@ -137,5 +166,10 @@
// Then the strings are equal
Assert.AreEqual(xmlInput, xmlOutput);
}
+ private DamProjectData CreateExampleDamProjectData()
+ {
+ return TestDataCreator.CreateExampleDamProjectData();
+ }
+
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillWtiKernelData.cs
===================================================================
diff -u -r2002 -r2003
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillWtiKernelData.cs (.../FillWtiKernelData.cs) (revision 2002)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillWtiKernelData.cs (.../FillWtiKernelData.cs) (revision 2003)
@@ -25,7 +25,6 @@
using Deltares.MacroStability.Geometry;
using Deltares.MacroStability.Kernel;
using Deltares.MacroStability.Preprocessing;
-using GeometryPoint = Deltares.DamEngine.Data.Geometry.GeometryPoint;
using Location = Deltares.MacroStability.WaternetCreator.Location;
using SoilLayer2D = Deltares.DamEngine.Data.Geotechnics.SoilLayer2D;
@@ -52,10 +51,9 @@
kernelModel.StabilityModel = new StabilityModel();
kernelModel.PreprocessingModel = new PreprocessingModel();
TransferWtiStabilityModel(FailureMechanismParametersMStab, kernelModel.StabilityModel);
- TransferVersionInfo(); // TODO
TransferSoils(SoilProfile2D, kernelModel.StabilityModel.SoilModel.Soils);
kernelModel.StabilityModel.SoilProfile = new SoilProfile2D();
- TransferSoilProfile(SoilProfile2D, kernelModel.StabilityModel.SoilProfile); // TODO
+ TransferSoilProfile(SoilProfile2D, kernelModel.StabilityModel.SoilProfile);
TransferSurfaceLine(); // TODO
TransferLocation(Location, kernelModel.PreprocessingModel.LastStage.Locations); // TODO
TransferPreconsolidationStresses(); // TODO
@@ -175,11 +173,6 @@
failureMechanismParametersMStab.MStabParameters.GridPosition);
}
- private void TransferVersionInfo()
- {
-
- }
-
private void TransferSoils(Data.Geotechnics.SoilProfile2D damSoilProfile2D, IList soils)
{
// Harvest all soils from damSoilProfile2D