public void ToGeometryPolygonReturnsExpectedResult()
        {
            _fixture.CustomizePolygon();
            var input  = _fixture.Create <Polygon>();
            var result = GeometryTranslator.ToGeometryPolygon(input);

            Assert.NotNull(result.ExteriorRing);
            Assert.Equal(input.NumberOfParts - 1, result.Holes.Length);
            Assert.Equal(input.NumberOfPoints, result.NumPoints);
            Assert.Equal(input.Points,
                         Enumerable
                         .Range(0, result.Shell.NumPoints)
                         .Select(index => new Point(result.Shell.GetPointN(index).X, result.Shell.GetPointN(index).Y))
                         .Concat(
                             result
                             .Holes
                             .SelectMany(hole =>
                                         Enumerable
                                         .Range(0, hole.NumPoints)
                                         .Select(index => new Point(hole.GetPointN(index).X, hole.GetPointN(index).Y))
                                         )
                             )
                         .ToArray()
                         );
        }
 public void ToGeometryPolygonCanNotBeNull()
 {
     Assert.Throws <ArgumentNullException>(
         () => GeometryTranslator.ToGeometryPolygon(null));
 }