public void GenerateRandomData_SizeIsLessThanOne_ThrowsArgumentOutOfRangeException(int size) { using (var uat = new SecureRandomContext()) { var ex = Assert.Throws <ArgumentOutOfRangeException>(() => uat.GenerateRandomData(size)); Assert.That(ex.ParamName, Is.EqualTo("size"), nameof(ex.ParamName)); } }
public void GenerateRandomData_Size_ReturnAnArrayWithLengthEqualToSize(int size) { using (var uat = new SecureRandomContext()) { var actual = uat.GenerateRandomData(size); Assert.That(actual.Length, Is.EqualTo(size)); } }
public void GenerateRandomData_DisposeHasBeenCalled_ThrowsObjectDisposedException() { var uat = new SecureRandomContext(); uat.Dispose(); var ex = Assert.Throws <ObjectDisposedException>(() => { uat.GenerateRandomData(1); }); Assert.That(ex.Message, Does.Contain(uat.GetType().FullName)); }
public void GenerateRandomData_GenerateRandomDataSamples_SamplesAreSpreadRandomly() { var samples = 256 * 256 * 256; var tolerance = 0.02; var meanBucketSize = (samples / 256); var lowerBound = (int)(meanBucketSize * (1 - tolerance)); var upperBound = (int)(meanBucketSize * (1 + tolerance)); var buckets = new int[256]; using (var uat = new SecureRandomContext()) { for (var i = 0; i < samples; ++i) { var randomData = uat.GenerateRandomData(1); buckets[randomData[0]] += 1; } } var sb = new StringBuilder(); var allValuesIsMean = buckets.All(x => x == meanBucketSize); if (allValuesIsMean) { sb.AppendLine("All bucket are equal"); } else { for (var i = 0; i < buckets.Length; ++i) { if (buckets[i] < lowerBound || buckets[i] > upperBound) { sb.AppendLine($"Bucket for value {i} contained {buckets[i]} samples which is outside the range [{lowerBound}, {upperBound}]"); } } } if (sb.Length > 0) { Assert.Fail(sb.ToString()); } }