private (double expectedValue, double variance, double standardDeviation, IEnumerable <double> distribution) Core( UniformNormalizedBasedGenerator generator, int totalValues, int totalIntervals, IEnumerable <double> uniformNormalizedSeq) { var newNotNormalizedSeq = generator.GenerateSequence(uniformNormalizedSeq); (double expVal, double variance, double standardDeviation) = StatisticsGenerator.GetStatistics(newNotNormalizedSeq); var dist = generator.Distribution; double begin = dist.MinValue; double end = dist.MaxValue; var distribution = SequenceHelper.GetDistribution(newNotNormalizedSeq, begin, end, totalIntervals) .Select(i => i / (double)totalValues).ToArray(); return(expVal, variance, standardDeviation, distribution); }
private void CheckAssert(UniformNormalizedBasedGenerator generator, NotNormalizedDistribution dist, double distributionEpsilon, double statEpsilon, int totalValues, int totalIntervals) { // var uniformNotNormalizedSeq = new LehmerGenerator(_multiplier, _initialValue, _divider) .GenerateSequence(totalValues); var uniformNormalizedSeq = SequenceHelper.Normalize(uniformNotNormalizedSeq, _divider); // var newNotNormalizedSeq = generator.GenerateSequence(uniformNormalizedSeq); (double expVal, double variance, _) = StatisticsGenerator.GetStatistics(newNotNormalizedSeq); double begin = dist.MinValue; double end = dist.MaxValue; var distribution = SequenceHelper.GetDistribution(newNotNormalizedSeq, begin, end, totalIntervals) .Select(i => i / (double)totalValues).ToArray(); var distResults = dist.EstimateDistribution(distribution, distributionEpsilon); var statResults = dist.EstimateStatistics(expVal, variance, statEpsilon); Assert.IsTrue(distResults && statResults); }