Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs =================================================================== diff -u -r3893 -r4000 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 3893) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 4000) @@ -34,6 +34,7 @@ using Deltares.DamEngine.TestHelpers; using NUnit.Framework; using ConversionHelper = Deltares.DamEngine.Interface.ConversionHelper; +using UpliftSituation = Deltares.DamEngine.Io.XmlOutput.UpliftSituation; namespace Deltares.DamEngine.IntegrationTests.IntegrationTests { @@ -63,14 +64,6 @@ RemoveUsedDirectoryAfterTests("TestStabInwardsBishopUpliftVanWithoutUpliftWithStixFiles"); } - private void RemoveUsedDirectoryAfterTests(string directory) - { - if (Directory.Exists(directory)) - { - Directory.Delete(directory, true); - } - } - /// Test for different segmentFailureMechanismType /// The soilprobabilities are set tot the specified segmentFailureMechanismType [Test, Category("Slow")] @@ -94,21 +87,20 @@ Directory.CreateDirectory(calcDir); - const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; string inputString = File.ReadAllText(fileName); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", segmentFailureMechanismType.ToString()); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.IsNotNull(output.Results.CalculationResults, "No results available"); Assert.AreEqual(1.282, output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Tolerance); @@ -124,7 +116,7 @@ Assert.AreEqual("DWP_1.sti", output.Results.CalculationResults[0].ProfileName); // Uplift - var upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; + UpliftSituation upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; Assert.IsNotNull(upliftSituation); Assert.AreEqual(true, upliftSituation.IsUplift); Assert.AreEqual(1.141, upliftSituation.Pl3MinUplift, Tolerance); @@ -151,20 +143,21 @@ { Directory.Delete(calcDir, true); // delete previous results } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; string inputString = File.ReadAllText(fileName); inputString = ChangeInputModel(inputString, InputStabilityModelType.UpliftVan); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(1.115, output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Tolerance); // NumberOfIterations=0 @@ -179,7 +172,7 @@ Assert.AreEqual("DWP_1.sti", output.Results.CalculationResults[0].ProfileName); // Uplift - var upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; + UpliftSituation upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; Assert.IsNotNull(upliftSituation); Assert.AreEqual(true, upliftSituation.IsUplift); Assert.AreEqual(1.141, upliftSituation.Pl3MinUplift, Tolerance); @@ -206,22 +199,23 @@ { Directory.Delete(calcDir, true); // delete previous results } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile.xml"; string inputString = File.ReadAllText(fileName); inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // Bishop - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; Assert.AreEqual(1.282, result.StabilityDesignResults.SafetyFactor, Tolerance); Assert.IsNotNull(result.StabilityDesignResults.UpliftSituation); Assert.IsTrue(result.StabilityDesignResults.UpliftSituation.IsUplift); @@ -259,22 +253,23 @@ { Directory.Delete(calcDir, true); // delete previous results } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile13.xml"; string inputString = File.ReadAllText(fileName); inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // Bishop - var result = output.Results.CalculationResults[0].StabilityDesignResults; + DesignResultStabilityDesignResults result = output.Results.CalculationResults[0].StabilityDesignResults; Assert.AreEqual(0.452, result.SafetyFactor, Tolerance); Assert.IsNotNull(result.UpliftSituation); Assert.IsTrue(result.UpliftSituation.IsUplift); @@ -309,22 +304,23 @@ { Directory.Delete(calcDir, true); // delete previous results } + const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile18.xml"; string inputString = File.ReadAllText(fileName); inputString = ChangeInputModel(inputString, InputStabilityModelType.BishopUpliftVan); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // Bishop - var result = output.Results.CalculationResults[0].StabilityDesignResults; + DesignResultStabilityDesignResults result = output.Results.CalculationResults[0].StabilityDesignResults; Assert.IsTrue(result.SafetyFactorSpecified); Assert.AreEqual(1.458, result.SafetyFactor, Tolerance); Assert.IsNotNull(result.UpliftSituation); @@ -347,7 +343,7 @@ Assert.AreEqual(CalculationResult.NoRun, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[1].CalculationResult)); Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[2].CalculationResult)); } - + [Test, Category("Slow")] [Ignore("Test disabled due to removal of the old MacroStability kernel wrapper implementation")] public void TestRunMacroStabilityInvoer10ForbiddenZoneBishop() @@ -375,17 +371,17 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\ZoneType.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\ZoneType0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(2, output.Results.CalculationResults.Length); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; // SafetyFactor=1.972 (Zone Areas) Assert.AreEqual(1.972, result.StabilityDesignResults.SafetyFactor, Tolerance); Assert.AreEqual("DWP_10_2", result.LocationName); @@ -425,16 +421,16 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DeltaDijk normal.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(4, output.Results.CalculationResults.Length); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; Assert.AreEqual("6-4-3-A-1-C", result.LocationName); Assert.AreEqual("6-4-3-A-1-C_1_s", result.ProfileName); // Calculation Result @@ -493,17 +489,17 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DeltaDijk normal.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(12, output.Results.CalculationResults.Length); - var result = output.Results.CalculationResults[3]; + DesignResult result = output.Results.CalculationResults[3]; Assert.AreEqual("6-4-3-A-1-C", result.LocationName); Assert.AreEqual("6-4-3-A-1-C_2_s", result.ProfileName); // Bishop @@ -551,18 +547,18 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.IsNull(output.Results.CalculationResults); - + Assert.AreEqual("Location 'DWP_13', subsoil scenario 'DWP_13.sti', design scenario '1': " + "The preparation for this calculation failed.", - output.Results.CalculationMessages[0].Message1); + output.Results.CalculationMessages[0].Message1); } [Test, Category("Slow")] @@ -583,15 +579,15 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\SlopeAdaption0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.IsNotNull(output.Results.CalculationResults); - + Assert.AreEqual(1.724, output.Results.CalculationResults.First().StabilityDesignResults.SafetyFactor, Tolerance); } @@ -610,10 +606,10 @@ [TestCase("TestStabInwardsUpliftVanDesignSequential", "UpliftVan", "SlopeAdaptionBeforeShoulderAdaption", CalculationResult.Succeeded, 1.4847, 39.243, 73.587, 50.285, 3.465, 7, "")] [TestCase("TestStabInwardsUpliftVanDesignOptimized", "UpliftVan", "OptimizedSlopeAndShoulderAdaption", CalculationResult.RunFailed, 1.214, 39.514, 66.926, 36.150, 0.0, 4, "The new shoulder height with topslope exceeds the allowed maximum height.")] public void CanPerformStabilityInwardsDesignTutorialDesignOptimizedSlopeAndShoulderAdaption_OneLocation( - string calcDir, string stabilityModel, string designStrategy, - CalculationResult calculationResult, double expectedSafetyFactor, - double expectedZone1EntryPointX, double expectedZone1ExitPointX, - double expectedDikeLength, double expectedShoulderHeight, + string calcDir, string stabilityModel, string designStrategy, + CalculationResult calculationResult, double expectedSafetyFactor, + double expectedZone1EntryPointX, double expectedZone1ExitPointX, + double expectedDikeLength, double expectedShoulderHeight, int expectedNumberOfIterations, string expectedResultMessage) { const string fileName = @"TestFiles\MacroStabilityTutorialDesignInputFile1LocationWithAdaption.xml"; @@ -624,19 +620,19 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); inputString = XmlAdapter.ChangeValueInXml(inputString, "StabilityModelType", stabilityModel); inputString = XmlAdapter.ChangeValueInXml(inputString, "StabilityDesignMethod", designStrategy); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(calculationResult, ConversionHelper.ConvertToCalculationResult( - output.Results.CalculationResults[0].CalculationResult)); + output.Results.CalculationResults[0].CalculationResult)); - var stabilityDesignResults = output.Results.CalculationResults[0].StabilityDesignResults; + DesignResultStabilityDesignResults stabilityDesignResults = output.Results.CalculationResults[0].StabilityDesignResults; Assert.AreEqual(expectedSafetyFactor, stabilityDesignResults.SafetyFactor, Tolerance); Assert.AreEqual(expectedNumberOfIterations, stabilityDesignResults.NumberOfIterations); Assert.AreEqual(expectedResultMessage, stabilityDesignResults.ResultMessage); @@ -672,13 +668,13 @@ string inputString = File.ReadAllText(fileName); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(null, output.Results.CalculationResults); Assert.AreEqual(2, output.Results.CalculationMessages.Length); Assert.AreEqual(MessageMessageType.Warning, output.Results.CalculationMessages[0].MessageType); @@ -690,25 +686,25 @@ { var analysisType = "AdaptGeometry"; // Test just to see if calculation works in this case as it should do. - var outputString = GetOutputStringForProject(analysisType); + string outputString = GetOutputStringForProject(analysisType); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.IsNull(output.Results.CalculationResults, "No results available"); // Note Bka: it already failed, but now for a different reason.Probably because DTH is not yet taken into account with testing/adjusting the data. Assert.IsTrue(output.Results.CalculationMessages[0].Message1.Contains("Location 'DWP_1', subsoil scenario 'DWP_1.sti', design scenario '1': " + - "The calculation failed with error message 'Value cannot be null.")); + "The calculation failed with error message 'Value cannot be null.")); } [Test] public void TestNoDesignWithRiverLevelAboveDikeTopButBelowDthCanNotCalculate() { var analysisType = "NoAdaption"; // Test to see if calculation does NOT work in this case as it must fail with water level above dike top. - var outputString = GetOutputStringForProject(analysisType); + string outputString = GetOutputStringForProject(analysisType); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.IsNull(output.Results.CalculationResults, "Should have results available"); Assert.AreEqual(2, output.Results.CalculationMessages.Length, Tolerance); } @@ -729,7 +725,6 @@ Directory.CreateDirectory(calcDir); - const string fileName = @"TestFiles\DeltaDijkBishopInwards.xml"; string inputString = File.ReadAllText(fileName); inputString = ChangeInputModel(inputString, InputStabilityModelType.Bishop); @@ -738,13 +733,13 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DeltaDijk normal.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); - + string outputString = engineInterface.Run(); - + Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // one location is calculated with 3 1D profiles Assert.AreEqual(3, output.Results.CalculationResults.Length); @@ -755,7 +750,7 @@ Assert.AreEqual("6-4-1-A-1-F", output.Results.CalculationResults[2].LocationName); Assert.AreEqual("6-4-1-A-1-F_3_s", output.Results.CalculationResults[2].ProfileName); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; // SafetyFactor=1.682 Assert.AreEqual(1.682, result.StabilityDesignResults.SafetyFactor, Tolerance); @@ -775,16 +770,16 @@ // Stix file var fileList = new List { -#if DEBUG +#if DEBUG "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_3_s)_input.stix", -#endif +#endif "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_3_s)_result.stix" }; - foreach (var file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) + foreach (string file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.IsTrue(File.Exists(file), file + " does not exist"); } @@ -814,13 +809,13 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DeltaDijk normal.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // one location is calculated with 3 1D profiles // However, profile 6-4-1-A-1-F_3_s has no UpliftVan occuring and thus has no result @@ -830,7 +825,7 @@ Assert.AreEqual("6-4-1-A-1-F", output.Results.CalculationResults[1].LocationName); Assert.AreEqual("6-4-1-A-1-F_2_s", output.Results.CalculationResults[1].ProfileName); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; // SafetyFactor=1.638 DSTAB 1.518 (1.079) Assert.AreEqual(1.638, result.StabilityDesignResults.SafetyFactor, Tolerance); @@ -844,22 +839,22 @@ // SafetyFactor=1.551 DSTAB 1.414. 1.097 Assert.AreEqual(1.551, result.StabilityDesignResults.SafetyFactor, Tolerance); Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(result.CalculationResult)); - + var fileList = new List { -#if DEBUG +#if DEBUG "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix", -#endif +#endif "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix" }; - foreach (var file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) + foreach (string file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { - Assert.IsTrue(File.Exists(file),file + " does not exist"); + Assert.IsTrue(File.Exists(file), file + " does not exist"); } } - + [Test, Category("Slow")] public void TestRunMacroStabilityDeltaDijkBishopUpliftVanWith1DWithUpliftProducesStixFiles() { @@ -884,13 +879,13 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DeltaDijk normal.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); - + string outputString = engineInterface.Run(); - + Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // one location is calculated with 3 1D profiles Assert.AreEqual(3, output.Results.CalculationResults.Length); @@ -901,7 +896,7 @@ Assert.AreEqual("6-4-1-A-1-F", output.Results.CalculationResults[2].LocationName); Assert.AreEqual("6-4-1-A-1-F_3_s", output.Results.CalculationResults[2].ProfileName); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; // SafetyFactor=1.638 Assert.AreEqual(1.638, result.StabilityDesignResults.SafetyFactor, Tolerance); @@ -918,23 +913,23 @@ // Stix file var fileList = new List { -#if DEBUG +#if DEBUG "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix", -#endif +#endif "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix" }; - foreach (var file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) + foreach (string file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.IsTrue(File.Exists(file), file + " does not exist"); } } - + [Test, Category("Slow")] public void TestRunMacroStabilityDeltaDijkBishopUpliftVanWith1DWithoutUpliftProducesStixFiles() { @@ -960,13 +955,13 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DeltaDijk normal0.soilmaterials.mdb"); inputString = XmlAdapter.ChangeValueInXml(inputString, "UpliftCriterionStability", @"1.0"); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); - + string outputString = engineInterface.Run(); - + Assert.IsNotNull(outputString); - var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); // one location is calculated with 3 1D profiles Assert.AreEqual(3, output.Results.CalculationResults.Length); @@ -975,7 +970,7 @@ Assert.AreEqual("6-4-1-A-1-F", output.Results.CalculationResults[1].LocationName); Assert.AreEqual("6-4-1-A-1-F_2_s", output.Results.CalculationResults[1].ProfileName); - var result = output.Results.CalculationResults[0]; + DesignResult result = output.Results.CalculationResults[0]; // SafetyFactor=1.682 Assert.AreEqual(1.682, result.StabilityDesignResults.SafetyFactor, Tolerance); @@ -992,19 +987,20 @@ // Stix file var existingFilesList = new List { -#if DEBUG +#if DEBUG "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_3_s)_input.stix", -#endif +#endif "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix", "Stability\\Bishop\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_3_s)_result.stix" }; - foreach (var file in existingFilesList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) + foreach (string file in existingFilesList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.IsTrue(File.Exists(file), file + " does not exist"); } + var noneExistingFilesList = new List { #if DEBUG @@ -1014,12 +1010,20 @@ "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_result.stix", "Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_result.stix" }; - foreach (var file in noneExistingFilesList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) + foreach (string file in noneExistingFilesList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.IsFalse(File.Exists(file), file + " does exist"); - } - } + } + } + private void RemoveUsedDirectoryAfterTests(string directory) + { + if (Directory.Exists(directory)) + { + Directory.Delete(directory, true); + } + } + private static string GetOutputStringForProject(string analysisType) { const string calcDir = "TestStabInwardsBishop"; @@ -1030,21 +1034,20 @@ Directory.CreateDirectory(calcDir); - const string fileName = @"TestFiles\DesignInputFileWithRiverLevelAboveDikeTopButBelowDTH.xml"; string inputString = File.ReadAllText(fileName); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", - @"TestFiles\DAM Tutorial Design.geometries2D.0\"); + @"TestFiles\DAM Tutorial Design.geometries2D.0\"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", - @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); + @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", - ConversionHelper.InputSegmentFailureMechanismStability.ToString()); + ConversionHelper.InputSegmentFailureMechanismStability.ToString()); inputString = XmlAdapter.ChangeValueInXml(inputString, "AnalysisType", analysisType); - EngineInterface engineInterface = new EngineInterface(inputString); + var engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); @@ -1053,7 +1056,7 @@ private string ChangeInputModel(string input, InputStabilityModelType modelType) { - string pattern = "StabilityModelType=\"[a-zA-Z]+\""; + var pattern = "StabilityModelType=\"[a-zA-Z]+\""; string replacement = pattern; switch (modelType) { @@ -1067,9 +1070,9 @@ replacement = "StabilityModelType=\"BishopUpliftVan\""; break; } + string result = Regex.Replace(input, pattern, replacement); return result; } } - -} +} \ No newline at end of file