using System.IO; using System.Threading; using Deltares.DamEngine.Interface; using Deltares.DamEngine.Io; using NUnit.Framework; namespace Deltares.DamEngine.IntegrationTests.IntegrationTests { public class DesignCalculatorTests { [Test] [SetUICulture("en-US")] public void MessageWhenNoPipingSegmentsFound() { // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx" // but without piping segments for piping // Set Analysis type to "No Adaption" // Set model to Piping Sellmeijer Revised (WBI) // Select first location (100) Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; const string fileName = @"TestFiles\PipingVoorbeeld1_WtiSellmeijerRevisedNoPipingInputFile.xml"; string inputString = File.ReadAllText(fileName); EngineInterface engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(1, output.Results.CalculationMessages.Length); Assert.AreEqual(null, output.Results.CalculationResults); Assert.AreEqual("No segments with failure mechanism Piping present", output.Results.CalculationMessages[0].Message1); } [Test] [SetUICulture("nl-NL")] public void MessageWhenNoStabilityInsideSegmentsFound() { // Based on ".\data\DamEngineTestProjects\Larenstein_AaenMaas\Rechter Diezedijk.damx" // Set Analysis type to "No Adaption" // Select Failure mechanism Stability Inside // Select second location (101) Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; const string fileName = @"TestFiles\Rechter Diezedijk_NoStabilityInsideInputFile.xml"; string inputString = File.ReadAllText(fileName); EngineInterface engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(1, output.Results.CalculationMessages.Length); Assert.AreEqual(null, output.Results.CalculationResults); Assert.AreEqual("Geen segmenten met faalmechanisme StabilityInside aanwezig", output.Results.CalculationMessages[0].Message1); } [Test] [SetUICulture("nl-NL")] public void TestInputXML() { // Based on InputFile.xml as produced by DAM UI in debug mode Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; const string fileName = @"TestFiles\InputFile.xml"; string inputString = File.ReadAllText(fileName); EngineInterface engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); Assert.AreEqual(0, output.Results.CalculationMessages.Length); Assert.AreEqual(1, output.Results.CalculationResults.Length); Assert.AreEqual(1.7086, output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, 0.0001); } } }