Example #1
0
        public virtual void TestGetProperties()
        {
            IMolecularFormula mf = Builder.NewMolecularFormula();

            mf.SetProperty("blabla", 2);
            mf.SetProperty("blabla3", 3);
            Assert.AreEqual(2, mf.GetProperties().Count());
        }
Example #2
0
        public virtual void TestSetProperty_Object_Object()
        {
            IMolecularFormula mf = Builder.NewMolecularFormula();

            mf.SetProperty("blabla", 2);
            Assert.IsNotNull(mf.GetProperty <object>("blabla"));
        }
Example #3
0
        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));
        }
Example #4
0
        /// <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);
        }