Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/Deltares.DamPiping.BlighCalculator.csproj
===================================================================
diff -u -r324 -r325
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/Deltares.DamPiping.BlighCalculator.csproj (.../Deltares.DamPiping.BlighCalculator.csproj) (revision 324)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/Deltares.DamPiping.BlighCalculator.csproj (.../Deltares.DamPiping.BlighCalculator.csproj) (revision 325)
@@ -59,6 +59,7 @@
ResXFileCodeGenerator
Resources.Designer.cs
+ Designer
Index: dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.BlighCalculatorTests/PipingCalculatorBlighTests.cs
===================================================================
diff -u -r320 -r325
--- dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.BlighCalculatorTests/PipingCalculatorBlighTests.cs (.../PipingCalculatorBlighTests.cs) (revision 320)
+++ dam failuremechanisms/damPiping/trunk/src/Tests/Deltares.DamPiping.BlighCalculatorTests/PipingCalculatorBlighTests.cs (.../PipingCalculatorBlighTests.cs) (revision 325)
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Deltares.DamPiping.BlighCalculator;
+using Deltares.DamPiping.BlighCalculator;
using NUnit.Framework;
namespace Deltares.DamPiping.BlighCalculatorTests
@@ -29,15 +25,17 @@
public void TestCalculation()
{
const double diff = 0.0001;
- var bc = new PipingCalculatorBligh();
- bc.HRiver = 2.0;
- bc.ModelFactorPiping = 1.0;
- bc.HExit = 0.0;
- bc.Rc = 0.3;
- bc.DTotal = 5.0;
- bc.SeepageLength = 40.5;
- //bc.D50 = 2.5e-3; // WTI Test succeeds with CreepFactorWTI todo: remove D50 and CreepFactorWTI?
- bc.D70 = 180.0; // Dam: set D70 instead of D50
+ var bc = new PipingCalculatorBligh
+ {
+ HRiver = 2.0,
+ ModelFactorPiping = 1.0,
+ HExit = 0.0,
+ Rc = 0.3,
+ DTotal = 5.0,
+ SeepageLength = 40.5,
+ //bc.D50 = 2.5e-3; // WTI Test succeeds with CreepFactorWTI todo: remove D50 and CreepFactorWTI?
+ D70 = 180.0 // Dam: set D70 instead of D50
+ };
bc.Calculate();
Assert.AreEqual(4.5, bc.FoSp, diff);
Assert.AreEqual(2.25, bc.Hc, diff);
@@ -46,5 +44,96 @@
Assert.AreEqual(3.75, bc.Hcp, diff); // not relevant for Dam todo: remove Hcp?
}
+ [Test]
+ public void TestValidateNaNParameter()
+ {
+ var bc = new PipingCalculatorBligh
+ {
+ HRiver = 2.0,
+ ModelFactorPiping = 1.0,
+ HExit = 0.0,
+ Rc = 0.3,
+ DTotal = 5.0,
+ SeepageLength = 40.5,
+ D70 = 180.0
+ };
+ var originalErrors = bc.Validate();
+
+ bc.HRiver = double.NaN;
+ bc.ModelFactorPiping = double.NaN;
+ bc.HExit = double.NaN;
+ bc.Rc = double.NaN;
+ bc.DTotal = double.NaN;
+ bc.SeepageLength = double.NaN;
+ bc.D70 = double.NaN;
+ var nanErrors = bc.Validate();
+ Assert.AreEqual(originalErrors.Count + 7, nanErrors.Count);
+
+ // D70 is allowed to be null
+ bc.D70 = null;
+ nanErrors = bc.Validate();
+ Assert.AreEqual(originalErrors.Count + 6, nanErrors.Count);
+ }
+
+ [Test]
+ [SetUICulture("en-US")]
+ public void TestValidateRcLessThan0En()
+ {
+ var calculator = new PipingCalculatorBligh
+ {
+ HRiver = 2.0,
+ ModelFactorPiping = 1.0,
+ HExit = 0.0,
+ Rc = -1e-6,
+ DTotal = 5.0,
+ SeepageLength = 40.5,
+ D70 = 180.0
+ };
+ 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 PipingCalculatorBligh
+ {
+ HRiver = 2.0,
+ ModelFactorPiping = 1.0,
+ HExit = 0.0,
+ Rc = -1e-6,
+ DTotal = 5.0,
+ SeepageLength = 40.5,
+ D70 = 180.0
+ };
+ 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("en-US")]
+ public void TestValidateReducedFall()
+ {
+ var calculator = new PipingCalculatorBligh
+ {
+ HRiver = 2.0,
+ ModelFactorPiping = 1.0,
+ HExit = 2.0,
+ Rc = 0,
+ DTotal = 5.0,
+ SeepageLength = 40.5,
+ D70 = 180.0
+ };
+ var errors = calculator.Validate();
+ Assert.AreEqual(1, errors.Count);
+ var expectedMessageEN = "HRiver - HExit - (Rc*DTotal) may not be 0.";
+ CollectionAssert.AreEqual(new[] { expectedMessageEN }, errors);
+ }
+
}
}
Index: dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/PipingCalculatorBligh.cs
===================================================================
diff -u -r324 -r325
--- dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/PipingCalculatorBligh.cs (.../PipingCalculatorBligh.cs) (revision 324)
+++ dam failuremechanisms/damPiping/trunk/src/Deltares.DamPiping.BlighCalculator/PipingCalculatorBligh.cs (.../PipingCalculatorBligh.cs) (revision 325)
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using System.Text;
+using System.Threading;
using Deltares.DamPiping.BlighCalculator.Properties;
namespace Deltares.DamPiping.BlighCalculator
@@ -284,6 +286,10 @@
{
LogParameterIsNaN(errors, "D50");
}
+ if (D70 != null && double.IsNaN((double) D70))
+ {
+ LogParameterIsNaN(errors, "D70");
+ }
return errors;
}