示例#1
0
        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);
        }
示例#2
0
        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());
            }
        }