public void SettingsChangeMassCalcProps() { SrmDocument docFasta = CreateMixedDoc(); SrmSettings settings = docFasta.Settings; // Use average precursor masses SrmDocument docFasta2 = docFasta.ChangeSettings(settings.ChangeTransitionPrediction( p => p.ChangePrecursorMassType(MassType.Average))); // Average masses should be heavier that monoisotipic, and transitions should be unchanged CheckMasses(docFasta, docFasta2, (before, after) => Assert.IsTrue(before < after), Assert.AreEqual); // Use average fragment masses settings = docFasta2.Settings.ChangeTransitionInstrument(instrument => instrument.ChangeMaxMz(1501)); // Keep all the new heavy transitions SrmDocument docFasta3 = docFasta2.ChangeSettings(settings.ChangeTransitionPrediction( p => p.ChangeFragmentMassType(MassType.Average))); // Precursor masses should not have changed, and transitions should be heavier CheckMasses(docFasta2, docFasta3, Assert.AreEqual, (before, after) => Assert.IsTrue(before < after)); // Change both back to all monoisotopic settings = docFasta3.Settings; SrmDocument docFasta4 = docFasta3.ChangeSettings(settings.ChangeTransitionPrediction( p => p.ChangePrecursorMassType(MassType.Monoisotopic).ChangeFragmentMassType(MassType.Monoisotopic))); // This should return the masses to their original values CheckMasses(docFasta, docFasta4, Assert.AreEqual, Assert.AreEqual); // TODO: Static modifications }