Author: chatellier Date: 2009-03-11 17:14:53 +0000 (Wed, 11 Mar 2009) New Revision: 1948 Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java Log: Fix test 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-11 17:03:35 UTC (rev 1947) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-03-11 17:14:53 UTC (rev 1948) @@ -18,25 +18,35 @@ package fr.ifremer.isisfish.mexico; +import java.io.File; +import java.io.IOException; + import junit.framework.Assert; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixFactory; +import org.codelutin.math.matrix.MatrixND; +import org.codelutin.util.FileUtil; +import org.junit.Ignore; import org.junit.Test; +import fr.ifremer.TestUtils; import fr.ifremer.isisfish.simulator.sensitivity.DesignPlan; 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; /** - * TODO COMMENT ME. + * Test for MexicoHelper class. * * @author chatellier - * @version $Revision: 1.0 $ - * - * Last update : $Date: 5 mars 2009 $ - * By : $Author: chatellier $ + * @version $Revision: 1526 $ + * + * Last update: $Date: 2008-10-07 18:46:13 +0200 (mar 07 oct 2008) $ + * by : $Author: tchemit $ */ public class MexicoHelperTest { @@ -45,51 +55,86 @@ /** * Test method {@link MexicoHelper#getDesignPlanAsXML(DesignPlan)}. + * @throws IOException */ @Test - public void testGetDesignPlanAsXML() { + public void testGetDesignPlanAsXML() throws IOException { + // matrix 1 + MatrixND matrix1 = MatrixFactory.getInstance().create("test1", + new int[] { 3, 2 }, new String[] { "col1", "col2" }); + matrix1.setValue(new int[] { 0, 0 }, 13); + matrix1.setValue(new int[] { 0, 1 }, -14); + matrix1.setValue(new int[] { 1, 0 }, 21); + matrix1.setValue(new int[] { 1, 1 }, 2); + matrix1.setValue(new int[] { 2, 0 }, 12); + matrix1.setValue(new int[] { 2, 1 }, -1); + DesignPlan designPlan = new DesignPlan(); // factor 1 - Factor<Double> factor1 = new Factor<Double>("factor 1 (double)"); + Factor<Double> factorContinuous = new Factor<Double>("factor 1 (double)"); ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>(); domain1.setMinBound(0.0); domain1.setMaxBound(50.0); - factor1.setDomain(domain1); - factor1.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength"); + factorContinuous.setDomain(domain1); + factorContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength"); // factor 2 - Factor<Double> factor2 = new Factor<Double>("factor 2 (double)"); + Factor<Double> factorDiscrete = new Factor<Double>("factor 2 (double)"); DiscreteDomain<Double> domain2 = new DiscreteDomain<Double>(); domain2.getValues().put(0.0, 12.3); domain2.getValues().put(1.0, 70.9); domain2.getValues().put(2.0, 21.0); domain2.getValues().put(3.0, -12.1); domain2.getValues().put(4.0, -8.45); - factor2.setDomain(domain2); - factor2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength"); - factor2.setValue(3.0); + factorDiscrete.setDomain(domain2); + factorDiscrete.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength"); + factorDiscrete.setValue(3.0); // factor 3 - Factor<Double> factor3 = new Factor<Double>("factor 3 (double)"); - ContinuousDomain<Double> domain3 = new ContinuousDomain<Double>(); - domain3.setMinBound(12.0); - domain3.setMaxBound(99.0); - factor3.setDomain(domain3); - factor3.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength"); + Factor<MatrixND> factorContinuous2 = new Factor<MatrixND>("factor 3 (discrete matrix)"); + DiscreteDomain<MatrixND> domain3 = new DiscreteDomain<MatrixND>(); + domain3.getValues().put(0.0, matrix1); + factorContinuous2.setDomain(domain3); + factorContinuous2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength"); + + // factor 4 + Factor<Double> factorMatrixContinuous = new Factor<Double>("factor 4 (MatrixContinuous)"); + MatrixContinuousDomain<Double> domain4 = new MatrixContinuousDomain<Double>(); + domain4.setMinBound(1.0); + domain4.setMaxBound(2.0); + domain4.setMatrix(matrix1); + domain4.setOperator("-"); + factorMatrixContinuous.setDomain(domain4); + factorMatrixContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength"); + + // factor 5 + Factor<Double> factorEquationContinuous = new Factor<Double>("factor 5 (EquationContinuous)"); + EquationContinuousDomain<Double> domain5 = new EquationContinuousDomain<Double>(); + domain5.setMinBound(1.0); + domain5.setMaxBound(2.0); + domain5.setVariableName("L1"); + domain5.setOperator("-"); + factorEquationContinuous.setDomain(domain5); + factorEquationContinuous.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#maxLength"); - designPlan.getFactors().add(factor1); - designPlan.getFactors().add(factor2); - designPlan.getFactors().add(factor3); + designPlan.getFactors().add(factorContinuous); + designPlan.getFactors().add(factorDiscrete); + designPlan.getFactors().add(factorContinuous2); + designPlan.getFactors().add(factorMatrixContinuous); + designPlan.getFactors().add(factorEquationContinuous); // test xml export String xml = MexicoHelper.getDesignPlanAsXML(designPlan); + Assert.assertTrue(xml.indexOf("<factor name=\"factor 2 (double)\"") != -1); - Assert.assertTrue(xml.indexOf("<value label=\"0.0\">12.3</value>") != -1); - Assert.assertTrue(xml.indexOf("<value label=\"min\">12.0</value>") != -1); + //Assert.assertTrue(xml.indexOf("<range min=\"12.0\" max=\"99.0\" />") != -1); + Assert.assertTrue(xml.indexOf("<value>70.9</value>") != -1); - if (log.isInfoEnabled()) { + if (log.isDebugEnabled()) { + xml = xml.replaceAll(">", ">\n"); + FileUtil.writeString(new File(TestUtils.getTargetdir(),"mexicohelper_factors.xml"), xml); log.info("Designplan xml = " + xml); } }