Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputPipingAll.xml
===================================================================
diff -u
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputPipingAll.xml (revision 0)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputPipingAll.xml (revision 6205)
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj
===================================================================
diff -u -r6190 -r6205
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 6190)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 6205)
@@ -152,6 +152,9 @@
PreserveNewest
+
+ PreserveNewest
+
Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingTests.cs
===================================================================
diff -u
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingTests.cs (revision 0)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingTests.cs (revision 6205)
@@ -0,0 +1,144 @@
+// 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.Collections.Generic;
+using System.IO;
+using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.Geotechnics;
+using Deltares.DamEngine.Interface;
+using Deltares.DamEngine.Io.XmlOutput;
+using Deltares.DamEngine.TestHelpers;
+using NUnit.Framework;
+
+namespace Deltares.DamEngine.IntegrationTests.IntegrationTests;
+
+[TestFixture]
+public class PipingTests
+{
+ private const double tolerance = 0.00051;
+ // The following file is created wit DAM UI project
+ // .\data\Tutorials\DAMDesign\Piping\PipingAll\PipingAll.damx
+ // SVN rev.6179
+ // The results are listed in TutorialPipingResult.xlsx
+ private const string pipingAll = @"TestFiles\InputPipingAll.xml";
+ private const string pipingModelBligh = "Bligh";
+ private const string pipingModelWtiSellmeijerRevised = "WtiSellmeijerRevised";
+
+ public static IEnumerable TestCases
+ {
+ get
+ {
+ yield return new TestCaseData(
+ false, pipingModelBligh, new[]
+ {
+ 0.521,
+ 0.521,
+ 0.521,
+ 0.521,
+ 0.521
+ }, new[]
+ {
+ 25.0,
+ 25.0,
+ 25.0,
+ 25.0,
+ 25.0
+ }).SetName("No adaption Bligh");
+ yield return new TestCaseData(
+ false, pipingModelWtiSellmeijerRevised, new[]
+ {
+ 0.432,
+ 0.422,
+ 0.428,
+ 0.505,
+ 0.515
+ }, new[]
+ {
+ 25.0,
+ 25.0,
+ 25.0,
+ 25.0,
+ 25.0
+ }).SetName("No adaption WtiSellmeijerRevised");
+ yield return new TestCaseData(
+ true, pipingModelBligh, new[]
+ {
+ 1.323,
+ 1.323,
+ 1.323,
+ 1.331,
+ 1.331
+ }, new[]
+ {
+ 63.486,
+ 63.486,
+ 63.486,
+ 63.902,
+ 63.902
+ }).SetName("Adaption Bligh");
+ yield return new TestCaseData(
+ true, pipingModelWtiSellmeijerRevised, new[]
+ {
+ 1.280,
+ 1.276,
+ 1.278,
+ 1.304,
+ 1.304
+ }, new[]
+ {
+ 83.986,
+ 86.486,
+ 85.486,
+ 71.402,
+ 69.902
+ }).SetName("Adaption WtiSellmeijerRevised");
+ }
+ }
+
+ [Test]
+ [TestCaseSource(nameof(TestCases))]
+ public void GivenPipingAll_WhenCalculateAll_ThenGivesExpectedResults(bool isAdaptGeometry, string pipingModelType, double[] expectedSafetyFactors, double[] expectedDikeLengths)
+ {
+ string inputString = File.ReadAllText(pipingAll);
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "AnalysisType", isAdaptGeometry ? "AdaptGeometry" : "NoAdaption");
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "PipingModelType", pipingModelType);
+ Output output = GeneralHelper.RunAfterInputValidation(inputString);
+ DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output);
+ Assert.That(actualDamProjectData.DesignCalculations, Has.Count.EqualTo(expectedSafetyFactors.Length));
+ Assert.That(actualDamProjectData.DesignCalculations, Has.Count.EqualTo(expectedDikeLengths.Length));
+ Assert.Multiple(() =>
+ {
+ for (var i = 0; i < expectedSafetyFactors.Length; i++)
+ {
+ switch (pipingModelType)
+ {
+ case pipingModelBligh:
+ Assert.That(actualDamProjectData.DesignCalculations[i].PipingDesignResults.BlighFactor, Is.EqualTo(expectedSafetyFactors[i]).Within(tolerance));
+ break;
+ case pipingModelWtiSellmeijerRevised:
+ Assert.That(actualDamProjectData.DesignCalculations[i].PipingDesignResults.Wti2017SafetyFactorOverall, Is.EqualTo(expectedSafetyFactors[i]).Within(tolerance));
+ break;
+ }
+ Assert.That(actualDamProjectData.DesignCalculations[i].PipingDesignResults.RedesignedSurfaceLine.GetDikeLength(), Is.EqualTo(expectedDikeLengths[i]).Within(tolerance));
+ }
+ });
+ }
+}
\ No newline at end of file