package org.geotools.data.shapefile.shp; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LinearRing; import static org.junit.Assert.*; public class JTSUtilitiesTest { GeometryFactory geomFactory; @Before public void setUp() { geomFactory = new GeometryFactory(); } @After public void tearDown() { geomFactory = null; } @Test public void testReverseRing() { Coordinate[] coordinates = new Coordinate[] { new Coordinate(0, 0), new Coordinate(1, 1), new Coordinate(0, 2), new Coordinate(0, 0) }; LinearRing before = geomFactory.createLinearRing(coordinates); assertEquals(before.getCoordinateN(0), coordinates[0]); assertEquals(before.getCoordinateN(1), coordinates[1]); assertEquals(before.getCoordinateN(2), coordinates[2]); assertEquals(before.getCoordinateN(3), coordinates[3]); LinearRing after = JTSUtilities.reverseRing(before); // cannot use assertEquals since JTS has two equals and we need // to hit the .equals(Geometry) one instead of .equals(Object) one assertTrue( after.equals(before.reverse()) ); assertEquals(after.getCoordinateN(0), coordinates[3]); assertEquals(after.getCoordinateN(1), coordinates[2]); assertEquals(after.getCoordinateN(2), coordinates[1]); assertEquals(after.getCoordinateN(3), coordinates[0]); } }