/* * Copyright (c) 2016 Vivid Solutions. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Eclipse Distribution License v. 1.0 which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * * http://www.eclipse.org/org/documents/edl-v10.php. */ package org.locationtech.jts.algorithm; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import java.util.List; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Point; import org.locationtech.jts.io.ParseException; import org.locationtech.jts.io.WKTFileReader; import org.locationtech.jts.io.WKTReader; import org.locationtech.jts.util.Stopwatch; import junit.framework.TestCase; import junit.textui.TestRunner; import test.jts.TestFiles; public class InteriorPointTest extends TestCase { public static void main(String args[]) { TestRunner.run(InteriorPointTest.class); } WKTReader rdr = new WKTReader(); public InteriorPointTest(String name) { super(name); } public void testAll() throws Exception { checkInteriorPointFile(TestFiles.getResourceFilePath("world.wkt")); checkInteriorPointFile(TestFiles.getResourceFilePath("africa.wkt")); //checkInteriorPointFile("../../../../../data/africa.wkt"); } void checkInteriorPointFile(String file) throws Exception { WKTFileReader fileRdr = new WKTFileReader(new FileReader(file), rdr); checkInteriorPointFile(fileRdr); } void checkInteriorPointResource(String resource) throws Exception { InputStream is = this.getClass().getResourceAsStream(resource); WKTFileReader fileRdr = new WKTFileReader(new InputStreamReader(is), rdr); checkInteriorPointFile(fileRdr); } private void checkInteriorPointFile(WKTFileReader fileRdr) throws IOException, ParseException { List polys = fileRdr.read(); checkInteriorPoint(polys); } void checkInteriorPoint(List geoms) { Stopwatch sw = new Stopwatch(); for (Iterator i = geoms.iterator(); i.hasNext();) { Geometry g = (Geometry) i.next(); checkInteriorPoint(g); System.out.print("."); } //System.out.println(); //System.out.println(" " + sw.getTimeString()); } private void checkInteriorPoint(Geometry g) { Point ip = g.getInteriorPoint(); assertTrue(g.contains(ip)); } }