/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2011, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.process.geometry; import static org.junit.Assert.*; import org.geotools.process.geometry.GeometryFunctions; import org.junit.Test; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.io.WKTReader; /** * @author mdavis * */ public class GeometryFunctionsTest { static WKTReader wktRdr = new WKTReader(); @Test public void testPolygonize() throws Exception { Geometry lines = wktRdr.read("MULTILINESTRING ((100 100, 200 100), (200 100, 300 100), (100 100, 100 200, 200 200), (200 100, 200 200), (200 200, 300 200, 300 100))"); Geometry output = GeometryFunctions.polygonize(lines); Geometry expectedOutput = wktRdr.read("GEOMETRYCOLLECTION (POLYGON ((200 100, 100 100, 100 200, 200 200, 200 100)), POLYGON ((200 100, 200 200, 300 200, 300 100, 200 100)))"); assertTrue(output.norm().equalsExact(expectedOutput.norm())); } @Test public void testSplitPolygon() throws Exception { Geometry poly = wktRdr.read("POLYGON ((100 100, 200 200, 200 100, 100 100))"); LineString line = (LineString) wktRdr.read("LINESTRING (150 200, 150 50)"); Geometry output = GeometryFunctions.splitPolygon(poly, line); Geometry expectedOutput = wktRdr.read("GEOMETRYCOLLECTION (POLYGON ((150 100, 100 100, 150 150, 150 100)), POLYGON ((150 150, 200 200, 200 100, 150 100, 150 150)))"); assertTrue(output.norm().equalsExact(expectedOutput.norm())); } }