Beispiel #1
0
 public static void RemoveHeadElements()
 {
     using var writer = new PooledArrayBufferWriter <string>();
     writer.Add("a");
     writer.Add("b");
     writer.Add("c");
     writer.RemoveFirst(2);
     Equal(1, writer.WrittenCount);
     Equal("c", writer[0]);
     writer.RemoveFirst(1);
     Equal(0, writer.WrittenCount);
     Throws <ArgumentOutOfRangeException>(() => writer.RemoveFirst(-1));
 }
Beispiel #2
0
        public static void WriterAsReadOnlyCollection()
        {
            using var writer = new PooledArrayBufferWriter <int>();
            IReadOnlyList <int> collection = writer;

            Empty(collection);

            writer.Add(42);
            Equal(1, writer.WrittenCount);
            Equal(1, collection.Count);
            Equal(42, collection[0]);
            Throws <IndexOutOfRangeException>(() => collection[1]);
            Equal(42, Enumerable.First(collection));
            Equal(1, Enumerable.Count(collection));

            writer.AddAll(new[] { 43, 44 });
            Equal(3, writer.WrittenCount);
            Equal(3, collection.Count);
            Equal(42, collection[0]);
            Equal(43, collection[1]);
            Equal(44, collection[2]);
            Throws <IndexOutOfRangeException>(() => collection[3]);
            Equal(3, Enumerable.Count(collection));
            Equal(new[] { 42, 43, 44 }, Enumerable.ToArray(collection));
        }