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