Beispiel #1
0
        public NormalDetector(double?lowerDeviationFactor = 3.0, double?upperDeviationFactor = 3.0)
        {
            DetectorUtils.EnsureCast <V, double>();

            if (lowerDeviationFactor == null && upperDeviationFactor == null)
            {
                throw new ArgumentException("At least one of the deviation factors must be set.");
            }

            if (lowerDeviationFactor < 0 || upperDeviationFactor < 0)
            {
                string message = String.Format(
                    "Deviation factors must be positive, received: lower {}; upper {}",
                    lowerDeviationFactor, upperDeviationFactor);
                throw new ArgumentException(message);
            }

            LowerDeviationFactor = lowerDeviationFactor;
            UpperDeviationFactor = upperDeviationFactor;
        }
Beispiel #2
0
        public IqrDetector(double?lowerPercentileRank = 25.0, double?upperPercentileRank = 75.0)
        {
            DetectorUtils.EnsureCast <V, double>();

            if (lowerPercentileRank == null || upperPercentileRank == null)
            {
                throw new ArgumentException("Both percentile ranks must be set.");
            }

            if (lowerPercentileRank < 0 || lowerPercentileRank > 100 ||
                upperPercentileRank < 0 || upperPercentileRank > 100)
            {
                string message = String.Format(
                    "Percentile must be between 0 and 100, received: lower {}; upper {}",
                    lowerPercentileRank, upperPercentileRank);
                throw new ArgumentException(message);
            }

            LowerPercentileRank = lowerPercentileRank ?? 0.0;
            UpperPercentileRank = upperPercentileRank ?? 100.0;
        }