public void ExponentialDistributionGeneratorTest(double lambda,
                                                         double distributionEpsilon, double statEpsilon, int totalValues, int totalIntervals)
        {
            var dist      = new ExponentialDistribution(lambda);
            var generator = new ExponentialDistributionGenerator(dist);

            CheckAssert(
                generator, dist,
                distributionEpsilon, statEpsilon,
                totalValues, totalIntervals);
        }
示例#2
0
        /// <summary>
        /// Generates sequence that has exponential distribution
        /// </summary>
        /// <returns>Sequence that has exponential distribution</returns>
        public IEnumerable <double> GenerateDistribution()
        {
            var generator = new ExponentialDistributionGenerator(new ExponentialDistribution(Lambda));

            var uniformNormalizedSequence = Enumerable.Range(
                0, (int)(LengthApproximation / generator.Distribution.RightExpectedValue)
                ).Select(i => _random.NextDouble()).ToArray();

            if (uniformNormalizedSequence == null || uniformNormalizedSequence.Length == 0)
            {
                // never to reach this value
                return(Array.Empty <double>());
            }

            return(generator.GenerateSequence(uniformNormalizedSequence).ToArray());
        }