Exemple #1
0
 public void NextFloatTest()
 {
     for (int i = 0; i < N; i++)
     {
         var v = _rng.NextFloat();
         Assert.That(v >= 0f);
         Assert.That(v <= 1.0f);
     }
 }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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));
 }