Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs
===================================================================
diff -u -r35db69dfe64b7e7deeaf9ef85d4df42ff6009b11 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs (.../LimitedPrecisionHelperTest.cs) (revision 35db69dfe64b7e7deeaf9ef85d4df42ff6009b11)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs (.../LimitedPrecisionHelperTest.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -43,7 +43,7 @@
var accuracy = roundedDouble.GetAccuracy();
// Assert
- var expectedPrecision = Math.Pow(10.0, -precision);
+ var expectedPrecision = 0.5 * Math.Pow(10.0, -precision);
Assert.AreEqual(expectedPrecision, accuracy);
}
@@ -62,7 +62,7 @@
var accuracy = distribution.GetAccuracy();
// Assert
- var expectedPrecision = Math.Pow(10.0, -precision);
+ var expectedPrecision = 0.5 * Math.Pow(10.0, -precision);
Assert.AreEqual(expectedPrecision, accuracy);
}
@@ -78,7 +78,7 @@
var accuracy = roundedCollectoin.GetAccuracy();
// Assert
- var expectedPrecision = Math.Pow(10.0, -precision);
+ var expectedPrecision = 0.5 * Math.Pow(10.0, -precision);
Assert.AreEqual(expectedPrecision, accuracy);
}
Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/LimitedPrecisionHelper.cs
===================================================================
diff -u -r35db69dfe64b7e7deeaf9ef85d4df42ff6009b11 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/LimitedPrecisionHelper.cs (.../LimitedPrecisionHelper.cs) (revision 35db69dfe64b7e7deeaf9ef85d4df42ff6009b11)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/LimitedPrecisionHelper.cs (.../LimitedPrecisionHelper.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -35,7 +35,7 @@
///
public static double GetAccuracy(this RoundedDouble roundedDouble)
{
- return Math.Pow(10.0, -roundedDouble.NumberOfDecimalPlaces);
+ return 0.5 * Math.Pow(10.0, -roundedDouble.NumberOfDecimalPlaces);
}
///
@@ -52,7 +52,7 @@
///
public static double GetAccuracy(this RoundedPoint2DCollection collection)
{
- return Math.Pow(10.0, -collection.NumberOfDecimalPlaces);
+ return 0.5 * Math.Pow(10.0, -collection.NumberOfDecimalPlaces);
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs
===================================================================
diff -u -r022b272652639afd88cf47a8745eaa65327908e4 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs (.../DerivedPipingInput.cs) (revision 022b272652639afd88cf47a8745eaa65327908e4)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs (.../DerivedPipingInput.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -298,9 +298,11 @@
return true;
}
- return consecutiveAquitardLayers.All(al =>
- AlmostEquals(al.BelowPhreaticLevelDeviation, consecutiveAquitardLayers[0].BelowPhreaticLevelDeviation, deviationNumberOfDecimals)
- && AlmostEquals(al.BelowPhreaticLevelShift, consecutiveAquitardLayers[0].BelowPhreaticLevelShift, shiftNumberOfDecimals));
+ var belowPhreaticLevelDeviation = consecutiveAquitardLayers[0].BelowPhreaticLevelDeviation;
+ var belowPhreaticLevelShift = consecutiveAquitardLayers[0].BelowPhreaticLevelShift;
+
+ return consecutiveAquitardLayers.All(al => AlmostEquals(belowPhreaticLevelDeviation, al.BelowPhreaticLevelDeviation, deviationNumberOfDecimals) &&
+ AlmostEquals(belowPhreaticLevelShift, al.BelowPhreaticLevelShift, shiftNumberOfDecimals));
}
private static double GetWeightedMeanForVolumicWeightOfCoverageLayer(PipingSoilLayer[] aquitardLayers, PipingSoilProfile profile, double surfaceLevel)
@@ -355,7 +357,7 @@
private bool AlmostEquals(double a, double b, int numberOfDecimals)
{
- return Math.Abs(a - b) < Math.Pow(10.0, -numberOfDecimals);
+ return Math.Abs(a - b) < 0.5 * Math.Pow(10.0, -numberOfDecimals);
}
private static double GetThicknessTopAquiferLayer(PipingSoilProfile soilProfile, RingtoetsPipingSurfaceLine surfaceLine, RoundedDouble exitPointL)
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs
===================================================================
diff -u -r4bab160dd44cb5e104ad8fbf2bb49add8227c116 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 4bab160dd44cb5e104ad8fbf2bb49add8227c116)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -138,6 +138,17 @@
}
}
+ [ResourcesCategory(typeof(Resources), "Categories_HydraulicData")]
+ [ResourcesDisplayName(typeof(Resources), "PipingInput_PiezometricHeadExit_DisplayName")]
+ [ResourcesDescription(typeof(Resources), "PipingInput_PiezometricHeadExit_Description")]
+ public RoundedDouble PiezometricHeadExit
+ {
+ get
+ {
+ return data.WrappedData.PiezometricHeadExit;
+ }
+ }
+
#endregion
#region Schematization
@@ -236,17 +247,6 @@
}
}
- [ResourcesCategory(typeof(Resources), "Categories_Schematization")]
- [ResourcesDisplayName(typeof(Resources), "PipingInput_PiezometricHeadExit_DisplayName")]
- [ResourcesDescription(typeof(Resources), "PipingInput_PiezometricHeadExit_Description")]
- public RoundedDouble PiezometricHeadExit
- {
- get
- {
- return data.WrappedData.PiezometricHeadExit;
- }
- }
-
[TypeConverter(typeof(LogNormalDistributionDesignVariableTypeConverter))]
[ResourcesCategory(typeof(Resources), "Categories_Schematization")]
[ResourcesDisplayName(typeof(Resources), "PipingInput_SeepageLength_DisplayName")]
Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs
===================================================================
diff -u -r022b272652639afd88cf47a8745eaa65327908e4 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 022b272652639afd88cf47a8745eaa65327908e4)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -89,7 +89,7 @@
}
///
- /// Looks up a localized string similar to Meerdere aaneengesloten deklagen gevonden. Er wordt geprobeerd de gemiddelden van de definities voor het verzadigd gewicht van de deklagen te combineren..
+ /// Looks up a localized string similar to Meerdere aaneengesloten deklagen gevonden. De grondeigenschappen zullen worden bepaald door het nemen van een gewogen gemiddelde, mits de standaard deviaties en verschuivingen voor alle lagen gelijk zijn..
///
internal static string PipingCalculationService_GetInputWarnings_Multiple_coverage_layers_Attempt_to_determine_value_from_combination {
get {
Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx
===================================================================
diff -u -r022b272652639afd88cf47a8745eaa65327908e4 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx (.../Resources.resx) (revision 022b272652639afd88cf47a8745eaa65327908e4)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Service/Properties/Resources.resx (.../Resources.resx) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -160,7 +160,7 @@
Meerdere aaneengesloten watervoerende lagen gevonden. Er wordt geprobeerd de korrelgrootte en doorlatendheid van de bovenste watervoerende laag af te leiden.
- Meerdere aaneengesloten deklagen gevonden. Er wordt geprobeerd de gemiddelden van de definities voor het verzadigd gewicht van de deklagen te combineren.
+ Meerdere aaneengesloten deklagen gevonden. De grondeigenschappen zullen worden bepaald door het nemen van een gewogen gemiddelde, mits de standaard deviaties en verschuivingen voor alle lagen gelijk zijn.
Geen watervoerende laag gevonden voor de ondergrondschematisatie onder de profielschematisatie bij het uittredepunt.
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs
===================================================================
diff -u -rce31448a066c084f755439f3e7d453bfb042b291 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs (.../DerivedPipingInputTest.cs) (revision ce31448a066c084f755439f3e7d453bfb042b291)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs (.../DerivedPipingInputTest.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -713,7 +713,7 @@
}
[Test]
- public void SaturatedVolumicWeightOfCoverageLayer_MultipleLayersEqualShiftAndStandardDeviation_ReturnsWithWeightedMean()
+ public void SaturatedVolumicWeightOfCoverageLayer_MultipleLayersEqualStandardDeviationAndShift_ReturnsWithWeightedMean()
{
// Setup
var input = PipingCalculationFactory.CreateInputWithAquiferAndCoverageLayer();
@@ -753,6 +753,54 @@
}
[Test]
+ [TestCase(0.01, 0)]
+ [TestCase(0, 0.01)]
+ [TestCase(2, 1)]
+ [TestCase(3, -1)]
+ [TestCase(-0.01, 0)]
+ [TestCase(0, -0.01)]
+ [TestCase(-2, 1)]
+ [TestCase(-3, -1)]
+ public void SaturatedVolumicWeightOfCoverageLayer_MultipleLayersInequalStandardDeviationOrShift_ReturnsNaNValues(double deviationDelta, double shiftDelta)
+ {
+ // Setup
+ var input = PipingCalculationFactory.CreateInputWithAquiferAndCoverageLayer();
+ var derivedInput = new DerivedPipingInput(input);
+ var random = new Random(21);
+ var belowPhreaticLevelMeanA = random.NextDouble();
+ var belowPhreaticLevelMeanB = random.NextDouble();
+ double deviation = random.NextDouble();
+ double shift = random.NextDouble();
+ input.StochasticSoilProfile.SoilProfile = new PipingSoilProfile("", -2.0, new[]
+ {
+ new PipingSoilLayer(2.5)
+ {
+ BelowPhreaticLevelDeviation = deviation,
+ BelowPhreaticLevelShift = shift,
+ BelowPhreaticLevelMean = belowPhreaticLevelMeanA
+ },
+ new PipingSoilLayer(-0.5)
+ {
+ BelowPhreaticLevelDeviation = deviation + deviationDelta,
+ BelowPhreaticLevelShift = shift + shiftDelta,
+ BelowPhreaticLevelMean = belowPhreaticLevelMeanB
+ },
+ new PipingSoilLayer(-1.5)
+ {
+ IsAquifer = true
+ },
+ }, SoilProfileType.SoilProfile1D, 0);
+
+ // Call
+ var result = derivedInput.SaturatedVolumicWeightOfCoverageLayer;
+
+ // Assert
+ Assert.IsNaN(result.Mean);
+ Assert.IsNaN(result.Shift);
+ Assert.IsNaN(result.StandardDeviation);
+ }
+
+ [Test]
public void DarcyPermeability_NoSoilProfile_ReturnsNaNForParameters()
{
// Setup
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs
===================================================================
diff -u -rce31448a066c084f755439f3e7d453bfb042b291 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision ce31448a066c084f755439f3e7d453bfb042b291)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingInputContextPropertiesTest.cs (.../PipingInputContextPropertiesTest.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -123,48 +123,48 @@
Assert.AreEqual("Polderpeil [m+NAP]", phreaticLevelExitProperty.DisplayName);
Assert.AreEqual("Polderpeil.", phreaticLevelExitProperty.Description);
- PropertyDescriptor surfaceLineProperty = dynamicProperties[4];
+ PropertyDescriptor piezometricHeadExitProperty = dynamicProperties[4];
+ Assert.IsNotNull(piezometricHeadExitProperty);
+ Assert.IsTrue(piezometricHeadExitProperty.IsReadOnly);
+ Assert.AreEqual(hydraulicDataCategory, piezometricHeadExitProperty.Category);
+ Assert.AreEqual("Stijghoogte bij uittredepunt [m+NAP]", piezometricHeadExitProperty.DisplayName);
+ Assert.AreEqual("Stijghoogte bij uittredepunt.", piezometricHeadExitProperty.Description);
+
+ PropertyDescriptor surfaceLineProperty = dynamicProperties[5];
Assert.IsNotNull(surfaceLineProperty);
Assert.IsFalse(surfaceLineProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, surfaceLineProperty.Category);
Assert.AreEqual("Profielschematisatie", surfaceLineProperty.DisplayName);
Assert.AreEqual("De schematisatie van de hoogte van het dwarsprofiel.", surfaceLineProperty.Description);
- PropertyDescriptor stochasticSoilModelProperty = dynamicProperties[5];
+ PropertyDescriptor stochasticSoilModelProperty = dynamicProperties[6];
Assert.IsNotNull(stochasticSoilModelProperty);
Assert.IsFalse(stochasticSoilModelProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, stochasticSoilModelProperty.Category);
Assert.AreEqual("Stochastisch ondergrondmodel", stochasticSoilModelProperty.DisplayName);
Assert.AreEqual("De verschillende opbouwen van de ondergrond en hun respectieve kansen van voorkomen.", stochasticSoilModelProperty.Description);
- PropertyDescriptor stochasticSoilProfileProperty = dynamicProperties[6];
+ PropertyDescriptor stochasticSoilProfileProperty = dynamicProperties[7];
Assert.IsNotNull(stochasticSoilProfileProperty);
Assert.IsFalse(stochasticSoilProfileProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, stochasticSoilProfileProperty.Category);
Assert.AreEqual("Ondergrondschematisatie", stochasticSoilProfileProperty.DisplayName);
Assert.AreEqual("De opbouw van de ondergrond.", stochasticSoilProfileProperty.Description);
- PropertyDescriptor entryPointLProperty = dynamicProperties[7];
+ PropertyDescriptor entryPointLProperty = dynamicProperties[8];
Assert.IsNotNull(entryPointLProperty);
Assert.IsFalse(entryPointLProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, entryPointLProperty.Category);
Assert.AreEqual("Intredepunt", entryPointLProperty.DisplayName);
Assert.AreEqual("De positie in het dwarsprofiel van het intredepunt.", entryPointLProperty.Description);
- PropertyDescriptor exitPointLProperty = dynamicProperties[8];
+ PropertyDescriptor exitPointLProperty = dynamicProperties[9];
Assert.IsNotNull(exitPointLProperty);
Assert.IsFalse(exitPointLProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, exitPointLProperty.Category);
Assert.AreEqual("Uittredepunt", exitPointLProperty.DisplayName);
Assert.AreEqual("De positie in het dwarsprofiel van het uittredepunt.", exitPointLProperty.Description);
- PropertyDescriptor piezometricHeadExitProperty = dynamicProperties[9];
- Assert.IsNotNull(piezometricHeadExitProperty);
- Assert.IsTrue(piezometricHeadExitProperty.IsReadOnly);
- Assert.AreEqual(schematizationCategory, piezometricHeadExitProperty.Category);
- Assert.AreEqual("Stijghoogte bij uittredepunt [m+NAP]", piezometricHeadExitProperty.DisplayName);
- Assert.AreEqual("Stijghoogte bij uittredepunt.", piezometricHeadExitProperty.Description);
-
PropertyDescriptor seepageLengthProperty = dynamicProperties[10];
Assert.IsNotNull(seepageLengthProperty);
Assert.IsInstanceOf(seepageLengthProperty.Converter);
Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs
===================================================================
diff -u -r4bab160dd44cb5e104ad8fbf2bb49add8227c116 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision 4bab160dd44cb5e104ad8fbf2bb49add8227c116)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -640,7 +640,7 @@
var msgs = messages.ToArray();
Assert.AreEqual(3, msgs.Length);
StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", name), msgs.First());
- StringAssert.StartsWith("Meerdere aaneengesloten deklagen gevonden. Er wordt geprobeerd de gemiddelden van de definities voor het verzadigd gewicht van de deklagen te combineren.", msgs[1]);
+ StringAssert.StartsWith("Meerdere aaneengesloten deklagen gevonden. De grondeigenschappen zullen worden bepaald door het nemen van een gewogen gemiddelde, mits de standaard deviaties en verschuivingen voor alle lagen gelijk zijn.", msgs[1]);
StringAssert.StartsWith(String.Format("Validatie van '{0}' beƫindigd om: ", name), msgs.Last());
});
Assert.IsTrue(isValid);
Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs
===================================================================
diff -u -rce31448a066c084f755439f3e7d453bfb042b291 -r0cdb24eee9b746ab5d21381ca51c6836dd460292
--- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs (.../PipingSemiProbabilisticCalculationServiceTest.cs) (revision ce31448a066c084f755439f3e7d453bfb042b291)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs (.../PipingSemiProbabilisticCalculationServiceTest.cs) (revision 0cdb24eee9b746ab5d21381ca51c6836dd460292)
@@ -192,7 +192,8 @@
RoundedDouble result = calculation.SemiProbabilisticOutput.PipingFactorOfSafety;
// Assert
- Assert.AreEqual(calculation.SemiProbabilisticOutput.PipingReliability/calculation.SemiProbabilisticOutput.RequiredReliability, result, result.GetAccuracy());
+ var accuracy = Math.Pow(10.0, -result.NumberOfDecimalPlaces); // Less strict accuracy because of calculation using rounded doubles
+ Assert.AreEqual(calculation.SemiProbabilisticOutput.PipingReliability/calculation.SemiProbabilisticOutput.RequiredReliability, result, accuracy);
}
[Test]