package org.jgrasstools.hortonmachine.models.hm; import java.io.File; import java.net.URL; import org.geotools.data.simple.SimpleFeatureCollection; import org.jgrasstools.gears.io.shapefile.OmsShapefileFeatureReader; import org.jgrasstools.hortonmachine.modules.networktools.epanet.OmsEpanetFeaturesSynchronizer; import org.jgrasstools.hortonmachine.utils.HMTestCase; /** * Test {@link OmsEpanetFeaturesSynchronizer}. * * @author Andrea Antonello (www.hydrologis.com) */ public class TestEpanetSynchronizer extends HMTestCase { private SimpleFeatureCollection jFC; private SimpleFeatureCollection tFC; private SimpleFeatureCollection puFC; private SimpleFeatureCollection piFC; private SimpleFeatureCollection vFC; private SimpleFeatureCollection rFC; protected void setUp() throws Exception { URL jUrl = this.getClass().getClassLoader().getResource("junctions.shp"); String jPath = new File(jUrl.toURI()).getAbsolutePath(); URL piUrl = this.getClass().getClassLoader().getResource("pipes.shp"); String piPath = new File(piUrl.toURI()).getAbsolutePath(); URL puUrl = this.getClass().getClassLoader().getResource("pumps.shp"); String puPath = new File(puUrl.toURI()).getAbsolutePath(); URL tUrl = this.getClass().getClassLoader().getResource("tanks.shp"); String tPath = new File(tUrl.toURI()).getAbsolutePath(); URL vUrl = this.getClass().getClassLoader().getResource("valves.shp"); String vPath = new File(vUrl.toURI()).getAbsolutePath(); URL rUrl = this.getClass().getClassLoader().getResource("reservoirs.shp"); String rPath = new File(rUrl.toURI()).getAbsolutePath(); jFC = OmsShapefileFeatureReader.readShapefile(jPath); tFC = OmsShapefileFeatureReader.readShapefile(tPath); puFC = OmsShapefileFeatureReader.readShapefile(puPath); piFC = OmsShapefileFeatureReader.readShapefile(piPath); vFC = OmsShapefileFeatureReader.readShapefile(vPath); rFC = OmsShapefileFeatureReader.readShapefile(rPath); } public void testEpanetSynchronizer() throws Exception { OmsEpanetFeaturesSynchronizer sync = new OmsEpanetFeaturesSynchronizer(); sync.pm = pm; sync.inJunctions = jFC; sync.inTanks = tFC; sync.inPumps = puFC; sync.inPipes = piFC; sync.inValves = vFC; sync.inReservoirs = rFC; sync.process(); SimpleFeatureCollection outJ = sync.inJunctions; SimpleFeatureCollection outT = sync.inTanks; SimpleFeatureCollection outPu = sync.inPumps; SimpleFeatureCollection outPi = sync.inPipes; SimpleFeatureCollection outV = sync.inValves; SimpleFeatureCollection outR = sync.inReservoirs; assertEquals(jFC.size(), outJ.size()); assertEquals(tFC.size(), outT.size()); assertEquals(puFC.size(), outPu.size()); assertEquals(piFC.size(), outPi.size()); assertEquals(vFC.size(), outV.size()); assertEquals(rFC.size(), outR.size()); } public void testEpanetSynchronizerPartial() throws Exception { OmsEpanetFeaturesSynchronizer sync = new OmsEpanetFeaturesSynchronizer(); sync.pm = pm; sync.inJunctions = jFC; sync.inPipes = piFC; sync.inValves = vFC; sync.inReservoirs = rFC; sync.process(); SimpleFeatureCollection outJ = sync.inJunctions; SimpleFeatureCollection outPi = sync.inPipes; SimpleFeatureCollection outV = sync.inValves; SimpleFeatureCollection outR = sync.inReservoirs; assertEquals(jFC.size(), outJ.size()); assertEquals(piFC.size(), outPi.size()); assertEquals(vFC.size(), outV.size()); assertEquals(rFC.size(), outR.size()); } public void testEpanetSynchronizerBasic() throws Exception { OmsEpanetFeaturesSynchronizer sync = new OmsEpanetFeaturesSynchronizer(); sync.pm = pm; sync.inJunctions = jFC; sync.inPipes = piFC; sync.process(); SimpleFeatureCollection outJ = sync.inJunctions; SimpleFeatureCollection outPi = sync.inPipes; assertEquals(jFC.size(), outJ.size()); assertEquals(piFC.size(), outPi.size()); } }