Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs =================================================================== diff -u -r4627 -r4897 --- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs (.../GeometryDataTests.cs) (revision 4627) +++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/GeometryDataTests.cs (.../GeometryDataTests.cs) (revision 4897) @@ -132,6 +132,42 @@ Assert.That(geom.Surfaces[0].OuterLoop.IsPointInLoopArea(new Point2D(25, 5.1)), Is.False); } + [Test] + [TestCase(1, 0, true)] + [TestCase(10, 0, true)] + [TestCase(10, 10, true)] + [TestCase(1, 10, true)] + [TestCase(1, 1, false)] + [TestCase(0, 1, false)] + public void GivenPointsWhenGetPointAtLocationCalledThenCorrectPointIsReturned(double x, double z, bool isPresent) + { + const double tolerance = 1e-6; + var geometryModel = new GeometryData(); + var point1 = new Point2D(1, 0); + var point2 = new Point2D(10, 0); + var point3 = new Point2D(10, 10); + var point4 = new Point2D(1, 10); + geometryModel.Points.AddRange(new[] + { + point1, + point2, + point3, + point4 + }); + + Point2D point = geometryModel.GetPointAtLocation(new Point2D(x, z), tolerance); + if (isPresent) + { + Assert.That(point, Is.Not.Null); + Assert.That(point.X, Is.EqualTo(x).Within(tolerance)); + Assert.That(point.Z, Is.EqualTo(z).Within(tolerance)); + } + else + { + Assert.That(point, Is.Null); + } + } + private GeometryData CreateGeometrySurface() { var geometryModel = new GeometryData();