/// <exception cref="System.Exception"/>
        public virtual void TestRefillReservoir()
        {
            OsSecureRandom random = GetOsSecureRandom();

            for (int i = 0; i < 8196; i++)
            {
                random.NextLong();
            }
            random.Close();
        }
        /// <summary>
        /// Test will timeout if secure random implementation always returns a
        /// constant value.
        /// </summary>
        /// <exception cref="System.Exception"/>
        public virtual void TestRandomFloat()
        {
            OsSecureRandom random = GetOsSecureRandom();
            float          rand1  = random.NextFloat();
            float          rand2  = random.NextFloat();

            while (rand1 == rand2)
            {
                rand2 = random.NextFloat();
            }
            random.Close();
        }
        /// <summary>
        /// Test will timeout if secure random implementation always returns a
        /// constant value.
        /// </summary>
        /// <exception cref="System.Exception"/>
        public virtual void TestRandomLong()
        {
            OsSecureRandom random = GetOsSecureRandom();
            long           rand1  = random.NextLong();
            long           rand2  = random.NextLong();

            while (rand1 == rand2)
            {
                rand2 = random.NextLong();
            }
            random.Close();
        }
        /// <summary>
        /// Test will timeout if secure random implementation always returns a
        /// constant value.
        /// </summary>
        /// <exception cref="System.Exception"/>
        public virtual void TestRandomDouble()
        {
            OsSecureRandom random = GetOsSecureRandom();
            double         rand1  = random.NextDouble();
            double         rand2  = random.NextDouble();

            while (rand1 == rand2)
            {
                rand2 = random.NextDouble();
            }
            random.Close();
        }
        /// <exception cref="System.Exception"/>
        public virtual void TestRandomBytes()
        {
            OsSecureRandom random = GetOsSecureRandom();

            // len = 16
            CheckRandomBytes(random, 16);
            // len = 32
            CheckRandomBytes(random, 32);
            // len = 128
            CheckRandomBytes(random, 128);
            // len = 256
            CheckRandomBytes(random, 256);
            random.Close();
        }