/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2004-2008, 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.validation.relate; import junit.framework.TestCase; import org.geotools.data.DataUtilities; import org.geotools.data.memory.MemoryDataStore; import org.geotools.feature.simple.SimpleFeatureBuilder; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.validation.ValidationResults; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.filter.Filter; import org.opengis.filter.FilterFactory; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; /** * SpatialTestCase<br> * @author bowens<br> * Created Apr 29, 2004<br> * * @source $URL$ * @version <br> * * <b>Puropse:</b><br> * <p> * DOCUMENT ME!! * </p> * * <b>Description:</b><br> * <p> * DOCUMENT ME!! * </p> * * <b>Usage:</b><br> * <p> * DOCUMENT ME!! * </p> */ public class SpatialTestCase extends TestCase { protected GeometryFactory gf; protected SimpleFeatureType lineType; protected SimpleFeature[] lineFeatures; protected ReferencedEnvelope lineBounds; protected LineString ls0, ls1, ls2, ls3; protected String namespace; protected FilterFactory filterFactory; protected Filter lineFilter; MemoryDataStore mds; // assumes a consistant data type ValidationResults vr; /** * Constructor for OverlapsIntegrityTest. * @param arg0 */ public SpatialTestCase(String arg0) { super(arg0); } /** * @see junit.framework.TestCase#setUp() * * <code><pre> * * (0,2) (2.6,2) * x x * \ | * \ls1 |ls2 * \ | * (1,1)+ + * | | * | | * ls0 | (2,0.1) | ls3 * (0,0)x----------+----------+----------+==========x----------x * | | (4,0) (5,0.1) * | | * | | * x x * (1,-1) (2,-1) * * </pre></code> */ protected void setUp() throws Exception { gf = new GeometryFactory(); mds = new MemoryDataStore(); namespace = getName(); vr = new TempFeatureResults(); lineFeatures = new SimpleFeature[4]; ls0 = gf.createLineString(new Coordinate[]{ new Coordinate(0,0), new Coordinate(2,0.1), new Coordinate(3,0), new Coordinate(4,0)} ); ls1 = gf.createLineString(new Coordinate[]{ new Coordinate(0,2), new Coordinate(1,1), new Coordinate(1,0), new Coordinate(1,-1)} ); ls2 = gf.createLineString(new Coordinate[]{ new Coordinate(2.6,2), new Coordinate(2.5,1), new Coordinate(2.5,-1)} ); ls3 = gf.createLineString(new Coordinate[]{ new Coordinate(3,0), new Coordinate(4,0), new Coordinate(5,0.1)} ); lineType = DataUtilities.createType("my.line", "id:0,geom:LineString,name:String"); lineFeatures[0] = SimpleFeatureBuilder.build(lineType, new Object[] { new Integer(0), ls0, "line0"}, "line.line0"); lineFeatures[1] = SimpleFeatureBuilder.build(lineType, new Object[] { new Integer(1), ls1, "line1"}, "line.line1"); lineFeatures[2] = SimpleFeatureBuilder.build(lineType, new Object[] { new Integer(2), ls2, "line2"}, "line.line2"); lineFeatures[3] = SimpleFeatureBuilder.build(lineType, new Object[] { new Integer(3), ls3, "line3"}, "line.line3"); lineBounds = new ReferencedEnvelope(); lineBounds.include( lineFeatures[0].getBounds() ); lineBounds.include( lineFeatures[1].getBounds() ); lineBounds.include( lineFeatures[2].getBounds() ); lineBounds.include( lineFeatures[3].getBounds() ); // filterFactory = FilterFactoryFinder.createFilterFactory(); // BBoxExpression bbex = filterFactory.createBBoxExpression(lineBounds); mds.addFeature(lineFeatures[0]); mds.addFeature(lineFeatures[1]); mds.addFeature(lineFeatures[2]); mds.addFeature(lineFeatures[3]); } protected void tearDown() throws Exception { gf = null; lineType = null; lineFeatures = null; lineBounds = null; ls0 = null; ls1 = null; ls2 = null; ls3 = null; namespace = null; vr = null; } }