r1944 - in isis-fish/trunk/src: main/resources/templates/prescript test/java/fr/ifremer/isisfish/simulator
Author: chatellier Date: 2009-03-11 15:24:51 +0000 (Wed, 11 Mar 2009) New Revision: 1944 Modified: isis-fish/trunk/src/main/resources/templates/prescript/factorprescript.ftl isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java Log: Gestion des EquationContinuousDomain. Positionnement des valeurs dans le contexte. Modified: isis-fish/trunk/src/main/resources/templates/prescript/factorprescript.ftl =================================================================== --- isis-fish/trunk/src/main/resources/templates/prescript/factorprescript.ftl 2009-03-11 15:23:48 UTC (rev 1943) +++ isis-fish/trunk/src/main/resources/templates/prescript/factorprescript.ftl 2009-03-11 15:24:51 UTC (rev 1944) @@ -25,6 +25,9 @@ TopiaEntity entity = db.findByTopiaId("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673"); BeanUtils.setProperty(entity, "minLength", value); +Or : + +context.setValue("K1", 2, "-"); --> import org.apache.commons.beanutils.BeanUtils; @@ -35,6 +38,10 @@ <#list scenario.factors as factor> // Factor : ${factor.name} +<#-- Following is java instanceof equivalent --> +<#if factor.domain.class.simpleName.equals("EquationContinuousDomain")> +context.setValue("${factor.domain.variableName}", ${factor.value}, "${factor.domain.operator}"); +<#else> <#assign value=factor.value /> <#assign serializedValue=beanUtils.convert(value)/> <#assign path=factor.path /> @@ -43,5 +50,6 @@ Object value = beanUtils.convert("${serializedValue}", ${value.class.name}.class); TopiaEntity entity = db.findByTopiaId("${topiaId}"); BeanUtils.setProperty(entity, "${propertyName}", value); +</#if> -</#list> \ No newline at end of file +</#list> Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java 2009-03-11 15:23:48 UTC (rev 1943) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java 2009-03-11 15:24:51 UTC (rev 1944) @@ -52,6 +52,7 @@ import fr.ifremer.isisfish.simulator.sensitivity.Scenario; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain; import fr.ifremer.isisfish.util.ConverterUtil; import freemarker.template.Configuration; import freemarker.template.Template; @@ -69,8 +70,6 @@ * * Last update : $Date: 24 févr. 2009 $ * By : $Author: chatellier $ - * - * FIXME fix this test (empty schema error) */ public class SimulationPreScriptTest { @@ -83,14 +82,13 @@ @BeforeClass public static void init() throws Exception { - //TestUtils.init(); freemarkerConfiguration = TestUtils.getFreemarkerConfiguration(); } @Before public void setUp() throws Exception { // not do it in @BeforeClass - // test wil fail ! + // test will fail ! TestUtils.init(); System.setProperty("hibernate.hbm2ddl.auto", "create"); } @@ -106,7 +104,9 @@ * @throws IOException * @throws TemplateException * @throws StorageException - * @throws TopiaException + * @throws TopiaException + * + * FIXME fix this test (empty schema error) */ @Test public void testFactorPreScriptFactorInt() throws IOException, TemplateException, StorageException, TopiaException { @@ -173,7 +173,7 @@ // FIXME should test value remplaced by precript //Assert.assertEquals(49, vesselType.getLength()); } - + /** * Creer un simulation. * Creer un populationSeasonInfoDAO. @@ -183,7 +183,9 @@ * @throws IOException * @throws TemplateException * @throws StorageException - * @throws TopiaException + * @throws TopiaException + * + * FIXME fix this test (empty schema error) */ @Test public void testFactorPreScriptFactorMatrix() throws IOException, TemplateException, StorageException, TopiaException { @@ -246,12 +248,12 @@ factors.add(factor1); factors.add(factor2); scenario.setFactors(factors); - + // context values Map<String, Object> root = new HashMap<String, Object>(); root.put("scenario", scenario); root.put("beanUtils", ConverterUtil.getConverter(null)); - + // process template Template template = freemarkerConfiguration .getTemplate("templates/prescript/factorprescript.ftl"); @@ -275,4 +277,49 @@ // FIXME should test value remplaced by precript //Assert.assertEquals(matrix2, populationSeasonInfo.getMigrationMatrix()); } + + /** + * Creer un scenario basé sur les EquationDomain. + * + * @throws IOException + * @throws TemplateException + * @throws StorageException + * @throws TopiaException + */ + @Test + public void testFactorPreScriptEquation() throws IOException, TemplateException, StorageException, TopiaException { + + // factor + Factor<Double> factorEquation = new Factor<Double>("test equation"); + EquationContinuousDomain<Double> domain1 = new EquationContinuousDomain<Double>(); + domain1.setMinBound(0.0); + domain1.setMaxBound(3.0); + domain1.setOperator("-"); + domain1.setVariableName("PopulationEquation.K1"); + factorEquation.setDomain(domain1); + factorEquation.setPath("org.codelutin.equation1#testFactorPreScriptEquation"); + factorEquation.setValueForIdentifier(2.0); + + log.info("Script = " + domain1.getClass().getSimpleName()); + + // scenario + Scenario scenario = new Scenario(); + List<Factor<? extends Serializable>> factors = new ArrayList<Factor<? extends Serializable>>(); + factors.add(factorEquation); + scenario.setFactors(factors); + + // context values + Map<String, Object> root = new HashMap<String, Object>(); + root.put("scenario", scenario); + root.put("beanUtils", ConverterUtil.getConverter(null)); + + // process template + Template template = freemarkerConfiguration.getTemplate("templates/prescript/factorprescript.ftl"); + Writer out = new StringWriter(); + template.process(root, out); + out.flush(); + String scriptContent = out.toString(); + //log.info("Script = " + scriptContent); + Assert.assertTrue(scriptContent.indexOf("\"PopulationEquation.K1\", 2, \"-\"") != -1); + } }
participants (1)
-
chatellier@users.labs.libre-entreprise.org