Example #1
0
        public void RemoveAt()
        {
            var list = new LightweightList <int>();

            for (int i = 0; i < 10; i++)
            {
                list.Add(i);
            }

            list.RemoveAt(9);

            var span = list.AsSpan();
            var arr  = list.GetInternalArray();

            Assert.Equal(16, list.Capacity);
            Assert.Equal(16, list.GetInternalArray().Length);

            Assert.Equal(9, list.Count);
            Assert.Equal(9, span.Length);

            for (int i = 0; i < 9; i++)
            {
                Assert.Equal(i, list[i]);
                Assert.Equal(i, span[i]);
                Assert.Equal(i, arr[i]);
            }

            list.RemoveAt(0);
            span = list.AsSpan();
            Assert.Equal(8, list.Count);
            Assert.Equal(8, span.Length);

            for (int i = 0, j = 1; i < 8; i++, j++)
            {
                Assert.Equal(j, list[i]);
                Assert.Equal(j, span[i]);
                Assert.Equal(j, arr[i]);
            }
        }