public void GivenLazyTransformStream_WhenTransformedDataHasDifferentLength_ReturnsTheCorrectStreamLength() { using (var lazyTransformStream = new LazyTransformReadOnlyStream <byte[]>(TestData, DoubleByteArray)) { Assert.Equal(TestData.Length * 2, lazyTransformStream.Length); var readBuffer = new byte[lazyTransformStream.Length]; lazyTransformStream.Read(readBuffer, 0, readBuffer.Length); Assert.Equal(readBuffer.Length, lazyTransformStream.Position); } }
private static GCWatch GetGCWatch <T>(T inputData, Func <T, Stream> transformFunction) { var lazyTransform = new LazyTransformReadOnlyStream <T>(inputData, transformFunction); var result = new GCWatch(lazyTransform); // Read the entire stream var outputBuffer = new byte[lazyTransform.Length]; lazyTransform.Read(outputBuffer, 0, outputBuffer.Length); return(result); }
public void GivenReverseStreamFunction_WhenUsingLazyTransformStream_StreamIsReversed() { using (var lazyTransform = new LazyTransformReadOnlyStream <byte[]>(TestData, ReverseByteArray)) { Assert.Equal(TestData.Length, lazyTransform.Length); var resultBuffer = new byte[TestData.Length]; Assert.Equal(TestData.Length, lazyTransform.Read(resultBuffer, 0, TestData.Length)); for (var i = 0; i < TestData.Length; i++) { Assert.Equal(TestData[i], resultBuffer[TestData.Length - 1 - i]); } } }