Author: chatellier
Date: 2009-03-30 14:18:23 +0000 (Mon, 30 Mar 2009)
New Revision: 2044
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java
Removed:
isis-fish/trunk/src/test/resources/mexico/mexicohelper_scenarios.xml
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
isis-fish/trunk/src/test/resources/mexico/mexicohelper_designplan.xml
Log:
Ajout de l'import XML des matrices continue/equation continue
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -27,9 +27,7 @@
import fr.ifremer.isisfish.mexico.xml.DesignPlanXMLVisitor;
import fr.ifremer.isisfish.mexico.xml.DomXMLParser;
-import fr.ifremer.isisfish.mexico.xml.SensitivityScenariosXMLVisitor;
import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityScenarios;
/**
* Mexico helper class.
@@ -59,12 +57,14 @@
}
- /**
+ /*
* Get xml representation of a scenario.
*
* @param scenarios sensitivity scenarios
* @return xml sensitivity scenarios representation
- */
+ *
+ * TODO : non finished and untested
+ *
public static String getSensitivityScenarionsAsXML(
SensitivityScenarios scenarios) {
@@ -73,7 +73,7 @@
String sensitivityScenariosXml = visitor.getXML();
return sensitivityScenariosXml;
- }
+ }*/
/**
* Parse xmlFile with sax, and return a {@link DesignPlan}.
@@ -96,13 +96,15 @@
return designPlan;
}
- /**
+ /*
* Parse xmlFile with sax, and return a {@link SensitivityScenarios}.
*
* @param xmlFile file path to parse
* @return SensitivityScenarios
- * @throws IOException
- */
+ * @throws IOException
+ *
+ * TODO : non finished and untested
+ *
public static SensitivityScenarios getSensitivityScenariosFromXML(
String xmlFile) throws IOException {
SensitivityScenarios scenarios = null;
@@ -115,5 +117,5 @@
throw new IOException(e);
}
return scenarios;
- }
+ }*/
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -20,19 +20,22 @@
import java.util.List;
+import org.apache.commons.beanutils.ConvertUtilsBean;
+import org.codelutin.math.matrix.MatrixND;
import org.dom4j.Element;
import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan;
import fr.ifremer.isisfish.simulator.sensitivity.Factor;
-import fr.ifremer.isisfish.simulator.sensitivity.Scenario;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityScenarios;
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.simulator.sensitivity.domain.MatrixContinuousDomain;
+import fr.ifremer.isisfish.util.ConverterUtil;
/**
* Parse xml using dom.
*
- * @see DOM4J
+ * @see Element
*
* @author chatellier
* @version $Revision: 1.0 $
@@ -66,11 +69,43 @@
factor.setPath(path);
Element fixedElement = factorElement.element("domain").element(
"fixed");
- if ("continuous".equals(property)) {
- ContinuousDomain<Double> domain = new ContinuousDomain<Double>();
+ // tous les domaines continues
+ if (property.endsWith("continuous")) {
+ Element rangeElement = fixedElement.element("range");
+ ContinuousDomain<Double> domain;
+ if(property.equals("matrixcontinuous")) {
+ // matrix specific
+ Element matrixElement = fixedElement.element("matrix");
+ MatrixContinuousDomain<Double> mdomain = new MatrixContinuousDomain<Double>();
+ mdomain.setCoefficient(Double.valueOf(matrixElement.attributeValue("coefficient")));
+ mdomain.setOperator(matrixElement.attributeValue("operator"));
+
+ String serializedMatrix = matrixElement.getTextTrim();
+ ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null);
+ MatrixND matrix = (MatrixND)beanUtils.convert(serializedMatrix, MatrixND.class);
+ mdomain.setMatrix(matrix);
+
+ domain = mdomain;
+ }
+ else if (property.equals("equationcontinuous")) {
+ // equation specific
+ Element equationElement = fixedElement.element("equation");
+ EquationContinuousDomain<Double> edomain = new EquationContinuousDomain<Double>();
+ edomain.setCoefficient(Double.valueOf(equationElement.attributeValue("coefficient")));
+ edomain.setReferenceValue(Double.valueOf(equationElement.attributeValue("reference")));
+ edomain.setVariableName(equationElement.attributeValue("variable"));
+ edomain.setOperator(equationElement.attributeValue("operator"));
+
+ domain = edomain;
+ }
+ else {
+ // continous domain
+ domain = new ContinuousDomain<Double>();
+ }
+
domain.setCardinality(Integer.valueOf(fixedElement
.attributeValue("cardinality")));
- Element rangeElement = fixedElement.element("range");
+
domain.setMinBound(Double.valueOf(rangeElement
.attributeValue("min")));
domain.setMaxBound(Double.valueOf(rangeElement
@@ -83,7 +118,7 @@
int label = 0;
for (Element valueElement : valueElements) {
domain.getValues().put(Integer.valueOf(label),
- Double.valueOf(valueElement.getText().trim()));
+ Double.valueOf(valueElement.getTextTrim()));
++label;
}
factor.setDomain(domain);
@@ -95,10 +130,42 @@
Element fixedElement = factorElement.element("domain").element(
"fixed");
if ("continuous".equals(property)) {
- ContinuousDomain<Integer> domain = new ContinuousDomain<Integer>();
+ ContinuousDomain<Integer> domain = null;
+ Element rangeElement = fixedElement.element("range");
+
+ if(property.equals("matrixcontinuous")) {
+ // matrix specific
+ Element matrixElement = fixedElement.element("matrix");
+ MatrixContinuousDomain<Integer> mdomain = new MatrixContinuousDomain<Integer>();
+ mdomain.setCoefficient(Double.valueOf(matrixElement.attributeValue("coefficient")));
+ mdomain.setOperator(matrixElement.attributeValue("operator"));
+
+ String serializedMatrix = matrixElement.getTextTrim();
+ ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null);
+ MatrixND matrix = (MatrixND)beanUtils.convert(serializedMatrix, MatrixND.class);
+ mdomain.setMatrix(matrix);
+
+ domain = mdomain;
+ }
+ else if (property.equals("equationcontinuous")) {
+ // equation specific
+ Element equationElement = fixedElement.element("equation");
+ EquationContinuousDomain<Integer> edomain = new EquationContinuousDomain<Integer>();
+ edomain.setCoefficient(Double.valueOf(equationElement.attributeValue("coefficient")));
+ edomain.setReferenceValue(Double.valueOf(equationElement.attributeValue("reference")));
+ edomain.setVariableName(equationElement.attributeValue("variable"));
+ edomain.setOperator(equationElement.attributeValue("operator"));
+
+ domain = edomain;
+ }
+ else {
+ // continous domain
+ domain = new ContinuousDomain<Integer>();
+ }
+
domain.setCardinality(Integer.valueOf(fixedElement
.attributeValue("cardinality")));
- Element rangeElement = fixedElement.element("range");
+
domain.setMinBound(Integer.valueOf(rangeElement
.attributeValue("min")));
domain.setMaxBound(Integer.valueOf(rangeElement
@@ -111,7 +178,7 @@
int label = 0;
for (Element valueElement : valueElements) {
domain.getValues().put(Integer.valueOf(label),
- Integer.valueOf(valueElement.getText().trim()));
+ Integer.valueOf(valueElement.getTextTrim()));
++label;
}
factor.setDomain(domain);
@@ -123,11 +190,13 @@
return plan;
}
- /**
+ /*
* Parse element root node as Sensitivity Scenarios.
*
- * @return a {@link DesignPlan}
- */
+ * @return a {@link SensitivityScenarios}
+ *
+ * TODO : non finished and untested
+ *
public static SensitivityScenarios parseSensitivityScenarios(
Element rootElement) {
@@ -220,5 +289,5 @@
}
return scenarios;
- }
+ }*/
}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -0,0 +1,51 @@
+/* *##%
+ * Copyright (C) 2009 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.mexico.xml;
+
+import java.io.Serializable;
+
+import fr.ifremer.isisfish.simulator.sensitivity.Domain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
+
+/**
+ * XML domain visitor for Equation Continous Domain.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 30 mars 2009 $
+ * By : $Author: chatellier $
+ */
+public class EquationContinuousDomainXMLVisitor extends ContinuousDomainXMLVisitor {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void start(Domain<? extends Serializable> domain) {
+ super.start(domain);
+
+ EquationContinuousDomain eDomain = (EquationContinuousDomain)domain;
+ xmlBuffer.append("<equation variable=\"" + eDomain.getVariableName()+ "\"");
+ xmlBuffer.append(" operator=\"" + eDomain.getOperator() + "\"");
+ xmlBuffer.append(" coefficient=\"" + eDomain.getCoefficient() + "\"");
+ xmlBuffer.append(" reference=\"" + eDomain.getReferenceValue() + "\"");
+ xmlBuffer.append(" />");
+ }
+}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -24,6 +24,8 @@
import fr.ifremer.isisfish.simulator.sensitivity.Factor;
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.simulator.sensitivity.domain.MatrixContinuousDomain;
import fr.ifremer.isisfish.simulator.sensitivity.visitor.FactorVisitor;
/**
@@ -68,7 +70,15 @@
xmlBuffer.append(" name=\"" + factor.getName() + "\"");
Serializable referenceValueForType = null;
// property attribute
- if (factor.getDomain() instanceof ContinuousDomain) {
+ if (factor.getDomain() instanceof MatrixContinuousDomain) {
+ xmlBuffer.append(" property=\"matrixcontinuous\"");
+ referenceValueForType = ((MatrixContinuousDomain)factor.getDomain()).getMinBound();
+ }
+ else if (factor.getDomain() instanceof EquationContinuousDomain) {
+ xmlBuffer.append(" property=\"equationcontinuous\"");
+ referenceValueForType = ((ContinuousDomain)factor.getDomain()).getMinBound();
+ }
+ else if (factor.getDomain() instanceof ContinuousDomain) {
xmlBuffer.append(" property=\"continuous\"");
referenceValueForType = ((ContinuousDomain)factor.getDomain()).getMinBound();
}
@@ -87,9 +97,11 @@
// target element
xmlBuffer.append("<target>" + factor.getPath() + "</target>");
// value element
+ /* TODO value should be only in simulation export,
+ not in design plan export
if (factor.getValue() != null) {
xmlBuffer.append("<value>" + factor.getValue() + "</value>");
- }
+ }*/
}
/*
@@ -98,7 +110,13 @@
@Override
public void visit(Factor<? extends Serializable> factor, Domain<? extends Serializable> domain) {
DomainXMLVisitor visitor = null;
- if (factor.getDomain() instanceof ContinuousDomain) {
+ if (factor.getDomain() instanceof MatrixContinuousDomain) {
+ visitor = new MatrixContinuousDomainXMLVisitor();
+ }
+ else if (factor.getDomain() instanceof EquationContinuousDomain) {
+ visitor = new EquationContinuousDomainXMLVisitor();
+ }
+ else if (factor.getDomain() instanceof ContinuousDomain) {
visitor = new ContinuousDomainXMLVisitor();
}
else if (factor.getDomain() instanceof DiscreteDomain) {
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -0,0 +1,54 @@
+/* *##%
+ * Copyright (C) 2009 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.mexico.xml;
+
+import java.io.Serializable;
+
+import org.apache.commons.beanutils.ConvertUtilsBean;
+
+import fr.ifremer.isisfish.simulator.sensitivity.Domain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain;
+import fr.ifremer.isisfish.util.ConverterUtil;
+
+/**
+ * XML domain visitor for Matrix continous
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 5 mars 2009 $
+ * By : $Author: chatellier $
+ */
+public class MatrixContinuousDomainXMLVisitor extends ContinuousDomainXMLVisitor {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void start(Domain<? extends Serializable> domain) {
+ super.start(domain);
+
+ ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null);
+ MatrixContinuousDomain<?> mDomain = (MatrixContinuousDomain<?>)domain;
+ xmlBuffer.append("<matrix coefficient=\"" + mDomain.getCoefficient()+ "\"");
+ xmlBuffer.append(" operator=\"" + mDomain.getOperator() + "\">");
+ xmlBuffer.append(beanUtils.convert(mDomain.getMatrix()));
+ xmlBuffer.append("</matrix>");
+ }
+}
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-03-30 14:18:23 UTC (rev 2044)
@@ -33,10 +33,6 @@
import fr.ifremer.TestUtils;
import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan;
import fr.ifremer.isisfish.simulator.sensitivity.Factor;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculatorRandomMock;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityException;
-import fr.ifremer.isisfish.simulator.sensitivity.SensitivityScenarios;
import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
@@ -71,7 +67,7 @@
// factor 1
Factor<Double> factorContinuous = new Factor<Double>(
- "factor 1 (double)");
+ "factor 1 (double continuous)");
ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>();
domain1.setMinBound(0.0);
domain1.setMaxBound(50.0);
@@ -80,7 +76,7 @@
.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength");
// factor 2
- Factor<Double> factorDiscrete = new Factor<Double>("factor 2 (double)");
+ Factor<Double> factorDiscrete = new Factor<Double>("factor 2 (double discrete)");
DiscreteDomain<Double> domain2 = new DiscreteDomain<Double>();
domain2.getValues().put(0.0, 12.3);
domain2.getValues().put(1.0, 70.9);
@@ -93,10 +89,11 @@
factorDiscrete.setValue(3.0);
// factor 3
- Factor<MatrixND> factorContinuous2 = new Factor<MatrixND>(
- "factor 3 (discrete matrix)");
- DiscreteDomain<MatrixND> domain3 = new DiscreteDomain<MatrixND>();
- domain3.getValues().put(0.0, matrix1);
+ Factor<Integer> factorContinuous2 = new Factor<Integer>("factor 3 (integer discrete)");
+ DiscreteDomain<Integer> domain3 = new DiscreteDomain<Integer>();
+ domain3.getValues().put(0.0, 13);
+ domain3.getValues().put(0.0, 14);
+ domain3.getValues().put(0.0, 15);
factorContinuous2.setDomain(domain3);
factorContinuous2
.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength");
@@ -146,8 +143,7 @@
// test xml export
String xml = MexicoHelper.getDesignPlanAsXML(testDesignPlan);
- Assert
- .assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1);
+ Assert.assertTrue(xml.indexOf("<factor name=\"factor 2 (double discrete)\"") != -1);
//Assert.assertTrue(xml.indexOf("<range min=\"12.0\" max=\"99.0\" />") != -1);
Assert.assertTrue(xml.indexOf("<value>70.9</value>") != -1);
@@ -155,83 +151,46 @@
xml = xml.replaceAll(">", ">\n");
FileUtil.writeString(new File(TestUtils.getTargetdir(),
"mexicohelper_designplan.xml"), xml);
- log.info("Designplan xml = " + xml);
+ log.info("testGetDesignPlanAsXML xml = " + xml);
}
}
/**
- * Test method
- * {@link MexicoHelper#getSensitivityScenarionsAsXML(SensitivityScenarios)}.
- *
- * @throws IOException
- * @throws SensitivityException
- */
- @Test
- public void testGetSensitivityScenariosAsXML() throws IOException,
- SensitivityException {
-
- DesignPlan testDesignPlan = getTestDesignPlan();
- SensitivityCalculator testCalculator = new SensitivityCalculatorRandomMock();
- SensitivityScenarios testScenario = testCalculator.compute(
- testDesignPlan, null);
-
- // test xml export
- String xml = MexicoHelper.getSensitivityScenarionsAsXML(testScenario);
-
- //Assert.assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1);
- //Assert.assertTrue(xml.indexOf("<range min=\"12.0\" max=\"99.0\" />") != -1);
- //Assert.assertTrue(xml.indexOf("<value>70.9</value>") != -1);
-
- if (log.isDebugEnabled()) {
- xml = xml.replaceAll(">", ">\n");
- FileUtil.writeString(new File(TestUtils.getTargetdir(),
- "mexicohelper_scenarios.xml"), xml);
- log.info("SensitivityScenarios xml = " + xml);
- }
- }
-
- /**
* Test method {@link MexicoHelper#getDesignPlanFromXML(String)}.
*
* @throws IOException
*/
@Test
- public void getDesignPlanFromXML() throws IOException {
+ public void testGetDesignPlanFromXML() throws IOException {
DesignPlan plan = MexicoHelper
.getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
- Assert.assertEquals(4, plan.getFactors().size());
- // FIXME should be : Assert.assertEquals(5, plan.getFactors().size());
+ Assert.assertEquals(5, plan.getFactors().size());
String xml = MexicoHelper.getDesignPlanAsXML(plan);
xml = xml.replaceAll(">", ">\n");
- log.info("getDesignPlanFromXML xml = " + xml);
+ log.info("testGetDesignPlanFromXML xml = " + xml);
}
-
+
/**
- * Test method {@link MexicoHelper#getSensitivityScenariosFromXML(String)}.
+ * Test que l'export XML de l'import XML produise le meme xml.
*
* @throws IOException
*/
@Test
- public void getSensitivityScenariosFromXML() throws IOException {
+ public void testExportImport() throws IOException {
- SensitivityScenarios scenario = MexicoHelper
- .getSensitivityScenariosFromXML("src/test/resources/mexico/mexicohelper_scenarios.xml");
-
- Assert.assertEquals(10, scenario.getScenarios().size());
- Assert.assertEquals(5, scenario.getScenarios().get(0).getFactors()
- .size());
- Assert.assertEquals(2, scenario.getScenarios().get(1).getFactors()
- .size());
- Assert.assertEquals(2, scenario.getScenarios().get(2).getFactors()
- .size());
- Assert.assertEquals(2, scenario.getScenarios().get(3).getFactors()
- .size());
-
- String xml = MexicoHelper.getSensitivityScenarionsAsXML(scenario);
- xml = xml.replaceAll(">", ">\n");
- log.info("getSensitivityScenariosFromXML xml = " + xml);
+ // first export
+ DesignPlan testDesignPlan = getTestDesignPlan();
+ String xml1 = MexicoHelper.getDesignPlanAsXML(testDesignPlan);
+ log.debug("xml 1 = " + xml1);
+
+ // export
+ DesignPlan plan = MexicoHelper.getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
+ String xml2 = MexicoHelper.getDesignPlanAsXML(plan);
+ log.debug("xml 2 = " + xml2);
+
+ Assert.assertEquals(xml1, xml2);
}
}
Modified: isis-fish/trunk/src/test/resources/mexico/mexicohelper_designplan.xml
===================================================================
--- isis-fish/trunk/src/test/resources/mexico/mexicohelper_designplan.xml 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/test/resources/mexico/mexicohelper_designplan.xml 2009-03-30 14:18:23 UTC (rev 2044)
@@ -1,57 +1,74 @@
<experimentalDesign>
- <factors>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>
- fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
+ <factors>
+ <factor name="factor 1 (double continuous)" property="continuous" type="real">
+ <target>
+ fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength
+ </target>
+ <domain>
+ <fixed cardinality="0">
+ <range min="0.0" max="50.0" />
+ </fixed>
+ </domain>
+ </factor>
+ <factor name="factor 2 (double discrete)" property="discrete" type="real">
+ <target>
+ fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength
+ </target>
+ <value>
+ 3.0</value>
+ <domain>
+ <fixed cardinality="5">
+ <enumeration>
<value>
- 3.0</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 3 (discrete matrix)" property="discrete">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <domain>
- <fixed cardinality="1">
- <enumeration>
- <value>test1 matrix2D [
- 13.0,21.0,12.0,
- -14.0,2.0,-1.0,]</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 5 (EquationContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#maxLength</target>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- </factors>
-</experimentalDesign>
+ 12.3</value>
+ <value>
+ 70.9</value>
+ <value>
+ 21.0</value>
+ <value>
+ -12.1</value>
+ <value>
+ -8.45</value>
+ </enumeration>
+ </fixed>
+ </domain>
+ </factor>
+ <factor name="factor 3 (integer discrete)" property="discrete" type="integer">
+ <target>
+ fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength
+ </target>
+ <domain>
+ <fixed cardinality="1">
+ <enumeration>
+ <value>
+ 15</value>
+ </enumeration>
+ </fixed>
+ </domain>
+ </factor>
+ <factor name="factor 4 (MatrixContinuous)" property="matrixcontinuous" type="real">
+ <target>
+ fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength
+ </target>
+ <domain>
+ <fixed cardinality="0">
+ <range min="0.0" max="1.0" />
+ <matrix coefficient="0.1" operator="-">
+ [test1,[3, 2],[\"col1\", \"col2\"],[[null(), null(), null()], [null(), null()]],[[13.0, -14.0], [21.0,
+ 2.0], [12.0, -1.0]]]</matrix>
+ </fixed>
+ </domain>
+ </factor>
+ <factor name="factor 5 (EquationContinuous)" property="equationcontinuous" type="real">
+ <target>
+ fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#maxLength
+ </target>
+ <domain>
+ <fixed cardinality="0">
+ <range min="0.0" max="1.0" />
+ <equation variable="L1" operator="-" coefficient="0.1" reference="45.0" />
+ </fixed>
+ </domain>
+ </factor>
+ </factors>
+</experimentalDesign>
\ No newline at end of file
Deleted: isis-fish/trunk/src/test/resources/mexico/mexicohelper_scenarios.xml
===================================================================
--- isis-fish/trunk/src/test/resources/mexico/mexicohelper_scenarios.xml 2009-03-30 14:04:32 UTC (rev 2043)
+++ isis-fish/trunk/src/test/resources/mexico/mexicohelper_scenarios.xml 2009-03-30 14:18:23 UTC (rev 2044)
@@ -1,319 +0,0 @@
-<experimentalScenarios>
- <scenarios>
- <scenario>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>12.3</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>70.9</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>21.0</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>-12.1</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>-8.45</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>1.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>2.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>1.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 4 (MatrixContinuous)" property="continuous"
- type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>2.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 1 (double)" property="continuous"
- type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>0.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>50.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>0.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>50.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 3 (discrete matrix)" property="discrete">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>test1 matrix2D [
- 13.0,21.0,12.0,
- -14.0,2.0,-1.0,]</value>
- <domain>
- <fixed cardinality="1">
- <enumeration>
- <value>test1 matrix2D [
- 13.0,21.0,12.0,
- -14.0,2.0,-1.0,]</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>0.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>50.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>12.3</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>
- 70.9</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>21.0</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>
- fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>-12.1</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- <factor name="factor 2 (double)" property="discrete" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength</target>
- <value>-8.45</value>
- <domain>
- <fixed cardinality="5">
- <enumeration>
- <value>12.3</value>
- <value>70.9</value>
- <value>21.0</value>
- <value>-12.1</value>
- <value>-8.45</value>
- </enumeration>
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>1.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 4 (MatrixContinuous)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength</target>
- <value>2.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="1.0" max="2.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- <scenario>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>0.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- <factor name="factor 1 (double)" property="continuous" type="real">
- <target>fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength</target>
- <value>50.0</value>
- <domain>
- <fixed cardinality="0">
- <range min="0.0" max="50.0" />
- </fixed>
- </domain>
- </factor>
- </scenario>
- </scenarios>
-</experimentalScenarios>