Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilLayer2DLoopTest.cs =================================================================== diff -u -r0ae39cf7e804cdb6d5932d8d5aeced1e54febb60 -r4b5f919e083738df07436f56dbb3e7e7598c6646 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilLayer2DLoopTest.cs (.../SoilLayer2DLoopTest.cs) (revision 0ae39cf7e804cdb6d5932d8d5aeced1e54febb60) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilLayer2DLoopTest.cs (.../SoilLayer2DLoopTest.cs) (revision 4b5f919e083738df07436f56dbb3e7e7598c6646) @@ -111,8 +111,8 @@ public void GetHashCode_EqualLoops_AreEqual() { // Setup - SoilLayer2DLoop loopA = CreateValidLoop(); - SoilLayer2DLoop loopB = CreateValidLoop(); + SoilLayer2DLoop loopA = CreateValidLoop(1.0); + SoilLayer2DLoop loopB = CreateValidLoop(1.0); // Precondition Assert.AreEqual(loopA, loopB); @@ -127,7 +127,7 @@ public void Equals_DifferentType_ReturnsFalse() { // Setup - SoilLayer2DLoop loop = CreateValidLoop(); + SoilLayer2DLoop loop = CreateValidLoop(1.0); // Call bool areEqual = loop.Equals(new object()); @@ -140,7 +140,7 @@ public void Equals_Null_ReturnsFalse() { // Setup - SoilLayer2DLoop loop = CreateValidLoop(); + SoilLayer2DLoop loop = CreateValidLoop(1.0); // Call bool areEqual = loop.Equals(null); @@ -149,10 +149,25 @@ Assert.IsFalse(areEqual); } - private static SoilLayer2DLoop CreateValidLoop() + [Test] + [TestCaseSource(nameof(LoopCombinations))] + public void Equals_DifferentScenarios_ReturnsExpectedResult(SoilLayer2DLoop loop, + SoilLayer2DLoop otherLoop, + bool expectedEqual) { + // Call + bool areEqualOne = loop.Equals(otherLoop); + bool areEqualTwo = otherLoop.Equals(loop); + + // Assert + Assert.AreEqual(expectedEqual, areEqualOne); + Assert.AreEqual(expectedEqual, areEqualTwo); + } + + private static SoilLayer2DLoop CreateValidLoop(double x) + { var pointA = new Point2D(0.0, 0.0); - var pointB = new Point2D(1.0, 0.0); + var pointB = new Point2D(x, 0.0); var segments = new[] { @@ -162,5 +177,28 @@ return new SoilLayer2DLoop(segments); } + + private static TestCaseData[] LoopCombinations() + { + SoilLayer2DLoop loopA = CreateValidLoop(1.0); + SoilLayer2DLoop loopB = CreateValidLoop(1.0); + SoilLayer2DLoop loopC = CreateValidLoop(2.0); + + return new[] + { + new TestCaseData(loopA, loopA, true) + { + TestName = "Equals_LoopALoopA_True" + }, + new TestCaseData(loopA, loopB, true) + { + TestName = "Equals_LoopALoopB_True" + }, + new TestCaseData(loopA, loopC, false) + { + TestName = "Equals_LoopALoopC_False" + } + }; + } } } \ No newline at end of file