Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs =================================================================== diff -u -r1028 -r1034 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 1028) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 1034) @@ -127,18 +127,53 @@ Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); - // ToDo zant: add more test values + // Zone1SafetyFactor=1.062 + Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1SafetyFactor, tolerance); + // Zone1EntryPointX Local =39.3 Global=47.72 + Assert.AreEqual(39.3, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1EntryPointX, tolerance); + // Zone1ExitPointX Local=64.442 Global=72.682 + Assert.AreEqual(64.442, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1ExitPointX, tolerance); + + // Zone2SafetyFactor null, is set to default reading from output.xml + Assert.AreEqual(0, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone2SafetyFactor, tolerance); + // Zone2EntryPointX null, is set to default reading from output.xml + Assert.AreEqual(0, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone2EntryPointX, tolerance); + // Zone2ExitPointX null, is set to default reading from output.xml + Assert.AreEqual(0, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone2ExitPointX, tolerance); + + // NumberOfIterations=0 + Assert.AreEqual(0, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.NumberOfIterations); + // ResultMessage "" + Assert.AreEqual("", output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.ResultMessage); + + // Check that a line is specified + Assert.IsNotNull(output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.RedesignedSurfaceLine); + + // Profile name = DWP_1.sti + Assert.AreEqual("DWP_1.sti", output.Results.CalculationResults.DesignResults[0].ProfileName); + + // Uplift + var upliftSituation = output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.UpliftSituation; + Assert.IsNotNull(upliftSituation); + Assert.AreEqual(true, upliftSituation.IsUplift); + Assert.AreEqual(1.141, upliftSituation.Pl3MinUplift, tolerance); + Assert.AreEqual(4.4, upliftSituation.Pl3HeadAdjusted, tolerance); + Assert.AreEqual(60.64, upliftSituation.Pl3LocationXMinUplift, tolerance); + Assert.AreEqual(0.0, upliftSituation.Pl4MinUplift, tolerance); + Assert.AreEqual(0.0, upliftSituation.Pl4HeadAdjusted, tolerance); + Assert.AreEqual(0.0, upliftSituation.Pl4LocationXMinUplift, tolerance); + // Calculation Result Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); } [Test] - public void TestRunMacroStabilityTutorialDesignBishopUpliftVan() + public void TestRunMacroStabilityTutorialDesignBishopUpliftVan_UpliftVanLowest() { // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design // with Dam Classic rev.833 - const string calcDir = "TestOutStabBishopUpliftVan"; + const string calcDir = "TestOutStabBishopUpliftVan_UpliftVanLowest"; if (Directory.Exists(calcDir)) { Directory.Delete(calcDir, true); // delete previous results @@ -158,17 +193,115 @@ Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // Bishop - Assert.AreEqual(1.282, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); + var result = output.Results.CalculationResults.DesignResults[0].StabilityDesignResults; + Assert.AreEqual(1.282, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + Assert.IsTrue(result.UpliftSituation.IsUplift); // Uplift Van - Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[1].StabilityDesignResults.SafetyFactor, tolerance); + result = output.Results.CalculationResults.DesignResults[1].StabilityDesignResults; + Assert.AreEqual(1.062, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); // Worst of Bishop and Uplift Van - Assert.AreEqual(1.062, output.Results.CalculationResults.DesignResults[2].StabilityDesignResults.SafetyFactor, tolerance); - // ToDo zant: add more test values + result = output.Results.CalculationResults.DesignResults[2].StabilityDesignResults; + Assert.AreEqual(1.062, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); // Calculation Result + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[1].CalculationResult)); Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[2].CalculationResult)); } + [Test] + public void TestRunMacroStabilityTutorialDesignBishopUpliftVan_BishopLowest() + { + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + const string calcDir = "TestOutStabBishopUpliftVan_BishopLowest"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile13.xml"; + string inputString = File.ReadAllText(fileName); + inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); + inputString = ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); + inputString = ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + + string outputString = engineInterface.Run(); + + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + // Bishop + var result = output.Results.CalculationResults.DesignResults[0].StabilityDesignResults; + Assert.AreEqual(0.452, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + Assert.IsTrue(result.UpliftSituation.IsUplift); + // Uplift Van + result = output.Results.CalculationResults.DesignResults[1].StabilityDesignResults; + Assert.AreEqual(0.547, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + // Worst of Bishop and Uplift Van + result = output.Results.CalculationResults.DesignResults[2].StabilityDesignResults; + Assert.AreEqual(0.452, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + + // Calculation Result + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[1].CalculationResult)); + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[2].CalculationResult)); + } + + [Test] + public void TestRunMacroStabilityTutorialDesignBishopUpliftVan_NoUplift() + { + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + const string calcDir = "TestOutStabBishopUpliftVan_NoUplift"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile18.xml"; + string inputString = File.ReadAllText(fileName); + inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); + inputString = ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); + inputString = ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + + string outputString = engineInterface.Run(); + + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + // Bishop + var result = output.Results.CalculationResults.DesignResults[0].StabilityDesignResults; + Assert.IsTrue(result.SafetyFactorSpecified); + Assert.AreEqual(1.458, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + Assert.IsFalse(result.UpliftSituation.IsUplift); + // Uplift Van + result = output.Results.CalculationResults.DesignResults[1].StabilityDesignResults; + Assert.IsFalse(result.SafetyFactorSpecified); + Assert.IsNotNull(result.UpliftSituation); + // Worst of Bishop and Uplift Van + result = output.Results.CalculationResults.DesignResults[2].StabilityDesignResults; + Assert.IsTrue(result.SafetyFactorSpecified); + Assert.AreEqual(1.458, result.SafetyFactor, tolerance); + Assert.IsNotNull(result.UpliftSituation); + + // Calculation Result + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); + Assert.AreEqual(CalculationResult.NoRun, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[1].CalculationResult)); + Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[2].CalculationResult)); + } + public string ChangeInputModel(string input, InputStabilityModelType modelType) { string pattern = "StabilityModelType=\"Bishop\"";