예제 #1
0
        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]);
        }
예제 #2
0
        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());
        }