Ejemplo n.º 1
0
        public void CanAddElements()
        {
            var list = new ChunkedList <int>(40);            // 10 of Int32

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

            for (int i = 0; i < 5; i++)
            {
                list[i].ShouldEqual(i);
            }

            list.BucketCount.ShouldEqual(1);
            list.IsEmpty.ShouldBeFalse();
            list.Count.ShouldEqual(5);

            var buckets = list.Buckets;

            buckets.ShouldNotBeNull();
            buckets.Count.ShouldEqual(1);

            var bucket = buckets[0];

            bucket.Buffer.ShouldNotBeNull();
            bucket.Buffer.Length.ShouldEqual(10);
            bucket.FreeSpace.ShouldEqual(5);
            bucket.Index.ShouldEqual(5);
            bucket.IsEmpty.ShouldBeFalse();
        }
Ejemplo n.º 2
0
        public void CanCreateMoreBuckets()
        {
            var list = new ChunkedList <int>(20);            // 5 of Int32

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

            for (int i = 0; i < 10; i++)
            {
                list[i].ShouldEqual(i);
            }

            list.BucketCount.ShouldEqual(2);
            list.IsEmpty.ShouldBeFalse();
            list.Count.ShouldEqual(10);

            var buckets = list.Buckets;

            buckets.ShouldNotBeNull();
            buckets.Count.ShouldEqual(2);

            foreach (var bucket in buckets)
            {
                bucket.Buffer.ShouldNotBeNull();
                bucket.Buffer.Length.ShouldEqual(5);
                bucket.FreeSpace.ShouldEqual(0);
                bucket.Index.ShouldEqual(5);
                bucket.IsEmpty.ShouldBeFalse();
            }
        }
Ejemplo n.º 3
0
        public void CantRemoveElements()
        {
            var list = new ChunkedList <int>();

            list.Add(42);

            Trap.Exception(() => list.Remove(42)).ShouldBeInstanceOf <NotSupportedException>();
        }
Ejemplo n.º 4
0
        public void CanUseContainsToFindElement()
        {
            var list = new ChunkedList <int>();

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

            list.Contains(5).ShouldBeTrue();
        }
Ejemplo n.º 5
0
        public void CanGetLastItem()
        {
            var list = new ChunkedList <int>(20);            // 5 of Int32

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

            list.Last.ShouldEqual(9);
        }
Ejemplo n.º 6
0
        public void CanGetFirstItem()
        {
            var list = new ChunkedList <int>();

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

            list.First.ShouldEqual(0);
        }
Ejemplo n.º 7
0
        public void CanSetValueByIndex()
        {
            var list = new ChunkedList <int>(20);            // 5 of Int32

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

            list[5] = 42;
            list[5].ShouldEqual(42);
            list.Buckets[1][0].ShouldEqual(42);
        }
Ejemplo n.º 8
0
        public void CantCopyToArrayOfSmallerSize()
        {
            var list = new ChunkedList <int>();

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

            var arr = new int[5];

            Trap.Exception(() => list.CopyTo(arr, 0)).ShouldBeInstanceOf <ArgumentOutOfRangeException>();
        }
Ejemplo n.º 9
0
        public void CanRaiseListUpdatedForSingleItem()
        {
            var evt  = new ManualResetEventSlim();
            var list = new ChunkedList <int>();

            list.ListUpdated += (sender, args) =>
            {
                args.Count.ShouldEqual(1);
                evt.Set();
            };
            Task.Run(() => list.Add(42));

            evt.Wait();
        }
Ejemplo n.º 10
0
        public void CanClearList()
        {
            var list = new ChunkedList <int>(20);

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

            list.Buckets.Count.ShouldEqual(2);

            list.Clear();

            list.Buckets.Count.ShouldEqual(0);
            list.Count.ShouldEqual(0);
            list.IsEmpty.ShouldBeTrue();
        }
Ejemplo n.º 11
0
        public void CanCopyToArrayFromIndex()
        {
            var list = new ChunkedList <int>();

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

            var arr = new int[20];

            list.CopyTo(arr, 10);

            for (int i = 10; i < 20; i++)
            {
                arr[i].ShouldEqual(i - 10);
            }
        }
Ejemplo n.º 12
0
        public void CanCopyToArray()
        {
            var list = new ChunkedList <int>();

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

            var arr = new int[10];

            list.CopyTo(arr, 0);

            for (int i = 0; i < 10; i++)
            {
                arr[i].ShouldEqual(i);
            }
        }