/** * Validate if a IMolecularFormula is valid. The result more close to 1 means * maximal probability to be valid. Opposite more close to 0 means minimal * probability to be valid. To know the result in each IRule use * {@link #isValid(IMolecularFormula)} * * @param formula The IMolecularFormula value * @return The percent of the validity * @see #isValid(IMolecularFormula) */ public Double isValidSum(IMolecularFormula formula) { double result = 1.0; IMolecularFormula formulaWith = isValid(formula); Map<Object, Object> properties = formulaWith.getProperties(); Iterator<IRule> iterRules = rules.iterator(); while (iterRules.hasNext()) { result *= (Double) properties.get(iterRules.next().getClass()); } return result; }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testGetRules() { MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(new ArrayList<IRule>()); Assert.assertNotNull(MFChecker.getRules()); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValid_NOT() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 100); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); IMolecularFormula formulaWith = MFChecker.isValid(formula); Assert.assertEquals(0.0, formulaWith.getProperty((new MMElementRule()).getClass())); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValidSum_IMolecularFormula() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 100); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); Assert.assertEquals(0.0, MFChecker.isValidSum(formula), 0.001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testMolecularFormulaChecker_List() { Assert.assertNotNull(new MolecularFormulaChecker(new ArrayList<IRule>())); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValid_NOT_2Rules() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 100); formula.setCharge(0); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); rules.add(new ChargeRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); IMolecularFormula formulaWith = MFChecker.isValid(formula); Assert.assertEquals(0.0, formulaWith.getProperty((new MMElementRule()).getClass())); Assert.assertEquals(1.0, formulaWith.getProperty((new ChargeRule()).getClass())); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValidSum_True_2Rules() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 4); formula.setCharge(0); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); rules.add(new ChargeRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); Assert.assertEquals(1.0, MFChecker.isValidSum(formula), 0.001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValid_True_2Rules() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 4); formula.setCharge(0); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); rules.add(new ChargeRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); IMolecularFormula formulaWith = MFChecker.isValid(formula); Assert.assertEquals(1.0, formulaWith.getProperty((new MMElementRule()).getClass())); Assert.assertEquals(1.0, formulaWith.getProperty((new ChargeRule()).getClass())); } }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testIsValid_IMolecularFormula() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(ifac.getMajorIsotope("C"), 1); formula.addIsotope(ifac.getMajorIsotope("H"), 100); formula.setCharge(0); List<IRule> rules = new ArrayList<IRule>(); rules.add(new MMElementRule()); rules.add(new ChargeRule()); MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); Assert.assertEquals(0.0, MFChecker.isValidSum(formula), 0.001); }