public void TestCanReadCanWrite() { var mem = new byte[2]; var s = new Memory <byte>(mem); var ros = new ReadOnlyMemory <byte>(mem); var ss = new MemoryStreamer(s); Assert.True(ss.CanRead); Assert.True(ss.CanWrite); Assert.True(ss.CanSeek); var ross = new ReadOnlyMemoryStreamer(ros); Assert.True(ross.CanRead); Assert.False(ross.CanWrite); Assert.True(ross.CanSeek); }
public void TestSizedReadWriteReadOnlyMemory() { var rnd = new Random(); for (var c = 0; c < count; c++) { var memSize = rnd.Next(1, 10_000); var mem = new byte[(memSize + 4) * writeRepeatCount + 10]; var answer = new byte[memSize * writeRepeatCount]; rnd.NextBytes(answer); var span1 = new MemoryStreamer(mem); var span2 = new ReadOnlyMemoryStreamer(new ReadOnlyMemory <byte>(mem)); span1.WriteSized(new Span <byte>(answer)); span1.Write(1234); var bytes = span2.ReadSizedBytes(out var length); Assert.Equal(answer, bytes); Assert.Equal(1234, span2.ReadInt32()); } }