Index: Core/Common/src/Core.Common.Base/Geometry/Point2D.cs =================================================================== diff -u -r354316fca628a0f9dcdee5ff156ae4d87e662677 -raeb13948dc79633899e041bd26c1694bfa56c21b --- Core/Common/src/Core.Common.Base/Geometry/Point2D.cs (.../Point2D.cs) (revision 354316fca628a0f9dcdee5ff156ae4d87e662677) +++ Core/Common/src/Core.Common.Base/Geometry/Point2D.cs (.../Point2D.cs) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -62,12 +62,12 @@ } /// - /// Gets or sets the x coordinate. + /// Gets the x coordinate. /// public double X { get; } /// - /// Gets or sets the y coordinate. + /// Gets the y coordinate. /// public double Y { get; } Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlidingCircle.cs =================================================================== diff -u -r0f736d81afe800a482dff027fe93128a5e967114 -raeb13948dc79633899e041bd26c1694bfa56c21b --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlidingCircle.cs (.../MacroStabilityInwardsSlidingCircle.cs) (revision 0f736d81afe800a482dff027fe93128a5e967114) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlidingCircle.cs (.../MacroStabilityInwardsSlidingCircle.cs) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -27,7 +27,7 @@ /// /// The macro stability inwards sliding circle. /// - public class MacroStabilityInwardsSlidingCircle + public class MacroStabilityInwardsSlidingCircle : ICloneable { /// /// Creates a new instance of . @@ -61,7 +61,7 @@ /// /// Gets the center coordinate of the circle. /// - public Point2D Center { get; } + public Point2D Center { get; internal set; } /// /// Gets the radius of the circle. @@ -93,5 +93,13 @@ /// Gets the resisting moment of the circle. /// public double ResistingMoment { get; } + + public object Clone() + { + var clone = (MacroStabilityInwardsSlidingCircle) MemberwiseClone(); + clone.Center = (Point2D) Center.Clone(); + + return clone; + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticOutputTest.cs =================================================================== diff -u -rccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48 -raeb13948dc79633899e041bd26c1694bfa56c21b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticOutputTest.cs (.../MacroStabilityInwardsSemiProbabilisticOutputTest.cs) (revision ccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticOutputTest.cs (.../MacroStabilityInwardsSemiProbabilisticOutputTest.cs) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -210,7 +210,7 @@ object clone = output.Clone(); // Assert - CoreCloneAssert.AreObjectClones(output, clone, MacroStabilityInwardsCloneAssert.AssertClones); + CoreCloneAssert.AreObjectClones(output, clone, MacroStabilityInwardsCloneAssert.AreClones); } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSlidingCircleTest.cs =================================================================== diff -u -r2c8c5eec330543aab5ece02da4159ce53cfde11b -raeb13948dc79633899e041bd26c1694bfa56c21b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSlidingCircleTest.cs (.../MacroStabilityInwardsSlidingCircleTest.cs) (revision 2c8c5eec330543aab5ece02da4159ce53cfde11b) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSlidingCircleTest.cs (.../MacroStabilityInwardsSlidingCircleTest.cs) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -21,8 +21,10 @@ using System; using Core.Common.Base.Geometry; +using Core.Common.Data.TestUtil; using Core.Common.TestUtil; using NUnit.Framework; +using Ringtoets.MacroStabilityInwards.Data.TestUtil; namespace Ringtoets.MacroStabilityInwards.Data.Test { @@ -57,6 +59,8 @@ var circle = new MacroStabilityInwardsSlidingCircle(center, radius, isActive, nonIteratedForce, iteratedForce, drivingMoment, resistingMoment); // Assert + Assert.IsInstanceOf(circle); + Assert.AreEqual(center, circle.Center); Assert.AreEqual(radius, circle.Radius); Assert.AreEqual(isActive, circle.IsActive); @@ -65,5 +69,27 @@ Assert.AreEqual(drivingMoment, circle.DrivingMoment); Assert.AreEqual(resistingMoment, circle.ResistingMoment); } + + + [Test] + public void Clone_Always_ReturnNewInstanceWithCopiedValues() + { + // Setup + var random = new Random(11); + var center = new Point2D(random.NextDouble(), random.NextDouble()); + double radius = random.NextDouble(); + bool isActive = random.NextBoolean(); + double nonIteratedForce = random.NextDouble(); + double iteratedForce = random.NextDouble(); + double drivingMoment = random.NextDouble(); + double resistingMoment = random.NextDouble(); + var original = new MacroStabilityInwardsSlidingCircle(center, radius, isActive, nonIteratedForce, iteratedForce, drivingMoment, resistingMoment); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, MacroStabilityInwardsCloneAssert.AreClones); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCloneAssert.cs =================================================================== diff -u -rccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48 -raeb13948dc79633899e041bd26c1694bfa56c21b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCloneAssert.cs (.../MacroStabilityInwardsCloneAssert.cs) (revision ccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/MacroStabilityInwardsCloneAssert.cs (.../MacroStabilityInwardsCloneAssert.cs) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -19,6 +19,8 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using Core.Common.Base.TestUtil.Geometry; +using Core.Common.Data.TestUtil; using NUnit.Framework; namespace Ringtoets.MacroStabilityInwards.Data.TestUtil @@ -36,7 +38,27 @@ /// The cloned object. /// Thrown when and /// are not clones. - public static void AssertClones(MacroStabilityInwardsSemiProbabilisticOutput original, + public static void AreClones(MacroStabilityInwardsSlidingCircle original, + MacroStabilityInwardsSlidingCircle clone) + { + CoreCloneAssert.AreObjectClones(original.Center, clone.Center, GeometryCloneAssert.AreClones); + Assert.AreEqual(original.Radius, clone.Radius); + Assert.AreEqual(original.IsActive, clone.IsActive); + Assert.AreEqual(original.NonIteratedForce, clone.NonIteratedForce); + Assert.AreEqual(original.IteratedForce, clone.IteratedForce); + Assert.AreEqual(original.DrivingMoment, clone.DrivingMoment); + Assert.AreEqual(original.ResistingMoment, clone.ResistingMoment); + } + + /// + /// Method that asserts whether and + /// are clones. + /// + /// The original object. + /// The cloned object. + /// Thrown when and + /// are not clones. + public static void AreClones(MacroStabilityInwardsSemiProbabilisticOutput original, MacroStabilityInwardsSemiProbabilisticOutput clone) { Assert.AreEqual(original.FactorOfStability, clone.FactorOfStability); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/Ringtoets.MacroStabilityInwards.Data.TestUtil.csproj =================================================================== diff -u -rccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48 -raeb13948dc79633899e041bd26c1694bfa56c21b --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/Ringtoets.MacroStabilityInwards.Data.TestUtil.csproj (.../Ringtoets.MacroStabilityInwards.Data.TestUtil.csproj) (revision ccbc69e92eaa4c2418f046fa83b5b5ee9fdf2c48) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/Ringtoets.MacroStabilityInwards.Data.TestUtil.csproj (.../Ringtoets.MacroStabilityInwards.Data.TestUtil.csproj) (revision aeb13948dc79633899e041bd26c1694bfa56c21b) @@ -74,6 +74,14 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base + + {8E2FAB92-51AA-47B0-B18A-9AC0455EF77D} + Core.Common.Base.TestUtil + + + {0B0D2DFF-7E7E-4BB0-A007-61800C85809A} + Core.Common.Data.TestUtil + {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data