public void FromGeometryMultiLineStringReturnsExpectedResult() { _fixture.CustomizeGeometryMultiLineString(); var input = _fixture.Create <NetTopologySuite.Geometries.MultiLineString>(); var result = GeometryTranslator.FromGeometryMultiLineString(input); var lines = new List <NetTopologySuite.Geometries.LineString>(input.Geometries.Cast <NetTopologySuite.Geometries.LineString>()); Assert.Equal(new BoundingBox2D( lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => new Point(line.GetPointN(index).X, line.GetPointN(index).Y))).Min(point => point.X), lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => new Point(line.GetPointN(index).X, line.GetPointN(index).Y))).Min(point => point.Y), lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => new Point(line.GetPointN(index).X, line.GetPointN(index).Y))).Max(point => point.X), lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => new Point(line.GetPointN(index).X, line.GetPointN(index).Y))).Max(point => point.Y) ), result.BoundingBox); Assert.Equal(lines.Count, result.NumberOfParts); Assert.Equal(lines.Sum(line => line.NumPoints), result.NumberOfPoints); var offset = 0; Assert.Equal( lines.Select(line => { var part = offset; offset += line.NumPoints; return(part); }).ToArray(), result.Parts); Assert.Equal( lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => new Point(line.GetPointN(index).X, line.GetPointN(index).Y))).ToArray(), result.Points); Assert.Equal(new MeasureRange( lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => line.CoordinateSequence.GetOrdinate(index, NetTopologySuite.Geometries.Ordinate.M))).Min(), lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => line.CoordinateSequence.GetOrdinate(index, NetTopologySuite.Geometries.Ordinate.M))).Max() ), result.MeasureRange); Assert.Equal( lines.SelectMany(line => Enumerable.Range(0, line.NumPoints).Select(index => line.CoordinateSequence.GetOrdinate(index, NetTopologySuite.Geometries.Ordinate.M))), result.Measures); }
public void FromGeometryMultiLineStringCanNotBeNull() { Assert.Throws <ArgumentNullException>( () => GeometryTranslator.FromGeometryMultiLineString(null)); }