Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DTests.cs
===================================================================
diff -u
--- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DTests.cs (revision 0)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/Geotechnics/SoilProfile2DTests.cs (revision 5066)
@@ -0,0 +1,74 @@
+// Copyright (C) Stichting Deltares 2024. All rights reserved.
+//
+// This file is part of the Dam Engine.
+//
+// The Dam Engine is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Collections.Generic;
+using System.Linq;
+using Deltares.DamEngine.Data.Geotechnics;
+using Deltares.DamEngine.TestHelpers.Factories;
+using KellermanSoftware.CompareNetObjects;
+using NUnit.Framework;
+
+namespace Deltares.DamEngine.Data.Tests.Geotechnics;
+
+[TestFixture]
+public class SoilProfile2DTests
+{
+ [Test]
+ public void GivenProfile2DWhenCloningThenClonedProfile2DEqualsOriginal()
+ {
+ // Given
+ SoilProfile2D soilProfile2D = FactoryForSoilProfiles.CreateSoilProfile2DWithThreeLayers();
+ soilProfile2D.Surfaces.Last().IsAquifer = true;
+ soilProfile2D.Surfaces.Last().WaterpressureInterpolationModel = WaterpressureInterpolationModel.Hydrostatic;
+ soilProfile2D.Name = "";
+ var preConsolidationStress = new PreConsolidationStress
+ {
+ Name = "Preconsolidation stress name"
+ };
+ soilProfile2D.PreconsolidationStresses.Add(preConsolidationStress);
+
+ // When
+ SoilProfile2D cloneSoilProfile2D = soilProfile2D.Clone();
+
+ // Then
+ CompareSoilProfile2D(soilProfile2D, cloneSoilProfile2D);
+ }
+
+ private void CompareSoilProfile2D(SoilProfile2D sourceSoilProfile2D, SoilProfile2D targetSoilProfile2D)
+ {
+ Assert.That(targetSoilProfile2D, Is.Not.SameAs(sourceSoilProfile2D));
+ var compare = new CompareLogic
+ {
+ Config =
+ {
+ MaxDifferences = 100
+ }
+ };
+ compare.Config.MembersToIgnore = new List
+ {
+ "Surfaces",
+ "Geometry",
+ "PreconsolidationStresses"
+ };
+ ComparisonResult result = compare.Compare(sourceSoilProfile2D, targetSoilProfile2D);
+ Assert.That(result.Differences.Count, Is.EqualTo(0), "Differences found read/write Input object");
+ }
+}
\ No newline at end of file