Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj =================================================================== diff -u -r5519 -r5590 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 5519) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 5590) @@ -224,6 +224,9 @@ PreserveNewest + + PreserveNewest + Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalHHNKTests.cs =================================================================== diff -u --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalHHNKTests.cs (revision 0) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalHHNKTests.cs (revision 5590) @@ -0,0 +1,100 @@ +// Copyright (C) Stichting Deltares 2024. All rights reserved. +// +// This file is part of the Dam Engine. +// +// The Dam Engine is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.IO; +using System.Linq; +using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Interface; +using Deltares.DamEngine.Io; +using Deltares.DamEngine.Io.XmlOutput; +using Deltares.DamEngine.TestHelpers; +using NUnit.Framework; + +namespace Deltares.DamEngine.IntegrationTests.IntegrationTests; + +[TestFixture] +public class OperationalHHNKTests +{ + private const double tolerance = 0.00051; + + [Test] + [Category(Categories.WorkInProgress)] + public void Run_UsingTestFile_HasExpectedResultsInOutputFile() + { + const string calcDir = "TestOperationalHHNKPurmer"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + + Directory.CreateDirectory(calcDir); + // Based on "DamLive\trunk\data\HHNK Purmer\DAMLive.damx" + const string inputFileName = @"TestFiles\Operational\HHNKPurmer\Input.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 + + Output output = GeneralHelper.RunAfterInputValidation(inputString); + + Assert.That(output.Results.OperationalOutputTimeSeries, Has.Length.EqualTo(8)); + Assert.Multiple(() => + { + Assert.That(output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry, Has.Length.EqualTo(1)); + Assert.That(output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, Is.EqualTo(0.8555).Within(tolerance)); + Assert.That(output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry, Has.Length.EqualTo(1)); + Assert.That(output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, Is.EqualTo(0.839).Within(tolerance)); + }); + } + + [TestCase(PipingModelType.Wti2017)] + [TestCase(PipingModelType.Bligh)] + [Category(Categories.WorkInProgress)] + public void Run_UsingTestFile_WithSupportedPipingModelFailsBecauseNoRelevantSegments(PipingModelType pipingModel) + { + const string calcDir = "TestOperationalHHNKPurmer"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + + Directory.CreateDirectory(calcDir); + // Based on "DamLive\trunk\data\HHNK Purmer\DAMLive.damx" + const string inputFileName = @"TestFiles\Operational\HHNKPurmer\Input.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 + var engineInterface = new EngineInterface(inputString); + Assert.That(engineInterface.DamProjectData, Is.Not.Null); + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType = FailureMechanismSystemType.Piping; + engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.PipingModelType = pipingModel; + + Output output = GeneralHelper.RunAfterInputValidation(engineInterface, false); + + Assert.That(output.Results.CalculationMessages.Length, Is.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(output.Results.CalculationMessages[0].MessageType, Is.EqualTo(MessageMessageType.Info)); + Assert.That(output.Results.CalculationMessages[0].Message1, Is.EqualTo("There are 8 locations with sensor data")); + Assert.That(output.Results.CalculationMessages[1].MessageType, Is.EqualTo(MessageMessageType.Error)); + Assert.That(output.Results.CalculationMessages[1].Message1, Is.EqualTo("No segments with failure mechanism Piping present")); + }); + } +} \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Operational/HHNKPurmer/Input.xml =================================================================== diff -u --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Operational/HHNKPurmer/Input.xml (revision 0) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Operational/HHNKPurmer/Input.xml (revision 5590) @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file