Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs =================================================================== diff -u -r4000 -r4052 --- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs (.../GeometryDataTests.cs) (revision 4000) +++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs (.../GeometryDataTests.cs) (revision 4052) @@ -23,288 +23,287 @@ using Deltares.DamEngine.Data.Geometry; using NUnit.Framework; -namespace Deltares.DamEngine.Data.Tests.General +namespace Deltares.DamEngine.Data.Tests.General; + +[TestFixture] +public class GeometryDataTests { - [TestFixture] - public class GeometryDataTests + [Test] + public void TestRemoveDoublesFromNewlyEffectedPointsAndCurves() { - [Test] - public void TestRemoveDoublesFromNewlyEffectedPointsAndCurves() - { - var point1 = new Point2D(1, 0); // to be kept - var point2 = new Point2D(1, 0); // to be removed as == p1 - var point3 = new Point2D(5, 0); // to be kept - var point4 = new Point2D(5, 0); // to be removed as == p3 - var point5 = new Point2D(1, 0); // to be removed as == p1 - var point6 = new Point2D(5, 0); // to be removed as == p3 + var point1 = new Point2D(1, 0); // to be kept + var point2 = new Point2D(1, 0); // to be removed as == p1 + var point3 = new Point2D(5, 0); // to be kept + var point4 = new Point2D(5, 0); // to be removed as == p3 + var point5 = new Point2D(1, 0); // to be removed as == p1 + var point6 = new Point2D(5, 0); // to be removed as == p3 - var curve1 = new GeometryCurve(point1, point2); // to be removed as no lenght - var curve2 = new GeometryCurve(point2, point3); // to be kept - var curve3 = new GeometryCurve(point1, point2); // to be removed as no lenght - var curve4 = new GeometryCurve(point4, point1); // to be removed as == c2 (in reverse order) - var curve5 = new GeometryCurve(point3, point5); // to be removed as == c2 (in reverse order) - var curve6 = new GeometryCurve(point1, point1); // to be removed as no lenght - var curve7 = new GeometryCurve(point1, point1); // to be removed as no lenght - var curve8 = new GeometryCurve(null, null); // to be removed as no points - var curve9 = new GeometryCurve(null, point2); // to be removed as no headpoint - var curve10 = new GeometryCurve(point3, null); // to be removed as no endpoint + var curve1 = new GeometryCurve(point1, point2); // to be removed as no lenght + var curve2 = new GeometryCurve(point2, point3); // to be kept + var curve3 = new GeometryCurve(point1, point2); // to be removed as no lenght + var curve4 = new GeometryCurve(point4, point1); // to be removed as == c2 (in reverse order) + var curve5 = new GeometryCurve(point3, point5); // to be removed as == c2 (in reverse order) + var curve6 = new GeometryCurve(point1, point1); // to be removed as no lenght + var curve7 = new GeometryCurve(point1, point1); // to be removed as no lenght + var curve8 = new GeometryCurve(null, null); // to be removed as no points + var curve9 = new GeometryCurve(null, point2); // to be removed as no headpoint + var curve10 = new GeometryCurve(point3, null); // to be removed as no endpoint - var geometrymodel = new GeometryData(); - geometrymodel.NewlyEffectedPoints.Add(point1); - geometrymodel.NewlyEffectedPoints.Add(point2); - geometrymodel.NewlyEffectedPoints.Add(point3); - geometrymodel.NewlyEffectedPoints.Add(point4); - geometrymodel.NewlyEffectedPoints.Add(point5); - geometrymodel.NewlyEffectedPoints.Add(point6); + var geometrymodel = new GeometryData(); + geometrymodel.NewlyEffectedPoints.Add(point1); + geometrymodel.NewlyEffectedPoints.Add(point2); + geometrymodel.NewlyEffectedPoints.Add(point3); + geometrymodel.NewlyEffectedPoints.Add(point4); + geometrymodel.NewlyEffectedPoints.Add(point5); + geometrymodel.NewlyEffectedPoints.Add(point6); - geometrymodel.NewlyEffectedCurves.Add(curve1); - geometrymodel.NewlyEffectedCurves.Add(curve2); - geometrymodel.NewlyEffectedCurves.Add(curve3); - geometrymodel.NewlyEffectedCurves.Add(curve4); - geometrymodel.NewlyEffectedCurves.Add(curve5); - geometrymodel.NewlyEffectedCurves.Add(curve6); - geometrymodel.NewlyEffectedCurves.Add(curve7); - geometrymodel.NewlyEffectedCurves.Add(curve8); - geometrymodel.NewlyEffectedCurves.Add(curve9); - geometrymodel.NewlyEffectedCurves.Add(curve10); + geometrymodel.NewlyEffectedCurves.Add(curve1); + geometrymodel.NewlyEffectedCurves.Add(curve2); + geometrymodel.NewlyEffectedCurves.Add(curve3); + geometrymodel.NewlyEffectedCurves.Add(curve4); + geometrymodel.NewlyEffectedCurves.Add(curve5); + geometrymodel.NewlyEffectedCurves.Add(curve6); + geometrymodel.NewlyEffectedCurves.Add(curve7); + geometrymodel.NewlyEffectedCurves.Add(curve8); + geometrymodel.NewlyEffectedCurves.Add(curve9); + geometrymodel.NewlyEffectedCurves.Add(curve10); - geometrymodel.RemoveDoublesFromNewlyEffectedPointsAndCurves(); + geometrymodel.RemoveDoublesFromNewlyEffectedPointsAndCurves(); - // only two points are unique by location - Assert.AreEqual(2, geometrymodel.NewlyEffectedPoints.Count); - // only two curves hold both head and endpoint with unique locations - Assert.AreEqual(1, geometrymodel.NewlyEffectedCurves.Count); - } + // only two points are unique by location + Assert.AreEqual(2, geometrymodel.NewlyEffectedPoints.Count); + // only two curves hold both head and endpoint with unique locations + Assert.AreEqual(1, geometrymodel.NewlyEffectedCurves.Count); + } - [Test] - public void GeometryHelperTestSurfaceTwoVertLayers() - { - GeometryData gData = CreateGeometrySurface2(); - GeometryPointString line = gData.SurfaceLine; - Assert.AreEqual(3, line.Points.Count); - Assert.AreEqual(1.0, line.Points.OrderBy(p => p.X).First().X); - Assert.AreEqual(10.0, line.Points.OrderByDescending(p => p.X).First().X); - } + [Test] + public void GeometryHelperTestSurfaceTwoVertLayers() + { + GeometryData gData = CreateGeometrySurface2(); + GeometryPointString line = gData.SurfaceLine; + Assert.AreEqual(3, line.Points.Count); + Assert.AreEqual(1.0, line.Points.OrderBy(p => p.X).First().X); + Assert.AreEqual(10.0, line.Points.OrderByDescending(p => p.X).First().X); + } - [Test] - public void GeometryDataTestSurfaceTwoHorLayers() - { - GeometryData gData = CreateGeometrySurface(); - GeometryPointString line = gData.SurfaceLine; - Assert.AreEqual(2, line.CalcPoints.Count); - Assert.AreEqual(1.0, line.CalcPoints.OrderBy(p => p.X).First().X); - Assert.AreEqual(10.0, line.CalcPoints.OrderByDescending(p => p.X).First().X); - } + [Test] + public void GeometryDataTestSurfaceTwoHorLayers() + { + GeometryData gData = CreateGeometrySurface(); + GeometryPointString line = gData.SurfaceLine; + Assert.AreEqual(2, line.CalcPoints.Count); + Assert.AreEqual(1.0, line.CalcPoints.OrderBy(p => p.X).First().X); + Assert.AreEqual(10.0, line.CalcPoints.OrderByDescending(p => p.X).First().X); + } - [Test] - public void TestSimpleGeneration() + [Test] + public void TestSimpleGeneration() + { + var geom = new GeometryData { - var geom = new GeometryData - { - Left = 0, - Bottom = 0, - Right = 100 - }; - var p1 = new Point2D(0, 5); - geom.NewlyEffectedPoints.Add(p1); - var p2 = new Point2D(100, 5); - geom.NewlyEffectedPoints.Add(p2); - var p3 = new Point2D(0, 0); - geom.NewlyEffectedPoints.Add(p3); - var p4 = new Point2D(100, 0); - geom.NewlyEffectedPoints.Add(p4); - geom.NewlyEffectedCurves.Add(new GeometryCurve(p1, p2)); - geom.NewlyEffectedCurves.Add(new GeometryCurve(p3, p4)); - geom.NewlyEffectedCurves.Add(new GeometryCurve(p1, p3)); - geom.NewlyEffectedCurves.Add(new GeometryCurve(p2, p4)); - geom.RegenerateGeometry(); + Left = 0, + Bottom = 0, + Right = 100 + }; + var p1 = new Point2D(0, 5); + geom.NewlyEffectedPoints.Add(p1); + var p2 = new Point2D(100, 5); + geom.NewlyEffectedPoints.Add(p2); + var p3 = new Point2D(0, 0); + geom.NewlyEffectedPoints.Add(p3); + var p4 = new Point2D(100, 0); + geom.NewlyEffectedPoints.Add(p4); + geom.NewlyEffectedCurves.Add(new GeometryCurve(p1, p2)); + geom.NewlyEffectedCurves.Add(new GeometryCurve(p3, p4)); + geom.NewlyEffectedCurves.Add(new GeometryCurve(p1, p3)); + geom.NewlyEffectedCurves.Add(new GeometryCurve(p2, p4)); + geom.RegenerateGeometry(); - Assert.AreEqual(4, geom.Points.Count); - Assert.AreEqual(4, geom.Curves.Count); - Assert.AreEqual(1, geom.Surfaces.Count); - Assert.AreEqual(0, geom.Surfaces[0].InnerLoops.Count); - Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.Count); - Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.CurveList.Count); - Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.Points.Count); - Assert.IsTrue(geom.Surfaces[0].OuterLoop.HasArea()); - Assert.IsTrue(geom.Surfaces[0].OuterLoop.IsLoop()); - Assert.IsTrue(geom.Surfaces[0].OuterLoop.IsPointInLoopArea(new Point2D(25, 3))); - Assert.IsFalse(geom.Surfaces[0].OuterLoop.IsPointInLoopArea(new Point2D(25, 5.1))); - } + Assert.AreEqual(4, geom.Points.Count); + Assert.AreEqual(4, geom.Curves.Count); + Assert.AreEqual(1, geom.Surfaces.Count); + Assert.AreEqual(0, geom.Surfaces[0].InnerLoops.Count); + Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.Count); + Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.CurveList.Count); + Assert.AreEqual(4, geom.Surfaces[0].OuterLoop.Points.Count); + Assert.IsTrue(geom.Surfaces[0].OuterLoop.HasArea()); + Assert.IsTrue(geom.Surfaces[0].OuterLoop.IsLoop()); + Assert.IsTrue(geom.Surfaces[0].OuterLoop.IsPointInLoopArea(new Point2D(25, 3))); + Assert.IsFalse(geom.Surfaces[0].OuterLoop.IsPointInLoopArea(new Point2D(25, 5.1))); + } - private GeometryData CreateGeometrySurface() - { - var geometryModel = new GeometryData(); + private GeometryData CreateGeometrySurface() + { + var geometryModel = new GeometryData(); - /* The following model looks as follows - * - * |----------| - * | | - * |----------| - * | | - * |----------| - * - */ + /* The following model looks as follows + * + * |----------| + * | | + * |----------| + * | | + * |----------| + * + */ - var point1 = new Point2D(1, 0); - var point2 = new Point2D(10, 0); - var point3 = new Point2D(10, 10); - var point4 = new Point2D(1, 10); - var point5 = new Point2D(1, 5); - var point6 = new Point2D(10, 5); + var point1 = new Point2D(1, 0); + var point2 = new Point2D(10, 0); + var point3 = new Point2D(10, 10); + var point4 = new Point2D(1, 10); + var point5 = new Point2D(1, 5); + var point6 = new Point2D(10, 5); - var curve1 = new GeometryCurve(point1, point2); - var curve2 = new GeometryCurve(point2, point3); - var curve3 = new GeometryCurve(point3, point4); - var curve4 = new GeometryCurve(point4, point1); - var curve5 = new GeometryCurve(point5, point6); + var curve1 = new GeometryCurve(point1, point2); + var curve2 = new GeometryCurve(point2, point3); + var curve3 = new GeometryCurve(point3, point4); + var curve4 = new GeometryCurve(point4, point1); + var curve5 = new GeometryCurve(point5, point6); - geometryModel.Points.AddRange(new[] - { - point1, - point2, - point3, - point4, - point5, - point6 - }); - geometryModel.Curves.AddRange(new[] - { - curve1, - curve2, - curve3, - curve4, - curve5 - }); + geometryModel.Points.AddRange(new[] + { + point1, + point2, + point3, + point4, + point5, + point6 + }); + geometryModel.Curves.AddRange(new[] + { + curve1, + curve2, + curve3, + curve4, + curve5 + }); - geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); - geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); - geometryModel.RegenerateGeometry(); - return geometryModel; - } + geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); + geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); + geometryModel.RegenerateGeometry(); + return geometryModel; + } - private GeometryData CreateGeometrySurface2() - { - var geometryModel = new GeometryData(); + private GeometryData CreateGeometrySurface2() + { + var geometryModel = new GeometryData(); - /* The following model looks as follows - * - * |-----|----| - * | | | - * | | | - * | | | - * |-----|----| - * - */ + /* The following model looks as follows + * + * |-----|----| + * | | | + * | | | + * | | | + * |-----|----| + * + */ - var point1 = new Point2D(1, 0); - var point2 = new Point2D(1, 10); - var point3 = new Point2D(5, 10); - var point4 = new Point2D(5, 0); - var point5 = new Point2D(10, 10); - var point6 = new Point2D(10, 0); + var point1 = new Point2D(1, 0); + var point2 = new Point2D(1, 10); + var point3 = new Point2D(5, 10); + var point4 = new Point2D(5, 0); + var point5 = new Point2D(10, 10); + var point6 = new Point2D(10, 0); - var curve1 = new GeometryCurve(point1, point2); - var curve2 = new GeometryCurve(point2, point3); - var curve3 = new GeometryCurve(point3, point4); - var curve4 = new GeometryCurve(point4, point1); - var curve5 = new GeometryCurve(point3, point5); - var curve6 = new GeometryCurve(point5, point6); - var curve7 = new GeometryCurve(point6, point4); + var curve1 = new GeometryCurve(point1, point2); + var curve2 = new GeometryCurve(point2, point3); + var curve3 = new GeometryCurve(point3, point4); + var curve4 = new GeometryCurve(point4, point1); + var curve5 = new GeometryCurve(point3, point5); + var curve6 = new GeometryCurve(point5, point6); + var curve7 = new GeometryCurve(point6, point4); - geometryModel.Points.AddRange(new[] - { - point1, - point2, - point3, - point4, - point5, - point6 - }); - geometryModel.Curves.AddRange(new[] - { - curve1, - curve2, - curve3, - curve4, - curve5, - curve5, - curve6, - curve7 - }); + geometryModel.Points.AddRange(new[] + { + point1, + point2, + point3, + point4, + point5, + point6 + }); + geometryModel.Curves.AddRange(new[] + { + curve1, + curve2, + curve3, + curve4, + curve5, + curve5, + curve6, + curve7 + }); - geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); - geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); - geometryModel.RegenerateGeometry(); - return geometryModel; - } + geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); + geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); + geometryModel.RegenerateGeometry(); + return geometryModel; + } - private GeometryData CreateDonutGeometry() + private GeometryData CreateDonutGeometry() + { + var geometryModel = new GeometryData { - var geometryModel = new GeometryData - { - Left = -10, - Bottom = -10, - Right = 20 - }; + Left = -10, + Bottom = -10, + Right = 20 + }; - /* The following model looks as follows - * - * |----------| - * | ------ | - * | | | | - * | | | | - * | ------ | - * |----------| - * - */ + /* The following model looks as follows + * + * |----------| + * | ------ | + * | | | | + * | | | | + * | ------ | + * |----------| + * + */ - var point1 = new Point2D(0, 0); - var point2 = new Point2D(0, 10); - var point3 = new Point2D(10, 10); - var point4 = new Point2D(10, 0); - var point5 = new Point2D(3, 3); - var point6 = new Point2D(3, 7); - var point7 = new Point2D(7, 7); - var point8 = new Point2D(7, 3); + var point1 = new Point2D(0, 0); + var point2 = new Point2D(0, 10); + var point3 = new Point2D(10, 10); + var point4 = new Point2D(10, 0); + var point5 = new Point2D(3, 3); + var point6 = new Point2D(3, 7); + var point7 = new Point2D(7, 7); + var point8 = new Point2D(7, 3); - var curve1 = new GeometryCurve(point1, point2); - var curve2 = new GeometryCurve(point2, point3); - var curve3 = new GeometryCurve(point3, point4); - var curve4 = new GeometryCurve(point4, point1); - var curve5 = new GeometryCurve(point5, point6); - var curve6 = new GeometryCurve(point6, point7); - var curve7 = new GeometryCurve(point7, point8); - var curve8 = new GeometryCurve(point8, point5); + var curve1 = new GeometryCurve(point1, point2); + var curve2 = new GeometryCurve(point2, point3); + var curve3 = new GeometryCurve(point3, point4); + var curve4 = new GeometryCurve(point4, point1); + var curve5 = new GeometryCurve(point5, point6); + var curve6 = new GeometryCurve(point6, point7); + var curve7 = new GeometryCurve(point7, point8); + var curve8 = new GeometryCurve(point8, point5); - geometryModel.Points.AddRange(new[] - { - point1, - point2, - point3, - point4, - point5, - point6, - point7, - point8 - }); - geometryModel.Curves.AddRange(new[] - { - curve1, - curve2, - curve3, - curve4, - curve5, - curve5, - curve6, - curve7, - curve8 - }); + geometryModel.Points.AddRange(new[] + { + point1, + point2, + point3, + point4, + point5, + point6, + point7, + point8 + }); + geometryModel.Curves.AddRange(new[] + { + curve1, + curve2, + curve3, + curve4, + curve5, + curve5, + curve6, + curve7, + curve8 + }); - geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); - geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); - geometryModel.RegenerateGeometry(); - return geometryModel; - } + geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); + geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); + geometryModel.RegenerateGeometry(); + return geometryModel; } } \ No newline at end of file