예제 #1
0
        public void AsSpan_when_not_items_Added_returns_empty_span()
        {
            using var listPool = new ListPool <int>();

            Span <int> sut = listPool.AsSpan();

            Assert.Equal(0, sut.Length);
        }
        public int ListPoolAsSpan()
        {
            int        count = 0;
            Span <int> span  = _listPool.AsSpan();

            foreach (int value in span)
            {
                count += value;
            }

            return(count);
        }
예제 #3
0
        public void AsSpan_returns_span_for_added_items()
        {
            int[] expectedValues = s_fixture.Create <int[]>();
            using var listPool = new ListPool <int>(expectedValues);

            Span <int> sut = listPool.AsSpan();

            Assert.Equal(expectedValues.Length, sut.Length);
            foreach (int expectedValue in expectedValues)
            {
                Assert.True(sut.Contains(expectedValue));
            }
        }
예제 #4
0
        public override void Add_items_when_capacity_is_full_then_buffer_autogrow()
        {
            using var sut = new ListPool <int>(128);
            var expectedItems = s_fixture.CreateMany <int>(sut.Capacity * 2).ToList();

            foreach (int expectedItem in expectedItems)
            {
                sut.Add(expectedItem);
            }

            var a = sut.AsSpan().Slice(0, 2).ToListPool();

            Assert.Equal(expectedItems.Count, sut.Count);
            Assert.True(expectedItems.All(expectedItem => sut.Contains(expectedItem)));
        }
예제 #5
0
        public int ListPool_AsSpan()
        {
            int count = 0;

            using ListPool <int> list = new ListPool <int>();
            for (int i = 0; i < N; i++)
            {
                list.Add(i);
            }

            foreach (int item in list.AsSpan())
            {
                count += item;
            }

            return(count);
        }
예제 #6
0
        public void AsSpan_returns_span_for_added_items()
        {
            int[] expectedValues = s_fixture.Create <int[]>();
            using var listPool = new ListPool <int>(expectedValues);

            Span <int> sut = listPool.AsSpan();

            Assert.Equal(expectedValues.Length, sut.Length);
            foreach (int expectedValue in expectedValues)
            {
                bool containsValue = false;
                foreach (int actualValue in sut)
                {
                    if (actualValue == expectedValue)
                    {
                        containsValue = true;
                        break;
                    }
                }
                Assert.True(containsValue);
            }
        }