### Question:
GeographicUtilities { public static List<ScreenPosition> toScreenPositions(List<? extends GeographicPosition> positions, ScreenBoundingBox screenBounds) { List<ScreenPosition> screenPositions = New.list(); for (GeographicPosition geoPos : positions) { int x = (int)(screenBounds.getWidth() * (geoPos.getLatLonAlt().getLonD() + 180) / 360); int y = (int)(screenBounds.getHeight() * (geoPos.getLatLonAlt().getLatD() + 90) / 180); screenPositions .add(new ScreenPosition(screenBounds.getUpperLeft().getX() + x, screenBounds.getLowerRight().getY() - y)); } return screenPositions; } private  GeographicUtilities(); static Map<List<LatLonAlt>, Collection<List<LatLonAlt>>> decomposePositionsToPolygons(List<LatLonAlt> rings); static PolygonWinding getNaturalWinding(List<LatLonAlt> vertices); static List<ScreenPosition> toScreenPositions(List<? extends GeographicPosition> positions,
            ScreenBoundingBox screenBounds);  }### Answer:
@Test public void testToScreenPositions() { List<GeographicPosition> geoPositions = New.list(new GeographicPosition(LatLonAlt.createFromDegrees(90, -180)), new GeographicPosition(LatLonAlt.createFromDegrees(-90, -180)), new GeographicPosition(LatLonAlt.createFromDegrees(90, 180)), new GeographicPosition(LatLonAlt.createFromDegrees(-90, 180)), new GeographicPosition(LatLonAlt.createFromDegrees(0, 0)), new GeographicPosition(LatLonAlt.createFromDegrees(45, -90)), new GeographicPosition(LatLonAlt.createFromDegrees(-45, -90)), new GeographicPosition(LatLonAlt.createFromDegrees(45, 90)), new GeographicPosition(LatLonAlt.createFromDegrees(-45, 90))); ScreenBoundingBox screenBounds = new ScreenBoundingBox(new ScreenPosition(0, 0), new ScreenPosition(300, 150)); List<ScreenPosition> positions = GeographicUtilities.toScreenPositions(geoPositions, screenBounds); Assert.assertEquals(9, positions.size()); Assert.assertEquals(0d, positions.get(0).getX(), 0d); Assert.assertEquals(0d, positions.get(0).getY(), 0d); Assert.assertEquals(0d, positions.get(1).getX(), 0d); Assert.assertEquals(150d, positions.get(1).getY(), 0d); Assert.assertEquals(300d, positions.get(2).getX(), 0d); Assert.assertEquals(0d, positions.get(2).getY(), 0d); Assert.assertEquals(300d, positions.get(3).getX(), 0d); Assert.assertEquals(150d, positions.get(3).getY(), 0d); Assert.assertEquals(150d, positions.get(4).getX(), 0d); Assert.assertEquals(75d, positions.get(4).getY(), 0d); Assert.assertEquals(75d, positions.get(5).getX(), 0d); Assert.assertEquals(38d, positions.get(5).getY(), 0d); Assert.assertEquals(75d, positions.get(6).getX(), 0d); Assert.assertEquals(113d, positions.get(6).getY(), 0d); Assert.assertEquals(225d, positions.get(7).getX(), 0d); Assert.assertEquals(38d, positions.get(7).getY(), 0d); Assert.assertEquals(225d, positions.get(8).getX(), 0d); Assert.assertEquals(113d, positions.get(8).getY(), 0d); }