Added a second test for distribution
This commit is contained in:
parent
8676c3f9a7
commit
3eccdf9c4d
@ -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)]
|
||||||
|
Loading…
Reference in New Issue
Block a user