Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IDistribution.cs
===================================================================
diff -u -r238800aea14ad46b711dc0520d9416a05f6693ae -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IDistribution.cs (.../IDistribution.cs) (revision 238800aea14ad46b711dc0520d9416a05f6693ae)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IDistribution.cs (.../IDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -28,7 +28,7 @@
/// This object represents a probabilistic distribution.
///
///
- public interface IDistribution
+ public interface IDistribution : ICloneable
{
///
/// Gets or sets the mean (expected value, E(X)) of the distribution.
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IVariationCoefficientDistribution.cs
===================================================================
diff -u -r7d6e4c28a40fb056c182d0691dda2b2e88aeebfd -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IVariationCoefficientDistribution.cs (.../IVariationCoefficientDistribution.cs) (revision 7d6e4c28a40fb056c182d0691dda2b2e88aeebfd)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/IVariationCoefficientDistribution.cs (.../IVariationCoefficientDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -28,7 +28,7 @@
/// This object represents a probabilistic distribution.
///
///
- public interface IVariationCoefficientDistribution
+ public interface IVariationCoefficientDistribution : ICloneable
{
///
/// Gets or sets the mean (expected value, E(X)) of the distribution.
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/LogNormalDistribution.cs
===================================================================
diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/LogNormalDistribution.cs (.../LogNormalDistribution.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/LogNormalDistribution.cs (.../LogNormalDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -139,5 +139,10 @@
standardDeviation = roundedValue;
}
}
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/NormalDistribution.cs
===================================================================
diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/NormalDistribution.cs (.../NormalDistribution.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/NormalDistribution.cs (.../NormalDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -86,5 +86,10 @@
standardDeviation = roundedValue;
}
}
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientLogNormalDistribution.cs
===================================================================
diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientLogNormalDistribution.cs (.../VariationCoefficientLogNormalDistribution.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientLogNormalDistribution.cs (.../VariationCoefficientLogNormalDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -99,5 +99,10 @@
coefficientOfVariation = roundedValue;
}
}
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientNormalDistribution.cs
===================================================================
diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientNormalDistribution.cs (.../VariationCoefficientNormalDistribution.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probabilistics/VariationCoefficientNormalDistribution.cs (.../VariationCoefficientNormalDistribution.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -86,5 +86,10 @@
coefficientOfVariation = roundedValue;
}
}
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/LogNormalDistributionTest.cs
===================================================================
diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/LogNormalDistributionTest.cs (.../LogNormalDistributionTest.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/LogNormalDistributionTest.cs (.../LogNormalDistributionTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -24,6 +24,7 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probabilistics
{
@@ -187,5 +188,25 @@
const string expectedMessage = "De verschuiving mag niet groter zijn dan de verwachtingswaarde.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(21);
+ var distribution = new LogNormalDistribution(random.Next(1, 16))
+ {
+ Mean = random.NextRoundedDouble(),
+ StandardDeviation = random.NextRoundedDouble()
+ };
+
+ // Call
+ object clone = distribution.Clone();
+
+ // Assert
+ Assert.IsInstanceOf(clone);
+ var clonedDistribution = (LogNormalDistribution)clone;
+ DistributionAssert.AreEqual(distribution, clonedDistribution);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/NormalDistributionTest.cs
===================================================================
diff -u -r1bd1adf2f50f50a4043cb3ae1f159979f8e59d90 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/NormalDistributionTest.cs (.../NormalDistributionTest.cs) (revision 1bd1adf2f50f50a4043cb3ae1f159979f8e59d90)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/NormalDistributionTest.cs (.../NormalDistributionTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -24,6 +24,7 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probabilistics
{
@@ -113,5 +114,25 @@
const string expectedMessage = "Standaardafwijking (\u03C3) moet groter zijn dan of gelijk zijn aan 0.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(21);
+ var distribution = new NormalDistribution(random.Next(1, 16))
+ {
+ Mean = random.NextRoundedDouble(),
+ StandardDeviation = random.NextRoundedDouble()
+ };
+
+ // Call
+ object clone = distribution.Clone();
+
+ // Assert
+ Assert.IsInstanceOf(clone);
+ var clonedDistribution = (NormalDistribution)clone;
+ DistributionAssert.AreEqual(distribution, clonedDistribution);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/TruncatedNormalDistributionTest.cs
===================================================================
diff -u -r8905298103eb01ce13dd5c1a2f267f879d4fda3e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/TruncatedNormalDistributionTest.cs (.../TruncatedNormalDistributionTest.cs) (revision 8905298103eb01ce13dd5c1a2f267f879d4fda3e)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/TruncatedNormalDistributionTest.cs (.../TruncatedNormalDistributionTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -19,9 +19,12 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Core.Common.Base.Data;
+using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probabilistics
{
@@ -78,5 +81,27 @@
Assert.AreEqual(numberOfDecimalPlaces, distribution.UpperBoundary.NumberOfDecimalPlaces);
Assert.AreEqual(new RoundedDouble(numberOfDecimalPlaces, value), distribution.UpperBoundary);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(21);
+ var distribution = new TruncatedNormalDistribution(random.Next(1, 16))
+ {
+ Mean = random.NextRoundedDouble(),
+ StandardDeviation = random.NextRoundedDouble(),
+ LowerBoundary = random.NextRoundedDouble(),
+ UpperBoundary = random.NextRoundedDouble()
+ };
+
+ // Call
+ object clone = distribution.Clone();
+
+ // Assert
+ Assert.IsInstanceOf(clone);
+ var clonedDistribution = (TruncatedNormalDistribution)clone;
+ DistributionAssert.AreEqual(distribution, clonedDistribution);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientLogNormalDistributionTest.cs
===================================================================
diff -u -r1bd1adf2f50f50a4043cb3ae1f159979f8e59d90 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientLogNormalDistributionTest.cs (.../VariationCoefficientLogNormalDistributionTest.cs) (revision 1bd1adf2f50f50a4043cb3ae1f159979f8e59d90)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientLogNormalDistributionTest.cs (.../VariationCoefficientLogNormalDistributionTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -24,6 +24,7 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probabilistics
{
@@ -141,5 +142,25 @@
string expectedMessage = "Variatiecoëfficiënt (CV) moet groter zijn dan of gelijk zijn aan 0.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(21);
+ var distribution = new VariationCoefficientLogNormalDistribution(random.Next(1, 16))
+ {
+ Mean = random.NextRoundedDouble(),
+ CoefficientOfVariation = random.NextRoundedDouble()
+ };
+
+ // Call
+ object clone = distribution.Clone();
+
+ // Assert
+ Assert.IsInstanceOf(clone);
+ var clonedDistribution = (VariationCoefficientLogNormalDistribution) clone;
+ DistributionAssert.AreEqual(distribution, clonedDistribution);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientNormalDistributionTest.cs
===================================================================
diff -u -r1bd1adf2f50f50a4043cb3ae1f159979f8e59d90 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientNormalDistributionTest.cs (.../VariationCoefficientNormalDistributionTest.cs) (revision 1bd1adf2f50f50a4043cb3ae1f159979f8e59d90)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probabilistics/VariationCoefficientNormalDistributionTest.cs (.../VariationCoefficientNormalDistributionTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -24,6 +24,7 @@
using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probabilistics
{
@@ -122,5 +123,25 @@
string expectedMessage = "Variatiecoëfficiënt (CV) moet groter zijn dan of gelijk zijn aan 0.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(21);
+ var distribution = new VariationCoefficientNormalDistribution(random.Next(1, 16))
+ {
+ Mean = random.NextRoundedDouble(),
+ CoefficientOfVariation = random.NextRoundedDouble()
+ };
+
+ // Call
+ object clone = distribution.Clone();
+
+ // Assert
+ Assert.IsInstanceOf(clone);
+ var clonedDistribution = (VariationCoefficientNormalDistribution)clone;
+ DistributionAssert.AreEqual(distribution, clonedDistribution);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs
===================================================================
diff -u -r2857b234df4622cdaf80bbc75abc58af36667347 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs (.../LimitedPrecisionHelperTest.cs) (revision 2857b234df4622cdaf80bbc75abc58af36667347)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/LimitedPrecisionHelperTest.cs (.../LimitedPrecisionHelperTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -86,6 +86,11 @@
{
public RoundedDouble Mean { get; set; }
public RoundedDouble StandardDeviation { get; set; }
+
+ public object Clone()
+ {
+ throw new NotImplementedException();
+ }
}
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/DistributionPropertiesTestHelperTest.cs
===================================================================
diff -u -rde55528705df446cc78761cd04d8ba8149e6540c -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/DistributionPropertiesTestHelperTest.cs (.../DistributionPropertiesTestHelperTest.cs) (revision de55528705df446cc78761cd04d8ba8149e6540c)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/DistributionPropertiesTestHelperTest.cs (.../DistributionPropertiesTestHelperTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using System.Collections.Generic;
using Core.Common.Base;
using Core.Common.Base.Data;
@@ -190,6 +191,11 @@
public RoundedDouble Mean { get; set; }
public RoundedDouble StandardDeviation { get; set; }
public RoundedDouble CoefficientOfVariation { get; set; }
+
+ public object Clone()
+ {
+ throw new NotImplementedException();
+ }
}
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs
===================================================================
diff -u -r8a144ca2626854644292dbcefee440d066d9d2e8 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision 8a144ca2626854644292dbcefee440d066d9d2e8)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -278,19 +278,25 @@
/// false otherwise.
private bool TryReadCriticalWaveReduction(ReadGrassCoverErosionInwardsCalculation readCalculation, GrassCoverErosionInwardsCalculation calculation)
{
- if (!readCalculation.CriticalFlowRateMean.HasValue || !readCalculation.CriticalFlowRateStandardDeviation.HasValue)
+ var distribution = (LogNormalDistribution) calculation.InputParameters.CriticalFlowRate.Clone();
+
+ if (readCalculation.CriticalFlowRateMean.HasValue)
{
- return true;
+ double criticalFlowRateMean = readCalculation.CriticalFlowRateMean.Value;
+
+ if (!SetMean(distribution, criticalFlowRateMean, calculation.Name))
+ {
+ return false;
+ }
}
- double criticalFlowRateStandardDeviation = readCalculation.CriticalFlowRateStandardDeviation.Value;
- double criticalFlowRateMean = readCalculation.CriticalFlowRateMean.Value;
-
- var distribution = new LogNormalDistribution();
-
- if (!SetMean(distribution, criticalFlowRateMean, calculation.Name) || !SetStandardDeviation(distribution, criticalFlowRateStandardDeviation, calculation.Name))
+ if (readCalculation.CriticalFlowRateStandardDeviation.HasValue)
{
- return false;
+ double criticalFlowRateStandardDeviation = readCalculation.CriticalFlowRateStandardDeviation.Value;
+ if (!SetStandardDeviation(distribution, criticalFlowRateStandardDeviation, calculation.Name))
+ {
+ return false;
+ }
}
calculation.InputParameters.CriticalFlowRate = distribution;
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Importers/GrassCoverErosionInwardsCalculationConfigurationImporterTest.cs
===================================================================
diff -u -r60b9c5761bd42da110cf85a03e3e2db34109325e -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Importers/GrassCoverErosionInwardsCalculationConfigurationImporterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporterTest.cs) (revision 60b9c5761bd42da110cf85a03e3e2db34109325e)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Importers/GrassCoverErosionInwardsCalculationConfigurationImporterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporterTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -362,6 +362,107 @@
}
[Test]
+ public void Import_ValidConfigurationOnlyCriticalFlowRateMeanSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(path, "validConfigurationCriticalFlowRateMeanOnly.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
+ filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ Enumerable.Empty());
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Name = "Berekening 1",
+ InputParameters =
+ {
+ CriticalFlowRate =
+ {
+ Mean = (RoundedDouble) 2.0
+ }
+ }
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertCalculation(expectedCalculation, (GrassCoverErosionInwardsCalculation) calculationGroup.Children[0]);
+ }
+
+ [Test]
+ public void Import_ValidConfigurationOnlyCriticalFlowRateNoParametersSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(path, "validConfigurationCriticalFlowRateNoParameters.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
+ filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ Enumerable.Empty());
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Name = "Berekening 1"
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertCalculation(expectedCalculation, (GrassCoverErosionInwardsCalculation) calculationGroup.Children[0]);
+ }
+
+ [Test]
+ public void Import_ValidConfigurationOnlyCriticalFlowRateStandardDeviationSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(path, "validConfigurationCriticalFlowRateStandardDeviationOnly.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var importer = new GrassCoverErosionInwardsCalculationConfigurationImporter(
+ filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ Enumerable.Empty());
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new GrassCoverErosionInwardsCalculation
+ {
+ Name = "Berekening 1",
+ InputParameters =
+ {
+ CriticalFlowRate =
+ {
+ StandardDeviation = (RoundedDouble) 1.1
+ }
+ }
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertCalculation(expectedCalculation, (GrassCoverErosionInwardsCalculation) calculationGroup.Children[0]);
+ }
+
+ [Test]
public void Import_ValidConfigurationWithValidData_DataAddedToModel()
{
// Setup
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateMeanOnly.xml
===================================================================
diff -u
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateMeanOnly.xml (revision 0)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateMeanOnly.xml (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 2.0
+
+
+
+
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateNoParameters.xml
===================================================================
diff -u
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateNoParameters.xml (revision 0)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateNoParameters.xml (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateStandardDeviationOnly.xml
===================================================================
diff -u
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateStandardDeviationOnly.xml (revision 0)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationImporter/validConfigurationCriticalFlowRateStandardDeviationOnly.xml (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 1.1
+
+
+
+
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs
===================================================================
diff -u -rd347acb3d57c61fd3baa1e883551807417db6698 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs (.../PipingCalculationConfigurationImporter.cs) (revision d347acb3d57c61fd3baa1e883551807417db6698)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingCalculationConfigurationImporter.cs (.../PipingCalculationConfigurationImporter.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -315,89 +315,74 @@
private bool TryReadDampingFactorExit(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation)
{
- double? mean = readCalculation.DampingFactorExitMean;
- double? standardDeviation = readCalculation.DampingFactorExitStandardDeviation;
- if (mean.HasValue && standardDeviation.HasValue)
- {
- LogNormalDistribution normalDistribution = TryReadLogNormalDistribution(mean.Value, standardDeviation.Value,
- PipingCalculationConfigurationSchemaIdentifiers.DampingFactorExitStochastName,
- pipingCalculation.Name);
- if (normalDistribution == null)
- {
- return false;
- }
+ var distribution = (LogNormalDistribution) pipingCalculation.InputParameters.DampingFactorExit.Clone();
- pipingCalculation.InputParameters.DampingFactorExit = normalDistribution;
+ if (!TrySetDistributionParameters(
+ distribution,
+ readCalculation.DampingFactorExitMean,
+ readCalculation.DampingFactorExitStandardDeviation,
+ PipingCalculationConfigurationSchemaIdentifiers.DampingFactorExitStochastName,
+ pipingCalculation.Name))
+ {
+ return false;
}
+
+ pipingCalculation.InputParameters.DampingFactorExit = distribution;
return true;
}
private bool TryReadPhreaticLevelExit(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation)
{
- double? mean = readCalculation.PhreaticLevelExitMean;
- double? standardDeviation = readCalculation.PhreaticLevelExitStandardDeviation;
- if (mean.HasValue && standardDeviation.HasValue)
- {
- NormalDistribution normalDistribution = TryReadNormalDistribution(mean.Value, standardDeviation.Value,
- PipingCalculationConfigurationSchemaIdentifiers.PhreaticLevelExitStochastName,
- pipingCalculation.Name);
- if (normalDistribution == null)
- {
- return false;
- }
+ var distribution = (NormalDistribution) pipingCalculation.InputParameters.PhreaticLevelExit.Clone();
- pipingCalculation.InputParameters.PhreaticLevelExit = normalDistribution;
- }
- return true;
- }
-
- private NormalDistribution TryReadNormalDistribution(double mean, double standardDeviation, string stochastName, string calculationName)
- {
- var distribution = new NormalDistribution();
- if (TryReadDistributionParameters(distribution, mean, standardDeviation, stochastName, calculationName))
+ if (!TrySetDistributionParameters(
+ distribution,
+ readCalculation.PhreaticLevelExitMean,
+ readCalculation.PhreaticLevelExitStandardDeviation,
+ PipingCalculationConfigurationSchemaIdentifiers.PhreaticLevelExitStochastName,
+ pipingCalculation.Name))
{
- return distribution;
+ return false;
}
- return null;
- }
- private LogNormalDistribution TryReadLogNormalDistribution(double mean, double standardDeviation, string stochastName, string calculationName)
- {
- var distribution = new LogNormalDistribution();
- if (TryReadDistributionParameters(distribution, mean, standardDeviation, stochastName, calculationName))
- {
- return distribution;
- }
- return null;
+ pipingCalculation.InputParameters.PhreaticLevelExit = distribution;
+ return true;
}
- private bool TryReadDistributionParameters(IDistribution distribution, double mean, double standardDeviation, string stochastName, string calculationName)
+ private bool TrySetDistributionParameters(IDistribution distribution, double? mean, double? standardDeviation, string stochastName, string calculationName)
{
- try
+ if (mean.HasValue)
{
- distribution.Mean = (RoundedDouble) mean;
+ try
+ {
+ distribution.Mean = (RoundedDouble) mean;
+ }
+ catch (ArgumentOutOfRangeException e)
+ {
+ LogOutOfRangeException(string.Format(
+ Resources.PipingCalculationConfigurationImporter_ReadStochasts_Invalid_Mean_0_for_stochast_with_StochastName_1_,
+ mean, stochastName),
+ calculationName, e);
+ return false;
+ }
}
- catch (ArgumentOutOfRangeException e)
- {
- LogOutOfRangeException(string.Format(
- Resources.PipingCalculationConfigurationImporter_ReadStochasts_Invalid_Mean_0_for_stochast_with_StochastName_1_,
- mean, stochastName),
- calculationName, e);
- return false;
- }
- try
+ if (standardDeviation.HasValue)
{
- distribution.StandardDeviation = (RoundedDouble) standardDeviation;
+ try
+ {
+ distribution.StandardDeviation = (RoundedDouble) standardDeviation;
+ }
+ catch (ArgumentOutOfRangeException e)
+ {
+ LogOutOfRangeException(string.Format(
+ Resources.PipingCalculationConfigurationImporter_ReadStochasts_Invalid_StandardDeviation_0_for_stochast_with_StochastName_1_,
+ standardDeviation, stochastName),
+ calculationName, e);
+ return false;
+ }
}
- catch (ArgumentOutOfRangeException e)
- {
- LogOutOfRangeException(string.Format(
- Resources.PipingCalculationConfigurationImporter_ReadStochasts_Invalid_StandardDeviation_0_for_stochast_with_StochastName_1_,
- standardDeviation, stochastName),
- calculationName, e);
- return false;
- }
+
return true;
}
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs
===================================================================
diff -u -rd347acb3d57c61fd3baa1e883551807417db6698 -r332fd224ce5cd9c737e72f945271c52ae6d64c0d
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs (.../PipingCalculationConfigurationImporterTest.cs) (revision d347acb3d57c61fd3baa1e883551807417db6698)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingCalculationConfigurationImporterTest.cs (.../PipingCalculationConfigurationImporterTest.cs) (revision 332fd224ce5cd9c737e72f945271c52ae6d64c0d)
@@ -363,6 +363,118 @@
}
[Test]
+ public void Import_StochastsWithNoParametersSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(importerPath, "validConfigurationStochastsNoParameters.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ var importer = new PipingCalculationConfigurationImporter(filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ pipingFailureMechanism);
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ Name = "Calculation"
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertPipingCalculationScenario(expectedCalculation, (PipingCalculationScenario) calculationGroup.Children[0]);
+ }
+
+ [Test]
+ public void Import_StochastsWithMeanSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(importerPath, "validConfigurationStochastsMeanOnly.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ var importer = new PipingCalculationConfigurationImporter(filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ pipingFailureMechanism);
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ Name = "Calculation",
+ InputParameters =
+ {
+ PhreaticLevelExit =
+ {
+ Mean = (RoundedDouble) 4.4,
+ },
+ DampingFactorExit =
+ {
+ Mean = (RoundedDouble) 6.6,
+ }
+ }
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertPipingCalculationScenario(expectedCalculation, (PipingCalculationScenario) calculationGroup.Children[0]);
+ }
+
+ [Test]
+ public void Import_StochastsWithStandardDeviationSet_DataAddedToModel()
+ {
+ // Setup
+ string filePath = Path.Combine(importerPath, "validConfigurationStochastsStandardDeviationOnly.xml");
+
+ var calculationGroup = new CalculationGroup();
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+
+ var importer = new PipingCalculationConfigurationImporter(filePath,
+ calculationGroup,
+ Enumerable.Empty(),
+ pipingFailureMechanism);
+
+ // Call
+ bool successful = importer.Import();
+
+ // Assert
+ Assert.IsTrue(successful);
+
+ var expectedCalculation = new PipingCalculationScenario(new GeneralPipingInput())
+ {
+ Name = "Calculation",
+ InputParameters =
+ {
+ PhreaticLevelExit =
+ {
+ StandardDeviation = (RoundedDouble) 5.5
+ },
+ DampingFactorExit =
+ {
+ StandardDeviation = (RoundedDouble) 7.7
+ }
+ }
+ };
+
+ Assert.AreEqual(1, calculationGroup.Children.Count);
+ AssertPipingCalculationScenario(expectedCalculation, (PipingCalculationScenario) calculationGroup.Children[0]);
+ }
+
+ [Test]
[TestCase("validConfigurationFullCalculationContainingHydraulicBoundaryLocation.xml", false)]
[TestCase("validConfigurationFullCalculationContainingAssessmentLevel.xml", true)]
public void Import_ValidConfigurationWithValidHydraulicBoundaryData_DataAddedToModel(string file, bool manualAssessmentLevel)