Author: chatellier
Date: 2009-12-22 17:17:18 +0000 (Tue, 22 Dec 2009)
New Revision: 2861
Added:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java
isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/
isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-gdg-3.2-3.3.zip
isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-ica-3.2-3.3.zip
Removed:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java
Modified:
isis-fish/trunk/changelog.txt
isis-fish/trunk/pom.xml
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java
Log:
Add simulations tests : ica, gdg (quite long, done in integration-test phase)
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-12-22 14:58:49 UTC (rev 2860)
+++ isis-fish/trunk/changelog.txt 2009-12-22 17:17:18 UTC (rev 2861)
@@ -1,5 +1,6 @@
isis-fish (3.3.0.0) stable; urgency=low
+ * Restore simulation tests at integration-test phase
* Add region factorisable value export (mexico)
* Improve simulation stopping algorithm (now faster)
* Locally save simulation zip to allow simulation restart even after isis shutdown
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-12-22 14:58:49 UTC (rev 2860)
+++ isis-fish/trunk/pom.xml 2009-12-22 17:17:18 UTC (rev 2861)
@@ -480,6 +480,20 @@
</property>
</systemProperties>
</configuration>
+ <executions>
+ <execution>
+ <id>surefire-it</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>**/*IT.java</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
Deleted: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2009-12-22 14:58:49 UTC (rev 2860)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2009-12-22 17:17:18 UTC (rev 2861)
@@ -1,185 +0,0 @@
-/* *##%
- * Copyright (C) 2007, 2009
- * Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *##%*/
-
-package fr.ifremer.isisfish.simulator;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.math.matrix.DoubleBigVector;
-import org.nuiton.math.matrix.MatrixFactory;
-import org.nuiton.topia.TopiaContext;
-import org.junit.Assert;
-import org.junit.Test;
-
-import fr.ifremer.isisfish.AbstractIsisFishTest;
-import fr.ifremer.isisfish.datastore.ResultStorage;
-import fr.ifremer.isisfish.datastore.SimulationStorage;
-import fr.ifremer.isisfish.entities.Result;
-import fr.ifremer.isisfish.types.Date;
-
-
-/**
- * SimulationHelperTest.
- *
- * Created: 4 janv. 07 12:06:18
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class SimulationHelperTest extends AbstractIsisFishTest {
-
- /** Commons logging log. */
- private static Log log = LogFactory.getLog(SimulationHelperTest.class);
-
- final static private String[] SIMULATION_ZIP_FILE = new String[]{
- "src" + File.separator + "test" + File.separator + "resources" + File.separator + "simulations" + File.separator + "test-nonregression-20090203.zip",
- // put here other zip simulation test
- };
-
-// public void testVerifResult() throws Exception {
-// try {
-// IsisConfig.load();
-//
-// for (String zipName : SIMULATION_ZIP_FILE) {
-// // recuperation du fichier zip de la simulation de test
-// File zip = new File(zipName);
-//
-// // import de cette simulation
-// String name = "simulation-test-" + System.currentTimeMillis();
-// SimulationStorage simRef = SimulationStorage.importAndRenameZip(zip, name + "-ref");
-//
-// // import de la simulation avec un autre nom
-// SimulationStorage sim = SimulationStorage.importAndRenameZip(zip, name);
-//
-// try {
-// // verification qu'on retrouve les memes resulats pour les deux simulations
-// ResultStorage resultRef = simRef.getResultStorage();
-// ResultStorage result = sim.getResultStorage();
-//
-// List<String> resultNames = resultRef.getResultName();
-// assertEquals(resultNames, result.getResultName());
-//
-// Date lastDate = resultRef.getLastDate();
-// for (Date date=new Date(0); date.before(lastDate); date=date.next()) {
-// for (String resultName : resultNames) {
-// assertEquals("Date " + date.getDate() + " result " + resultName,
-// resultRef.getMatrix(date, resultName),
-// result.getMatrix(date, resultName));
-// }
-// }
-//
-// } finally {
-// // fermeture des bases
-// simRef.getStorage().closeContext();
-// sim.getStorage().closeContext();
-// // suppresion des deux simulations
-// simRef.delete(false);
-// sim.delete(false);
-// }
-// }
-// } catch (Exception eee) {
-// System.err.println(eee);
-// eee.printStackTrace();
-// throw eee;
-// }
-// }
-
- /*
- 10;20;30;40;50;60;70;80;90;
- 100;200;300;400;500;600;700;800;900;
- 1000;2000;3000;4000;5000;6000;7000;8000;9000;
- 10000;20000;30000;40000;50000;60000;70000;80000;90000;
- 100000;200000;300000;400000;500000;600000;700000;800000;900000;
- 1000000;2000000;3000000;4000000;5000000;6000000;7000000;8000000;9000000;
- 10000000;20000000;30000000;40000000;50000000;60000000;70000000;80000000;90000000;
- 100000000;200000000;300000000;400000000;500000000;600000000;700000000;800000000;900000000;
- 1000000000;2000000000;3000000000;4000000000;5000000000;6000000000;7000000000;8000000000;9000000000;
- 10000000000;20000000000;30000000000;40000000000;50000000000;60000000000;70000000000;80000000000;90000000000;
- */
-
- @Test
- public void testSimulate() throws Exception {
-
- try {
- // par defaut on utilise des doubles pour les matrices
- MatrixFactory.setDefaultVectorClass(DoubleBigVector.class);
-
- for (String zipName : SIMULATION_ZIP_FILE) {
- // recuperation du fichier zip de la simulation de test
- File zip = new File(zipName);
-
- // import de cette simulation
- String name = "simulation-test-" + System.currentTimeMillis();
- SimulationStorage simRef = SimulationStorage.importAndRenameZip(zip, name + "-ref");
-
- // import de la simulation avec un autre nom
- SimulationStorage sim = SimulationStorage.importAndRenameZip(zip, name);
-
- try {
- // suppression des resultats de cette simulation
- TopiaContext tx = sim.getStorage().beginTransaction();
- tx.execute("DELETE from " + Result.class.getName());
- tx.commitTransaction();
- tx.closeContext();
-
- // lancement de la simulation
- // FIXME a remplacer avec SimulationService
-// SimulationHelper.simulate(null, sim);
-
- // verification qu'on retrouve les memes resulats pour les deux simulations
- ResultStorage resultRef = simRef.getResultStorage();
- ResultStorage result = sim.getResultStorage();
-
- List<String> resultNames = resultRef.getResultName();
- Assert.assertEquals(resultNames, result.getResultName());
-
- Date lastDate = resultRef.getLastDate();
-
- log.info("Check result ...");
- for (Date date = new Date(0); date.before(lastDate); date = date.next()) {
- for (String resultName : resultNames) {
- log.debug("Check result " + date + " " + resultName);
- Assert.assertEquals("Date " + date.getDate() + " result " + resultName,
- resultRef.getMatrix(date, resultName),
- result.getMatrix(date, resultName));
- }
- }
-
- } finally {
- // fermeture des bases
- simRef.getStorage().closeContext();
- sim.getStorage().closeContext();
- // suppresion des deux simulations
- simRef.delete(false);
- sim.delete(false);
- }
- }
- } catch (Exception eee) {
- System.err.println(eee);
- eee.printStackTrace();
- throw eee;
- }
- }
-}
Added: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java (rev 0)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java 2009-12-22 17:17:18 UTC (rev 2861)
@@ -0,0 +1,171 @@
+/* *##%
+ * Copyright (C) 2009 Ifremer - Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher;
+
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.topia.TopiaContext;
+
+import fr.ifremer.isisfish.AbstractIsisFishTest;
+import fr.ifremer.isisfish.datastore.ResultStorage;
+import fr.ifremer.isisfish.datastore.SimulationStorage;
+import fr.ifremer.isisfish.entities.Result;
+import fr.ifremer.isisfish.simulator.SimulationControl;
+import fr.ifremer.isisfish.types.Date;
+
+/**
+ * Integration tests for {@link SimulationService}.
+ *
+ * Dans ces deux tests, les simulations ont été effectuées sur isis-fish-3.2.0.9.
+ * Les resultats ont été exporté dans le fichier data-backup.sql.gz. Le zip
+ * contient cet export et le fichier de parametres.
+ *
+ * Il ne contient pas les scripts pour utiliser ceux de la base de test.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$ By : $Author: chatellier $
+ */
+public class SimulationServiceIT extends AbstractIsisFishTest {
+
+ /** Class logger. */
+ private static Log log = LogFactory.getLog(SimulationServiceIT.class);
+
+ /**
+ * Read a zipped simulation file.
+ * Redo simulation with same parameters, and check that result are all equals.
+ *
+ * @param zipName
+ * @throws Exception
+ */
+ protected void testSimulate(String zipName) throws Exception {
+
+ int resultChecked = 0;
+
+ // recuperation du fichier zip de la simulation de test
+ File zip = new File(zipName);
+
+ // import de cette simulation
+ String name = "simulation-test-" + System.currentTimeMillis();
+ SimulationStorage simRef = SimulationStorage.importAndRenameZip(zip, name + "-ref");
+
+ // la simulation testée ici
+ SimulationStorage sim = SimulationStorage.importAndRenameZip(zip, name + "-temp");
+
+ try {
+ // suppression des resultats de cette simulation
+ TopiaContext tx = sim.getStorage().beginTransaction();
+ tx.execute("DELETE from " + Result.class.getName());
+ tx.commitTransaction();
+ tx.closeContext();
+
+ // lancement de la simulation
+ SimulationControl control = new SimulationControl(sim.getName());
+ control.setDate(new Date());
+ InProcessSimulatorLauncher launcher = new InProcessSimulatorLauncher();
+ sim = launcher.localSimulate(control, sim);
+
+ // if simulation ends with exception, no need to continue
+ if (!StringUtils.isEmpty(sim.getInformation().getException())) {
+ Assert.fail(sim.getInformation().getException());
+ }
+
+ // verification qu'on retrouve les memes resulats pour les deux simulations
+ ResultStorage resultRef = simRef.getResultStorage();
+ ResultStorage result = sim.getResultStorage();
+
+ List<String> resultNames = resultRef.getResultName();
+ Assert.assertEquals(resultNames, result.getResultName());
+
+ Date lastDate = resultRef.getLastDate();
+
+
+ if (log.isInfoEnabled()) {
+ log.info("Check result ...");
+ }
+
+ for (Date date = new Date(0); date.beforeOrEquals(lastDate); date = date.next()) {
+ for (String resultName : resultNames) {
+ if (log.isDebugEnabled()) {
+ log.debug("Check result " + date + " " + resultName);
+ }
+ Assert.assertEquals("Date " + date.getDate() + " result " + resultName,
+ resultRef.getMatrix(date, resultName),
+ result.getMatrix(date, resultName));
+
+ resultChecked++;
+ }
+ }
+
+ // nombre de résultat sur 12 mois, sur 5 ans
+ Assert.assertEquals("All expected results have not been checked !", resultNames.size() * 12 * 5, resultChecked);
+
+ } finally {
+ // fermeture des bases
+ simRef.getStorage().closeContext();
+ sim.getStorage().closeContext();
+ // suppresion des deux simulations
+ simRef.delete(false);
+ sim.delete(false);
+ }
+
+ // Test qu'au moins quelques resultats ont été verifié
+ Assert.assertTrue("At least some result must be done", resultChecked > 100);
+ }
+
+ /**
+ * Do simulation test on gdg database.
+ *
+ * Simulation properties :
+ * - 10 years
+ * - all strategies
+ * - one population
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testSimlateGdG() throws Exception {
+ URL zipURL = this.getClass().getResource("sim_test-gdg-3.2-3.3.zip");
+ testSimulate(zipURL.getFile());
+ }
+
+ /**
+ * Do simulation test on ICA database.
+ *
+ * Simulation properties :
+ * - 10 years
+ * - all strategies
+ * - one population
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testSimlateICA() throws Exception {
+ URL zipURL = this.getClass().getResource("sim_test-ica-3.2-3.3.zip");
+ testSimulate(zipURL.getFile());
+ }
+}
Property changes on: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceIT.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-12-22 14:58:49 UTC (rev 2860)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-12-22 17:17:18 UTC (rev 2861)
@@ -198,57 +198,4 @@
}
}
}
-
- /**
- * Lance une simulation avec des facteurs de sensibilité.
- *
- * This test use factors with matrix.
- *
- * Fail after 2 min.
- */
- @Test(timeout=120 * 1000)
- public void testRunSensivitySimulationWithMatrix() {
-
- SimulationParameter params = new SimulationParameter();
- // set params region
- params.setRegionName("DemoRegion");
- // set population
- List<Population> pops = new ArrayList<Population>();
- Population pop = new PopulationImpl();
- pop.setName("test population");
- pop.setPopulationGroup(new ArrayList<PopulationGroup>());
- pop.setPopulationZone(new ArrayList<Zone>());
- pops.add(pop);
- params.setPopulations(pops);
- // strat
- List<Strategy> strats = new ArrayList<Strategy>();
- Strategy strategy = new StrategyImpl();
- strategy.setName("stratest");
- strats.add(strategy);
- params.setStrategies(strats);
- // number of year
- params.setNumberOfYear(1);
-
- SimulationService service = SimulationService.getService();
- SimulatorLauncher launcher = new InProcessSimulatorLauncher();
- service.addSimulationLauncher(launcher);
-
- SensitivityCalculator sensitivityCalculator = new SensitivityCalculatorRandomMock();
-
- DesignPlan designPlan = getTestMatrixDesignPlan();
-
- service.submit("sensitivity test matrix 1", params, launcher, 0,
- sensitivityCalculator, designPlan);
-
- // temporise la fin de test , sinon junit tue tous les process
- try {
- do {
- Thread.sleep(2000);
- } while (!service.jobs.isEmpty());
- } catch (InterruptedException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't wait wimulation to end", e);
- }
- }
- }
}
Added: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-gdg-3.2-3.3.zip
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-gdg-3.2-3.3.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-ica-3.2-3.3.zip
===================================================================
(Binary files differ)
Property changes on: isis-fish/trunk/src/test/resources/fr/ifremer/isisfish/simulator/launcher/sim_test-ica-3.2-3.3.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream