public void Next_WithNoArguments_ReturnsPositiveValues() { var rand = new HashAlgorithmRandom(new SHA256CryptoServiceProvider()); var samples = 10000; var failures = 0; for (var i = 0; i < samples; i++) { var value = rand.Next(); if (value < 0) { failures++; } } Assert.Equal(0, failures); }
public void NextDouble_Always_ReturnsValuesWithinRange() { var rand = new HashAlgorithmRandom(new SHA256CryptoServiceProvider()); var samples = 1000000; var failures = 0; for (var i = 0; i < samples; i++) { var value = rand.NextDouble(); if (value >= 1 || value < 0) { failures++; } } Assert.Equal(0, failures); }
public void Next_WithMinAndMaxValues_ReturnsValuesWithinTheRange(int minValue, int maxValue) { var rand = new HashAlgorithmRandom(new SHA256CryptoServiceProvider()); var samples = 10000; var failures = 0; for (var i = 0; i < samples; i++) { var value = rand.Next(minValue, maxValue); if (value < minValue || value > maxValue || (value == maxValue && maxValue > minValue)) { failures++; } } Assert.Equal(0, failures); }