MolecularFormulaManipulator { public static IMolecularFormula getMolecularFormula(String stringMF, IChemObjectBuilder builder) { return getMolecularFormula(stringMF, false, builder); }  static int getAtomCount(IMolecularFormula formula); static int getElementCount(IMolecularFormula formula, IElement element); static int getElementCount(IMolecularFormula formula, IIsotope isotope); static int getElementCount(IMolecularFormula formula, String symbol); static List<IIsotope> getIsotopes(IMolecularFormula formula, IElement element); static List<IElement> elements(IMolecularFormula formula); static boolean containsElement(IMolecularFormula formula, IElement element); static IMolecularFormula removeElement(IMolecularFormula formula, IElement element); static String getString(IMolecularFormula formula, String[] orderElements,
                                   boolean setOne); static String getString(IMolecularFormula formula, String[] orderElements,
                                   boolean setOne, boolean setMassNumber); static String getString(IMolecularFormula formula); static String getString(IMolecularFormula formula, boolean setOne); static String getString(IMolecularFormula formula, boolean setOne, boolean setMassNumber); static List<IIsotope> putInOrder(String[] orderElements, IMolecularFormula formula); @Deprecated static String getHillString(IMolecularFormula formula); static String getHTML(IMolecularFormula formula); static String getHTML(IMolecularFormula formula, boolean chargeB, boolean isotopeB); static String getHTML(IMolecularFormula formula, String[] orderElements, boolean showCharge, boolean showIsotopes); static IMolecularFormula getMolecularFormula(String stringMF, IChemObjectBuilder builder); static IMolecularFormula getMajorIsotopeMolecularFormula(String stringMF, IChemObjectBuilder builder); static IMolecularFormula getMolecularFormula(String stringMF, IMolecularFormula formula); @Deprecated static double getTotalExactMass(IMolecularFormula formula); static double getTotalMassNumber(IMolecularFormula formula); static double getMass(IMolecularFormula mf, int flav); static double getMass(IMolecularFormula mf); @Deprecated static double getNaturalExactMass(IMolecularFormula formula); @Deprecated static double getMajorIsotopeMass(IMolecularFormula formula); static double getTotalNaturalAbundance(IMolecularFormula formula); static double getDBE(IMolecularFormula formula); static IMolecularFormula getMolecularFormula(IAtomContainer atomContainer); static IMolecularFormula getMolecularFormula(IAtomContainer atomContainer, IMolecularFormula formula); static IAtomContainer getAtomContainer(IMolecularFormula formula); static IAtomContainer getAtomContainer(IMolecularFormula formula, IAtomContainer atomContainer); static IAtomContainer getAtomContainer(String formulaString, IChemObjectBuilder builder); static String[] generateOrderEle(); static boolean compare(IMolecularFormula formula1, IMolecularFormula formula2); static List<IElement> getHeavyElements(IMolecularFormula formula); static String simplifyMolecularFormula(String formula); static boolean adjustProtonation(IMolecularFormula mf, int hcnt); static IMolecularFormula getMostAbundant(IMolecularFormula mf); static IMolecularFormula getMostAbundant(IAtomContainer mol); static final int MolWeight; static final int MolWeightIgnoreSpecified; static final int MonoIsotopic; static final int MostAbundant; static final Comparator<IIsotope> NAT_ABUN_COMP; }
@Test public void testGetString__String_IMolecularFormula() { Assert.assertNotNull(MolecularFormulaManipulator.getMolecularFormula("C10H16", new MolecularFormula())); Assert.assertNotNull(MolecularFormulaManipulator.getMolecularFormula("C10H16", builder)); IMolecularFormula formula = MolecularFormulaManipulator.getMolecularFormula("O3(Fe(O2))3", builder); Assert.assertEquals( formula.getIsotopeCount( new Atom("Fe") ), 3); Assert.assertEquals( formula.getIsotopeCount( new Atom("O") ), 9); }
@Test public void testGetMolecularFormula_IAtomNullCharge() { IAtomContainer ac = builder.newInstance(IAtomContainer.class); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.getAtom(0).setFormalCharge((Integer) CDKConstants.UNSET); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); IMolecularFormula mf1 = MolecularFormulaManipulator.getMolecularFormula(ac); Assert.assertNotNull(mf1); }
@Test public void testGetMolecularFormula_IAtomContainer_withCharge() { IAtomContainer ac = builder.newInstance(IAtomContainer.class); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.getAtom(0).setFormalCharge(1); ac.addAtom(builder.newInstance(IAtom.class, "C")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); ac.addAtom(builder.newInstance(IAtom.class, "H")); IMolecularFormula mf1 = MolecularFormulaManipulator.getMolecularFormula(ac); Assert.assertEquals(1, mf1.getCharge(), 0.000); }
@Test public void acceptMinusAsInput() throws Exception { IChemObjectBuilder bldr = SilentChemObjectBuilder.getInstance(); IMolecularFormula mf = MolecularFormulaManipulator.getMolecularFormula("[PO4]3–", bldr); assertThat(mf.getCharge(), is(-3)); }