Added a second test for distribution

This commit is contained in:
Thorsten Sommer 2020-09-27 20:32:33 +02:00
parent 8676c3f9a7
commit 3eccdf9c4d

View File

@ -12,6 +12,30 @@ namespace FastRngTests.Double.Distributions
{ {
private readonly IRandom rng = new MultiThreadedRng(); private readonly IRandom rng = new MultiThreadedRng();
[Test]
[Category(TestCategories.COVER)]
[Category(TestCategories.NORMAL)]
public async Task TestUniformDistribution01()
{
const double A = 0.0;
const double B = 1.0;
const double MEAN = 0.5 * (A + B);
const double VARIANCE = (1.0 / 12.0) * (B - A) * (B - A);
var stats = new RunningStatistics();
var rng = new MultiThreadedRng();
for (var n = 0; n < 100_000; n++)
stats.Push(await rng.GetUniform());
rng.StopProducer();
TestContext.WriteLine($"mean={MEAN} vs. {stats.Mean}");
TestContext.WriteLine($"variance={VARIANCE} vs {stats.Variance}");
Assert.That(stats.Mean, Is.EqualTo(MEAN).Within(0.4), "Mean is out of range");
Assert.That(stats.Variance, Is.EqualTo(VARIANCE).Within(0.4), "Variance is out of range");
}
[Test] [Test]
[Category(TestCategories.COVER)] [Category(TestCategories.COVER)]
[Category(TestCategories.NORMAL)] [Category(TestCategories.NORMAL)]