public void TestCanReadCanWrite() { var mem = new byte[2]; var s = new Span <byte>(mem); var ros = new ReadOnlySpan <byte>(mem); var ss = new SpanStream(s); Assert.True(ss.CanRead); Assert.True(ss.CanWrite); Assert.True(ss.CanSeek); var ross = new ReadOnlySpanStream(ros); Assert.True(ross.CanRead); Assert.False(ross.CanWrite); Assert.True(ross.CanSeek); }
public void TestSizedReadWriteReadOnlySpan() { 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 SpanStream(mem); var span2 = new ReadOnlySpanStream(new ReadOnlySpan <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()); } }