public void SingleArgumentConstructorTest() { var seed = PcgSeed.TimeBasedSeed(); var rng = new PcgExtended(seed); Assert.IsNotNull(rng); }
public void NextIntIntervalTest() { var minV = -20; var maxV = 10; var pcg = new PcgExtended(42); var lbCount = 0; var ubCount = 0; for (int i = 0; i < N; i++) { var aVal = pcg.Next(minV, maxV); Assert.That(aVal >= minV); Assert.That(aVal < maxV); if (aVal == minV) { lbCount++; } if (aVal == maxV - 1) { ubCount++; } } Assert.That(lbCount > 0); Assert.That(ubCount > 0); }
public void NextIntUpperBoundTest() { var maxV = 10; var pcg = new PcgExtended(42); var lbCount = 0; var ubCount = 0; for (int i = 0; i < N; i++) { var aVal = pcg.Next(maxV); Assert.That(aVal >= 0); Assert.That(aVal < maxV); if (aVal == 0) { lbCount++; } if (aVal == maxV - 1) { ubCount++; } } Assert.That(lbCount > 0); Assert.That(ubCount > 0); }
public void NextDoubleBoundsTest() { var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextDouble(); Assert.That(aVal <= 1.0); Assert.That(aVal >= 0.0); } }
public void NextDoubleUpperBoundTest() { var maxV = 2.5; var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextDouble(maxV); Assert.That(aVal <= maxV); Assert.That(aVal >= 0.0f); } }
public void ReproducibilityTest() { var r1 = new PcgExtended(11, 1); var r1V = r1.NextInts(N); var r2 = new PcgExtended(11, 1); var r2V = r2.NextInts(N); for (int i = 0; i < N; i++) { Assert.That(r1V[i], Is.EqualTo(r2V[i])); } }
public void NextDoubleIntervalTest() { var minV = -10; var maxV = 2.5; var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextDouble(minV, maxV); Assert.That(aVal <= maxV); Assert.That(aVal >= minV); } }
public void CorrectnessTests(int seed, int tablePow2, int advancePow2) { var list = RandomHelpers.ReadPcgExtendedOutput(seed, tablePow2, advancePow2); Assert.AreEqual(10000, list.Count); var pcg = new PcgExtended((ulong)seed, 721347520444481703, tablePow2, advancePow2); for (int i = 0; i < 10000; i++) { var aVal = pcg.NextUInt(); var cVal = list[i]; Assert.That(aVal, Is.EqualTo(cVal)); } }
public void NextDoubleMeanTest(float val) { var minV = -val; var maxV = val; var pcg = new PcgExtended(10); var rsum = 0.0; var lTol = 0.1 * (maxV - minV); for (int i = 0; i < N; i++) { rsum += pcg.NextDouble(minV, maxV); } var mean = rsum / N; Assert.That(mean, Is.EqualTo(0.0f).Within(lTol)); }
public void DefineTablePowConstructorTest() { var rng = new PcgExtended(42, 8, 32); Assert.That(rng.PeriodPow2() == 256 * 32 + 64); }
public void DefaultConstructorTest() { var rng = new PcgExtended(); Assert.IsNotNull(rng); }
public void Initialize() { _rng = PcgExtended.Default; }
/// <summary> /// Returns a random single precision floating point number within the given interval. /// </summary> /// <param name="this">The this.</param> /// <param name="interval">The interval.</param> public static float NextFloat(this PcgExtended @this, Interval <float> interval) { return(@this.NextFloat(interval.LowerBound, interval.UpperBound)); }