public void MassTest() { // Using simple 100% abundances var provider = new MockElementProvider(); provider.OverwriteElement(new Element(1, "H", new[] { new Isotope(1, 0, 1.0) })); provider.OverwriteElement(new Element(8, "O", new[] { new Isotope(16, 8, 1.0) })); var formula = ChemicalFormula.Water(provider); var elements = formula.GetElements(); Assert.AreEqual(18, formula.GetMass(MassType.Monoisotopic)); Assert.AreEqual(18, formula.GetMass(MassType.Average)); // Switch to 75/25 provider.OverwriteElement(new Element(8, "O", new[] { new Isotope(16, 8, 0.75), new Isotope(17, 9, 0.25) })); formula = ChemicalFormula.Water(provider); elements = formula.GetElements(); Assert.AreEqual(18, formula.GetMass(MassType.Monoisotopic)); Assert.AreEqual(18.25, formula.GetMass(MassType.Average)); }