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])); }
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)); }