Refactored to use generic TNum for any floating point type

This commit is contained in:
Thorsten Sommer committed 2023-07-07 14:41:01 +02:00
1 parent 6b656b90e3
commit 1c28a57c06
55 files changed
+578 -1147

No files matched your search

+6 -6
View File
@@ -2,9 +2,9 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
using FastRng;
using FastRng.Distributions;
using FastRngTests.Distributions;
using NUnit.Framework;
using Uniform = FastRng.Distributions.Uniform;
using WeibullK05La1 = FastRng.Distributions.WeibullK05La1;
namespace FastRngTests;
@@ -16,8 +16,8 @@ public class DecisionTester
[Category(TestCategories.NORMAL)]
public async Task DecisionUniform01()
{
using var rng = new MultiThreadedRng();
var dist = new Uniform(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new Uniform<float>(rng);
var neededCoinTossesA = 0;
var neededCoinTossesB = 0;
@@ -40,8 +40,8 @@ public class DecisionTester
[Category(TestCategories.NORMAL)]
public async Task DecisionWeibull01()
{
using var rng = new MultiThreadedRng();
var dist = new WeibullK05La1(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new WeibullK05La1<float>(rng);
var neededCoinTossesA = 0;
var neededCoinTossesB = 0;
+7 -7
View File
@@ -15,8 +15,8 @@ public class BetaA2B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.BetaA2B2(rng);
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++)
@@ -48,9 +48,9 @@ public class BetaA2B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA2B2(rng);
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);
@@ -63,9 +63,9 @@ public class BetaA2B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA2B2(rng);
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);
@@ -78,6 +78,6 @@ public class BetaA2B2
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA2B2(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA2B2<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class BetaA2B5
[Category(TestCategories.NORMAL)]
public async Task TestBetaDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.BetaA2B5(rng);
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++)
@@ -48,9 +48,9 @@ public class BetaA2B5
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA2B5(rng);
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);
@@ -63,9 +63,9 @@ public class BetaA2B5
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA2B5(rng);
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);
@@ -78,6 +78,6 @@ public class BetaA2B5
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA2B5(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA2B5<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class BetaA5B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.BetaA5B2(rng);
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++)
@@ -48,9 +48,9 @@ public class BetaA5B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA5B2(rng);
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);
@@ -63,9 +63,9 @@ public class BetaA5B2
[Category(TestCategories.NORMAL)]
public async Task TestBetaGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.BetaA5B2(rng);
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);
@@ -78,6 +78,6 @@ public class BetaA5B2
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA5B2(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.BetaA5B2<float>(null));
}
}
@@ -18,8 +18,8 @@ public class CauchyLorentzX0
// 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
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX0(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new FastRng.Distributions.CauchyLorentzX0<float>(rng);
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
@@ -51,8 +51,8 @@ public class CauchyLorentzX0
[Category(TestCategories.NORMAL)]
public async Task TestCauchyGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX0(rng);
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);
@@ -66,8 +66,8 @@ public class CauchyLorentzX0
[Category(TestCategories.NORMAL)]
public async Task TestCauchyGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX0(rng);
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);
@@ -81,6 +81,6 @@ public class CauchyLorentzX0
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.CauchyLorentzX0(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.CauchyLorentzX0<float>(null));
}
}
@@ -18,8 +18,8 @@ public class CauchyLorentzX1
// 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
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX1(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new FastRng.Distributions.CauchyLorentzX1<float>(rng);
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
@@ -51,8 +51,8 @@ public class CauchyLorentzX1
[Category(TestCategories.NORMAL)]
public async Task TestCauchyGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX0(rng);
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);
@@ -66,8 +66,8 @@ public class CauchyLorentzX1
[Category(TestCategories.NORMAL)]
public async Task TestCauchyGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.CauchyLorentzX0(rng);
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);
@@ -81,6 +81,6 @@ public class CauchyLorentzX1
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.CauchyLorentzX1(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.CauchyLorentzX1<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class ChiSquareK1
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK1(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new FastRng.Distributions.ChiSquareK1<float>(rng);
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
@@ -51,8 +51,8 @@ public class ChiSquareK1
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK1(rng);
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);
@@ -66,8 +66,8 @@ public class ChiSquareK1
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK1(rng);
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);
@@ -81,6 +81,6 @@ public class ChiSquareK1
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK1(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK1<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class ChiSquareK10
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK10(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new FastRng.Distributions.ChiSquareK10<float>(rng);
var fqa = new FrequencyAnalysis();
for (var n = 0; n < 100_000; n++)
@@ -51,8 +51,8 @@ public class ChiSquareK10
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK10(rng);
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);
@@ -66,8 +66,8 @@ public class ChiSquareK10
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK10(rng);
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);
@@ -81,6 +81,6 @@ public class ChiSquareK10
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK10(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK10<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class ChiSquareK4
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK4(rng);
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++)
@@ -48,8 +48,8 @@ public class ChiSquareK4
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK4(rng);
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);
@@ -63,8 +63,8 @@ public class ChiSquareK4
[Category(TestCategories.NORMAL)]
public async Task TestChiSquareGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ChiSquareK4(rng);
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);
@@ -78,6 +78,6 @@ public class ChiSquareK4
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK4(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ChiSquareK4<float>(null));
}
}
@@ -15,8 +15,8 @@ public class ExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa10(rng);
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++)
@@ -48,8 +48,8 @@ public class ExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa10(rng);
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);
@@ -63,8 +63,8 @@ public class ExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa10(rng);
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);
@@ -78,6 +78,6 @@ public class ExponentialLa10
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ExponentialLa10(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ExponentialLa10<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class ExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa5(rng);
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++)
@@ -48,8 +48,8 @@ public class ExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa5(rng);
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);
@@ -63,8 +63,8 @@ public class ExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.ExponentialLa5(rng);
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);
@@ -78,6 +78,6 @@ public class ExponentialLa5
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ExponentialLa5(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.ExponentialLa5<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class GammaA5B15
[Category(TestCategories.NORMAL)]
public async Task TestGammaDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.GammaA5B15(rng);
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++)
@@ -48,8 +48,8 @@ public class GammaA5B15
[Category(TestCategories.NORMAL)]
public async Task TestGammaGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.GammaA5B15(rng);
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);
@@ -63,8 +63,8 @@ public class GammaA5B15
[Category(TestCategories.NORMAL)]
public async Task TestGammaGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.GammaA5B15(rng);
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);
@@ -78,6 +78,6 @@ public class GammaA5B15
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.GammaA5B15(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.GammaA5B15<float>(null));
}
}
@@ -15,8 +15,8 @@ public class InverseExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa10(rng);
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++)
@@ -48,8 +48,8 @@ public class InverseExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa10(rng);
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);
@@ -63,8 +63,8 @@ public class InverseExponentialLa10
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa10(rng);
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);
@@ -78,6 +78,6 @@ public class InverseExponentialLa10
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseExponentialLa10(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseExponentialLa10<float>(null));
}
}
@@ -15,8 +15,8 @@ public class InverseExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa5(rng);
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++)
@@ -48,8 +48,8 @@ public class InverseExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa5(rng);
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);
@@ -63,8 +63,8 @@ public class InverseExponentialLa5
[Category(TestCategories.NORMAL)]
public async Task TestExponentialGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseExponentialLa5(rng);
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);
@@ -78,6 +78,6 @@ public class InverseExponentialLa5
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseExponentialLa5(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseExponentialLa5<float>(null));
}
}
@@ -15,8 +15,8 @@ public class InverseGammaA3B05
[Category(TestCategories.NORMAL)]
public async Task TestInverseGammaDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseGammaA3B05(rng);
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++)
@@ -48,8 +48,8 @@ public class InverseGammaA3B05
[Category(TestCategories.NORMAL)]
public async Task TestInverseGammaGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseGammaA3B05(rng);
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);
@@ -63,8 +63,8 @@ public class InverseGammaA3B05
[Category(TestCategories.NORMAL)]
public async Task TestInverseGammaGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.InverseGammaA3B05(rng);
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);
@@ -78,6 +78,6 @@ public class InverseGammaA3B05
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseGammaA3B05(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.InverseGammaA3B05<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class LaplaceB01M0
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M0(rng);
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++)
@@ -48,8 +48,8 @@ public class LaplaceB01M0
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M0(rng);
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);
@@ -63,8 +63,8 @@ public class LaplaceB01M0
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M0(rng);
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);
@@ -78,6 +78,6 @@ public class LaplaceB01M0
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LaplaceB01M0(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LaplaceB01M0<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class LaplaceB01M05
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M05(rng);
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++)
@@ -48,8 +48,8 @@ public class LaplaceB01M05
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M05(rng);
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);
@@ -63,8 +63,8 @@ public class LaplaceB01M05
[Category(TestCategories.NORMAL)]
public async Task TestLaplaceGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LaplaceB01M05(rng);
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);
@@ -78,6 +78,6 @@ public class LaplaceB01M05
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LaplaceB01M05(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LaplaceB01M05<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class LogNormalS1M0
[Category(TestCategories.NORMAL)]
public async Task TestLogNormalDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LogNormalS1M0(rng);
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++)
@@ -48,8 +48,8 @@ public class LogNormalS1M0
[Category(TestCategories.NORMAL)]
public async Task TestLogNormalGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LogNormalS1M0(rng);
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);
@@ -63,8 +63,8 @@ public class LogNormalS1M0
[Category(TestCategories.NORMAL)]
public async Task TestLogNormalGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.LogNormalS1M0(rng);
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);
@@ -78,6 +78,6 @@ public class LogNormalS1M0
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LogNormalS1M0(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.LogNormalS1M0<float>(null));
}
}
+7 -7
View File
@@ -18,8 +18,8 @@ public class NormalS02M05
const float MEAN = 0.5f;
const float STANDARD_DEVIATION = 0.2f;
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.NormalS02M05(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new FastRng.Distributions.NormalS02M05<float>(rng);
var stats = new RunningStatistics();
var fra = new FrequencyAnalysis();
@@ -44,9 +44,9 @@ public class NormalS02M05
[Category(TestCategories.NORMAL)]
public async Task TestNormalGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.NormalS02M05(rng);
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);
@@ -59,9 +59,9 @@ public class NormalS02M05
[Category(TestCategories.NORMAL)]
public async Task TestNormalGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.NormalS02M05(rng);
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);
@@ -74,6 +74,6 @@ public class NormalS02M05
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.NormalS02M05(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.NormalS02M05<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class StudentTNu1
[Category(TestCategories.NORMAL)]
public async Task TestStudentTDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.StudentTNu1(rng);
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++)
@@ -48,8 +48,8 @@ public class StudentTNu1
[Category(TestCategories.NORMAL)]
public async Task TestStudentTGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.StudentTNu1(rng);
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);
@@ -63,8 +63,8 @@ public class StudentTNu1
[Category(TestCategories.NORMAL)]
public async Task TestStudentTGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.StudentTNu1(rng);
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);
@@ -78,6 +78,6 @@ public class StudentTNu1
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.StudentTNu1(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.StudentTNu1<float>(null));
}
}
+26 -26
View File
@@ -20,7 +20,7 @@ public class Uniform
const float MEAN = 0.5f * (A + B);
const float VARIANCE = (1.0f / 12.0f) * (B - A) * (B - A);
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var stats = new RunningStatistics();
var fra = new FrequencyAnalysis();
@@ -58,7 +58,7 @@ public class Uniform
const float P_HIGH = 1.0f - 0.25f * FAILURE_PROBABILITY;
var samples = new float[NUM_ROUNDS];
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
int n;
for (n = 0; n != NUM_ROUNDS; ++n)
@@ -115,9 +115,9 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestUniformGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.Uniform(rng);
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);
@@ -130,9 +130,9 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestUniformGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var samples = new float[1_000];
var dist = new FastRng.Distributions.Uniform(rng);
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);
@@ -145,7 +145,7 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestUniformGeneratorWithRange04()
{
using var rng = new MultiThreadedRng();
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();
@@ -159,8 +159,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestRange05Uint()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -175,8 +175,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestRange05Ulong()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -191,8 +191,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestRange05Float()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -206,8 +206,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestDistribution001Uint()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -220,8 +220,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestDistribution001Ulong()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -234,8 +234,8 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public async Task TestDistribution001Float()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -248,8 +248,8 @@ public class Uniform
[Category(TestCategories.LONG_RUNNING)]
public async Task TestDistribution002Uint()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -262,8 +262,8 @@ public class Uniform
[Category(TestCategories.LONG_RUNNING)]
public async Task TestDistribution002Ulong()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -276,8 +276,8 @@ public class Uniform
[Category(TestCategories.LONG_RUNNING)]
public async Task TestDistribution002Float()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.Uniform(rng);
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++)
@@ -291,6 +291,6 @@ public class Uniform
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.Uniform(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.Uniform<float>(null));
}
}
+7 -7
View File
@@ -15,8 +15,8 @@ public class WeibullK05La1
[Category(TestCategories.NORMAL)]
public async Task TestWeibullDistribution01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.WeibullK05La1(rng);
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++)
@@ -48,8 +48,8 @@ public class WeibullK05La1
[Category(TestCategories.NORMAL)]
public async Task TestWeibullGeneratorWithRange01()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.WeibullK05La1(rng);
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);
@@ -63,8 +63,8 @@ public class WeibullK05La1
[Category(TestCategories.NORMAL)]
public async Task TestWeibullGeneratorWithRange02()
{
using var rng = new MultiThreadedRng();
var dist = new FastRng.Distributions.WeibullK05La1(rng);
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);
@@ -78,6 +78,6 @@ public class WeibullK05La1
[Category(TestCategories.NORMAL)]
public void NoRandomNumberGenerator01()
{
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.WeibullK05La1(null));
Assert.Throws<ArgumentNullException>(() => new FastRng.Distributions.WeibullK05La1<float>(null));
}
}
+37 -53
View File
@@ -15,7 +15,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest01()
{
Assert.That(MathTools.Gamma(-0.5f), Is.EqualTo(-3.544907701811087f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(-0.5f), Is.EqualTo(-3.544907701811087f).Within(1e-6f));
}
[Test]
@@ -23,7 +23,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest02()
{
Assert.That(MathTools.Gamma(0.1f), Is.EqualTo(9.51350975f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(0.1f), Is.EqualTo(9.51350975f).Within(1e-6f));
}
[Test]
@@ -31,7 +31,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest03()
{
Assert.That(MathTools.Gamma(0.5f), Is.EqualTo(1.772453850905517f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(0.5f), Is.EqualTo(1.772453850905517f).Within(1e-6f));
}
[Test]
@@ -39,7 +39,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest04()
{
Assert.That(MathTools.Gamma(1.0f), Is.EqualTo(1.0f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(1.0f), Is.EqualTo(1.0f).Within(1e-6f));
}
[Test]
@@ -47,7 +47,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest05()
{
Assert.That(MathTools.Gamma(1.5f), Is.EqualTo(0.8862269254527587f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(1.5f), Is.EqualTo(0.8862269254527587f).Within(1e-6f));
}
[Test]
@@ -55,7 +55,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest06()
{
Assert.That(MathTools.Gamma(2.0f), Is.EqualTo(1.0f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(2.0f), Is.EqualTo(1.0f).Within(1e-6f));
}
[Test]
@@ -63,7 +63,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest07()
{
Assert.That(MathTools.Gamma(3.0f), Is.EqualTo(2.0f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(3.0f), Is.EqualTo(2.0f).Within(1e-6f));
}
[Test]
@@ -71,7 +71,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest08()
{
Assert.That(MathTools.Gamma(10.0f), Is.EqualTo(362_880.719f).Within(1e-6f));
Assert.That(FloatingPointMathTools<float>.Gamma(10.0f), Is.EqualTo(362_880.719f).Within(1e-6f));
}
[Test]
@@ -79,7 +79,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest09()
{
Assert.That(MathTools.Gamma(140.0f), Is.EqualTo(float.NaN));
Assert.That(FloatingPointMathTools<float>.Gamma(140.0f), Is.EqualTo(float.NaN));
}
[Test]
@@ -87,7 +87,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void GammaTest10()
{
Assert.That(MathTools.Gamma(170.0f), Is.EqualTo(float.NaN));
Assert.That(FloatingPointMathTools<float>.Gamma(170.0f), Is.EqualTo(float.NaN));
}
#endregion
@@ -99,7 +99,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger01()
{
Assert.That(MathTools.Factorial(0), Is.EqualTo(1));
Assert.That(IntegerMathTools.Factorial(0), Is.EqualTo(1));
}
[Test]
@@ -107,7 +107,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger02()
{
Assert.That(MathTools.Factorial(1), Is.EqualTo(1));
Assert.That(IntegerMathTools.Factorial(1), Is.EqualTo(1));
}
[Test]
@@ -115,7 +115,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger03()
{
Assert.That(MathTools.Factorial(2), Is.EqualTo(2));
Assert.That(IntegerMathTools.Factorial(2), Is.EqualTo(2));
}
[Test]
@@ -123,7 +123,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger04()
{
Assert.That(MathTools.Factorial(3), Is.EqualTo(6));
Assert.That(IntegerMathTools.Factorial(3), Is.EqualTo(6));
}
[Test]
@@ -131,7 +131,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger05()
{
Assert.That(MathTools.Factorial(4), Is.EqualTo(24));
Assert.That(IntegerMathTools.Factorial(4), Is.EqualTo(24));
}
[Test]
@@ -139,7 +139,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger06()
{
Assert.That(MathTools.Factorial(5), Is.EqualTo(120));
Assert.That(IntegerMathTools.Factorial(5), Is.EqualTo(120));
}
[Test]
@@ -147,7 +147,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger07()
{
Assert.That(MathTools.Factorial(6), Is.EqualTo(720));
Assert.That(IntegerMathTools.Factorial(6), Is.EqualTo(720));
}
[Test]
@@ -155,7 +155,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger08()
{
Assert.That(MathTools.Factorial(7), Is.EqualTo(5_040));
Assert.That(IntegerMathTools.Factorial(7), Is.EqualTo(5_040));
}
[Test]
@@ -163,7 +163,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger09()
{
Assert.That(MathTools.Factorial(8), Is.EqualTo(40_320));
Assert.That(IntegerMathTools.Factorial(8), Is.EqualTo(40_320));
}
[Test]
@@ -171,7 +171,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger10()
{
Assert.That(MathTools.Factorial(9), Is.EqualTo(362_880));
Assert.That(IntegerMathTools.Factorial(9), Is.EqualTo(362_880));
}
[Test]
@@ -179,7 +179,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger11()
{
Assert.That(MathTools.Factorial(10), Is.EqualTo(3_628_800));
Assert.That(IntegerMathTools.Factorial(10), Is.EqualTo(3_628_800));
}
[Test]
@@ -187,7 +187,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger12()
{
Assert.That(MathTools.Factorial(11), Is.EqualTo(39_916_800));
Assert.That(IntegerMathTools.Factorial(11), Is.EqualTo(39_916_800));
}
[Test]
@@ -195,7 +195,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger13()
{
Assert.That(MathTools.Factorial(12), Is.EqualTo(479_001_600));
Assert.That(IntegerMathTools.Factorial(12), Is.EqualTo(479_001_600));
}
[Test]
@@ -203,7 +203,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger14()
{
Assert.That(MathTools.Factorial(13), Is.EqualTo(6_227_020_800));
Assert.That(IntegerMathTools.Factorial(13), Is.EqualTo(6_227_020_800));
}
[Test]
@@ -211,7 +211,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger15()
{
Assert.That(MathTools.Factorial(14), Is.EqualTo(87_178_291_200));
Assert.That(IntegerMathTools.Factorial(14), Is.EqualTo(87_178_291_200));
}
[Test]
@@ -219,7 +219,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger16()
{
Assert.That(MathTools.Factorial(15), Is.EqualTo(1_307_674_368_000));
Assert.That(IntegerMathTools.Factorial(15), Is.EqualTo(1_307_674_368_000));
}
[Test]
@@ -227,7 +227,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger17()
{
Assert.That(MathTools.Factorial(16), Is.EqualTo(20_922_789_888_000));
Assert.That(IntegerMathTools.Factorial(16), Is.EqualTo(20_922_789_888_000));
}
[Test]
@@ -235,7 +235,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger18()
{
Assert.That(MathTools.Factorial(17), Is.EqualTo(355_687_428_096_000));
Assert.That(IntegerMathTools.Factorial(17), Is.EqualTo(355_687_428_096_000));
}
[Test]
@@ -243,7 +243,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger19()
{
Assert.That(MathTools.Factorial(18), Is.EqualTo(6_402_373_705_728_000));
Assert.That(IntegerMathTools.Factorial(18), Is.EqualTo(6_402_373_705_728_000));
}
[Test]
@@ -251,7 +251,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger20()
{
Assert.That(MathTools.Factorial(19), Is.EqualTo(121_645_100_408_832_000));
Assert.That(IntegerMathTools.Factorial(19), Is.EqualTo(121_645_100_408_832_000));
}
[Test]
@@ -259,7 +259,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger21()
{
Assert.That(MathTools.Factorial(20), Is.EqualTo(2_432_902_008_176_640_000));
Assert.That(IntegerMathTools.Factorial(20), Is.EqualTo(2_432_902_008_176_640_000));
}
[Test]
@@ -267,7 +267,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger22()
{
Assert.Throws<ArgumentOutOfRangeException>(() => MathTools.Factorial(21));
Assert.Throws<ArgumentOutOfRangeException>(() => IntegerMathTools.Factorial(21));
// Note: 21! is not possible in C# until we got 128 bit integers, since:
// ulong.max == 18_446_744_073_709_551_615 < 51_090_942_171_709_400_000
@@ -278,27 +278,11 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialInteger23()
{
Assert.Throws<ArgumentOutOfRangeException>(() => MathTools.Factorial(45_646));
Assert.Throws<ArgumentOutOfRangeException>(() => IntegerMathTools.Factorial(45_646));
// Note: 45_646! is not possible in C# since:
// ulong.max == 18_446_744_073_709_551_615
}
[Test]
[Category(TestCategories.COVER)]
[Category(TestCategories.NORMAL)]
public void FactorialInteger24()
{
Assert.Throws<ArgumentOutOfRangeException>(() => MathTools.Factorial(-1));
}
[Test]
[Category(TestCategories.COVER)]
[Category(TestCategories.NORMAL)]
public void FactorialInteger25()
{
Assert.Throws<ArgumentOutOfRangeException>(() => MathTools.Factorial(-6_565));
}
#endregion
@@ -309,7 +293,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialFloatingPoint01()
{
Assert.That(MathTools.Factorial(0.5f), Is.EqualTo(0.886226925f).Within(1e6f));
Assert.That(FloatingPointMathTools<float>.Factorial(0.5f), Is.EqualTo(0.886226925f).Within(1e6f));
}
[Test]
@@ -317,7 +301,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialFloatingPoint02()
{
Assert.That(MathTools.Factorial(1.5f), Is.EqualTo(1.329340388f).Within(1e6f));
Assert.That(FloatingPointMathTools<float>.Factorial(1.5f), Is.EqualTo(1.329340388f).Within(1e6f));
}
[Test]
@@ -325,7 +309,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialFloatingPoint03()
{
Assert.That(MathTools.Factorial(-1.5f), Is.EqualTo(-1.329340388f).Within(1e6f));
Assert.That(FloatingPointMathTools<float>.Factorial(-1.5f), Is.EqualTo(-1.329340388f).Within(1e6f));
}
[Test]
@@ -333,7 +317,7 @@ public class MathToolsTests
[Category(TestCategories.NORMAL)]
public void FactorialFloatingPoint04()
{
Assert.That(MathTools.Factorial(7.5f), Is.EqualTo(14_034.407293483f).Within(1e6f));
Assert.That(FloatingPointMathTools<float>.Factorial(7.5f), Is.EqualTo(14_034.407293483f).Within(1e6f));
}
#endregion
+47 -46
View File
@@ -4,6 +4,7 @@ using System.Threading;
using System.Threading.Tasks;
using FastRng;
using FastRng.Distributions;
using FastRngTests.Distributions;
using NUnit.Framework;
namespace FastRngTests;
@@ -11,14 +12,14 @@ namespace FastRngTests;
[ExcludeFromCodeCoverage]
public class MultiThreadedRngTests
{
private readonly IRandom rng = new MultiThreadedRng();
private readonly IRandom<float> rng = new MultiThreadedRng<float>();
[Test]
[Category(TestCategories.COVER)]
[Category(TestCategories.NORMAL)]
public async Task TestRange01Uint()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
for (uint n = 0; n < 1_000_000; n++)
Assert.That(await dist.NextNumber(n, 100_000 + n), Is.InRange(n, 100_000 + n));
}
@@ -28,7 +29,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange01Ulong()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
for (ulong n = 0; n < 1_000_000; n++)
Assert.That(await dist.NextNumber(n, 100_000 + n), Is.InRange(n, 100_000 + n));
}
@@ -38,7 +39,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange01Float()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
for (var n = 0.0f; n < 1e6f; n++)
Assert.That(await dist.NextNumber(n, 100_000 + n), Is.InRange(n, 100_000 + n));
}
@@ -48,7 +49,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange02Uint()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5, 5), Is.EqualTo(5));
Assert.That(await dist.NextNumber(0, 0), Is.EqualTo(0));
Assert.That(await dist.NextNumber(3_000_000_000, 3_000_000_000), Is.EqualTo(3_000_000_000));
@@ -59,7 +60,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange02Ulong()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5UL, 5), Is.EqualTo(5));
Assert.That(await dist.NextNumber(0UL, 0), Is.EqualTo(0));
Assert.That(await dist.NextNumber(3_000_000_000UL, 3_000_000_000), Is.EqualTo(3_000_000_000));
@@ -70,7 +71,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange02Float()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5f, 5f), Is.EqualTo(5));
Assert.That(await dist.NextNumber(0f, 0f), Is.EqualTo(0));
Assert.That(await dist.NextNumber(3e9f, 3e9f), Is.EqualTo(3e9f));
@@ -81,7 +82,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange03Uint()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5, 6), Is.InRange(5, 6));
Assert.That(await dist.NextNumber(0, 1), Is.InRange(0, 1));
Assert.That(await dist.NextNumber(3_000_000_000, 3_000_000_002), Is.InRange(3_000_000_000, 3_000_000_002));
@@ -92,7 +93,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange03Ulong()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5UL, 6), Is.InRange(5, 6));
Assert.That(await dist.NextNumber(0UL, 1), Is.InRange(0, 1));
Assert.That(await dist.NextNumber(3_000_000_000UL, 3_000_000_002), Is.InRange(3_000_000_000, 3_000_000_002));
@@ -103,7 +104,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange03Float()
{
var dist = new Uniform(this.rng);
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(5f, 6f), Is.InRange(5f, 6f));
Assert.That(await dist.NextNumber(0f, 1f), Is.InRange(0f, 1f));
Assert.That(await dist.NextNumber(3e9f, 3e9f+2f), Is.InRange(3e9f, 3e9f+2f));
@@ -114,8 +115,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange04Uint()
{
var distUniform = new Uniform(this.rng);
var distNormal = new NormalS02M05(this.rng);
var distUniform = new Uniform<float>(this.rng);
var distNormal = new NormalS02M05<float>(this.rng);
Assert.That(await distUniform.NextNumber(10, 1), Is.InRange(1, 10));
Assert.That(await distNormal.NextNumber(10, 1), Is.InRange(1, 10));
@@ -129,8 +130,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange04Ulong()
{
var distUniform = new Uniform(this.rng);
var distNormal = new NormalS02M05(this.rng);
var distUniform = new Uniform<float>(this.rng);
var distNormal = new NormalS02M05<float>(this.rng);
Assert.That(await distUniform.NextNumber(10UL, 1), Is.InRange(1, 10));
Assert.That(await distNormal.NextNumber(10UL, 1), Is.InRange(1, 10));
@@ -144,8 +145,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestRange04Float()
{
var distUniform = new Uniform(this.rng);
var distNormal = new NormalS02M05(this.rng);
var distUniform = new Uniform<float>(this.rng);
var distNormal = new NormalS02M05<float>(this.rng);
Assert.That(await distUniform.NextNumber(10.0f, 1), Is.InRange(1, 10));
Assert.That(await distNormal.NextNumber(10.0f, 1), Is.InRange(1, 10));
@@ -158,8 +159,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.LONG_RUNNING)]
public async Task TestRange05()
{
var distUniform = new Uniform(this.rng);
var distLorentz = new CauchyLorentzX1(this.rng);
var distUniform = new Uniform<float>(this.rng);
var distLorentz = new CauchyLorentzX1<float>(this.rng);
var rngContains0 = false;
var rngContains1 = false;
@@ -229,7 +230,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestStoppingProducers01()
{
var rng2 = new MultiThreadedRng();
var rng2 = new MultiThreadedRng<float>();
rng2.Dispose();
var masterToken = new CancellationTokenSource(TimeSpan.FromSeconds(16)).Token;
@@ -255,19 +256,19 @@ public class MultiThreadedRngTests
Assert.That(wasCanceled, Is.True, "The consumer was not canceled");
var tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
await new NormalS02M05(rng2).NextNumber(tokenSource2.Token);
await new NormalS02M05<float>(rng2).NextNumber(tokenSource2.Token);
Assert.That(tokenSource2.IsCancellationRequested, Is.True);
tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
await new NormalS02M05(rng2).NextNumber(-1f, 1f, tokenSource2.Token);
await new NormalS02M05<float>(rng2).NextNumber(-1f, 1f, tokenSource2.Token);
Assert.That(tokenSource2.IsCancellationRequested, Is.True);
tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
await new NormalS02M05(rng2).NextNumber(0u, 6u, tokenSource2.Token);
await new NormalS02M05<float>(rng2).NextNumber(0u, 6u, tokenSource2.Token);
Assert.That(tokenSource2.IsCancellationRequested, Is.True);
tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
await new NormalS02M05(rng2).NextNumber(0ul, 6ul, tokenSource2.Token);
await new NormalS02M05<float>(rng2).NextNumber(0ul, 6ul, tokenSource2.Token);
Assert.That(tokenSource2.IsCancellationRequested, Is.True);
}
@@ -276,9 +277,9 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task OneSeed01()
{
using var rng1 = new MultiThreadedRng(6);
using var rng2 = new MultiThreadedRng(6);
using var rng3 = new MultiThreadedRng(7);
using var rng1 = new MultiThreadedRng<float>(6);
using var rng2 = new MultiThreadedRng<float>(6);
using var rng3 = new MultiThreadedRng<float>(7);
var rng1Sample = new float[10];
for (var n = 0; n < rng1Sample.Length; n++)
@@ -302,10 +303,10 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TwoSeeds01()
{
using var rng1 = new MultiThreadedRng(3, 6);
using var rng2 = new MultiThreadedRng(3, 6);
using var rng3 = new MultiThreadedRng(3, 7);
using var rng4 = new MultiThreadedRng(6, 3);
using var rng1 = new MultiThreadedRng<float>(3, 6);
using var rng2 = new MultiThreadedRng<float>(3, 6);
using var rng3 = new MultiThreadedRng<float>(3, 7);
using var rng4 = new MultiThreadedRng<float>(6, 3);
var rng1Sample = new float[10];
for (var n = 0; n < rng1Sample.Length; n++)
@@ -336,9 +337,9 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task NoSeed01()
{
using var rng1 = new MultiThreadedRng();
using var rng2 = new MultiThreadedRng();
using var rng3 = new MultiThreadedRng();
using var rng1 = new MultiThreadedRng<float>();
using var rng2 = new MultiThreadedRng<float>();
using var rng3 = new MultiThreadedRng<float>();
var rng1Sample = new float[10];
for (var n = 0; n < rng1Sample.Length; n++)
@@ -366,8 +367,8 @@ public class MultiThreadedRngTests
var token = tokenSource.Token;
tokenSource.Cancel();
using var rng2 = new MultiThreadedRng();
var dist = new Uniform(this.rng);
using var rng2 = new MultiThreadedRng<float>();
var dist = new Uniform<float>(this.rng);
Assert.That(await dist.NextNumber(1, 100_000, token), Is.EqualTo(0));
}
@@ -380,7 +381,7 @@ public class MultiThreadedRngTests
var token = tokenSource.Token;
tokenSource.Cancel();
using var rng2 = new MultiThreadedRng();
using var rng2 = new MultiThreadedRng<float>();
Assert.That(await rng2.GetUniform(token), Is.NaN);
}
@@ -389,7 +390,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic01()
{
using var rng2 = new MultiThreadedRng(16);
using var rng2 = new MultiThreadedRng<float>(16);
Assert.That(await rng2.GetUniform(), Is.EqualTo(0.12712699).Within(1e-7f));
Assert.That(await rng2.GetUniform(), Is.EqualTo(0.5764246).Within(1e-7f));
@@ -428,8 +429,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic02()
{
using var rng2 = new MultiThreadedRng(16);
var dist = new Uniform(rng2);
using var rng2 = new MultiThreadedRng<float>(16);
var dist = new Uniform<float>(rng2);
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(13));
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(58));
@@ -468,8 +469,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic03()
{
using var rng2 = new MultiThreadedRng(16);
var dist = new CauchyLorentzX0(rng2);
using var rng2 = new MultiThreadedRng<float>(16);
var dist = new CauchyLorentzX0<float>(rng2);
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(11));
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(17));
@@ -508,7 +509,7 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic01b()
{
using var rng2 = new MultiThreadedRng(16, 362_436_069);
using var rng2 = new MultiThreadedRng<float>(16, 362_436_069);
Assert.That(await rng2.GetUniform(), Is.EqualTo(0.12712699).Within(1e-7f));
Assert.That(await rng2.GetUniform(), Is.EqualTo(0.5764246).Within(1e-7f));
@@ -547,8 +548,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic02b()
{
using var rng2 = new MultiThreadedRng(16, 362_436_069);
var dist = new Uniform(rng2);
using var rng2 = new MultiThreadedRng<float>(16, 362_436_069);
var dist = new Uniform<float>(rng2);
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(13));
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(58));
@@ -587,8 +588,8 @@ public class MultiThreadedRngTests
[Category(TestCategories.NORMAL)]
public async Task TestDeterministic03b()
{
using var rng2 = new MultiThreadedRng(16, 362_436_069);
var dist = new CauchyLorentzX0(rng2);
using var rng2 = new MultiThreadedRng<float>(16, 362_436_069);
var dist = new CauchyLorentzX0<float>(rng2);
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(11));
Assert.That(await dist.NextNumber(1, 100), Is.EqualTo(17));
+5 -5
View File
@@ -20,7 +20,7 @@ public class PerformanceTests
[Category(TestCategories.PERFORMANCE)]
public async Task Generate1MUniform()
{
using var rng = new MultiThreadedRng();
using var rng = new MultiThreadedRng<float>();
var data = new float[1_000_000];
var stopwatch = new Stopwatch();
Thread.Sleep(TimeSpan.FromSeconds(10)); // Warm-up phase of generator
@@ -38,8 +38,8 @@ public class PerformanceTests
[Category(TestCategories.PERFORMANCE)]
public async Task Generate1MNormal()
{
using var rng = new MultiThreadedRng();
var dist = new NormalS02M05(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new NormalS02M05<float>(rng);
var data = new float[1_000_000];
var stopwatch = new Stopwatch();
Thread.Sleep(TimeSpan.FromSeconds(10)); // Warm-up phase of generator
@@ -57,8 +57,8 @@ public class PerformanceTests
[Category(TestCategories.PERFORMANCE)]
public async Task Generate1MChiSquare()
{
using var rng = new MultiThreadedRng();
var dist = new ChiSquareK4(rng);
using var rng = new MultiThreadedRng<float>();
var dist = new ChiSquareK4<float>(rng);
var data = new float[1_000_000];
var stopwatch = new Stopwatch();
Thread.Sleep(TimeSpan.FromSeconds(10)); // Warm-up phase of generator