Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs
===================================================================
diff -u -r65ea41e01d41d77df1e30bf8e850a44de46e870f -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision 65ea41e01d41d77df1e30bf8e850a44de46e870f)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -166,20 +166,20 @@
PipingCalculationService.Calculate(calculation);
Assert.IsTrue(calculation.HasOutput);
- Assert.AreEqual(0.108, calculation.Output.HeaveFactorOfSafety, 1e-3);
- Assert.AreEqual(-2.489, calculation.Output.HeaveZValue, 1e-3);
- Assert.AreEqual(0.267, calculation.Output.UpliftFactorOfSafety, 1e-3);
- Assert.AreEqual(-11.870, calculation.Output.UpliftZValue, 1e-3);
- Assert.AreEqual(0.400, calculation.Output.SellmeijerFactorOfSafety, 1e-3);
- Assert.AreEqual(-1.609, calculation.Output.SellmeijerZValue, 1e-3);
+ Assert.AreEqual(0.563, calculation.Output.HeaveFactorOfSafety, 1e-3);
+ Assert.AreEqual(-0.233, calculation.Output.HeaveZValue, 1e-3);
+ Assert.AreEqual(3.377, calculation.Output.UpliftFactorOfSafety, 1e-3);
+ Assert.AreEqual(7.358, calculation.Output.UpliftZValue, 1e-3);
+ Assert.AreEqual(0.408, calculation.Output.SellmeijerFactorOfSafety, 1e-3);
+ Assert.AreEqual(-1.588, calculation.Output.SellmeijerZValue, 1e-3);
}
private static void AssertExpectedPipingInput(PipingInput inputParameters)
{
Assert.AreEqual(1.0, inputParameters.UpliftModelFactor, 1e-3);
Assert.AreEqual(1.0, inputParameters.SellmeijerModelFactor, 1e-3);
- Assert.AreEqual(10.0, inputParameters.WaterVolumetricWeight, 1e-3);
+ Assert.AreEqual(9.81, inputParameters.WaterVolumetricWeight, 1e-3);
Assert.AreEqual(0.3, inputParameters.SellmeijerReductionFactor, 1e-3);
Assert.AreEqual(16.5, inputParameters.SandParticlesVolumicWeight, 1e-3);
Assert.AreEqual(0.25, inputParameters.WhitesDragCoefficient, 1e-3);
@@ -193,7 +193,7 @@
Assert.AreEqual(1300001, inputParameters.HydraulicBoundaryLocation.Id);
Assert.AreEqual(5.78, inputParameters.HydraulicBoundaryLocation.DesignWaterLevel, 1e-3);
- Assert.AreEqual(3.661, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(inputParameters).GetDesignValue(),
+ Assert.AreEqual(0.7, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(inputParameters).GetDesignValue(),
GetAccuracy(inputParameters.DampingFactorExit));
Assert.AreEqual(1.355, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(inputParameters).GetDesignValue(),
GetAccuracy(inputParameters.PhreaticLevelExit));
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs
===================================================================
diff -u -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -34,7 +34,7 @@
{
UpliftModelFactor = 1.0;
SellmeijerModelFactor = 1.0;
- WaterVolumetricWeight = 10.0;
+ WaterVolumetricWeight = 9.81;
CriticalHeaveGradient = 0.3;
SandParticlesVolumicWeight = 16.5;
WhitesDragCoefficient = 0.25;
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs
===================================================================
diff -u -r89488cc05b12fd5720cd28a4eeeb001dc9b1456d -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 89488cc05b12fd5720cd28a4eeeb001dc9b1456d)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -42,6 +42,14 @@
private RoundedDouble entryPointL;
private RoundedDouble piezometricHeadExit;
private RingtoetsPipingSurfaceLine surfaceLine;
+ private readonly NormalDistribution phreaticLevelExit;
+ private readonly LognormalDistribution dampingFactorExit;
+ private readonly LognormalDistribution thicknessCoverageLayer;
+ private readonly ShiftedLognormalDistribution saturatedVolumicWeightOfCoverageLayer;
+ private readonly LognormalDistribution thicknessAquiferLayer;
+ private readonly LognormalDistribution darcyPermeability;
+ private readonly LognormalDistribution diameter70;
+ private readonly LognormalDistribution seepageLength;
///
/// Initializes a new instance of the class.
@@ -64,30 +72,31 @@
assessmentLevel = new RoundedDouble(2, double.NaN);
piezometricHeadExit = new RoundedDouble(2, double.NaN);
- PhreaticLevelExit = new NormalDistribution(3);
- DampingFactorExit = new LognormalDistribution(3)
+ phreaticLevelExit = new NormalDistribution(3);
+ dampingFactorExit = new LognormalDistribution(3)
{
- Mean = (RoundedDouble)1.0
+ Mean = (RoundedDouble)0.7,
+ StandardDeviation = (RoundedDouble)0.0
};
- ThicknessCoverageLayer = new LognormalDistribution(2)
+ thicknessCoverageLayer = new LognormalDistribution(2)
{
Mean = (RoundedDouble)double.NaN,
StandardDeviation = (RoundedDouble)0.5
};
- SaturatedVolumicWeightOfCoverageLayer = new ShiftedLognormalDistribution(2)
+ saturatedVolumicWeightOfCoverageLayer = new ShiftedLognormalDistribution(2)
{
Shift = (RoundedDouble) 10,
Mean = (RoundedDouble) 17.5,
StandardDeviation = (RoundedDouble)0
};
- SeepageLength = new LognormalDistribution(2)
+ seepageLength = new LognormalDistribution(2)
{
Mean = (RoundedDouble)double.NaN,
StandardDeviation = (RoundedDouble)double.NaN
};
- Diameter70 = new LognormalDistribution(2);
- DarcyPermeability = new LognormalDistribution(3);
- ThicknessAquiferLayer = new LognormalDistribution(2)
+ diameter70 = new LognormalDistribution(2);
+ darcyPermeability = new LognormalDistribution(3);
+ thicknessAquiferLayer = new LognormalDistribution(2)
{
Mean = (RoundedDouble)double.NaN,
StandardDeviation = (RoundedDouble)0.5
@@ -335,47 +344,136 @@
/// Gets or sets the phreatic level at the exit point.
/// [m]
///
- public NormalDistribution PhreaticLevelExit { get; set; }
+ public NormalDistribution PhreaticLevelExit
+ {
+ get
+ {
+ return phreaticLevelExit;
+ }
+ set
+ {
+ phreaticLevelExit.Mean = value.Mean;
+ phreaticLevelExit.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the horizontal distance between entry and exit point.
/// [m]
///
- public LognormalDistribution SeepageLength { get; set; }
+ public LognormalDistribution SeepageLength
+ {
+ get
+ {
+ return seepageLength;
+ }
+ set
+ {
+ seepageLength.Mean = value.Mean;
+ seepageLength.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the sieve size through which 70% fraction of the grains of the top part of the aquifer passes.
/// [m]
///
- public LognormalDistribution Diameter70 { get; set; }
+ public LognormalDistribution Diameter70
+ {
+ get
+ {
+ return diameter70;
+ }
+ set
+ {
+ diameter70.Mean = value.Mean;
+ diameter70.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the Darcy-speed with which water flows through the aquifer layer.
/// [m/s]
///
- public LognormalDistribution DarcyPermeability { get; set; }
+ public LognormalDistribution DarcyPermeability
+ {
+ get
+ {
+ return darcyPermeability;
+ }
+ set
+ {
+ darcyPermeability.Mean = value.Mean;
+ darcyPermeability.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the thickness of the aquifer layer.
/// [m]
///
- public LognormalDistribution ThicknessAquiferLayer { get; set; }
+ public LognormalDistribution ThicknessAquiferLayer
+ {
+ get
+ {
+ return thicknessAquiferLayer;
+ }
+ set
+ {
+ thicknessAquiferLayer.Mean = value.Mean;
+ thicknessAquiferLayer.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the total thickness of the coverage layer at the exit point.
/// [m]
///
- public LognormalDistribution ThicknessCoverageLayer { get; set; }
+ public LognormalDistribution ThicknessCoverageLayer
+ {
+ get
+ {
+ return thicknessCoverageLayer;
+ }
+ set
+ {
+ thicknessCoverageLayer.Mean = value.Mean;
+ thicknessCoverageLayer.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the damping factor at the exit point.
///
- public LognormalDistribution DampingFactorExit { get; set; }
+ public LognormalDistribution DampingFactorExit
+ {
+ get
+ {
+ return dampingFactorExit;
+ }
+ set
+ {
+ dampingFactorExit.Mean = value.Mean;
+ dampingFactorExit.StandardDeviation = value.StandardDeviation;
+ }
+ }
///
/// Gets or sets the volumic weight of the saturated coverage layer.
///
- public ShiftedLognormalDistribution SaturatedVolumicWeightOfCoverageLayer { get; set; }
+ public ShiftedLognormalDistribution SaturatedVolumicWeightOfCoverageLayer
+ {
+ get
+ {
+ return saturatedVolumicWeightOfCoverageLayer;
+ }
+ set
+ {
+ saturatedVolumicWeightOfCoverageLayer.Mean = value.Mean;
+ saturatedVolumicWeightOfCoverageLayer.StandardDeviation = value.StandardDeviation;
+ saturatedVolumicWeightOfCoverageLayer.Shift = value.Shift;
+ }
+ }
#endregion
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs
===================================================================
diff -u -ra9c4c3b9c62339476e2e901bd2b402ed22ac772b -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a9c4c3b9c62339476e2e901bd2b402ed22ac772b)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.34209
+// Runtime Version:4.0.30319.18444
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -975,6 +975,24 @@
}
///
+ /// Looks up a localized string similar to Verzadigd gewicht deklaag..
+ ///
+ public static string PipingInput_SaturatedVolumicWeightOfCoverageLayer_Description {
+ get {
+ return ResourceManager.GetString("PipingInput_SaturatedVolumicWeightOfCoverageLayer_Description", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verzadigd gewicht deklaag [kN/m³].
+ ///
+ public static string PipingInput_SaturatedVolumicWeightOfCoverageLayer_DisplayName {
+ get {
+ return ResourceManager.GetString("PipingInput_SaturatedVolumicWeightOfCoverageLayer_DisplayName", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to De horizontale afstand tussen intrede- en uittredepunt die het kwelwater ondergronds aflegt voordat het weer aan de oppervlakte komt..
///
public static string PipingInput_SeepageLength_Description {
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx
===================================================================
diff -u -ra9c4c3b9c62339476e2e901bd2b402ed22ac772b -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision a9c4c3b9c62339476e2e901bd2b402ed22ac772b)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Properties/Resources.resx (.../Resources.resx) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -661,4 +661,10 @@
Opbarsten
+
+ Verzadigd gewicht deklaag.
+
+
+ Verzadigd gewicht deklaag [kN/m³]
+
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs
===================================================================
diff -u -r89488cc05b12fd5720cd28a4eeeb001dc9b1456d -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 89488cc05b12fd5720cd28a4eeeb001dc9b1456d)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -330,7 +330,22 @@
}
}
- // TODO: Verzadigd gewicht deklaag
+ [TypeConverter(typeof(ShiftedLognormalDistributionDesignVariableTypeConverter))]
+ [ResourcesCategory(typeof(Resources), "Categories_SoilProperties")]
+ [ResourcesDisplayName(typeof(Resources), "PipingInput_SaturatedVolumicWeightOfCoverageLayer_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "PipingInput_SaturatedVolumicWeightOfCoverageLayer_Description")]
+ public DesignVariable SaturatedVolumicWeightOfCoverageLayer
+ {
+ get
+ {
+ return PipingSemiProbabilisticDesignValueFactory.GetSaturatedVolumicWeightOfCoverageLayer(data.WrappedData);
+ }
+ set
+ {
+ data.WrappedData.SaturatedVolumicWeightOfCoverageLayer = value.Distribution;
+ data.WrappedData.NotifyObservers();
+ }
+ }
#endregion
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/PipingSemiProbabilisticDesignValueFactory.cs
===================================================================
diff -u -rc2fe76d04e1517a4e0aaf62184bccd413de0e472 -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/PipingSemiProbabilisticDesignValueFactory.cs (.../PipingSemiProbabilisticDesignValueFactory.cs) (revision c2fe76d04e1517a4e0aaf62184bccd413de0e472)
+++ Ringtoets/Piping/src/Ringtoets.Piping.KernelWrapper/PipingSemiProbabilisticDesignValueFactory.cs (.../PipingSemiProbabilisticDesignValueFactory.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -34,7 +34,7 @@
///
/// Creates the design variable for .
///
- public static DesignVariable GetSaturatedVolumicWeightOfCoverageLayer(PipingInput parameters)
+ public static DesignVariable GetSaturatedVolumicWeightOfCoverageLayer(PipingInput parameters)
{
return CreateDesignVariable(parameters.SaturatedVolumicWeightOfCoverageLayer, 0.05);
}
@@ -116,5 +116,13 @@
Percentile = percentile
};
}
+
+ private static DesignVariable CreateDesignVariable(ShiftedLognormalDistribution distribution, double percentile)
+ {
+ return new ShiftedLognormalDistributionDesignVariable(distribution)
+ {
+ Percentile = percentile
+ };
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs
===================================================================
diff -u -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -15,7 +15,7 @@
Assert.AreEqual(1.0, inputParameters.UpliftModelFactor);
Assert.AreEqual(1.0, inputParameters.SellmeijerModelFactor);
- Assert.AreEqual(10.0, inputParameters.WaterVolumetricWeight);
+ Assert.AreEqual(9.81, inputParameters.WaterVolumetricWeight);
Assert.AreEqual(0.3, inputParameters.CriticalHeaveGradient);
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs
===================================================================
diff -u -rc0a3ced404197fd781c6fcbcfc21c6676592be57 -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision c0a3ced404197fd781c6fcbcfc21c6676592be57)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -5,7 +5,6 @@
using Core.Common.Base.Geometry;
using Core.Common.TestUtil;
using NUnit.Framework;
-using Ringtoets.HydraRing.Data;
using Ringtoets.Piping.Data.Probabilistics;
using Ringtoets.Piping.Data.Properties;
@@ -32,15 +31,16 @@
Assert.AreEqual(1, inputParameters.PhreaticLevelExit.StandardDeviation.Value);
Assert.AreEqual(3, inputParameters.PhreaticLevelExit.StandardDeviation.NumberOfDecimalPlaces);
- double defaultLogNormalMean = Math.Exp(-0.5);
- double defaultLogNormalStandardDev = Math.Sqrt((Math.Exp(1) - 1) * Math.Exp(1));
Assert.IsInstanceOf(inputParameters.DampingFactorExit);
- Assert.AreEqual(1, inputParameters.DampingFactorExit.Mean.Value);
+ Assert.AreEqual(0.7, inputParameters.DampingFactorExit.Mean.Value);
Assert.AreEqual(3, inputParameters.DampingFactorExit.Mean.NumberOfDecimalPlaces);
- Assert.AreEqual(defaultLogNormalStandardDev, inputParameters.DampingFactorExit.StandardDeviation,
+ Assert.AreEqual(0.0, inputParameters.DampingFactorExit.StandardDeviation,
GetErrorTolerance(inputParameters.DampingFactorExit.StandardDeviation));
Assert.AreEqual(3, inputParameters.DampingFactorExit.StandardDeviation.NumberOfDecimalPlaces);
+ double defaultLogNormalMean = Math.Exp(-0.5);
+ double defaultLogNormalStandardDev = Math.Sqrt((Math.Exp(1) - 1) * Math.Exp(1));
+
Assert.IsInstanceOf(inputParameters.Diameter70);
Assert.AreEqual(defaultLogNormalMean, inputParameters.Diameter70.Mean,
GetErrorTolerance(inputParameters.Diameter70.Mean));
@@ -212,5 +212,208 @@
Assert.AreEqual(new RoundedDouble(2, 1), input.EntryPointL);
Assert.AreEqual(new RoundedDouble(2, 2), input.ExitPointL);
}
+
+ [Test]
+ public void PhreaticLevelExit_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ NormalDistribution originalPhreaticLevelExit = inputs.PhreaticLevelExit;
+
+ var newValue = new NormalDistribution(5)
+ {
+ Mean = (RoundedDouble)1.23456,
+ StandardDeviation = (RoundedDouble)7.89123
+ };
+
+ // Call
+ inputs.PhreaticLevelExit = newValue;
+
+ // Assert
+ Assert.AreSame(originalPhreaticLevelExit, inputs.PhreaticLevelExit,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(3, originalPhreaticLevelExit.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(1.235, originalPhreaticLevelExit.Mean.Value);
+ Assert.AreEqual(3, originalPhreaticLevelExit.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(7.891, originalPhreaticLevelExit.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void DampingFactorExit_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalDampingFactorExit = inputs.DampingFactorExit;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)4.56789,
+ StandardDeviation = (RoundedDouble)1.23456
+ };
+
+ // Call
+ inputs.DampingFactorExit = newValue;
+
+ // Assert
+ Assert.AreSame(originalDampingFactorExit, inputs.DampingFactorExit,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(3, originalDampingFactorExit.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(4.568, originalDampingFactorExit.Mean.Value);
+ Assert.AreEqual(3, originalDampingFactorExit.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(1.235, originalDampingFactorExit.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void ThicknessCoverageLayer_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalThicknessCoverageLayer = inputs.ThicknessCoverageLayer;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)1.23456,
+ StandardDeviation = (RoundedDouble)7.89123
+ };
+
+ // Call
+ inputs.ThicknessCoverageLayer = newValue;
+
+ // Assert
+ Assert.AreSame(originalThicknessCoverageLayer, inputs.ThicknessCoverageLayer,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(2, originalThicknessCoverageLayer.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(1.23, originalThicknessCoverageLayer.Mean.Value);
+ Assert.AreEqual(2, originalThicknessCoverageLayer.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(7.89, originalThicknessCoverageLayer.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void SaturatedVolumicWeightOfCoverageLayer_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ ShiftedLognormalDistribution originalSaturatedVolumicWeightOfCoverageLayer = inputs.SaturatedVolumicWeightOfCoverageLayer;
+
+ var newValue = new ShiftedLognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)1.11111,
+ StandardDeviation = (RoundedDouble)2.22222,
+ Shift = (RoundedDouble)(-3.33333)
+ };
+
+ // Call
+ inputs.SaturatedVolumicWeightOfCoverageLayer = newValue;
+
+ // Assert
+ Assert.AreSame(originalSaturatedVolumicWeightOfCoverageLayer, inputs.SaturatedVolumicWeightOfCoverageLayer,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(2, originalSaturatedVolumicWeightOfCoverageLayer.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(1.11, originalSaturatedVolumicWeightOfCoverageLayer.Mean.Value);
+ Assert.AreEqual(2, originalSaturatedVolumicWeightOfCoverageLayer.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(2.22, originalSaturatedVolumicWeightOfCoverageLayer.StandardDeviation.Value);
+ Assert.AreEqual(2, originalSaturatedVolumicWeightOfCoverageLayer.Shift.NumberOfDecimalPlaces);
+ Assert.AreEqual(-3.33, originalSaturatedVolumicWeightOfCoverageLayer.Shift.Value);
+ }
+
+ [Test]
+ public void SeepageLength_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalSeepageLength = inputs.SeepageLength;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)5.55555,
+ StandardDeviation = (RoundedDouble)6.66666
+ };
+
+ // Call
+ inputs.SeepageLength = newValue;
+
+ // Assert
+ Assert.AreSame(originalSeepageLength, inputs.SeepageLength,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(2, originalSeepageLength.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(5.56, originalSeepageLength.Mean.Value);
+ Assert.AreEqual(2, originalSeepageLength.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(6.67, originalSeepageLength.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void Diameter70_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalDiameter70 = inputs.Diameter70;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)8.8888,
+ StandardDeviation = (RoundedDouble)9.14363
+ };
+
+ // Call
+ inputs.Diameter70 = newValue;
+
+ // Assert
+ Assert.AreSame(originalDiameter70, inputs.Diameter70,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(2, originalDiameter70.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(8.89, originalDiameter70.Mean.Value);
+ Assert.AreEqual(2, originalDiameter70.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(9.14, originalDiameter70.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void DarcyPermeability_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalDarcyPermeability = inputs.DarcyPermeability;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)1.93753,
+ StandardDeviation = (RoundedDouble)859.49028
+ };
+
+ // Call
+ inputs.DarcyPermeability = newValue;
+
+ // Assert
+ Assert.AreSame(originalDarcyPermeability, inputs.DarcyPermeability,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(3, originalDarcyPermeability.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(1.938, originalDarcyPermeability.Mean.Value);
+ Assert.AreEqual(3, originalDarcyPermeability.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(859.490, originalDarcyPermeability.StandardDeviation.Value);
+ }
+
+ [Test]
+ public void ThicknessAquiferLayer_SetNewValue_UpdateMeanAndStandardDeviation()
+ {
+ // Setup
+ var inputs = new PipingInput(new GeneralPipingInput());
+ LognormalDistribution originalThicknessAquiferLayer = inputs.ThicknessAquiferLayer;
+
+ var newValue = new LognormalDistribution(5)
+ {
+ Mean = (RoundedDouble)12.34567,
+ StandardDeviation = (RoundedDouble)89.12345
+ };
+
+ // Call
+ inputs.ThicknessAquiferLayer = newValue;
+
+ // Assert
+ Assert.AreSame(originalThicknessAquiferLayer, inputs.ThicknessAquiferLayer,
+ "Stochast instance hasn't changed to 'newValue'.");
+ Assert.AreEqual(2, originalThicknessAquiferLayer.Mean.NumberOfDecimalPlaces);
+ Assert.AreEqual(12.35, originalThicknessAquiferLayer.Mean.Value);
+ Assert.AreEqual(2, originalThicknessAquiferLayer.StandardDeviation.NumberOfDecimalPlaces);
+ Assert.AreEqual(89.12, originalThicknessAquiferLayer.StandardDeviation.Value);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs
===================================================================
diff -u -ra9c4c3b9c62339476e2e901bd2b402ed22ac772b -r8ca454de1833ad8a8d63bcaefdfb5d886a187a01
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision a9c4c3b9c62339476e2e901bd2b402ed22ac772b)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 8ca454de1833ad8a8d63bcaefdfb5d886a187a01)
@@ -74,6 +74,7 @@
Assert.AreSame(inputParameters.Diameter70, properties.Diameter70.Distribution);
Assert.AreSame(inputParameters.DarcyPermeability, properties.DarcyPermeability.Distribution);
Assert.AreSame(inputParameters.ThicknessAquiferLayer, properties.ThicknessAquiferLayer.Distribution);
+ Assert.AreSame(inputParameters.SaturatedVolumicWeightOfCoverageLayer, properties.SaturatedVolumicWeightOfCoverageLayer.Distribution);
Assert.AreEqual(inputParameters.AssessmentLevel, properties.AssessmentLevel);
Assert.AreEqual(inputParameters.PiezometricHeadExit, properties.PiezometricHeadExit);
@@ -127,7 +128,7 @@
var mocks = new MockRepository();
var assessmentSectionMock = mocks.StrictMock();
var projectObserver = mocks.StrictMock();
- int numberProperties = 7;
+ int numberProperties = 8;
projectObserver.Expect(o => o.UpdateObserver()).Repeat.Times(numberProperties);
mocks.ReplayAll();
@@ -142,6 +143,7 @@
var phreaticLevelExit = new NormalDistribution(2);
var diameter70 = new LognormalDistribution(2);
var darcyPermeability = new LognormalDistribution(3);
+ var saturatedVolumicWeightOfCoverageLoayer = new ShiftedLognormalDistribution(2);
var surfaceLine = ValidSurfaceLine(0.0, 4.0);
PipingSoilProfile soilProfile = new TestPipingSoilProfile();
@@ -157,17 +159,42 @@
PhreaticLevelExit = new NormalDistributionDesignVariable(phreaticLevelExit),
Diameter70 = new LognormalDistributionDesignVariable(diameter70),
DarcyPermeability = new LognormalDistributionDesignVariable(darcyPermeability),
+ SaturatedVolumicWeightOfCoverageLayer = new ShiftedLognormalDistributionDesignVariable(saturatedVolumicWeightOfCoverageLoayer),
SurfaceLine = surfaceLine,
SoilProfile = soilProfile,
HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(assessmentLevel)
};
// Assert
- Assert.AreEqual(assessmentLevel, inputParameters.AssessmentLevel, 1e-2);
- Assert.AreEqual(dampingFactorExit, inputParameters.DampingFactorExit);
- Assert.AreEqual(phreaticLevelExit, inputParameters.PhreaticLevelExit);
- Assert.AreEqual(diameter70, inputParameters.Diameter70);
- Assert.AreEqual(darcyPermeability, inputParameters.DarcyPermeability);
+ Assert.AreEqual(assessmentLevel, inputParameters.AssessmentLevel, GetAccuracy(inputParameters.AssessmentLevel));
+
+ Assert.AreEqual(dampingFactorExit.Mean.Value, inputParameters.DampingFactorExit.Mean.Value,
+ GetAccuracy(inputParameters.DampingFactorExit));
+ Assert.AreEqual(dampingFactorExit.StandardDeviation.Value, inputParameters.DampingFactorExit.StandardDeviation.Value,
+ GetAccuracy(inputParameters.DampingFactorExit));
+
+ Assert.AreEqual(phreaticLevelExit.Mean, inputParameters.PhreaticLevelExit.Mean,
+ GetAccuracy(inputParameters.PhreaticLevelExit));
+ Assert.AreEqual(phreaticLevelExit.StandardDeviation, inputParameters.PhreaticLevelExit.StandardDeviation,
+ GetAccuracy(inputParameters.PhreaticLevelExit));
+
+ Assert.AreEqual(diameter70.Mean, inputParameters.Diameter70.Mean,
+ GetAccuracy(inputParameters.Diameter70));
+ Assert.AreEqual(diameter70.StandardDeviation, inputParameters.Diameter70.StandardDeviation,
+ GetAccuracy(inputParameters.Diameter70));
+
+ Assert.AreEqual(darcyPermeability.Mean, inputParameters.DarcyPermeability.Mean,
+ GetAccuracy(inputParameters.DarcyPermeability));
+ Assert.AreEqual(darcyPermeability.StandardDeviation, inputParameters.DarcyPermeability.StandardDeviation,
+ GetAccuracy(inputParameters.DarcyPermeability));
+
+ Assert.AreEqual(saturatedVolumicWeightOfCoverageLoayer.Mean, inputParameters.SaturatedVolumicWeightOfCoverageLayer.Mean,
+ GetAccuracy(inputParameters.SaturatedVolumicWeightOfCoverageLayer));
+ Assert.AreEqual(saturatedVolumicWeightOfCoverageLoayer.StandardDeviation, inputParameters.SaturatedVolumicWeightOfCoverageLayer.StandardDeviation,
+ GetAccuracy(inputParameters.SaturatedVolumicWeightOfCoverageLayer));
+ Assert.AreEqual(saturatedVolumicWeightOfCoverageLoayer.Shift, inputParameters.SaturatedVolumicWeightOfCoverageLayer.Shift,
+ GetAccuracy(inputParameters.SaturatedVolumicWeightOfCoverageLayer));
+
Assert.AreEqual(surfaceLine, inputParameters.SurfaceLine);
Assert.AreEqual(soilProfile, inputParameters.SoilProfile);
@@ -443,6 +470,16 @@
mocks.VerifyAll();
}
+ private double GetAccuracy(RoundedDouble roundedDouble)
+ {
+ return Math.Pow(10.0, -roundedDouble.NumberOfDecimalPlaces);
+ }
+
+ private double GetAccuracy(IDistribution distribution)
+ {
+ return Math.Pow(10.0, -distribution.Mean.NumberOfDecimalPlaces);
+ }
+
private static RingtoetsPipingSurfaceLine ValidSurfaceLine(double xMin, double xMax)
{
var surfaceLine = new RingtoetsPipingSurfaceLine();