Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj =================================================================== diff -u -r715 -r749 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj (.../Deltares.DamEngine.Interface.Tests.csproj) (revision 715) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/Deltares.DamEngine.Interface.Tests.csproj (.../Deltares.DamEngine.Interface.Tests.csproj) (revision 749) @@ -66,6 +66,7 @@ + Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijerVnkTests.cs =================================================================== diff -u --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijerVnkTests.cs (revision 0) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/PipingSellmeijerVnkTests.cs (revision 749) @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Deltares.DamEngine.Io; +using NUnit.Framework; + +namespace Deltares.DamEngine.Interface.Tests +{ + [TestFixture] + public class PipingSellmeijerVnkTests + { + private const double tolerance = 0.0005; + + [Test] + public void CanPerformSellmeijer4ForcesDesignPipingVoorbeeld1() + { + const string fileName = @"TestFiles\PipingVoorbeeld1_SellmeijerVNKInputFile.xml"; + string inputString = File.ReadAllText(fileName); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + string outputString = engineInterface.Run(); + // Factor piping = 0.463 + // Kritische hoogte = 1.619 + // Factor opdrijven = 0.351 + // Kwelweglengte piping = 25.0 + // Intredepunt x-lokaal = 10.0 + // Uittredepunt x-lokaal = 35.0 + // Opdrijven = true + // Profielnaam = soilprofile_01 + // PL3 opdrijven = 0.582 + // PL3 stijghoogte aangepast = 1.262 + // PL3 locatie opdriven lokaal = 35.0 + // PL4 opdrijven = 0.0 + // PL4 stijghoogte aangepast = 0.0 + // PL4 locatie opdrijven lokaal = 0.0 + // Locatie naam = "profiel 1" + // ID locatie scenario = "1" + // Heave Factor = 90.0 + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(0.463, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.Sellmeijer4ForcesFactor, tolerance); + Assert.AreEqual(1.759, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.Sellmeijer4ForcesHcritical, tolerance); + Assert.AreEqual(35.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.ExitPointX, tolerance); + // The following values are not the same as in the classic UI + // The upliftfactor there is 0.351, but that is the Wti Upliftfactor + // The adjusted PL3/PL4 values there are not 0.0, but those are the values for stability; for piping no adjustment has to be made + Assert.AreEqual(0.5825, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftFactor, tolerance); + Assert.AreEqual(true, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.IsUplift); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl3MinUplift, tolerance); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl3HeadAdjusted, tolerance); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift, tolerance); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl4MinUplift, tolerance); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl4HeadAdjusted, tolerance); + Assert.AreEqual(0.0, output.Results.CalculationResults.DesignResults[0].PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift, tolerance); + } + + } +}