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)); }
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)); }