Esempio n. 1
0
        public void RemoveRange()
        {
            var list = new LightweightList <int>();

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

            list.RemoveRange(0, 3);
            var span = list.AsSpan();
            var arr  = list.GetInternalArray();

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

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

            list.RemoveRange(5, 2);
            span = list.AsSpan();
            arr  = list.GetInternalArray();
            Assert.Equal(5, list.Count);
            Assert.Equal(5, span.Length);

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

            list.RemoveRange(2, 2);
            span = list.AsSpan();
            arr  = list.GetInternalArray();
            Assert.Equal(3, list.Count);
            Assert.Equal(3, span.Length);

            Assert.Equal(3, list[0]);
            Assert.Equal(3, span[0]);
            Assert.Equal(3, arr[0]);

            Assert.Equal(4, list[1]);
            Assert.Equal(4, span[1]);
            Assert.Equal(4, arr[1]);

            Assert.Equal(7, list[2]);
            Assert.Equal(7, span[2]);
            Assert.Equal(7, arr[2]);
        }