Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs =================================================================== diff -u -r4000 -r4052 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs (.../OperationalGrebbedijkTests.cs) (revision 4000) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs (.../OperationalGrebbedijkTests.cs) (revision 4052) @@ -31,132 +31,131 @@ using Deltares.DamEngine.TestHelpers; using NUnit.Framework; -namespace Deltares.DamEngine.IntegrationTests.IntegrationTests +namespace Deltares.DamEngine.IntegrationTests.IntegrationTests; + +/// +/// These tests were based on DamLiveIntegrationTest.Run_UsingTestFiles_HasExpectedResultsInOutputFile() +/// +[TestFixture] +class OperationalGrebbedijkTests { - /// - /// These tests were based on DamLiveIntegrationTest.Run_UsingTestFiles_HasExpectedResultsInOutputFile() - /// - [TestFixture] - class OperationalGrebbedijkTests - { - private const double tolerance = 0.0005; + private const double tolerance = 0.0005; - [Test] - [Ignore("#Bka: this is a Bishop test. So as soon as that model is implemented it must be activated and made to work again.")] - [Category("Work_In_Progress")] - public void Run_UsingTestFiles_HasExpectedResultsInOutputFile() + [Test] + [Ignore("#Bka: this is a Bishop test. So as soon as that model is implemented it must be activated and made to work again.")] + [Category("Work_In_Progress")] + public void Run_UsingTestFiles_HasExpectedResultsInOutputFile() + { + const string calcDir = "TestOperationalGrebbedijk"; + const string workingDir = @"TestFiles\"; + const string baseTestDirectory = @".\"; + if (Directory.Exists(calcDir)) { - const string calcDir = "TestOperationalGrebbedijk"; - const string workingDir = @"TestFiles\"; - const string baseTestDirectory = @".\"; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - Directory.CreateDirectory(calcDir); - // Switch to TestFiles directory to check if DamLive can also run from another directory - Directory.SetCurrentDirectory(workingDir); - // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" - const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; - const string outputFileName = baseTestDirectory + @"GrebbedijkStability.output.xml"; - string inputString = File.ReadAllText(inputFileName); - 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); - var engineInterface = new EngineInterface(inputString); - Assert.IsNotNull(engineInterface.DamProjectData); - foreach (Location dikeLocation in engineInterface.DamProjectData.Dike.Locations) - { - var scenario = new DesignScenario(); - scenario.RiverLevel = dikeLocation.SurfaceLine.CharacteristicPoints - .GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Z + 1.5; - scenario.PolderLevel = dikeLocation.SurfaceLine.CharacteristicPoints - .GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z - 0.6; - scenario.HeadPl3 = 1; - scenario.HeadPl4 = scenario.PolderLevel; - scenario.RequiredSafetyFactorStabilityInnerSlope = 1.2; - dikeLocation.Scenarios.Add(scenario); - } - - string result = engineInterface.Validate(); - Assert.IsNull(result, "Validation must succeed but does not, see validation output xml in debugger"); - string outputString = engineInterface.Run(); - File.WriteAllText(outputFileName, outputString, Encoding.Unicode); - Assert.IsNotNull(outputString); - Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - Assert.AreEqual(2.321, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); - Assert.AreEqual(2.321, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[1].Value, tolerance); - // Following values were 0.590 in the previous DamLive version, but that has to do with how the - // reference level Su is handled in D-GeoStability 18.1 and D-GeoStability 15.1 - Assert.AreEqual(2.326, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); - Assert.AreEqual(2.326, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[1].Value, tolerance); + Directory.Delete(calcDir, true); // delete previous results } - //[TestCase(PipingModelType.Bligh)] //ToDo add succesfull test for Bligh/SellmeijerVnk - //[TestCase(PipingModelType.SellmeijerVnk)] - [TestCase(PipingModelType.Sellmeijer4Forces)] - public void Run_UsingTestFiles_ButWithUnsupportedPipingModelFails(PipingModelType pipingModel) + Directory.CreateDirectory(calcDir); + // Switch to TestFiles directory to check if DamLive can also run from another directory + Directory.SetCurrentDirectory(workingDir); + // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" + const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; + const string outputFileName = baseTestDirectory + @"GrebbedijkStability.output.xml"; + string inputString = File.ReadAllText(inputFileName); + 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); + var engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + foreach (Location dikeLocation in engineInterface.DamProjectData.Dike.Locations) { - const string calcDir = "TestOperationalGrebbedijk"; - const string workingDir = @".\"; - const string baseTestDirectory = @".\"; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - Directory.CreateDirectory(calcDir); - // Switch to TestFiles directory to check if DamLive can also run from another directory - Directory.SetCurrentDirectory(workingDir); - // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" - const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; - string inputString = File.ReadAllText(inputFileName); - 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); - var engineInterface = new EngineInterface(inputString); - Assert.IsNotNull(engineInterface.DamProjectData); - engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.Piping; - engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.PipingModelType = pipingModel; - Assert.That(() => engineInterface.Run(), Throws.TypeOf(typeof(NotImplementedException)).With.Message.EqualTo("The method or operation is not implemented.")); + var scenario = new DesignScenario(); + scenario.RiverLevel = dikeLocation.SurfaceLine.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Z + 1.5; + scenario.PolderLevel = dikeLocation.SurfaceLine.CharacteristicPoints + .GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z - 0.6; + scenario.HeadPl3 = 1; + scenario.HeadPl4 = scenario.PolderLevel; + scenario.RequiredSafetyFactorStabilityInnerSlope = 1.2; + dikeLocation.Scenarios.Add(scenario); } - [TestCase(PipingModelType.Wti2017)] - public void Run_UsingTestFiles_ButWithSupportedPipingModelFailsBecauseNoRelevantSegments(PipingModelType pipingModel) + string result = engineInterface.Validate(); + Assert.IsNull(result, "Validation must succeed but does not, see validation output xml in debugger"); + string outputString = engineInterface.Run(); + File.WriteAllText(outputFileName, outputString, Encoding.Unicode); + Assert.IsNotNull(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(2.321, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); + Assert.AreEqual(2.321, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[1].Value, tolerance); + // Following values were 0.590 in the previous DamLive version, but that has to do with how the + // reference level Su is handled in D-GeoStability 18.1 and D-GeoStability 15.1 + Assert.AreEqual(2.326, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); + Assert.AreEqual(2.326, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[1].Value, tolerance); + } + + //[TestCase(PipingModelType.Bligh)] //ToDo add succesfull test for Bligh/SellmeijerVnk + //[TestCase(PipingModelType.SellmeijerVnk)] + [TestCase(PipingModelType.Sellmeijer4Forces)] + public void Run_UsingTestFiles_ButWithUnsupportedPipingModelFails(PipingModelType pipingModel) + { + const string calcDir = "TestOperationalGrebbedijk"; + const string workingDir = @".\"; + const string baseTestDirectory = @".\"; + if (Directory.Exists(calcDir)) { - const string calcDir = "TestOperationalGrebbedijk"; - const string workingDir = @"TestFiles\"; - const string baseTestDirectory = @".\"; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } + Directory.Delete(calcDir, true); // delete previous results + } - Directory.CreateDirectory(calcDir); - // Switch to TestFiles directory to check if DamLive can also run from another directory - Directory.SetCurrentDirectory(workingDir); - // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" - const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; - string inputString = File.ReadAllText(inputFileName); - 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); - var engineInterface = new EngineInterface(inputString); - Assert.IsNotNull(engineInterface.DamProjectData); - engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.Piping; - engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.PipingModelType = pipingModel; - string outputString = engineInterface.Run(); - Assert.IsNotNull(outputString); - Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - Assert.AreEqual(2, output.Results.CalculationMessages.Length); - Assert.AreEqual(MessageMessageType.Info, output.Results.CalculationMessages[0].MessageType); - Assert.AreEqual("There are 2 locations with sensor data", output.Results.CalculationMessages[0].Message1); - Assert.AreEqual(MessageMessageType.Error, output.Results.CalculationMessages[1].MessageType); - Assert.AreEqual("No segments with failure mechanism Piping present", output.Results.CalculationMessages[1].Message1); + Directory.CreateDirectory(calcDir); + // Switch to TestFiles directory to check if DamLive can also run from another directory + Directory.SetCurrentDirectory(workingDir); + // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" + const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; + string inputString = File.ReadAllText(inputFileName); + 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); + var engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.Piping; + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.PipingModelType = pipingModel; + Assert.That(() => engineInterface.Run(), Throws.TypeOf(typeof(NotImplementedException)).With.Message.EqualTo("The method or operation is not implemented.")); + } + + [TestCase(PipingModelType.Wti2017)] + public void Run_UsingTestFiles_ButWithSupportedPipingModelFailsBecauseNoRelevantSegments(PipingModelType pipingModel) + { + const string calcDir = "TestOperationalGrebbedijk"; + const string workingDir = @"TestFiles\"; + const string baseTestDirectory = @".\"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results } + + Directory.CreateDirectory(calcDir); + // Switch to TestFiles directory to check if DamLive can also run from another directory + Directory.SetCurrentDirectory(workingDir); + // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" + const string inputFileName = baseTestDirectory + @"GrebbedijkStability.xml"; + string inputString = File.ReadAllText(inputFileName); + 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", baseTestDirectory + @"Operational\Grebbedijk\input.Geometries\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\Grebbedijk\input0.soilmaterials.mdb"); + var engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.Piping; + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.PipingModelType = pipingModel; + string outputString = engineInterface.Run(); + Assert.IsNotNull(outputString); + Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(2, output.Results.CalculationMessages.Length); + Assert.AreEqual(MessageMessageType.Info, output.Results.CalculationMessages[0].MessageType); + Assert.AreEqual("There are 2 locations with sensor data", output.Results.CalculationMessages[0].Message1); + Assert.AreEqual(MessageMessageType.Error, output.Results.CalculationMessages[1].MessageType); + Assert.AreEqual("No segments with failure mechanism Piping present", output.Results.CalculationMessages[1].Message1); } } \ No newline at end of file