### Question:
GeographicUtilities { static List<LatLonAlt> removeDuplicates(List<? extends LatLonAlt> points) { List<LatLonAlt> list = New.list(points.size()); LatLonAlt lastPoint = null; for (LatLonAlt point : points) { if (!point.equals(lastPoint)) { list.add(point); lastPoint = point; } } return list; } 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 testRemoveDuplicates() { List<LatLonAlt> expected = New.list(LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(2, 2), LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(2, 2), LatLonAlt.createFromDegrees(1, 1)); List<LatLonAlt> input = New.list(LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(2, 2), LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(1, 1), LatLonAlt.createFromDegrees(2, 2), LatLonAlt.createFromDegrees(1, 1)); Assert.assertEquals(expected, GeographicUtilities.removeDuplicates(input)); }