package net.refractions.linecleaner.cleansing.test; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import net.refractions.linecleaner.cleansing.PerformCleansingAction; import org.geotools.data.FeatureSource; import org.geotools.data.FeatureStore; import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore; import org.geotools.data.shapefile.indexed.IndexedShapefileDataStoreFactory; import org.geotools.resources.TestData; import junit.framework.TestCase; public class CleansingTest extends TestCase { private IndexedShapefileDataStore ds; private String typeName; private FeatureSource source; protected void setUp() throws Exception { super.setUp(); long before = System.currentTimeMillis(); ds = getDataStore("ftenroads.shp"); // ds = getDataStore("4000features.shp"); // ds = getDataStore("smallset.shp"); // ds = getDataStore("new.shp"); // ds = getDataStore("newBigger.shp"); // ds = getDataStore("1092features.shp"); typeName = ds.getTypeNames()[0]; source = ds.getFeatureSource( typeName ); System.out.println(source.getFeatures().getCount()); long after = System.currentTimeMillis(); after = after-before; System.out.println("Startup time: " + after); } public void testCleansing() throws Exception { // PerformCleansingAction action = new PerformCleansingAction(this.ds, 3, 3, (2*3)^2); // PerformCleansingAction action = new PerformCleansingAction(this.ds, 10, 35, (2*35)^2); // PerformCleansingAction action = new PerformCleansingAction((FeatureStore) this.source, 10, -1, 25, 2500, 5); long before = System.currentTimeMillis(); action.run(null); long after = System.currentTimeMillis(); after = after - before; System.out.println("Total running time for cleansing: " + after); } public IndexedShapefileDataStore getDataStore(String filename) throws Exception { File shp = TestData.file( this, filename ); Map params=new HashMap(); params.put( IndexedShapefileDataStoreFactory.URLP.key, shp.toURL()); params.put( IndexedShapefileDataStoreFactory.CREATE_SPATIAL_INDEX.key, new Boolean(true)); params.put( IndexedShapefileDataStoreFactory.MEMORY_MAPPED.key, new Boolean(false)); // params.put( IndexedShapefileDataStoreFactory.SPATIAL_INDEX_TYPE.key, IndexedShapefileDataStoreFactory.TREE_GRX); params.put( IndexedShapefileDataStoreFactory.SPATIAL_INDEX_TYPE.key, IndexedShapefileDataStoreFactory.TREE_QIX); Logger.getLogger("org.geotools.data").setLevel(Level.WARNING); IndexedShapefileDataStoreFactory fac=new IndexedShapefileDataStoreFactory(); return (IndexedShapefileDataStore) fac.createDataStore(params); } }