public void Reset() { const string s = "The quick brown fox jumped over the lazy dog."; string expectedValue = s.Substring(4); string observedValue; long observedBufferPosition; byte observedByte; using (var memoryStream = new MemoryStream()) { using (var writer = new ExtendedBinaryWriter(memoryStream, Encoding.UTF8, true)) { writer.Write(Encoding.ASCII.GetBytes(s)); } memoryStream.Position = 0; using (var reader = new BufferedBinaryReader(memoryStream)) { reader.ReadInt32(); observedBufferPosition = reader.BufferPosition; reader.BufferPosition = 2; observedByte = reader.ReadByte(); memoryStream.Position = 4; reader.Reset(); var bytes = reader.ReadBytes(s.Length - 4); observedValue = Encoding.ASCII.GetString(bytes); } } Assert.Equal(expectedValue, observedValue); Assert.Equal((byte)'e', observedByte); Assert.Equal(4, observedBufferPosition); }