Exemplo n.º 1
0
        public void NextInt_NoArgumentWithSeed_ReturnsAlwaysTheSameValue()
        {
            // Arrange
            var randomValues = new int[Iterations];
            var seed         = new System.Random().Next();

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                var rng = new DefaultRandomNumberGenerator(seed);
                randomValues[i] = rng.NextInt();
                var a = randomValues[i];
                Console.WriteLine(randomValues[i]);
            }

            // Assert
            Assert.IsTrue(randomValues.All(x => x == randomValues[0]));
        }
Exemplo n.º 2
0
        public void NextInt_NoArgumentWithoutSeed_ReturnsEquallyDistributedValues()
        {
            // Arrange
            var       bitEquals1Counters = new int[31]; // to 31 because first bit indicates +-
            var       rng = new DefaultRandomNumberGenerator();
            const int AcceptedDeviation = Iterations / 100;

            // Action
            for (var i = 0; i < Iterations; i++)
            {
                var value = rng.NextInt();
                for (var j = 0; j < 31; j++)
                {
                    if ((value & (1 << j)) == (1 << j))
                    {
                        bitEquals1Counters[j]++;
                    }
                }
            }

            // Assert
            Assert.IsTrue(bitEquals1Counters.All(x => x >= Iterations / 2 - AcceptedDeviation));
            Assert.IsTrue(bitEquals1Counters.All(x => x <= Iterations / 2 + AcceptedDeviation));
        }