public void AsyncLockFreeListIndexOf()
        {
            var list = new AsyncLockFreeList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            Thread.Sleep(100);
            Assert.AreEqual(1, list.IndexOf(2));
        }
        public void AsyncLockFreeListContains()
        {
            var list = new AsyncLockFreeList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            Thread.Sleep(100);
            Assert.IsTrue(list.Contains(2));
            Assert.IsFalse(list.Contains(6));
        }
        public void AsyncLockFreeListClear()
        {
            var list = new AsyncLockFreeList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 5);
            list.Clear();
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 0);
        }
        public void AsyncLockFreeListInsert()
        {
            var list = new AsyncLockFreeList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            list.Insert(1, 999);
            Thread.Sleep(100);
            Assert.IsTrue(list.Contains(999));
            Assert.AreEqual(1, list.IndexOf(999));
            Assert.AreEqual(0, list.IndexOf(1));
            Assert.AreEqual(2, list.IndexOf(2));
            Assert.AreEqual(6, list.Count);
        }
        public void AsyncLockFreeListEnumerator()
        {
            var list = new AsyncLockFreeList <int>();

            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            Thread.Sleep(100);

            int compare = 1;

            foreach (var item in list)
            {
                var result = item;
                Assert.AreEqual(compare, result);
                compare++;
            }
        }
        public void AsyncLockFreeListAdd()
        {
            var list = new AsyncLockFreeList <int>();

            //We enqueue some items to test and check that the items are inserted correctly
            list.Add(1);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 1);
            list.Add(2);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 2);
            list.Add(3);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 3);
            list.Add(4);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 4);
            list.Add(5);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 5);
        }
        public void AsyncLockFreeListRemove()
        {
            var list = new AsyncLockFreeList <int>();

            //We enqueue some items to test
            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            Thread.Sleep(100);

            Assert.AreEqual(list.Count, 5);
            list.Remove(1);
            Thread.Sleep(100);
            Assert.AreEqual(list.Count, 4);
            Assert.AreEqual(list[0], 2);
            Assert.AreEqual(list[1], 3);
            Assert.AreEqual(list[2], 4);
            Assert.AreEqual(list[3], 5);
        }