Increased performance by factor two by removing all async parts
Closes #2
This commit is contained in:
30 files changed
+509
-532
No files matched your search
@@ -13,14 +13,14 @@ public class BetaA2B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaDistribution01()
|
||||
public void TestBetaDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.BetaA2B2<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class BetaA2B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange01()
|
||||
public void TestBetaGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA2B2<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class BetaA2B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange02()
|
||||
public void TestBetaGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA2B2<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class BetaA2B5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaDistribution01()
|
||||
public void TestBetaDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.BetaA2B5<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class BetaA2B5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange01()
|
||||
public void TestBetaGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA2B5<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class BetaA2B5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange02()
|
||||
public void TestBetaGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA2B5<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class BetaA5B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaDistribution01()
|
||||
public void TestBetaDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.BetaA5B2<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class BetaA5B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange01()
|
||||
public void TestBetaGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA5B2<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class BetaA5B2
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestBetaGeneratorWithRange02()
|
||||
public void TestBetaGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.BetaA5B2<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class CauchyLorentzX0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyDistribution01()
|
||||
public void TestCauchyDistribution01()
|
||||
{
|
||||
// The properties of the cauchy distribution cannot be tested by mean, media or variance,
|
||||
// cf. https://en.wikipedia.org/wiki/Cauchy_distribution#Explanation_of_undefined_moments
|
||||
@@ -23,7 +23,7 @@ public class CauchyLorentzX0
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -49,13 +49,13 @@ public class CauchyLorentzX0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyGeneratorWithRange01()
|
||||
public void TestCauchyGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.CauchyLorentzX0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -64,13 +64,13 @@ public class CauchyLorentzX0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyGeneratorWithRange02()
|
||||
public void TestCauchyGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.CauchyLorentzX0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class CauchyLorentzX1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyDistribution01()
|
||||
public void TestCauchyDistribution01()
|
||||
{
|
||||
// The properties of the cauchy distribution cannot be tested by mean, media or variance,
|
||||
// cf. https://en.wikipedia.org/wiki/Cauchy_distribution#Explanation_of_undefined_moments
|
||||
@@ -23,7 +23,7 @@ public class CauchyLorentzX1
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -49,13 +49,13 @@ public class CauchyLorentzX1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyGeneratorWithRange01()
|
||||
public void TestCauchyGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.CauchyLorentzX0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -64,13 +64,13 @@ public class CauchyLorentzX1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestCauchyGeneratorWithRange02()
|
||||
public void TestCauchyGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.CauchyLorentzX0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class ChiSquareK1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareDistribution01()
|
||||
public void TestChiSquareDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK1<float>(rng);
|
||||
@@ -21,7 +21,7 @@ public class ChiSquareK1
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var value = await dist.NextNumber();
|
||||
var value = dist.NextNumber();
|
||||
fqa.CountThis(value);
|
||||
}
|
||||
|
||||
@@ -49,13 +49,13 @@ public class ChiSquareK1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange01()
|
||||
public void TestChiSquareGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -64,13 +64,13 @@ public class ChiSquareK1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange02()
|
||||
public void TestChiSquareGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class ChiSquareK10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareDistribution01()
|
||||
public void TestChiSquareDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK10<float>(rng);
|
||||
@@ -21,7 +21,7 @@ public class ChiSquareK10
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var value = await dist.NextNumber();
|
||||
var value = dist.NextNumber();
|
||||
fqa.CountThis(value);
|
||||
}
|
||||
|
||||
@@ -49,13 +49,13 @@ public class ChiSquareK10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange01()
|
||||
public void TestChiSquareGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -64,13 +64,13 @@ public class ChiSquareK10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange02()
|
||||
public void TestChiSquareGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class ChiSquareK4
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareDistribution01()
|
||||
public void TestChiSquareDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK4<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class ChiSquareK4
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange01()
|
||||
public void TestChiSquareGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK4<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class ChiSquareK4
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestChiSquareGeneratorWithRange02()
|
||||
public void TestChiSquareGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ChiSquareK4<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class ExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialDistribution01()
|
||||
public void TestExponentialDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa10<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class ExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange01()
|
||||
public void TestExponentialGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class ExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange02()
|
||||
public void TestExponentialGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class ExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialDistribution01()
|
||||
public void TestExponentialDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa5<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class ExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange01()
|
||||
public void TestExponentialGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa5<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class ExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange02()
|
||||
public void TestExponentialGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.ExponentialLa5<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class GammaA5B15
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestGammaDistribution01()
|
||||
public void TestGammaDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.GammaA5B15<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class GammaA5B15
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestGammaGeneratorWithRange01()
|
||||
public void TestGammaGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.GammaA5B15<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -61,13 +61,13 @@ public class GammaA5B15
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestGammaGeneratorWithRange02()
|
||||
public void TestGammaGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.GammaA5B15<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class InverseExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialDistribution01()
|
||||
public void TestExponentialDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa10<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class InverseExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange01()
|
||||
public void TestExponentialGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class InverseExponentialLa10
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange02()
|
||||
public void TestExponentialGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa10<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class InverseExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialDistribution01()
|
||||
public void TestExponentialDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa5<float>(rng);
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
fqa.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class InverseExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange01()
|
||||
public void TestExponentialGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa5<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class InverseExponentialLa5
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestExponentialGeneratorWithRange02()
|
||||
public void TestExponentialGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseExponentialLa5<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class InverseGammaA3B05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestInverseGammaDistribution01()
|
||||
public void TestInverseGammaDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseGammaA3B05<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class InverseGammaA3B05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestInverseGammaGeneratorWithRange01()
|
||||
public void TestInverseGammaGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseGammaA3B05<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class InverseGammaA3B05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestInverseGammaGeneratorWithRange02()
|
||||
public void TestInverseGammaGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.InverseGammaA3B05<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class LaplaceB01M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceDistribution01()
|
||||
public void TestLaplaceDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M0<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class LaplaceB01M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceGeneratorWithRange01()
|
||||
public void TestLaplaceGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class LaplaceB01M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceGeneratorWithRange02()
|
||||
public void TestLaplaceGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class LaplaceB01M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceDistribution01()
|
||||
public void TestLaplaceDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M05<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class LaplaceB01M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceGeneratorWithRange01()
|
||||
public void TestLaplaceGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M05<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class LaplaceB01M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLaplaceGeneratorWithRange02()
|
||||
public void TestLaplaceGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LaplaceB01M05<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class LogNormalS1M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLogNormalDistribution01()
|
||||
public void TestLogNormalDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LogNormalS1M0<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class LogNormalS1M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLogNormalGeneratorWithRange01()
|
||||
public void TestLogNormalGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LogNormalS1M0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class LogNormalS1M0
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestLogNormalGeneratorWithRange02()
|
||||
public void TestLogNormalGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.LogNormalS1M0<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class NormalS02M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestNormalDistribution01()
|
||||
public void TestNormalDistribution01()
|
||||
{
|
||||
const float MEAN = 0.5f;
|
||||
const float STANDARD_DEVIATION = 0.2f;
|
||||
@@ -25,7 +25,7 @@ public class NormalS02M05
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var nextNumber = await dist.NextNumber();
|
||||
var nextNumber = dist.NextNumber();
|
||||
stats.Push(nextNumber);
|
||||
fra.CountThis(nextNumber);
|
||||
}
|
||||
@@ -42,13 +42,13 @@ public class NormalS02M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestNormalGeneratorWithRange01()
|
||||
public void TestNormalGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.NormalS02M05<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -57,13 +57,13 @@ public class NormalS02M05
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestNormalGeneratorWithRange02()
|
||||
public void TestNormalGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.NormalS02M05<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,14 +13,14 @@ public class StudentTNu1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestStudentTDistribution01()
|
||||
public void TestStudentTDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.StudentTNu1<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class StudentTNu1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestStudentTGeneratorWithRange01()
|
||||
public void TestStudentTGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.StudentTNu1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class StudentTNu1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestStudentTGeneratorWithRange02()
|
||||
public void TestStudentTGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.StudentTNu1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -13,7 +13,7 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestUniformDistribution01()
|
||||
public void TestUniformDistribution01()
|
||||
{
|
||||
const float A = 0.0f;
|
||||
const float B = 1.0f;
|
||||
@@ -26,7 +26,7 @@ public class Uniform
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var value = await rng.GetUniform();
|
||||
var value = rng.GetUniform();
|
||||
stats.Push(value);
|
||||
fra.CountThis(value);
|
||||
}
|
||||
@@ -62,7 +62,7 @@ public class Uniform
|
||||
int n;
|
||||
|
||||
for (n = 0; n != NUM_ROUNDS; ++n)
|
||||
samples[n] = await rng.GetUniform();
|
||||
samples[n] = rng.GetUniform();
|
||||
|
||||
Array.Sort(samples);
|
||||
|
||||
@@ -113,13 +113,13 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestUniformGeneratorWithRange01()
|
||||
public void TestUniformGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -128,13 +128,13 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestUniformGeneratorWithRange02()
|
||||
public void TestUniformGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -143,12 +143,12 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestUniformGeneratorWithRange04()
|
||||
public void TestUniformGeneratorWithRange04()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.GetUniform();
|
||||
samples[n] = rng.GetUniform();
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -157,14 +157,14 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestRange05Uint()
|
||||
public void TestRange05Uint()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
distribution[dist.NextNumber(0, 100)]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -173,14 +173,14 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestRange05Ulong()
|
||||
public void TestRange05Ulong()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
distribution[dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -189,14 +189,14 @@ public class Uniform
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestRange05Float()
|
||||
public void TestRange05Float()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
distribution[(uint)MathF.Floor(dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -204,84 +204,84 @@ public class Uniform
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestDistribution001Uint()
|
||||
public void TestDistribution001Uint()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
distribution[dist.NextNumber(0, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestDistribution001Ulong()
|
||||
public void TestDistribution001Ulong()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
distribution[dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestDistribution001Float()
|
||||
public void TestDistribution001Float()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
distribution[(uint)MathF.Floor(dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.LONG_RUNNING)]
|
||||
public async Task TestDistribution002Uint()
|
||||
public void TestDistribution002Uint()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
distribution[dist.NextNumber(0, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.LONG_RUNNING)]
|
||||
public async Task TestDistribution002Ulong()
|
||||
public void TestDistribution002Ulong()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
distribution[dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category(TestCategories.LONG_RUNNING)]
|
||||
public async Task TestDistribution002Float()
|
||||
public void TestDistribution002Float()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.Uniform<float>(rng);
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
distribution[(uint)MathF.Floor(dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
|
||||
@@ -13,14 +13,14 @@ public class WeibullK05La1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestWeibullDistribution01()
|
||||
public void TestWeibullDistribution01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.WeibullK05La1<float>(rng);
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
fra.CountThis(dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class WeibullK05La1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestWeibullGeneratorWithRange01()
|
||||
public void TestWeibullGeneratorWithRange01()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.WeibullK05La1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -61,13 +61,13 @@ public class WeibullK05La1
|
||||
[Test]
|
||||
[Category(TestCategories.COVER)]
|
||||
[Category(TestCategories.NORMAL)]
|
||||
public async Task TestWeibullGeneratorWithRange02()
|
||||
public void TestWeibullGeneratorWithRange02()
|
||||
{
|
||||
using var rng = new MultiThreadedRng<float>();
|
||||
var dist = new FastRng.Distributions.WeibullK05La1<float>(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
samples[n] = dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
Reference in new issue
Block a user