new Coordinate(-5, 5), new Coordinate(-5, -5) });
Polygon polygon = factory.createPolygon(shell, new LinearRing[] { hole });
MultiPolygon mp = factory.createMultiPolygon(new Polygon[] { polygon });
// World to screen:
Geometry result = viewPort.transform(mp, RenderSpace.WORLD, RenderSpace.SCREEN);
Coordinate c = result.getGeometryN(0).getGeometryN(0).getCoordinates()[0];
Assert.assertEquals((MAP_WIDTH / 2) - (viewPort.getScale() * 10), c.getX(), DELTA);
Assert.assertEquals((MAP_HEIGHT / 2) + (viewPort.getScale() * 10), c.getY(), DELTA);
c = result.getGeometryN(0).getGeometryN(0).getCoordinates()[1];
Assert.assertEquals((MAP_WIDTH / 2) + (viewPort.getScale() * 10), c.getX(), DELTA);
Assert.assertEquals((MAP_HEIGHT / 2), c.getY(), DELTA);
c = ((Polygon) result.getGeometryN(0)).getInteriorRingN(0).getCoordinates()[2];
Assert.assertEquals((MAP_WIDTH / 2) - (viewPort.getScale() * 5), c.getX(), DELTA);
Assert.assertEquals((MAP_HEIGHT / 2) - (viewPort.getScale() * 5), c.getY(), DELTA);
// Screen to world:
result = viewPort.transform(result, RenderSpace.SCREEN, RenderSpace.WORLD);
c = result.getGeometryN(0).getGeometryN(0).getCoordinates()[0];
Assert.assertEquals(-10.0, c.getX(), DELTA);
Assert.assertEquals(-10.0, c.getY(), DELTA);
c = result.getGeometryN(0).getGeometryN(0).getCoordinates()[1];
Assert.assertEquals(10, c.getX(), DELTA);
Assert.assertEquals(0, c.getY(), DELTA);
c = ((Polygon) result.getGeometryN(0)).getInteriorRingN(0).getCoordinates()[2];
Assert.assertEquals(-5.0, c.getX(), DELTA);
Assert.assertEquals(5.0, c.getY(), DELTA);
}