Exemple #1
0
        public void Write_works_when_LineString_with_M_one_NaN()
        {
            var points = new PackedDoubleCoordinateSequence(
                coords: new double[]
            {
                0, 0, 0, Coordinate.NullOrdinate,
                0, 1, 0, 1
            },
                dimensions: 4);
            var lineString = new LineString(points, Geometry.DefaultFactory);

            Assert.Equal(
                "000000000117000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F8FF000000000000F03F",
                Write(lineString));
        }
        public void Write_works_when_LineString_with_Ms()
        {
            var points = new PackedDoubleCoordinateSequence(
                coords: new double[]
            {
                0, 0, 0, 1,
                0, 1, 0, 2
            },
                dimension: 4,
                measures: 1);
            var lineString = new LineString(points, Geometry.DefaultFactory);

            Assert.Equal(
                "000000000117000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000F03F0000000000000040",
                Write(lineString));
        }
        public void TestReleaseCoordinateArrayForDouble()
        {
            double[] rawData = { 1, 2, 3, 4 };
            var      seq     = new PackedDoubleCoordinateSequence(rawData, 2, 0);

            rawData = seq.GetRawCoordinates();

            var originalCoords = seq.ToCoordinateArray();

            Assert.That(originalCoords, Is.EqualTo(new[] { new Coordinate(1, 2), new Coordinate(3, 4) }));

            Array.Reverse(rawData);
            seq.ReleaseCoordinateArray();
            var modifiedCoords = seq.ToCoordinateArray();

            Assert.That(modifiedCoords, Is.EqualTo(new[] { new Coordinate(4, 3), new Coordinate(2, 1) }));

            // ensure that this test doesn't "accidentally" pass just because GC happens to run.
            GC.KeepAlive(originalCoords);
        }