Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.Designer.cs
===================================================================
diff -u -r376 -r797
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 376)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 797)
@@ -61,6 +61,33 @@
}
///
+ /// Looks up a localized string similar to Parameter {0} is not a number (NaN)..
+ ///
+ internal static string PipingCalculatorSellmeijerVNK_LogParameterIsNaN_NaNParameterError {
+ get {
+ return ResourceManager.GetString("PipingCalculatorSellmeijerVNK_LogParameterIsNaN_NaNParameterError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to HRiver - HExit may not be 0..
+ ///
+ internal static string PipingCalculatorSellmeijerVNK_PerformValidate_HRiver_HExit_Zero {
+ get {
+ return ResourceManager.GetString("PipingCalculatorSellmeijerVNK_PerformValidate_HRiver_HExit_Zero", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Rc may not be less than 0..
+ ///
+ internal static string PipingCalculatorSellmeijerVNK_PerformValidate_RcLessThan0 {
+ get {
+ return ResourceManager.GetString("PipingCalculatorSellmeijerVNK_PerformValidate_RcLessThan0", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Error in Piping DLL.
///
internal static string PipingModel2Calculation_CalculateHeadDropPC2_Error_in_Piping_DLL {
Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.nl-NL.resx
===================================================================
diff -u -r376 -r797
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 376)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 797)
@@ -117,6 +117,15 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Parameter {0} heeft geen waarde (NaN).
+
+
+ De term HRiver - HExit mag niet nul zijn.
+
+
+ De waarde voor de dempingsfactor mag niet lager dan 0 zijn.
+
Er is een fout opgetreden in PipingCalc2.dll
Index: dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.SellmeijerVNKCalculatorTests/PipingCalculatorSellmeijerVNKTest.cs
===================================================================
diff -u -r391 -r797
--- dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.SellmeijerVNKCalculatorTests/PipingCalculatorSellmeijerVNKTest.cs (.../PipingCalculatorSellmeijerVNKTest.cs) (revision 391)
+++ dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.SellmeijerVNKCalculatorTests/PipingCalculatorSellmeijerVNKTest.cs (.../PipingCalculatorSellmeijerVNKTest.cs) (revision 797)
@@ -161,6 +161,8 @@
reducedFall = calculator.GetReducedFall();
Assert.AreEqual(2.00, reducedFall, cTolerance);
}
+
+ [Test]
public void TestDetermineFactorOfSafety()
{
// foSp = hc / reducedFall
@@ -207,5 +209,131 @@
calculator.Calculate();
}
+ [Test]
+ public void TestValidateNaNParameter()
+ {
+ var calculator = new PipingCalculatorSellmeijerVNK
+ {
+ HRiver = 1.0,
+ HExit = 0.0,
+ PolderLevel = 0.0,
+ SurfaceLevel = 0.0,
+ Rc = 0.3,
+ DTotal = 2.0,
+ DInBetweenAquiferlayer = 2.0,
+ DBottomAquiferlayer = 6.0,
+ PermeabilityInBetweenAquiferlayer = 0.0001,
+ PermeabilityBottomAquiferlayer = 0.0002,
+ SeepageLength = 40.5,
+ D70 = 200.0,
+ WhitesConstant = 0.25,
+ BeddingAngle = 37.0,
+ WaterViscosity = 1.33E-06,
+ };
+ var originalErrors = calculator.Validate();
+
+ calculator.HRiver = double.NaN;
+ calculator.HExit = double.NaN;
+ calculator.PolderLevel = double.NaN;
+ calculator.SurfaceLevel = double.NaN;
+ calculator.Rc = double.NaN;
+ calculator.DTotal = double.NaN;
+ calculator.DInBetweenAquiferlayer = double.NaN;
+ calculator.DBottomAquiferlayer = double.NaN;
+ calculator.PermeabilityInBetweenAquiferlayer = double.NaN;
+ calculator.PermeabilityBottomAquiferlayer = double.NaN;
+ calculator.SeepageLength = double.NaN;
+ calculator.D70 = double.NaN;
+ calculator.WhitesConstant = double.NaN;
+ calculator.BeddingAngle = double.NaN;
+ calculator.WaterViscosity = double.NaN;
+ var nanErrors = calculator.Validate();
+ Assert.AreEqual(originalErrors.Count + 15, nanErrors.Count);
+ }
+
+ [Test]
+ [SetUICulture("en-US")]
+ public void TestValidateRcLessThan0En()
+ {
+ var calculator = new PipingCalculatorSellmeijerVNK
+ {
+ HRiver = 1.0,
+ HExit = 0.0,
+ PolderLevel = 0.0,
+ SurfaceLevel = 0.0,
+ Rc = -1e-6,
+ DTotal = 2.0,
+ DInBetweenAquiferlayer = 2.0,
+ DBottomAquiferlayer = 6.0,
+ PermeabilityInBetweenAquiferlayer = 0.0001,
+ PermeabilityBottomAquiferlayer = 0.0002,
+ SeepageLength = 40.5,
+ D70 = 200.0,
+ WhitesConstant = 0.25,
+ BeddingAngle = 37.0,
+ WaterViscosity = 1.33E-06,
+ };
+ var errors = calculator.Validate();
+ Assert.AreEqual(1, errors.Count);
+ var expectedMessageEN = "Rc may not be less than 0.";
+ CollectionAssert.AreEqual(new[] { expectedMessageEN }, errors);
+ }
+
+ [Test]
+ [SetUICulture("nl-NL")]
+ public void TestValidateRcLessThan0Nl()
+ {
+ var calculator = new PipingCalculatorSellmeijerVNK
+ {
+ HRiver = 1.0,
+ HExit = 0.0,
+ PolderLevel = 0.0,
+ SurfaceLevel = 0.0,
+ Rc = -1e-6,
+ DTotal = 2.0,
+ DInBetweenAquiferlayer = 2.0,
+ DBottomAquiferlayer = 6.0,
+ PermeabilityInBetweenAquiferlayer = 0.0001,
+ PermeabilityBottomAquiferlayer = 0.0002,
+ SeepageLength = 40.5,
+ D70 = 200.0,
+ WhitesConstant = 0.25,
+ BeddingAngle = 37.0,
+ WaterViscosity = 1.33E-06,
+ };
+ var errors = calculator.Validate();
+ Assert.AreEqual(1, errors.Count);
+ var expectedMessageNL = "De waarde voor de dempingsfactor mag niet lager dan 0 zijn.";
+ CollectionAssert.AreEqual(new[] { expectedMessageNL }, errors);
+ }
+
+ [Test]
+ [SetUICulture("nl-NL")]
+ public void TestValidateReducedFall()
+ {
+ var calculator = new PipingCalculatorSellmeijerVNK
+ {
+ HRiver = 1.0,
+ HExit = 1.0,
+ PolderLevel = 0.0,
+ SurfaceLevel = 0.0,
+ Rc = 0,
+ DTotal = 2.0,
+ DInBetweenAquiferlayer = 2.0,
+ DBottomAquiferlayer = 6.0,
+ PermeabilityInBetweenAquiferlayer = 0.0001,
+ PermeabilityBottomAquiferlayer = 0.0002,
+ SeepageLength = 40.5,
+ D70 = 200.0,
+ WhitesConstant = 0.25,
+ BeddingAngle = 37.0,
+ WaterViscosity = 1.33E-06,
+ };
+ var errors = calculator.Validate();
+ Assert.AreEqual(1, errors.Count);
+ var expectedMessageEN = "De term HRiver - HExit mag niet nul zijn.";
+ CollectionAssert.AreEqual(new[] { expectedMessageEN }, errors);
+ }
+
}
}
Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/PipingCalculatorSellmeijerVNK.cs
===================================================================
diff -u -r397 -r797
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/PipingCalculatorSellmeijerVNK.cs (.../PipingCalculatorSellmeijerVNK.cs) (revision 397)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/PipingCalculatorSellmeijerVNK.cs (.../PipingCalculatorSellmeijerVNK.cs) (revision 797)
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using Deltares.DamPiping.SellmeijerVNKCalculator.Properties;
namespace Deltares.DamPiping.SellmeijerVNKCalculator
{
@@ -193,5 +194,96 @@
// Kx or Ky: Sel: Use Kx
}
+ ///
+ /// Validates the input
+ ///
+ /// a filled list when errors are found else an empty list
+ public List Validate()
+ {
+ var errors = new List();
+ errors.AddRange(PerformValidate());
+ return errors;
+ }
+
+ private List PerformValidate()
+ {
+ var errors = new List();
+ if (Math.Abs(GetReducedFall()) < double.Epsilon)
+ {
+ errors.Add(Resources.PipingCalculatorSellmeijerVNK_PerformValidate_HRiver_HExit_Zero);
+ }
+
+ if (double.IsNaN(SeepageLength))
+ {
+ LogParameterIsNaN(errors, "SeepageLength");
+ }
+ if (double.IsNaN(HRiver))
+ {
+ LogParameterIsNaN(errors, "HRiver");
+ }
+ if (double.IsNaN(PolderLevel))
+ {
+ LogParameterIsNaN(errors, "PolderLevel");
+ }
+ if (double.IsNaN(SurfaceLevel))
+ {
+ LogParameterIsNaN(errors, "SurfaceLevel");
+ }
+ if (double.IsNaN(Rc))
+ {
+ LogParameterIsNaN(errors, "Rc");
+ }
+ if (Rc < 0)
+ {
+ errors.Add(Resources.PipingCalculatorSellmeijerVNK_PerformValidate_RcLessThan0);
+ }
+ if (double.IsNaN(DTotal))
+ {
+ LogParameterIsNaN(errors, "DTotal");
+ }
+ if (double.IsNaN(DInBetweenAquiferlayer))
+ {
+ LogParameterIsNaN(errors, "DInBetweenAquiferlayer");
+ }
+ if (double.IsNaN(DBottomAquiferlayer))
+ {
+ LogParameterIsNaN(errors, "DBottomAquiferlayer");
+ }
+ if (double.IsNaN(PermeabilityInBetweenAquiferlayer))
+ {
+ LogParameterIsNaN(errors, "PermeabilityInBetweenAquiferlayer");
+ }
+ if (double.IsNaN(PermeabilityBottomAquiferlayer))
+ {
+ LogParameterIsNaN(errors, "PermeabilityBottomAquiferlayer");
+ }
+ if (double.IsNaN(HExit))
+ {
+ LogParameterIsNaN(errors, "HExit");
+ }
+ if (double.IsNaN(D70))
+ {
+ LogParameterIsNaN(errors, "D70");
+ }
+ if (double.IsNaN(WhitesConstant))
+ {
+ LogParameterIsNaN(errors, "WhitesConstant");
+ }
+ if (double.IsNaN(BeddingAngle))
+ {
+ LogParameterIsNaN(errors, "BeddingAngle");
+ }
+ if (double.IsNaN(WaterViscosity))
+ {
+ LogParameterIsNaN(errors, "WaterViscosity");
+ }
+ return errors;
+ }
+
+ private void LogParameterIsNaN(IList list, string paramName)
+ {
+ var msg = string.Format(Resources.PipingCalculatorSellmeijerVNK_LogParameterIsNaN_NaNParameterError, paramName);
+ list.Add(msg);
+ }
}
}
Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.resx
===================================================================
diff -u -r376 -r797
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.resx (.../Resources.resx) (revision 376)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.SellmeijerVNKCalculator/Properties/Resources.resx (.../Resources.resx) (revision 797)
@@ -101,4 +101,13 @@
Error in Piping DLL
+
+ HRiver - HExit may not be 0.
+
+
+ Rc may not be less than 0.
+
+
+ Parameter {0} is not a number (NaN).
+
\ No newline at end of file