/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testElementRule() throws Exception { IRule rule = new ElementRule(); Assert.assertNotNull(rule); }
/** * Validate the occurrence of this IMolecularFormula. * * @param formula Parameter is the IMolecularFormula * @return An ArrayList containing 9 elements in the order described above */ @Override public double validate(IMolecularFormula formula) throws CDKException { logger.info("Start validation of ", formula); ensureDefaultOccurElements(formula.getBuilder()); double isValid = 1.0; Iterator<IElement> itElem = MolecularFormulaManipulator.elements(formula).iterator(); while (itElem.hasNext()) { IElement element = itElem.next(); int occur = MolecularFormulaManipulator.getElementCount(formula, element); IIsotope elemIsotope = formula.getBuilder().newInstance(IIsotope.class, element.getSymbol()); if ((occur < mfRange.getIsotopeCountMin(elemIsotope)) || (occur > mfRange.getIsotopeCountMax(elemIsotope))) { isValid = 0.0; break; } } return isValid; }
mfRange1.addIsotope(ifac.getMajorIsotope("O"), 0, 15); IRule rule = new ElementRule(); Object[] params = new Object[1]; params[0] = mfRange1;
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testDefaultValidTrue() throws Exception { IRule rule = new ElementRule(); IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 2); formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 6); Assert.assertEquals(1.0, rule.validate(formula), 0.0001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testDefaultValidFalse() throws Exception { IRule rule = new ElementRule(); IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 2); formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 200); Assert.assertEquals(0.0, rule.validate(formula), 0.0001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testDefaultValidFalse_SetParam() throws Exception { IRule rule = new ElementRule(); IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 2); formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 6); Object[] params = new Object[1]; MolecularFormulaRange mfRange = new MolecularFormulaRange(); mfRange.addIsotope(builder.newInstance(IIsotope.class, "C"), 1, 2); mfRange.addIsotope(builder.newInstance(IIsotope.class, "H"), 1, 2); params[0] = mfRange; rule.setParameters(params); Assert.assertEquals(0.0, rule.validate(formula), 0.0001); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testDefault() throws Exception { IRule rule = new ElementRule(); Object[] objects = rule.getParameters(); // MolecularFormulaRange needs a build to create isotopes Assert.assertEquals(1, objects.length); Assert.assertNull(objects[0]); // when we do a validation... rule.validate(new MolecularFormula()); // a default option is created objects = rule.getParameters(); Assert.assertEquals(1, objects.length); Assert.assertNotNull(objects[0]); MolecularFormulaRange mfRange = (MolecularFormulaRange) objects[0]; Assert.assertEquals(93, mfRange.getIsotopeCount()); Assert.assertEquals(0, mfRange.getIsotopeCountMin(new Isotope("C"))); Assert.assertEquals(50, mfRange.getIsotopeCountMax(new Isotope("C"))); }
/** * A unit test suite for JUnit. * * @return The test suite */ @Test public void testSetParameters() throws Exception { IRule rule = new ElementRule(); Object[] params = new Object[1]; MolecularFormulaRange mfRange = new MolecularFormulaRange(); mfRange.addIsotope(builder.newInstance(IIsotope.class, "C"), 1, 10); mfRange.addIsotope(builder.newInstance(IIsotope.class, "H"), 1, 10); params[0] = mfRange; rule.setParameters(params); Object[] objects = rule.getParameters(); Assert.assertEquals(1, objects.length); MolecularFormulaRange mfRange2 = (MolecularFormulaRange) objects[0]; Assert.assertEquals(mfRange.getIsotopeCount(), mfRange2.getIsotopeCount()); Assert.assertEquals(mfRange.getIsotopeCountMin(new Isotope("C")), mfRange2.getIsotopeCountMin(new Isotope("C"))); Assert.assertEquals(mfRange.getIsotopeCountMax(new Isotope("C")), mfRange2.getIsotopeCountMax(new Isotope("C"))); }