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