Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs =================================================================== diff -u -r846 -r850 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 846) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 850) @@ -3,8 +3,10 @@ using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using Deltares.DamEngine.Io; +using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.TestHelpers; using NUnit.Framework; @@ -17,20 +19,97 @@ [Test] [Category(Categories.WorkInProgress)] - public void TestRunMacroStabilityTutorialDesign() + public void TestRunMacroStabilityTutorialDesignBishop() { + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + var workingDir = Path.Combine(Directory.GetCurrentDirectory(), @"TestOutStab\Bishop"); + if (Directory.Exists(workingDir)) + { + Directory.Delete(workingDir, true); + } const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; string inputString = File.ReadAllText(fileName); EngineInterface engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); + string outputString = engineInterface.Run(); + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(1.282, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); + } + + [Test] + [Category(Categories.WorkInProgress)] + public void TestRunMacroStabilityTutorialDesignUpliftVan() + { + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + var workingDir = Path.Combine(Directory.GetCurrentDirectory(), @"TestOutStab\UpliftVan"); + if (Directory.Exists(workingDir)) + { + Directory.Delete(workingDir, true); + } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; + string inputString = File.ReadAllText(fileName); + inputString = ChangeInputModel(inputString, InputStabilityModelType.UpliftVan); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); + } + + [Test] + [Category(Categories.WorkInProgress)] + public void TestRunMacroStabilityTutorialDesignBishopUpliftVan() + { + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + var workingDir = Path.Combine(Directory.GetCurrentDirectory(), "TestOutStab"); + if (Directory.Exists(workingDir)) + { + Directory.Delete(workingDir, true); + } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; + string inputString = File.ReadAllText(fileName); + inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + + string outputString = engineInterface.Run(); + + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + // Bishop Assert.AreEqual(1.282, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); + // Uplift Van + Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[1].StabilityDesignResults.SafetyFactor, tolerance); + // Worst of Bishop and Uplift Van ToDo zant not sure where to put this result + Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[2].StabilityDesignResults.SafetyFactor, tolerance); } + public string ChangeInputModel(string input, InputStabilityModelType modelType) + { + string pattern = "StabilityModelType=\"Bishop\""; + string replacement = pattern; + switch (modelType) + { + case InputStabilityModelType.Bishop: + break; + case InputStabilityModelType.UpliftVan: + replacement = "StabilityModelType=\"UpliftVan\""; + break; + case InputStabilityModelType.BishopUpliftVan: + replacement = "StabilityModelType=\"BishopUpliftVan\""; + break; + } + string result = Regex.Replace(input, pattern, replacement); + return result; + } } }