Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs =================================================================== diff -u -r5951 -r6112 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 5951) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 6112) @@ -161,4 +161,53 @@ validationResults = soilProfile2D.Geometry.ValidateGeometry(); Assert.That(validationResults, Has.Length.EqualTo(0)); } + + [Test] + public void WhenDataModelWithInnerLoopsIsCreated_ThenSoilProfile2DIsAsExpected() + { + const double shift = 0; + PersistableDataModel dataModel = PersistableDataModelFactory.CreateSimpleDataModelWithInnerLoops(); + SoilProfile2D soilProfile2D = new SoilProfile2DDataModel().Create(dataModel, 0); + + IList points = soilProfile2D.Geometry.Points; + Assert.That(points, Has.Count.EqualTo(16)); + Assert.Multiple(() => + { + Assert.That(points.ElementAt(0).LocationEquals(new GeometryPoint(10, 0, -5)), Is.True); + Assert.That(points.ElementAt(1).LocationEquals(new GeometryPoint(10, 0, 5)), Is.True); + Assert.That(points.ElementAt(2).LocationEquals(new GeometryPoint(60, 0, 5)), Is.True); + Assert.That(points.ElementAt(3).LocationEquals(new GeometryPoint(60, 0, -5)), Is.True); + Assert.That(points.ElementAt(4).LocationEquals(new GeometryPoint(20, 0, -4)), Is.True); + Assert.That(points.ElementAt(5).LocationEquals(new GeometryPoint(20, 0, 4)), Is.True); + Assert.That(points.ElementAt(6).LocationEquals(new GeometryPoint(30, 0, 4)), Is.True); + Assert.That(points.ElementAt(7).LocationEquals(new GeometryPoint(30, 0, -4)), Is.True); + Assert.That(points.ElementAt(8).LocationEquals(new GeometryPoint(40, 0, 4)), Is.True); + Assert.That(points.ElementAt(9).LocationEquals(new GeometryPoint(40, 0, -4)), Is.True); + Assert.That(points.ElementAt(10).LocationEquals(new GeometryPoint(50, 0, -4)), Is.True); + Assert.That(points.ElementAt(11).LocationEquals(new GeometryPoint(50, 0, 4)), Is.True); + Assert.That(points.ElementAt(12).LocationEquals(new GeometryPoint(21, 0, 3)), Is.True); + Assert.That(points.ElementAt(13).LocationEquals(new GeometryPoint(21, 0, -3)), Is.True); + Assert.That(points.ElementAt(14).LocationEquals(new GeometryPoint(29, 0, -3)), Is.True); + Assert.That(points.ElementAt(15).LocationEquals(new GeometryPoint(29, 0, 3)), Is.True); + }); + + Assert.That(soilProfile2D.Geometry.Surfaces, Has.Count.EqualTo(4)); + Assert.Multiple(() => + { + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(0).OuterLoop.CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(0).InnerLoops, Has.Count.EqualTo(2)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(1).OuterLoop.CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(1).InnerLoops, Has.Count.EqualTo(1)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(2).OuterLoop.CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(2).InnerLoops, Has.Count.EqualTo(0)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(3).OuterLoop.CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(3).InnerLoops, Has.Count.EqualTo(0)); + }); + Assert.Multiple(() => + { + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(0).InnerLoops.ElementAt(0).CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(0).InnerLoops.ElementAt(1).CurveList, Has.Count.EqualTo(4)); + Assert.That(soilProfile2D.Geometry.Surfaces.ElementAt(1).InnerLoops.ElementAt(0).CurveList, Has.Count.EqualTo(4)); + }); + } } \ No newline at end of file