public void TestGetMinOccurrenceElements_IMolecularFormulaSet() { var mf1 = new MolecularFormula(); /* C4H12NO4 */ mf1.Add(builder.NewIsotope("C"), 4); mf1.Add(builder.NewIsotope("H"), 12); mf1.Add(builder.NewIsotope("N"), 1); mf1.Add(builder.NewIsotope("O"), 4); var mf2 = new MolecularFormula(); /* C7H20N4O2 */ mf2.Add(builder.NewIsotope("C"), 7); mf2.Add(builder.NewIsotope("H"), 20); mf2.Add(builder.NewIsotope("N"), 4); mf2.Add(builder.NewIsotope("O"), 2); var mf3 = new MolecularFormula(); /* C9H5O7 */ mf3.Add(builder.NewIsotope("C"), 9); mf3.Add(builder.NewIsotope("H"), 5); mf3.Add(builder.NewIsotope("O"), 7); var mfSet = new MolecularFormulaSet { mf1, mf2, mf3 }; var molecularFormula = MolecularFormulaSetManipulator.GetMinOccurrenceElements(mfSet); /* Result: C4H5NO2 */ Assert.AreEqual(12, MolecularFormulaManipulator.GetAtomCount(molecularFormula)); Assert.AreEqual(4, molecularFormula.Isotopes.Count()); Assert.AreEqual(4, molecularFormula.GetCount(builder.NewIsotope("C"))); Assert.AreEqual(5, molecularFormula.GetCount(builder.NewIsotope("H"))); Assert.AreEqual(1, molecularFormula.GetCount(builder.NewIsotope("N"))); Assert.AreEqual(2, molecularFormula.GetCount(builder.NewIsotope("O"))); }