Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r4690 -r5090
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 4690)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 5090)
@@ -22,12 +22,14 @@
using System.Collections.Generic;
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.Geotechnics;
using Deltares.DamEngine.Io;
using Deltares.DamEngine.Io.XmlInput;
using Deltares.DamEngine.TestHelpers.Factories;
using KellermanSoftware.CompareNetObjects;
using NUnit.Framework;
using Location = Deltares.DamEngine.Data.General.Location;
+using SoilProfile2D = Deltares.DamEngine.Io.XmlInput.SoilProfile2D;
namespace Deltares.DamEngine.Interface.Tests;
@@ -140,6 +142,74 @@
CompareDamProjectData(actualDamProjectData, expectedDamProjectData);
}
+ [Test]
+ public void GivenSoilLayer2DFromXml_WhenTransferredToDamObject_ThenOuterLoopIsClosed()
+ {
+ // Setup
+ var inputSoilProfile2D = new SoilProfile2D
+ {
+ Layers2D = new SoilProfile2DLayer2D[1]
+ };
+ inputSoilProfile2D.Layers2D[0] = new SoilProfile2DLayer2D
+ {
+ Surface = new SoilProfile2DLayer2DSurface
+ {
+ OuterLoop = new SoilProfile2DLayer2DSurfaceOuterPoint[4]
+ }
+ };
+ inputSoilProfile2D.Layers2D[0].Surface.OuterLoop[0] = new SoilProfile2DLayer2DSurfaceOuterPoint
+ {
+ X = 0,
+ Z = 0
+ };
+ inputSoilProfile2D.Layers2D[0].Surface.OuterLoop[1] = new SoilProfile2DLayer2DSurfaceOuterPoint
+ {
+ X = 10,
+ Z = 0
+ };
+ inputSoilProfile2D.Layers2D[0].Surface.OuterLoop[2] = new SoilProfile2DLayer2DSurfaceOuterPoint
+ {
+ X = 10,
+ Z = -5
+ };
+ inputSoilProfile2D.Layers2D[0].Surface.OuterLoop[3] = new SoilProfile2DLayer2DSurfaceOuterPoint
+ {
+ X = 0,
+ Z = -5
+ };
+
+ // Call
+ var soilProfile2D = new Data.Geotechnics.SoilProfile2D();
+ FillDamFromXmlInput.AddLayers2D(inputSoilProfile2D, soilProfile2D, new SoilList());
+
+ // Assert
+ Assert.Multiple(() =>
+ {
+ Assert.That(soilProfile2D.Geometry.Surfaces, Has.Count.EqualTo(1));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList, Has.Count.EqualTo(4));
+
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[0].HeadPoint.X, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[0].HeadPoint.Z, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[0].EndPoint.X, Is.EqualTo(10));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[0].EndPoint.Z, Is.EqualTo(0));
+
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[1].HeadPoint.X, Is.EqualTo(10));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[1].HeadPoint.Z, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[1].EndPoint.X, Is.EqualTo(10));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[1].EndPoint.Z, Is.EqualTo(-5));
+
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[2].HeadPoint.X, Is.EqualTo(10));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[2].HeadPoint.Z, Is.EqualTo(-5));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[2].EndPoint.X, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[2].EndPoint.Z, Is.EqualTo(-5));
+
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[3].HeadPoint.X, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[3].HeadPoint.Z, Is.EqualTo(-5));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[3].EndPoint.X, Is.EqualTo(0));
+ Assert.That(soilProfile2D.Geometry.Surfaces[0].OuterLoop.CurveList[3].EndPoint.Z, Is.EqualTo(0));
+ });
+ }
+
private void CompareDamProjectData(DamProjectData actual, DamProjectData expected)
{
Assert.That(DamProjectCalculationSpecification.SelectedAnalysisType, Is.EqualTo(FactoryForDamProjectData.ExpectedAnalysisType));
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r5013 -r5090
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 5013)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 5090)
@@ -831,7 +831,7 @@
}
}
- private static void AddLayers2D(Io.XmlInput.SoilProfile2D inputSoilProfile2D, SoilProfile2D soilProfile2D, SoilList soils)
+ internal static void AddLayers2D(Io.XmlInput.SoilProfile2D inputSoilProfile2D, SoilProfile2D soilProfile2D, SoilList soils)
{
if (inputSoilProfile2D != null)
{
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj
===================================================================
diff -u -r4796 -r5090
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj (.../Deltares.DamEngine.Interface.csproj) (revision 4796)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/Deltares.DamEngine.Interface.csproj (.../Deltares.DamEngine.Interface.csproj) (revision 5090)
@@ -4,6 +4,11 @@
+
+ <_Parameter1>Deltares.DamEngine.Interface.Tests
+
+
+