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); }
/// <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()); }