Added test cases for interval checking

This commit is contained in:
Thorsten Sommer 2020-11-08 16:23:55 +01:00
parent 6b8a27b565
commit 488025ad6c
2 changed files with 140 additions and 0 deletions

View File

@ -153,6 +153,76 @@ namespace FastRngTests.Double
Assert.That(await distUniform.NextNumber(20.0, 1), Is.InRange(1, 20)); Assert.That(await distUniform.NextNumber(20.0, 1), Is.InRange(1, 20));
Assert.That(await distNormal.NextNumber(20.0, 1), Is.InRange(1, 20)); Assert.That(await distNormal.NextNumber(20.0, 1), Is.InRange(1, 20));
} }
[Test]
[Category(TestCategories.LONG_RUNNING)]
public async Task TestRange05()
{
var distUniform = new Uniform(this.rng);
var distLorentz = new CauchyLorentzX1(this.rng);
var rngContains0 = false;
var rngContains1 = false;
var uniformContains0 = false;
var uniformContains1 = false;
var lorentzContains0 = false;
var lorentzContains1 = false;
for (int i = 0; i < 100_000_000; i++)
{
var rngValue = await rng.GetUniform();
var uniform = await distUniform.NextNumber();
var lorentz = await distLorentz.NextNumber();
switch (rngValue)
{
case 0.0:
rngContains0 = true;
break;
case 1.0:
rngContains1 = true;
break;
}
switch (uniform)
{
case 0.0:
uniformContains0 = true;
break;
case 1.0:
uniformContains1 = true;
break;
}
switch (lorentz)
{
case 0.0:
lorentzContains0 = true;
break;
case 1.0:
lorentzContains1 = true;
break;
}
}
TestContext.WriteLine($"Uniform generator contained 0? {rngContains0} (expected=false)");
TestContext.WriteLine($"Uniform generator contained 1? {rngContains1} (expected=true)");
TestContext.WriteLine($"Uniform distribution contained 0? {uniformContains0} (expected=false)");
TestContext.WriteLine($"Uniform distribution contained 1? {uniformContains1} (expected=true)");
TestContext.WriteLine($"Lorentz distribution contained 0? {lorentzContains0} (expected=false)");
TestContext.WriteLine($"Lorentz distribution contained 1? {lorentzContains1} (expected=true)");
Assert.That(rngContains0, Is.False, "Uniform generator contained 0");
Assert.That(rngContains1, Is.True, "Uniform generator does not contained 1");
Assert.That(uniformContains0, Is.False, "Uniform distribution contained 0");
Assert.That(uniformContains1, Is.True, "Uniform distribution does not contained 1");
Assert.That(lorentzContains0, Is.False, "Lorentz distribution contained 0");
Assert.That(lorentzContains1, Is.True, "Lorentz distribution does not contained 1");
}
[Test] [Test]
[Category(TestCategories.COVER)] [Category(TestCategories.COVER)]

View File

@ -153,6 +153,76 @@ namespace FastRngTests.Float
Assert.That(await distUniform.NextNumber(20.0f, 1), Is.InRange(1, 20)); Assert.That(await distUniform.NextNumber(20.0f, 1), Is.InRange(1, 20));
Assert.That(await distNormal.NextNumber(20.0f, 1), Is.InRange(1, 20)); Assert.That(await distNormal.NextNumber(20.0f, 1), Is.InRange(1, 20));
} }
[Test]
[Category(TestCategories.LONG_RUNNING)]
public async Task TestRange05()
{
var distUniform = new Uniform(this.rng);
var distLorentz = new CauchyLorentzX1(this.rng);
var rngContains0 = false;
var rngContains1 = false;
var uniformContains0 = false;
var uniformContains1 = false;
var lorentzContains0 = false;
var lorentzContains1 = false;
for (int i = 0; i < 100_000_000; i++)
{
var rngValue = await rng.GetUniform();
var uniform = await distUniform.NextNumber();
var lorentz = await distLorentz.NextNumber();
switch (rngValue)
{
case 0.0f:
rngContains0 = true;
break;
case 1.0f:
rngContains1 = true;
break;
}
switch (uniform)
{
case 0.0f:
uniformContains0 = true;
break;
case 1.0f:
uniformContains1 = true;
break;
}
switch (lorentz)
{
case 0.0f:
lorentzContains0 = true;
break;
case 1.0f:
lorentzContains1 = true;
break;
}
}
TestContext.WriteLine($"Uniform generator contained 0? {rngContains0} (expected=false)");
TestContext.WriteLine($"Uniform generator contained 1? {rngContains1} (expected=true)");
TestContext.WriteLine($"Uniform distribution contained 0? {uniformContains0} (expected=false)");
TestContext.WriteLine($"Uniform distribution contained 1? {uniformContains1} (expected=true)");
TestContext.WriteLine($"Lorentz distribution contained 0? {lorentzContains0} (expected=false)");
TestContext.WriteLine($"Lorentz distribution contained 1? {lorentzContains1} (expected=true)");
Assert.That(rngContains0, Is.False, "Uniform generator contained 0");
Assert.That(rngContains1, Is.True, "Uniform generator does not contained 1");
Assert.That(uniformContains0, Is.False, "Uniform distribution contained 0");
Assert.That(uniformContains1, Is.True, "Uniform distribution does not contained 1");
Assert.That(lorentzContains0, Is.False, "Lorentz distribution contained 0");
Assert.That(lorentzContains1, Is.True, "Lorentz distribution does not contained 1");
}
[Test] [Test]
[Category(TestCategories.COVER)] [Category(TestCategories.COVER)]