Refactored NextNumber into distributions

This commit is contained in:
tsommer committed 2020-11-07 15:46:00 +01:00
1 parent 44abcc48b6
commit 0f724991cd
58 files changed
+417 -332

No files matched your search

@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA2B2(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA2B2(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA2B5(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA2B5(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA5B2(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.BetaA5B2(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -23,7 +23,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -55,7 +55,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.CauchyLorentzX0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -70,7 +70,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.CauchyLorentzX0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -23,7 +23,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -55,7 +55,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.CauchyLorentzX0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -70,7 +70,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.CauchyLorentzX0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -21,7 +21,7 @@ namespace FastRngTests.Double.Distributions
for (var n = 0; n < 100_000; n++)
{
var value = await rng.NextNumber(dist);
var value = await dist.NextNumber();
fqa.CountThis(value);
}
@@ -55,7 +55,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -70,7 +70,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -21,7 +21,7 @@ namespace FastRngTests.Double.Distributions
for (var n = 0; n < 100_000; n++)
{
var value = await rng.NextNumber(dist);
var value = await dist.NextNumber();
fqa.CountThis(value);
}
@@ -55,7 +55,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -70,7 +70,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK4(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ChiSquareK4(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ExponentialLa10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ExponentialLa10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ExponentialLa5(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.ExponentialLa5(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.GammaA5B15(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.GammaA5B15(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseExponentialLa10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseExponentialLa10(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fqa.CountThis(await rng.NextNumber(dist));
fqa.CountThis(await dist.NextNumber());
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseExponentialLa5(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseExponentialLa5(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseGammaA3B05(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.InverseGammaA3B05(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LaplaceB01M0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LaplaceB01M0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LaplaceB01M05(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LaplaceB01M05(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LogNormalS1M0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.LogNormalS1M0(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -25,7 +25,7 @@ namespace FastRngTests.Double.Distributions
for (var n = 0; n < 100_000; n++)
{
var nextNumber = await rng.NextNumber(dist);
var nextNumber = await dist.NextNumber();
stats.Push(nextNumber);
fra.CountThis(nextNumber);
}
@@ -48,7 +48,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.NormalS02M05(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -63,7 +63,7 @@ namespace FastRngTests.Double.Distributions
var samples = new double[1_000];
var dist = new FastRng.Double.Distributions.NormalS02M05(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.StudentTNu1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.StudentTNu1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
+11 -11
View File
@@ -119,7 +119,7 @@ namespace FastRngTests.Double.Distributions
using var rng = new MultiThreadedRng();
var dist = new FastRng.Double.Distributions.Uniform(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -134,7 +134,7 @@ namespace FastRngTests.Double.Distributions
using var rng = new MultiThreadedRng();
var dist = new FastRng.Double.Distributions.Uniform(rng);
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");
@@ -164,7 +164,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0, 100, dist)]++;
distribution[await dist.NextNumber(0, 100)]++;
for (var n = 0; n < distribution.Length - 1; n++)
Assert.That(distribution[n], Is.GreaterThan(0));
@@ -180,7 +180,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0UL, 100, dist)]++;
distribution[await dist.NextNumber(0UL, 100)]++;
for (var n = 0; n < distribution.Length - 1; n++)
Assert.That(distribution[n], Is.GreaterThan(0));
@@ -196,7 +196,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[(uint)Math.Floor(await rng.NextNumber(0.0, 100.0, dist))]++;
distribution[(uint)Math.Floor(await dist.NextNumber(0.0, 100.0))]++;
for (var n = 0; n < distribution.Length - 1; n++)
Assert.That(distribution[n], Is.GreaterThan(0));
@@ -211,7 +211,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0, 100, dist)]++;
distribution[await dist.NextNumber(0, 100)]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
}
@@ -225,7 +225,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0UL, 100, dist)]++;
distribution[await dist.NextNumber(0UL, 100)]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
}
@@ -239,7 +239,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 1_000_000;
for (var n = 0; n < runs; n++)
distribution[(uint)Math.Floor(await rng.NextNumber(0.0, 100.0, dist))]++;
distribution[(uint)Math.Floor(await dist.NextNumber(0.0, 100.0))]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
}
@@ -253,7 +253,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 100_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0, 100, dist)]++;
distribution[await dist.NextNumber(0, 100)]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
}
@@ -267,7 +267,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 100_000_000;
for (var n = 0; n < runs; n++)
distribution[await rng.NextNumber(0UL, 100, dist)]++;
distribution[await dist.NextNumber(0UL, 100)]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
}
@@ -281,7 +281,7 @@ namespace FastRngTests.Double.Distributions
var distribution = new uint[101];
var runs = 100_000_000;
for (var n = 0; n < runs; n++)
distribution[(uint)Math.Floor(await rng.NextNumber(0.0, 100.0, dist))]++;
distribution[(uint)Math.Floor(await dist.NextNumber(0.0, 100.0))]++;
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
}
@@ -20,7 +20,7 @@ namespace FastRngTests.Double.Distributions
var fra = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
fra.CountThis(await rng.NextNumber(dist));
fra.CountThis(await dist.NextNumber());
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
@@ -52,7 +52,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.WeibullK05La1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(-1.0, 1.0, dist);
samples[n] = await dist.NextNumber(-1.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0), "Min out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max out of range");
@@ -67,7 +67,7 @@ namespace FastRngTests.Double.Distributions
var dist = new FastRng.Double.Distributions.WeibullK05La1(rng);
var samples = new double[1_000];
for (var n = 0; n < samples.Length; n++)
samples[n] = await rng.NextNumber(0.0, 1.0, dist);
samples[n] = await dist.NextNumber(0.0, 1.0);
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0), "Min is out of range");
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0), "Max is out of range");