/// <summary>
        /// Try Parse the value.
        /// </summary>
        /// <param name="val">The Value.</param>
        /// <param name="result">Sufficient Statistics result.</param>
        /// <returns>Returns true if parsed properly.</returns>
        new public static bool TryParse(string val, out SufficientStatistics result)
        {
            result = null;
            if (string.IsNullOrEmpty(val))
            {
                result = GetMissingInstance;
                return(false);
            }
            else
            {
                string[] fields = val.Split(',');
                if (!(fields.Length == 3))
                {
                    return(false);
                }
                double mean, variance;
                int    sampleSize;

                if (double.TryParse(fields[0], out mean) &&
                    double.TryParse(fields[1], out variance) &&
                    int.TryParse(fields[2], out sampleSize))
                {
                    result = GaussianStatistics.GetInstance(mean, variance, sampleSize);
                    return(true);
                }

                return(false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Compares object with Is Missing.
        /// </summary>
        /// <param name="stats">Sufficient Statistics.</param>
        /// <returns>Returns true if fount equals.</returns>
        public override bool Equals(SufficientStatistics stats)
        {
            if (stats == null)
            {
                return(false);
            }

            return(stats.IsMissing());
        }
        /// <summary>
        /// Compares object with Sufficient Statistics.
        /// </summary>
        /// <param name="obj">The Object.</param>
        /// <returns>Returns true if fount equals.</returns>
        public override bool Equals(object obj)
        {
            SufficientStatistics stats = obj as SufficientStatistics;

            if (stats != null)
            {
                return(Equals(stats));
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Try Parse the value.
        /// </summary>
        /// <param name="val">The Value.</param>
        /// <param name="result">Sufficient Statistics result.</param>
        /// <returns>Returns true if parsed properly.</returns>
        new public static bool TryParse(string val, out SufficientStatistics result)
        {
            result = null;

            if (string.IsNullOrEmpty(val) ||
                val.Equals("missing", StringComparison.CurrentCultureIgnoreCase) ||
                val.Equals("?", StringComparison.CurrentCultureIgnoreCase))
            {
                result = GetInstance;
            }

            return(result != null);
        }
        /// <summary>
        /// Compares a given SufficientStatistics object with the current object.
        /// </summary>
        /// <param name="stats">SufficientStatistics object to be compared.</param>
        /// <returns>True if both the objects are equal.</returns>
        public override bool Equals(SufficientStatistics stats)
        {
            if (stats == null)
            {
                throw new ArgumentNullException("stats");
            }

            if (IsMissing() && stats.IsMissing())
            {
                return(true);
            }

            return(this.AsGaussianStatistics().Equals(stats));  // let the most general class decide
        }
        /// <summary>
        /// Try to Parse the value.
        /// </summary>
        /// <param name="val">The value.</param>
        /// <param name="result">Sufficient Statistics result.</param>
        /// <returns>Returns true if parsed properly.</returns>
        new public static bool TryParse(string val, out SufficientStatistics result)
        {
            int valAsInt;

            if (int.TryParse(val, out valAsInt))
            {
                result = DiscreteStatistics.GetInstance(valAsInt);
                return(true);
            }
            else
            {
                result = null;
                return(false);
            }
        }
        /// <summary>
        /// Try Parse.
        /// </summary>
        /// <param name="val">Value String.</param>
        /// <param name="result">Sufficient Statistics.</param>
        /// <returns>Return true in parsed properly.</returns>
        new public static bool TryParse(string val, out SufficientStatistics result)
        {
            double valAsDouble;

            if (double.TryParse(val, out valAsDouble))
            {
                result = ContinuousStatistics.GetInstance(valAsDouble);
                return(true);
            }
            else
            {
                result = null;
                return(false);
            }
        }
        /// <summary>
        /// Compares Sufficient Statistics.
        /// </summary>
        /// <param name="stats">Sufficient Statistics.</param>
        /// <returns>Returns true if equal.</returns>
        public override bool Equals(SufficientStatistics stats)
        {
            if (stats == null)
            {
                return(false);
            }

            if (IsMissing() && stats.IsMissing())
            {
                return(true);
            }

            GaussianStatistics gaussStats = stats.AsGaussianStatistics();

            return(_mean == gaussStats._mean && _variance == gaussStats._variance && _sampleSize == gaussStats._sampleSize);
        }
        /// <summary>
        /// Compares a given SufficientStatistics object with the current object.
        /// </summary>
        /// <param name="stats">SufficientStatistics object to be compared</param>
        /// <returns>True if both the objects are equal.</returns>
        public override bool Equals(SufficientStatistics stats)
        {
            if (stats == null)
            {
                throw new ArgumentNullException("stats");
            }

            if (stats.IsMissing())
            {
                return(IsMissing());
            }
            else if (stats is BooleanStatistics)
            {
                return(_value == stats.AsBooleanStatistics()._value);
            }
            else
            {
                return(stats.Equals(this));
            }
        }
        /// <summary>
        /// Try converting the given string into SufficientStatistics object.
        /// </summary>
        /// <param name="val">string to be converted.</param>
        /// <param name="result">SufficentStatistics object which corresponding to the given string.</param>
        /// <returns>Whether string was successfully converted.</returns>
        new public static bool TryParse(string val, out SufficientStatistics result)
        {
            if (string.IsNullOrEmpty(val))
            {
                throw new ArgumentNullException("val");
            }

            result = null;
            if (val.Equals("true", StringComparison.CurrentCultureIgnoreCase) || val == "1")
            {
                result = BooleanStatistics.GetInstance(true);
            }
            else if (val.Equals("false", StringComparison.CurrentCultureIgnoreCase) || val == "0")
            {
                result = BooleanStatistics.GetInstance(false);
            }
            else if (val.Equals("null", StringComparison.CurrentCultureIgnoreCase) || val == "-1")
            {
                result = BooleanStatistics.GetMissingInstance;
            }
            return(result != null);
        }
        /// <summary>
        /// Compares Sufficient Statistics with Discrete Statistics and Boolean Statistics.
        /// </summary>
        /// <param name="stats">Sufficient Statistics.</param>
        /// <returns>Returns true if equal.</returns>
        public override bool Equals(SufficientStatistics stats)
        {
            if (stats == null)
            {
                return(false);
            }

            if (IsMissing() && stats.IsMissing())
            {
                return(true);
            }
            else if (stats is DiscreteStatistics)
            {
                return(this.Value == stats.AsDiscreteStatistics().Value);
            }
            else if (stats is BooleanStatistics)
            {
                return(this.Value == stats.AsDiscreteStatistics().Value);
            }
            else
            {
                return(stats.Equals(this));
            }
        }