/*
* 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 test.jts.perf.operation.buffer;
import java.util.Iterator;
import java.util.List;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.PrecisionModel;
import org.locationtech.jts.io.WKTFileReader;
import org.locationtech.jts.io.WKTReader;
import org.locationtech.jts.util.Stopwatch;
import test.jts.TestFiles;
public class FileBufferPerfTest
{
static final int MAX_ITER = 1;
static PrecisionModel pm = new PrecisionModel();
static GeometryFactory fact = new GeometryFactory(pm, 0);
static WKTReader wktRdr = new WKTReader(fact);
GeometryFactory factory = new GeometryFactory();
public static void main(String[] args) {
FileBufferPerfTest test = new FileBufferPerfTest();
try {
test.test();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
boolean testFailed = false;
public FileBufferPerfTest() {
}
public void test()
throws Exception
{
test(TestFiles.getResourceFilePath("africa.wkt"));
// test(TestFiles.getResourceFilePath("world.wkt"));
// test(TestFiles.getResourceFilePath("bc-250k.wkt"));
// test(TestFiles.getResourceFilePath("bc_20K.wkt"));
}
public void test(String filename)
throws Exception
{
WKTFileReader fileRdr = new WKTFileReader(filename, wktRdr);
List polys = fileRdr.read();
runAll(polys, 0.01);
runAll(polys, 0.1);
runAll(polys, 1.0);
runAll(polys, 10.0);
runAll(polys, 100.0);
runAll(polys, 1000.0);
}
void runAll(List polys, double distance)
{
System.out.println("Geom count = " + polys.size() + " distance = " + distance);
Stopwatch sw = new Stopwatch();
for (Iterator i = polys.iterator(); i.hasNext(); ) {
Geometry g = (Geometry) i.next();
g.buffer(distance);
System.out.print(".");
}
System.out.println();
System.out.println(" Time = " + sw.getTimeString());
}
}