package com.revolsys.geometry.test.editor;
import org.junit.Assert;
import org.junit.Test;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.geometry.model.Polygon;
import com.revolsys.geometry.model.editor.PolygonEditor;
public class PolygonEditorTest {
private static final GeometryFactory WGS84_2D = GeometryFactory.wgs84().convertAxisCount(2);
private static final Polygon POLYGON = WGS84_2D.polygon(
WGS84_2D.linearRing(2, 0.0, 0.0, 0, 10, 10, 10, 10, 0, 0, 0), //
WGS84_2D.linearRing(2, 2.0, 2.0, 2, 8, 8, 8, 8, 2, 2, 2));
@Test
public void testNotModified() {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor();
polygonEditor.setZ(13);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertSame(polygon, newPolygon);
}
@Test
public void testSetCoordinates() {
for (int i = 0; i < 4; i++) {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor(4);
final double newValue = POLYGON.getCoordinate(1, 1, i);
polygonEditor.setCoordinate(1, 1, i, newValue);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertNotSame(polygon, newPolygon);
Assert.assertEquals(newValue, newPolygon.getCoordinate(1, 1, i), 0.0);
}
}
@Test
public void testSetM() {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor(4);
polygonEditor.setM(1, 1, 10);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertNotSame(polygon, newPolygon);
Assert.assertEquals(10.0, newPolygon.getM(1, 1), 0.0);
}
@Test
public void testSetX() {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor(3);
polygonEditor.setX(1, 1, 10);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertNotSame(polygon, newPolygon);
Assert.assertEquals(10.0, newPolygon.getX(1, 1), 0.0);
}
@Test
public void testSetY() {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor(3);
polygonEditor.setY(1, 1, 10);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertNotSame(polygon, newPolygon);
Assert.assertEquals(10.0, newPolygon.getY(1, 1), 0.0);
}
@Test
public void testSetZ() {
final Polygon polygon = POLYGON;
final PolygonEditor polygonEditor = polygon.newGeometryEditor(3);
polygonEditor.setZ(1, 1, 10);
final Polygon newPolygon = polygonEditor.newGeometry();
Assert.assertNotSame(polygon, newPolygon);
Assert.assertEquals(10.0, newPolygon.getZ(1, 1), 0.0);
}
}