public void GetGridValuesTest() { var vertices = new List <ICoordinate> { new Coordinate(0, 0), new Coordinate(100, 100) }; ILineString gridProfile = new LineString(vertices.ToArray()); IRegularGridCoverage regularGridCoverage = new RegularGridCoverage(2, 3, 100, 50) { Name = "pressure", }; regularGridCoverage.Components.Clear(); regularGridCoverage.Components.Add(new Variable <float>("pressure")); regularGridCoverage.SetValues(new[] { 1.1, 2.0, 3.0, 4.0, 5.0, 6.0 }); Function gridValues = RegularGridCoverageHelper.GetGridValues(regularGridCoverage, gridProfile); Assert.AreEqual(101, gridValues.Components[0].Values.Count); Assert.AreEqual(1.1f, (float)gridValues[0.0], 1e-3f); // We can not use the linestring's length directly due to rounding errors Assert.AreEqual((double)gridValues.Arguments[0].Values[gridValues.Components[0].Values.Count - 1], gridProfile.Length, 1e-6); double length = (double)gridValues.Arguments[0].Values[gridValues.Components[0].Values.Count - 1]; Assert.AreEqual(6.0, gridValues[length]); }
public void GetIntersectionCoordinatesEmptyGridProfileTest() { var vertices = new List <ICoordinate> { new Coordinate(0, 0), new Coordinate(0, 0) }; ILineString gridProfile = new LineString(vertices.ToArray()); var stepSize = gridProfile.Length / 100; IEnumerable <ICoordinate> intersection = RegularGridCoverageHelper.GetGridProfileCoordinates(gridProfile, stepSize); var stepCount = (gridProfile.Length / stepSize) + 1; Assert.AreEqual(stepCount, intersection.Count()); }