Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingSellmeijerVnkTests.cs
===================================================================
diff -u -r4000 -r4052
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingSellmeijerVnkTests.cs (.../PipingSellmeijerVnkTests.cs) (revision 4000)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/PipingSellmeijerVnkTests.cs (.../PipingSellmeijerVnkTests.cs) (revision 4052)
@@ -30,165 +30,164 @@
using NUnit.Framework;
using ConversionHelper = Deltares.DamEngine.Interface.ConversionHelper;
-namespace Deltares.DamEngine.IntegrationTests.IntegrationTests
+namespace Deltares.DamEngine.IntegrationTests.IntegrationTests;
+
+[TestFixture]
+public class PipingSellmeijerVnkTests
{
- [TestFixture]
- public class PipingSellmeijerVnkTests
+ private const double tolerance = 0.0005;
+
+ /// Test for different segmentFailureMechanismType
+ /// The soilprobabilities are set tot the specified segmentFailureMechanismType
+ [Test]
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismPiping)]
+ [TestCase(ConversionHelper.InputSegmentFailureMechanismAll)]
+ public void CanPerformSellmeijerVnkDesignPipingVoorbeeld1(int segmentFailureMechanismType)
{
- private const double tolerance = 0.0005;
+ // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
+ // Select Failure mechanism Piping and model Sellmeijer (VNK)
+ // Set Analysis type to "No Adaption"
+ const string fileName = @"PipingVoorbeeld1_SellmeijerVNKInputFile.xml";
+ string inputString = File.ReadAllText(fileName);
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", segmentFailureMechanismType.ToString());
+ var 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);
+ Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
+ Assert.IsNotNull(output.Results.CalculationResults, "No results available");
+ Assert.AreEqual(0.463, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
+ Assert.AreEqual(1.759, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkHcritical, tolerance);
+ Assert.AreEqual(35.0, output.Results.CalculationResults[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[0].PipingDesignResults.UpliftFactor, tolerance);
+ Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.IsUplift);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3MinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3HeadAdjusted, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4MinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4HeadAdjusted, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift, tolerance);
+ }
- /// Test for different segmentFailureMechanismType
- /// The soilprobabilities are set tot the specified segmentFailureMechanismType
- [Test]
- [TestCase(ConversionHelper.InputSegmentFailureMechanismPiping)]
- [TestCase(ConversionHelper.InputSegmentFailureMechanismAll)]
- public void CanPerformSellmeijerVnkDesignPipingVoorbeeld1(int segmentFailureMechanismType)
- {
- // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
- // Select Failure mechanism Piping and model Sellmeijer (VNK)
- // Set Analysis type to "No Adaption"
- const string fileName = @"PipingVoorbeeld1_SellmeijerVNKInputFile.xml";
- string inputString = File.ReadAllText(fileName);
- inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", segmentFailureMechanismType.ToString());
- var 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);
- Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
- Assert.IsNotNull(output.Results.CalculationResults, "No results available");
- Assert.AreEqual(0.463, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
- Assert.AreEqual(1.759, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkHcritical, tolerance);
- Assert.AreEqual(35.0, output.Results.CalculationResults[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[0].PipingDesignResults.UpliftFactor, tolerance);
- Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.IsUplift);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3MinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3HeadAdjusted, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4MinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4HeadAdjusted, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift, tolerance);
- }
+ [Test]
+ public void CanPerformSellmeijerVnkDesignWithAdaptionPipingVoorbeeld1()
+ {
+ // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
+ // Select Failure mechanism Piping and model Sellmeijer (VNK)
+ // Set Analysis type to "Adapt geometry"
+ // Change required safety factor piping to 1.01
+ const string fileName = @"PipingVoorbeeld1_SellmeijerVNKDesignInputFile.xml";
+ string inputString = File.ReadAllText(fileName);
+ var engineInterface = new EngineInterface(inputString);
+ Assert.IsNotNull(engineInterface.DamProjectData);
+ string outputString = engineInterface.Run();
+ Assert.IsNotNull(outputString);
+ Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
+ DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output);
+ SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].PipingDesignResults.RedesignedSurfaceLine;
+ // uplift = true
+ Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.IsUplift);
+ // shoulder height = 1.995
+ Assert.AreEqual(1.995, redesignedSurfaceLine.DetermineShoulderHeight(), tolerance);
+ // dike length = 84.486
+ Assert.That(redesignedSurfaceLine.GetDikeLength(), Is.EqualTo(84.486).Within(tolerance));
- [Test]
- public void CanPerformSellmeijerVnkDesignWithAdaptionPipingVoorbeeld1()
- {
- // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
- // Select Failure mechanism Piping and model Sellmeijer (VNK)
- // Set Analysis type to "Adapt geometry"
- // Change required safety factor piping to 1.01
- const string fileName = @"PipingVoorbeeld1_SellmeijerVNKDesignInputFile.xml";
- string inputString = File.ReadAllText(fileName);
- var engineInterface = new EngineInterface(inputString);
- Assert.IsNotNull(engineInterface.DamProjectData);
- string outputString = engineInterface.Run();
- Assert.IsNotNull(outputString);
- Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
- DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output);
- SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].PipingDesignResults.RedesignedSurfaceLine;
- // uplift = true
- Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.IsUplift);
- // shoulder height = 1.995
- Assert.AreEqual(1.995, redesignedSurfaceLine.DetermineShoulderHeight(), tolerance);
- // dike length = 84.486
- Assert.That(redesignedSurfaceLine.GetDikeLength(), Is.EqualTo(84.486).Within(tolerance));
+ // ShoulderLength = X_Kruin binnenberm - X_Insteek binnenberm = 82.51 - 29.01 = 53.5
+ // Read from PipingSellmeijerVNK_Piping_CharacteristicPoints.csv by export surfacelines in Release
+ Assert.AreEqual(53.5, redesignedSurfaceLine.DetermineShoulderLength(), tolerance);
- // ShoulderLength = X_Kruin binnenberm - X_Insteek binnenberm = 82.51 - 29.01 = 53.5
- // Read from PipingSellmeijerVNK_Piping_CharacteristicPoints.csv by export surfacelines in Release
- Assert.AreEqual(53.5, redesignedSurfaceLine.DetermineShoulderLength(), tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3MinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3HeadAdjusted, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4MinUplift, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4HeadAdjusted, tolerance);
+ Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3MinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3HeadAdjusted, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl3LocationXMinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4MinUplift, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4HeadAdjusted, tolerance);
- Assert.AreEqual(0.0, output.Results.CalculationResults[0].PipingDesignResults.UpliftSituation.Pl4LocationXMinUplift, tolerance);
+ // The ExitPointX in Dam 15.1.2.24738 is (incorrectly) not shown
+ // ExitPointX = X_Teen dijk binnenwaarts = 94.486
+ // Read from PipingSellmeijerVNK_Piping_CharacteristicPoints.csv by export surfacelines in Release
+ Assert.AreEqual(94.486, output.Results.CalculationResults[0].PipingDesignResults.ExitPointX, tolerance);
- // The ExitPointX in Dam 15.1.2.24738 is (incorrectly) not shown
- // ExitPointX = X_Teen dijk binnenwaarts = 94.486
- // Read from PipingSellmeijerVNK_Piping_CharacteristicPoints.csv by export surfacelines in Release
- Assert.AreEqual(94.486, output.Results.CalculationResults[0].PipingDesignResults.ExitPointX, tolerance);
+ // The following values are not the same as in the Dam 15.1.2.24738 release
+ // The final piping calculation at the redesigned situation is done at X = 29.014 (the "insteek van de berm"),
+ // but it should have been done at X = 94.486 (the "teen van de dijk")
+ // Found expected values by debugging with Classic
+ // after change in Classic: upliftLocationDeterminator.GetLocationAndResult(upliftcriterion - 0.000000001)
- // The following values are not the same as in the Dam 15.1.2.24738 release
- // The final piping calculation at the redesigned situation is done at X = 29.014 (the "insteek van de berm"),
- // but it should have been done at X = 94.486 (the "teen van de dijk")
- // Found expected values by debugging with Classic
- // after change in Classic: upliftLocationDeterminator.GetLocationAndResult(upliftcriterion - 0.000000001)
+ // The Factor in Dam 15.1.2.24738 is 1.167, but that is not correct, because that is the value at X = 29.014
+ // expected value = 1.070
+ Assert.AreEqual(1.070, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
+ // The Hcritical in Dam 15.1.2.24738 is 2.105, but that is not correct, because that is the value at X = 29.014
+ // expected value = 4.067
+ Assert.AreEqual(4.067, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkHcritical, tolerance);
- // The Factor in Dam 15.1.2.24738 is 1.167, but that is not correct, because that is the value at X = 29.014
- // expected value = 1.070
- Assert.AreEqual(1.070, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
- // The Hcritical in Dam 15.1.2.24738 is 2.105, but that is not correct, because that is the value at X = 29.014
- // expected value = 4.067
- Assert.AreEqual(4.067, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkHcritical, tolerance);
+ // The upliftfactor in Dam 15.1.2.24738 is (incorrectly) not shown
+ // expected value = 0.582
+ Assert.AreEqual(0.582, output.Results.CalculationResults[0].PipingDesignResults.UpliftFactor, tolerance);
+ }
- // The upliftfactor in Dam 15.1.2.24738 is (incorrectly) not shown
- // expected value = 0.582
- Assert.AreEqual(0.582, output.Results.CalculationResults[0].PipingDesignResults.UpliftFactor, tolerance);
- }
+ [Test]
+ public void TestIfSellmeijerVnkCalculationResultIsSetToFailDueToShoulderShoulderLengthError()
+ {
+ // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
+ // Select Failure mechanism Piping and model Sellmeijer (VNK)
+ // Set Analysis type to "Adapt geometry"
+ const string fileName = @"PipingVoorbeeld1_SellmeijerVNKDesignInputFileFail.xml";
+ string inputString = File.ReadAllText(fileName);
+ var engineInterface = new EngineInterface(inputString);
+ Assert.IsNotNull(engineInterface.DamProjectData);
+ string outputString = engineInterface.Run();
+ Assert.IsNotNull(outputString);
+ Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
- [Test]
- public void TestIfSellmeijerVnkCalculationResultIsSetToFailDueToShoulderShoulderLengthError()
- {
- // Based on ".\data\DamEngineTestProjects\PipingVoorbeeld1\PipingVoorbeeld1.damx"
- // Select Failure mechanism Piping and model Sellmeijer (VNK)
- // Set Analysis type to "Adapt geometry"
- const string fileName = @"PipingVoorbeeld1_SellmeijerVNKDesignInputFileFail.xml";
- string inputString = File.ReadAllText(fileName);
- var engineInterface = new EngineInterface(inputString);
- Assert.IsNotNull(engineInterface.DamProjectData);
- string outputString = engineInterface.Run();
- Assert.IsNotNull(outputString);
- Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
+ Assert.AreEqual(CalculationResult.RunFailed, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult));
+ // expected value = -1 because exception was raised for the shoulder length
+ Assert.AreEqual(-1.0, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
+ Assert.AreEqual("The new shoulder length is too large to fit in the current surface line.",
+ output.Results.CalculationResults[0].PipingDesignResults.ResultMessage);
+ Assert.AreEqual("Location 'Profiel 1', subsoil scenario 'soilprofile_01', design scenario '1': " +
+ "The calculation failed with error message " +
+ "'The design was not successful. " +
+ "The new shoulder length is too large to fit in the current surface line.'",
+ output.Results.CalculationMessages[0].Message1);
+ }
- Assert.AreEqual(CalculationResult.RunFailed, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult));
- // expected value = -1 because exception was raised for the shoulder length
- Assert.AreEqual(-1.0, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor, tolerance);
- Assert.AreEqual("The new shoulder length is too large to fit in the current surface line.",
- output.Results.CalculationResults[0].PipingDesignResults.ResultMessage);
- Assert.AreEqual("Location 'Profiel 1', subsoil scenario 'soilprofile_01', design scenario '1': " +
- "The calculation failed with error message " +
- "'The design was not successful. " +
- "The new shoulder length is too large to fit in the current surface line.'",
- output.Results.CalculationMessages[0].Message1);
- }
+ [Test]
+ public void TestIfSellmeijerVnkCalculationGeneratesNoErrorWhenNewShoulderLengthIsSmaller()
+ {
+ // Based on ".\data\DamEngineTestProjects\Invoer3\DeltaDijk\DeltaDijk normal.damx"
+ // Select Failure mechanism Piping and model Sellmeijer (VNK)
+ // Set Analysis type to "Adapt geometry"
+ const string fileName = @"DeltaDijkInvoer3VNKAdaptionShoulderLength.xml";
+ string inputString = File.ReadAllText(fileName);
+ var engineInterface = new EngineInterface(inputString);
+ Assert.IsNotNull(engineInterface.DamProjectData);
+ string outputString = engineInterface.Run();
+ Assert.IsNotNull(outputString);
+ Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
- [Test]
- public void TestIfSellmeijerVnkCalculationGeneratesNoErrorWhenNewShoulderLengthIsSmaller()
- {
- // Based on ".\data\DamEngineTestProjects\Invoer3\DeltaDijk\DeltaDijk normal.damx"
- // Select Failure mechanism Piping and model Sellmeijer (VNK)
- // Set Analysis type to "Adapt geometry"
- const string fileName = @"DeltaDijkInvoer3VNKAdaptionShoulderLength.xml";
- string inputString = File.ReadAllText(fileName);
- var engineInterface = new EngineInterface(inputString);
- Assert.IsNotNull(engineInterface.DamProjectData);
- string outputString = engineInterface.Run();
- Assert.IsNotNull(outputString);
- Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
-
- Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult));
- Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor > -1);
- Assert.AreEqual("", output.Results.CalculationResults[0].PipingDesignResults.ResultMessage);
- }
+ Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult));
+ Assert.AreEqual(true, output.Results.CalculationResults[0].PipingDesignResults.SellmeijerVnkFactor > -1);
+ Assert.AreEqual("", output.Results.CalculationResults[0].PipingDesignResults.ResultMessage);
}
}
\ No newline at end of file