public static async Task TestPerformance(int length) { var messageBytes = new byte[length]; for (var i = 0; i < length; i++) { messageBytes[i] = (byte)((int)(Math.E * i * i + Math.PI * i) % 256); } var expectedTimeLow = length / (MegabytesPerSecondHighSpeed * 1000); var expectedTimeHigh = 1 + length / (MegabytesPerSecondLowSpeed * 1000); var hasher = new Sha256ContentHasher(); using (var stream = new MemoryStream(messageBytes)) { await hasher.ComputeHash(stream); stream.Seek(0, SeekOrigin.Begin); var stopwatch = new Stopwatch(); stopwatch.Start(); await hasher.ComputeHash(stream); stopwatch.Stop(); Assert.InRange(stopwatch.ElapsedMilliseconds, expectedTimeLow, expectedTimeHigh); } }
public static async Task TestHashes(string expectedHash, string inputMessage) { var expectedHashFormatted = expectedHash.Replace(" ", string.Empty).ToLowerInvariant(); var hasher = new Sha256ContentHasher(); var messageBytes = Encoding.ASCII.GetBytes(inputMessage); using (var stream = new MemoryStream(messageBytes)) { var actualHash = await hasher.ComputeHash(stream); Assert.Equal(expectedHashFormatted, actualHash); } }