public void Seek() { var data = new byte[16]; var rng = new Random(); rng.NextBytes(data); const int offset = 2; var s = new ReusableStream(data, offset, data.Length - offset); Assert.AreEqual(data[offset], s.ReadUInt8()); s.Seek(0, SeekOrigin.Begin); Assert.AreEqual(data[offset], s.ReadUInt8()); s.Seek(2, SeekOrigin.Current); Assert.AreEqual(data[offset + 3], s.ReadUInt8()); s.Seek(-1, SeekOrigin.Current); Assert.AreEqual(data[offset + 3], s.ReadUInt8()); s.Seek(-1, SeekOrigin.End); Assert.AreEqual(data[data.Length - 1], s.ReadUInt8()); }