public virtual void TestGetProperties() { IMolecularFormula mf = Builder.NewMolecularFormula(); mf.SetProperty("blabla", 2); mf.SetProperty("blabla3", 3); Assert.AreEqual(2, mf.GetProperties().Count()); }
public virtual void TestSetProperty_Object_Object() { IMolecularFormula mf = Builder.NewMolecularFormula(); mf.SetProperty("blabla", 2); Assert.IsNotNull(mf.GetProperty <object>("blabla")); }
public virtual void TestRemoveProperty_Object() { IMolecularFormula mf = Builder.NewMolecularFormula(); string blabla = "blabla"; double number = 2; mf.SetProperty(blabla, number); Assert.IsNotNull(mf.GetProperty <object>(blabla)); mf.RemoveProperty("blabla"); Assert.IsNull(mf.GetProperty <object>(blabla)); }
/// <summary> /// Validate if a <see cref="IMolecularFormula"/> is valid. The results of each <see cref="IRule"/> which /// has to be applied is put into <see cref="IMolecularFormula"/> as properties. To extract /// the result final as the product of rule's result use /// <see cref="IsValidSum(IMolecularFormula)"/>. /// </summary> /// <param name="formula">The IMolecularFormula value</param> /// <returns>The <see cref="IMolecularFormula"/> with the results for each <see cref="IRule"/> into properties</returns> /// <seealso cref="IsValidSum(IMolecularFormula)"/> public IMolecularFormula IsValid(IMolecularFormula formula) { Trace.TraceInformation("Generating the validity of the molecular formula"); if (formula.IsotopesCount == 0) { Trace.TraceError("Proposed molecular formula has not elements"); return(formula); } try { foreach (var rule in rules) { double result = rule.Validate(formula); formula.SetProperty(rule.GetType().ToString(), result); } } catch (CDKException e) { Console.Error.WriteLine(e.StackTrace); } return(formula); }