Index: Ringtoets/Common/src/Ringtoets.Common.Data/Probability/ProbabilityAssessmentOutput.cs
===================================================================
diff -u -rd16d146d545cf86ad58c5e2c73cb5bc1b784ce67 -r5a0faf50983c0b2b407604d01d34312f12282b19
--- Ringtoets/Common/src/Ringtoets.Common.Data/Probability/ProbabilityAssessmentOutput.cs (.../ProbabilityAssessmentOutput.cs) (revision d16d146d545cf86ad58c5e2c73cb5bc1b784ce67)
+++ Ringtoets/Common/src/Ringtoets.Common.Data/Probability/ProbabilityAssessmentOutput.cs (.../ProbabilityAssessmentOutput.cs) (revision 5a0faf50983c0b2b407604d01d34312f12282b19)
@@ -29,7 +29,7 @@
///
/// This class contains the results of a probabilistic assessment calculation.
///
- public class ProbabilityAssessmentOutput : Observable, ICalculationOutput
+ public class ProbabilityAssessmentOutput : Observable, ICalculationOutput, ICloneable
{
private double requiredProbability;
private double probability;
@@ -74,7 +74,7 @@
///
/// Get the required (maximum allowed) reliability of the failure mechanism.
///
- public RoundedDouble RequiredReliability { get; private set; }
+ public RoundedDouble RequiredReliability { get; }
///
/// Gets the probability of failure.
@@ -97,11 +97,16 @@
///
/// Gets the reliability of the failure mechanism.
///
- public RoundedDouble Reliability { get; private set; }
+ public RoundedDouble Reliability { get; }
///
/// Gets the factor of safety of the failure mechanism.
///
- public RoundedDouble FactorOfSafety { get; private set; }
+ public RoundedDouble FactorOfSafety { get; }
+
+ public object Clone()
+ {
+ return MemberwiseClone();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probability/ProbabilityAssessmentOutputTest.cs
===================================================================
diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -r5a0faf50983c0b2b407604d01d34312f12282b19
--- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probability/ProbabilityAssessmentOutputTest.cs (.../ProbabilityAssessmentOutputTest.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1)
+++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Probability/ProbabilityAssessmentOutputTest.cs (.../ProbabilityAssessmentOutputTest.cs) (revision 5a0faf50983c0b2b407604d01d34312f12282b19)
@@ -21,11 +21,11 @@
using System;
using Core.Common.Base;
-using Core.Common.Base.Data;
using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Probability;
+using Ringtoets.Common.Data.TestUtil;
namespace Ringtoets.Common.Data.Test.Probability
{
@@ -38,27 +38,26 @@
// Setup
var random = new Random(5);
double requiredProbability = random.NextDouble();
- var requiredReliability = new RoundedDouble(3, random.NextDouble());
+ double requiredReliability = random.NextDouble();
double probability = random.NextDouble();
- var reliability = new RoundedDouble(3, random.NextDouble());
- var factorOfSafety = new RoundedDouble(3, random.NextDouble());
+ double reliability = random.NextDouble();
+ double factorOfSafety = random.NextDouble();
// Call
- var output = new ProbabilityAssessmentOutput(requiredProbability, requiredReliability, probability, reliability, factorOfSafety);
+ var probabilityAssessmentOutput = new ProbabilityAssessmentOutput(requiredProbability, requiredReliability, probability, reliability, factorOfSafety);
// Assert
- Assert.IsInstanceOf(output);
- Assert.IsInstanceOf(output);
-
- Assert.IsNotNull(output);
- Assert.AreEqual(requiredProbability, output.RequiredProbability);
- Assert.AreEqual(5, output.RequiredReliability.NumberOfDecimalPlaces);
- Assert.AreEqual(requiredReliability, output.RequiredReliability);
- Assert.AreEqual(probability, output.Probability);
- Assert.AreEqual(5, output.Reliability.NumberOfDecimalPlaces);
- Assert.AreEqual(reliability, output.Reliability);
- Assert.AreEqual(3, output.FactorOfSafety.NumberOfDecimalPlaces);
- Assert.AreEqual(factorOfSafety, output.FactorOfSafety);
+ Assert.IsInstanceOf(probabilityAssessmentOutput);
+ Assert.IsInstanceOf(probabilityAssessmentOutput);
+ Assert.IsInstanceOf(probabilityAssessmentOutput);
+ Assert.AreEqual(requiredProbability, probabilityAssessmentOutput.RequiredProbability);
+ Assert.AreEqual(5, probabilityAssessmentOutput.RequiredReliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(requiredReliability, probabilityAssessmentOutput.RequiredReliability, probabilityAssessmentOutput.RequiredReliability.GetAccuracy());
+ Assert.AreEqual(probability, probabilityAssessmentOutput.Probability);
+ Assert.AreEqual(5, probabilityAssessmentOutput.Reliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(reliability, probabilityAssessmentOutput.Reliability, probabilityAssessmentOutput.Reliability.GetAccuracy());
+ Assert.AreEqual(3, probabilityAssessmentOutput.FactorOfSafety.NumberOfDecimalPlaces);
+ Assert.AreEqual(factorOfSafety, probabilityAssessmentOutput.FactorOfSafety, probabilityAssessmentOutput.FactorOfSafety.GetAccuracy());
}
[Test]
@@ -168,5 +167,33 @@
const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen.";
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
}
+
+ [Test]
+ public void Clone_Always_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ var random = new Random(5);
+ double requiredProbability = random.NextDouble();
+ double requiredReliability = random.NextDouble();
+ double probability = random.NextDouble();
+ double reliability = random.NextDouble();
+ double factorOfSafety = random.NextDouble();
+
+ var probabilityAssessmentOutput = new ProbabilityAssessmentOutput(requiredProbability, requiredReliability, probability, reliability, factorOfSafety);
+
+ // Call
+ object clone = probabilityAssessmentOutput.Clone();
+
+ // Assert
+ Assert.AreNotSame(probabilityAssessmentOutput, clone);
+ Assert.IsInstanceOf(clone);
+
+ var clonedProbabilityAssessmentOutput = (ProbabilityAssessmentOutput) clone;
+ Assert.AreEqual(requiredProbability, clonedProbabilityAssessmentOutput.RequiredProbability);
+ Assert.AreEqual(requiredReliability, clonedProbabilityAssessmentOutput.RequiredReliability, clonedProbabilityAssessmentOutput.RequiredReliability.GetAccuracy());
+ Assert.AreEqual(probability, clonedProbabilityAssessmentOutput.Probability);
+ Assert.AreEqual(reliability, clonedProbabilityAssessmentOutput.Reliability, clonedProbabilityAssessmentOutput.Reliability.GetAccuracy());
+ Assert.AreEqual(factorOfSafety, clonedProbabilityAssessmentOutput.FactorOfSafety, clonedProbabilityAssessmentOutput.FactorOfSafety.GetAccuracy());
+ }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs
===================================================================
diff -u -r68b52f02bf376697530c1273a75a7ee05ba92483 -r5a0faf50983c0b2b407604d01d34312f12282b19
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs (.../GrassCoverErosionInwardsInputTest.cs) (revision 68b52f02bf376697530c1273a75a7ee05ba92483)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Data.Test/GrassCoverErosionInwardsInputTest.cs (.../GrassCoverErosionInwardsInputTest.cs) (revision 5a0faf50983c0b2b407604d01d34312f12282b19)
@@ -367,8 +367,8 @@
// Setup
var random = new Random(21);
var dikeProfile = new TestDikeProfile();
- var orientation = new RoundedDouble(2, random.NextDouble());
- var dikeHeight = new RoundedDouble(2, random.NextDouble());
+ RoundedDouble orientation = random.NextRoundedDouble();
+ RoundedDouble dikeHeight = random.NextRoundedDouble();
var criticalFlowRate = new LogNormalDistribution(4)
{
Mean = random.NextRoundedDouble(),
@@ -414,8 +414,8 @@
var clonedGrassCoverErosionInwardsInput = (GrassCoverErosionInwardsInput) clone;
Assert.AreSame(dikeProfile, clonedGrassCoverErosionInwardsInput.DikeProfile);
- Assert.AreEqual(orientation, clonedGrassCoverErosionInwardsInput.Orientation);
- Assert.AreEqual(dikeHeight, clonedGrassCoverErosionInwardsInput.DikeHeight);
+ Assert.AreEqual(orientation, clonedGrassCoverErosionInwardsInput.Orientation, clonedGrassCoverErosionInwardsInput.Orientation.GetAccuracy());
+ Assert.AreEqual(dikeHeight, clonedGrassCoverErosionInwardsInput.DikeHeight, clonedGrassCoverErosionInwardsInput.DikeHeight.GetAccuracy());
Assert.AreNotSame(grassCoverErosionInwardsInput.CriticalFlowRate, clonedGrassCoverErosionInwardsInput.CriticalFlowRate);
Assert.AreEqual(criticalFlowRate, clonedGrassCoverErosionInwardsInput.CriticalFlowRate);
Assert.AreSame(hydraulicBoundaryLocation, clonedGrassCoverErosionInwardsInput.HydraulicBoundaryLocation);