예제 #1
0
        public void InsertRange_AtStart()
        {
            var list = new LightweightList <int>();

            list.InsertRange(0, Enumerable.Range(10, 10).ToArray());
            list.InsertRange(0, Enumerable.Range(0, 10).ToArray());

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

            Assert.Equal(20, list.Count);
            Assert.Equal(20, list.AsSpan().Length);

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

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

            for (int i = 10; i < 20; i++)
            {
                Assert.Equal(i, list[i]);
                Assert.Equal(i, span[i]);
                Assert.Equal(i, arr[i]);
            }
        }
예제 #2
0
        public void InsertRange_InMiddle()
        {
            var list = new LightweightList <int>();

            list.InsertRange(0, Enumerable.Range(0, 10).ToArray());
            list.InsertRange(4, Enumerable.Range(40, 10).ToArray());

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

            Assert.Equal(20, list.Count);
            Assert.Equal(20, list.AsSpan().Length);

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

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

            for (int i = 4, j = 40; i < 14; i++, j++)
            {
                Assert.Equal(j, list[i]);
                Assert.Equal(j, span[i]);
                Assert.Equal(j, arr[i]);
            }

            for (int i = 4, j = 40; i < 14; i++, j++)
            {
                Assert.Equal(j, list[i]);
                Assert.Equal(j, span[i]);
                Assert.Equal(j, arr[i]);
            }

            for (int i = 14, j = 4; i < 20; i++, j++)
            {
                Assert.Equal(j, list[i]);
                Assert.Equal(j, span[i]);
                Assert.Equal(j, arr[i]);
            }
        }
예제 #3
0
        public void InsertRange_IntoEmptyList()
        {
            int[] insertArr = Enumerable.Range(0, 10).ToArray();

            var list = new LightweightList <int>();

            list.InsertRange(0, insertArr);

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

            Assert.Equal(10, list.Count);
            Assert.Equal(10, list.AsSpan().Length);

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

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