public void Test__SystemRng__NextDoubleMinMaxValue03__ExpectException()
        {
            const double minValue = 2.22;
            const double maxValue = -3.34;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();

            Assert.Throws <ArgumentOutOfRangeException>(() => generator.NextDouble(minValue, maxValue));
        }
        public void Test__SystemRng__NextMinMaxValue02__ExpectException()
        {
            const int minValue = 2;
            const int maxValue = 1;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();

            Assert.Throws <ArgumentOutOfRangeException>(() => generator.Next(minValue, maxValue));
        }
        public void Test__SystemRng__NextMaxValue04__ExpectLessThan()
        {
            const int maxValue = int.MaxValue;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.Next(maxValue);

            Assert.IsNotNull(actual);
            Assert.IsTrue(actual < maxValue);
        }
        public void Test__SystemRng__NextDoubleMinMaxValue06__ExpectAreEqual()
        {
            const double inputValue = double.MaxValue;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.NextDouble(inputValue, inputValue);

            Assert.IsNotNull(actual);
            Assert.AreEqual(actual, inputValue);
        }
        public void Test__SystemRng__NextMaxValue__ExpectAreEqual()
        {
            const int maxValue = 0;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.Next(maxValue);

            Assert.IsNotNull(actual);
            Assert.AreEqual(actual, maxValue);
        }
        public void Test__SystemRng__NextDoubleMaxValue05__ExpectLessThan()
        {
            const double maxValue = 999.98;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.NextDouble(maxValue);

            Assert.IsNotNull(actual);
            Assert.IsTrue(actual < maxValue);
        }
        public void Test__SystemRng__NextDoubleMinMaxValue08__ExpectRange()
        {
            const double minValue = double.MinValue;
            const double maxValue = double.MaxValue;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.NextDouble(minValue, maxValue);

            Assert.IsNotNull(actual);
            Assert.IsTrue(actual < maxValue);
            Assert.IsTrue(actual >= minValue);
        }
        public void Test__SystemRng__NextMinMaxValue05__ExpectRange()
        {
            const int minValue = -1;
            const int maxValue = 1;

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();
            var actual = generator.Next(minValue, maxValue);

            Assert.IsNotNull(actual);
            Assert.IsTrue(actual < maxValue);
            Assert.IsTrue(actual >= minValue);
        }
        public void Test__SystemRng__NextDouble__ExpectSomeIntegerValues()
        {
            const int numGenerations = 1000000; // test one meellion iterations

            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();

            for (var i = 0; i < numGenerations; i++)
            {
                var actual = generator.NextDouble();

                Assert.IsNotNull(actual);
                Assert.IsTrue(actual >= 0.00);
                Assert.IsTrue(actual < 1.00);
            }
        }
        public void Test__SystemRng__NextMaxValue01__ExpectException()
        {
            IPsuedoRandomNumberGenerator generator = Factory.SystemRngPump.NewInstance();

            Assert.Throws <ArgumentOutOfRangeException>(() => generator.Next(-1));
        }