Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingSemiProbabilisticOutputTest.cs =================================================================== diff -u -r81fa8a9bf3bd503cbd280e88b8f6037a840cff12 -r3cf4d4c65cf2ce285bdeb71162cf3b0a79cb3742 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingSemiProbabilisticOutputTest.cs (.../PipingSemiProbabilisticOutputTest.cs) (revision 81fa8a9bf3bd503cbd280e88b8f6037a840cff12) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingSemiProbabilisticOutputTest.cs (.../PipingSemiProbabilisticOutputTest.cs) (revision 3cf4d4c65cf2ce285bdeb71162cf3b0a79cb3742) @@ -23,6 +23,8 @@ using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.TestUtil; +using CoreCloneAssert = Core.Common.Data.TestUtil.CloneAssert; +using PipingCloneAssert = Ringtoets.Piping.Data.TestUtil.CloneAssert; namespace Ringtoets.Piping.Data.Test { @@ -67,6 +69,8 @@ pipingFactorOfSafety); // Assert + Assert.IsInstanceOf(output); + Assert.AreEqual(3, output.HeaveFactorOfSafety.NumberOfDecimalPlaces); Assert.AreEqual(upliftFactorOfSafety, output.UpliftFactorOfSafety, output.UpliftFactorOfSafety.GetAccuracy()); Assert.AreEqual(5, output.UpliftReliability.NumberOfDecimalPlaces); @@ -551,5 +555,53 @@ const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); } + + [Test] + public void Clone_AllPropertiesSet_ReturnNewInstanceWithCopiedValues() + { + // Setup + PipingSemiProbabilisticOutput original = GetRandomPipingSemiProbabilisticOutput(); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + private PipingSemiProbabilisticOutput GetRandomPipingSemiProbabilisticOutput() + { + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + return new PipingSemiProbabilisticOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + } } } \ No newline at end of file