Esempio n. 1
0
        private static void Initialize(ref Multispan <byte> ms)
        {
            Assert.Equal(0, ms.TotalItemCount());

            ms.AppendNewSegment(10);
            ms.ResizeSegment(0, 10);
            ms.AppendNewSegment(20);
            ms.ResizeSegment(1, 20);
            ms.AppendNewSegment(30);
            ms.ResizeSegment(2, 30);
            Assert.Equal(60, ms.TotalItemCount());
        }
Esempio n. 2
0
        private static void Initialize(ref Multispan<byte> ms)
        {
            Assert.Equal(0, ms.TotalItemCount());

            ms.AppendNewSegment(10);
            ms.ResizeSegment(0, 10);
            ms.AppendNewSegment(20);
            ms.ResizeSegment(1, 20);
            ms.AppendNewSegment(30);
            ms.ResizeSegment(2, 30);
            Assert.Equal(60, ms.TotalItemCount());
        }
Esempio n. 3
0
        public void MultispanFormatterBasics()
        {
            var data      = new Multispan <byte>();
            var formatter = new MultispanFormatter(data, 10, FormattingData.InvariantUtf8);

            formatter.Append(new string('x', 10));
            formatter.Append(new string('x', 8));
            formatter.Append(new string('x', 8));
            formatter.Append(new string('x', 5));
            formatter.Append(new string('x', 5));

            data = formatter.Multispan;

            var bytesWritten = data.TotalItemCount();

            Assert.Equal(36, bytesWritten);

            var array = new byte[bytesWritten];

            data.CopyTo(array);
            foreach (byte b in array)
            {
                Assert.Equal((byte)'x', b);
            }
        }
Esempio n. 4
0
        public void BasicsWork()
        {
            var ints = new Multispan<int>();
            Assert.Equal(0, ints.Count);

            int index1 = ints.AppendNewSegment(10);
            Assert.Equal(1, ints.Count);
            Assert.Equal(0, index1);
            Span<int> segment1 = ints[index1];
            Assert.True(segment1.Length >= 10);

            int index2 = ints.AppendNewSegment(1000);
            Assert.Equal(2, ints.Count);
            Assert.Equal(1, index2);
            Span<int> segment2 = ints[index2];
            Assert.True(segment2.Length >= 1000);

            var totalSize = segment1.Length + segment2.Length;
            var computedSize = ints.TotalItemCount();
            Assert.Equal(totalSize, computedSize);

            ints.ResizeSegment(0, 20);
            ints.ResizeSegment(1, 100);
            segment1 = ints[0];
            segment2 = ints[1];
            Assert.True(segment1.Length >= 20);
            Assert.True(segment2.Length >= 100);

            ints.Dispose();
            Assert.Equal(0, ints.Count);
        }
Esempio n. 5
0
        public void MultispanFormatterBasics()
        {
            var data = new Multispan<byte>();
            var formatter = new MultispanFormatter(data, 10, FormattingData.InvariantUtf8);
            formatter.Append(new string('x', 10));
            formatter.Append(new string('x', 8));
            formatter.Append(new string('x', 8));
            formatter.Append(new string('x', 5));
            formatter.Append(new string('x', 5));

            data = formatter.Multispan;

            var bytesWritten = data.TotalItemCount();
            Assert.Equal(36, bytesWritten);

            var array = new byte[bytesWritten];
            data.CopyTo(array);
            foreach(byte b in array) {
                Assert.Equal((byte)'x', b);
            }
        }
Esempio n. 6
0
        public void BasicsWork()
        {
            var ints = new Multispan <int>();

            Assert.Equal(0, ints.Count);

            int index1 = ints.AppendNewSegment(10);

            Assert.Equal(1, ints.Count);
            Assert.Equal(0, index1);
            Span <int> segment1 = ints[index1];

            Assert.True(segment1.Length >= 10);

            int index2 = ints.AppendNewSegment(1000);

            Assert.Equal(2, ints.Count);
            Assert.Equal(1, index2);
            Span <int> segment2 = ints[index2];

            Assert.True(segment2.Length >= 1000);

            var totalSize    = segment1.Length + segment2.Length;
            var computedSize = ints.TotalItemCount();

            Assert.Equal(totalSize, computedSize);

            ints.ResizeSegment(0, 20);
            ints.ResizeSegment(1, 100);
            segment1 = ints[0];
            segment2 = ints[1];
            Assert.True(segment1.Length >= 20);
            Assert.True(segment2.Length >= 100);

            ints.Dispose();
            Assert.Equal(0, ints.Count);
        }