Author: chatellier Date: 2010-01-28 09:48:10 +0000 (Thu, 28 Jan 2010) New Revision: 2954 Added: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/RuleDomain.java Modified: isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java Log: Add rule domain Added: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/RuleDomain.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/RuleDomain.java (rev 0) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/RuleDomain.java 2010-01-28 09:48:10 UTC (rev 2954) @@ -0,0 +1,43 @@ +/* *##% + * Copyright (C) 2010 Ifremer, Code Lutin, Chatellier Eric + * + * 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.sensitivity.domain; + +import java.io.Serializable; +import java.util.Collection; + +import fr.ifremer.isisfish.rule.Rule; + +/** + * Factor domain for {@link Rule}s. + * + * @param <F> type des labels + * + * @author chatellier + * @version $Revision$ + * @since 3.3.0.0 + * + * Last update : $Date$ + * By : $Author$ + */ +public class RuleDomain<F extends Serializable> extends DiscreteDomain<Collection<Rule>, F> { + + /** serialVersionUID. */ + private static final long serialVersionUID = -5611785362638191719L; + +} Property changes on: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/RuleDomain.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Modified: isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java =================================================================== --- isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java 2010-01-28 09:47:57 UTC (rev 2953) +++ isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java 2010-01-28 09:48:10 UTC (rev 2954) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2009 Ifremer - Code Lutin + * Copyright (C) 2009-2010 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 @@ -18,17 +18,24 @@ package fr.ifremer.isisfish.simulator.sensitivity; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Test; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; -import org.junit.Assert; -import org.junit.Test; +import fr.ifremer.isisfish.rule.Rule; +import fr.ifremer.isisfish.rule.RuleMock; 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.domain.RuleDomain; /** * Factors test. @@ -304,4 +311,37 @@ log.info("factor#toString() = " + factor); } } + + /** + * Test factor with matrix. + * + * @see MatrixND + */ + @Test + public void testRuleFactor() { + + // available rules + Rule ruleA = new RuleMock("hour restriction"); + Rule ruleB = new RuleMock("zone restriction"); + Rule ruleC = new RuleMock("ship number restriction"); + + // rules set + Collection<Rule> rules1 = new ArrayList<Rule>(); // 0 rule + Collection<Rule> rules2 = new ArrayList<Rule>(); // 1 rule + rules2.add(ruleA); + Collection<Rule> rules3 = new ArrayList<Rule>(); // 3 rule + rules3.add(ruleA); + rules3.add(ruleB); + rules3.add(ruleC); + + // factor and domain definition + Factor<Collection<Rule>, String> factor = new Factor<Collection<Rule>, String>("testrule"); + RuleDomain<String> ruleDomain = new RuleDomain<String>(); + ruleDomain.getValues().put("rules1", rules1); + ruleDomain.getValues().put("rules2", rules2); + ruleDomain.getValues().put("rules3", rules3); + factor.setDomain(ruleDomain); + + // TODO post r operation, and some asserts + } }