public void NextFloatTest() { for (int i = 0; i < N; i++) { var v = _rng.NextFloat(); Assert.That(v >= 0f); Assert.That(v <= 1.0f); } }
public void NextFloatBoundsTest() { var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextFloat(); Assert.That(aVal <= 1.0f); Assert.That(aVal >= 0.0f); } }
public void NextFloatUpperBoundTest() { var maxV = 2.5f; var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextFloat(maxV); Assert.That(aVal <= maxV); Assert.That(aVal >= 0.0f); } }
public void NextFloatIntervalTest() { var minV = -10f; var maxV = 2.5f; var pcg = new PcgExtended(42); for (int i = 0; i < N; i++) { var aVal = pcg.NextFloat(minV, maxV); Assert.That(aVal <= maxV); Assert.That(aVal >= minV); } }
public void NextFloatMeanTest(float val) { var minV = -val; var maxV = val; var pcg = new PcgExtended(42); var rsum = 0.0f; var lTol = 0.1f * (maxV - minV); for (int i = 0; i < N; i++) { rsum += pcg.NextFloat(minV, maxV); } var mean = rsum / N; Assert.That(mean, Is.EqualTo(0.0f).Within(lTol)); }
/// <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)); }