public async Task UnevenReadComparisonNotMatching() { var bytes1 = new byte[StreamCompare.DefaultBufferSize * 2]; var bytes2 = new byte[bytes1.Length]; var rng = new Random(); rng.NextBytes(bytes1); bytes1.CopyTo(bytes2, 0); bytes2[bytes2.Length - 1] += 1; using (var stream1 = new MemoryStream(bytes1)) using (var stream2 = new UnseekableMemoryStream(bytes2)) { stream2.ReadModifier = 0.7; var scompare = new StreamCompare(); // Automatic forceLengthCompare Assert.IsFalse(await scompare.AreEqualAsync(stream1, stream2)); } // And again with stream1 reading less using (var stream1 = new UnseekableMemoryStream(bytes1)) using (var stream2 = new MemoryStream(bytes2)) { stream1.ReadModifier = 0.7; var scompare = new StreamCompare(); // Explicit forceLengthCompare Assert.IsFalse(await scompare.AreEqualAsync(stream1, stream2, false)); } }
public async Task UnseekableStreamComparison() { var bytes1 = new byte[StreamCompare.DefaultBufferSize * 2]; var bytes2 = new byte[bytes1.Length]; var rng = new Random(); rng.NextBytes(bytes1); bytes1.CopyTo(bytes2, 0); using (var stream1 = new MemoryStream(bytes1)) using (var stream2 = new UnseekableMemoryStream(bytes2)) { var scompare = new StreamCompare(); Assert.IsTrue(await scompare.AreEqualAsync(stream1, stream2, false)); } }