/** * True, if the IMolecularFormulaSet contains the given IMolecularFormula but not * as object. It compare according contains the same number and type of Isotopes. * It is not based on compare objects. * * @param formulaSet The IMolecularFormulaSet * @param formula The IMolecularFormula this IMolecularFormulaSet is searched for * @return True, if the IMolecularFormulaSet contains the given formula * * @see IMolecularFormulaSet#contains(IMolecularFormula) */ public static boolean contains(IMolecularFormulaSet formulaSet, IMolecularFormula formula) { for (IMolecularFormula fm : formulaSet.molecularFormulas()) { if (MolecularFormulaManipulator.compare(fm, formula)) { return true; } } return false; }
private void addDistinctFormula(IsotopeContainer container, IMolecularFormula mf) { for (IMolecularFormula curr : container.getFormulas()) if (MolecularFormulaManipulator.compare(curr, mf)) return; container.addFormula(mf); }
@Test public void testCompare_NumberIsotope() { IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula2 = new MolecularFormula(); formula2.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula2.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula3 = new MolecularFormula(); formula3.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula3.addIsotope(builder.newInstance(IIsotope.class, "H"), 3); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, formula2)); Assert.assertFalse(MolecularFormulaManipulator.compare(formula1, formula3)); }
/** Test if formula-comparison is simplify-independant */ @Test public void test6() { String formula = "(CH3)2"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 2); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 6); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("C2H6", MolecularFormulaManipulator.getString(ff)); }
@Test public void testCompare_Charge() { IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula2 = new MolecularFormula(); formula2.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula2.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula3 = new MolecularFormula(); formula3.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula3.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); formula3.setCharge(0); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, formula2)); Assert.assertFalse(MolecularFormulaManipulator.compare(formula1, formula3)); }
@Test public void testCompare_IMolecularFormula_IMolecularFormula() { IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula2 = new MolecularFormula(); formula2.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula2.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); IMolecularFormula formula3 = new MolecularFormula(); formula3.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); IIsotope hyd = builder.newInstance(IIsotope.class, "H"); hyd.setExactMass(2.002334234); formula3.addIsotope(hyd, 2); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, formula2)); Assert.assertFalse(MolecularFormulaManipulator.compare(formula1, formula3)); }
@Test public void testSimplifygetMF() { String formula = "CH4.H2O"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 6); formula1.addIsotope(builder.newInstance(IIsotope.class, "O"), 1); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("CH6O", MolecularFormulaManipulator.getString(ff)); }
/** Test if formula-comparison is simplify-independant */ @Test public void test5() { String formula = "[SO3]2-"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "S"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "O"), 3); formula1.setCharge(-2); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("[O3S]2-", MolecularFormulaManipulator.getString(ff)); Assert.assertEquals(-2, ff.getCharge(), 0.00001); }
/** Test if formula-comparison is simplify-independant */ @Test public void test4() { String formula = "(C27H33N3O8)2.2HNO3.3H2O"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 54); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 74); formula1.addIsotope(builder.newInstance(IIsotope.class, "O"), 25); formula1.addIsotope(builder.newInstance(IIsotope.class, "N"), 8); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("C54H74N8O25", MolecularFormulaManipulator.getString(ff)); }
/** Test if formula-comparison is simplify-independant */ @Test public void testWithH_Initial() { String formula = "HC5H11NO2H"; IMolecularFormula formula1 = new MolecularFormula(); formula1.addIsotope(builder.newInstance(IIsotope.class, "C"), 5); formula1.addIsotope(builder.newInstance(IIsotope.class, "H"), 13); formula1.addIsotope(builder.newInstance(IIsotope.class, "N"), 1); formula1.addIsotope(builder.newInstance(IIsotope.class, "O"), 2); IMolecularFormula ff = MolecularFormulaManipulator.getMolecularFormula(formula, builder); Assert.assertTrue(MolecularFormulaManipulator.compare(formula1, MolecularFormulaManipulator.getMolecularFormula(formula, builder))); Assert.assertEquals("C5H13NO2", MolecularFormulaManipulator.getString(ff)); }