Пример #1
0
        public void AddAfterTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 1);
            UnsafeLinkedList.AddLast(llist, 3);
            UnsafeLinkedList.AddLast(llist, 5);

            // Add a node after 1 and 3 so we have a 1 - 5 sequence
            var node = UnsafeLinkedList.FindNode(llist, 1);

            UnsafeLinkedList.AddAfter(llist, node, 2);

            node = UnsafeLinkedList.FindNode(llist, 3);
            UnsafeLinkedList.AddAfter(llist, node, 4);

            Assert.AreEqual(5, UnsafeLinkedList.GetCount(llist));

            var enumerator = UnsafeLinkedList.GetEnumerator <int>(llist);

            enumerator.MoveNext();

            for (int i = 1; i < 5; i++)
            {
                Assert.AreEqual(i, enumerator.Current);
                enumerator.MoveNext();
            }

            UnsafeLinkedList.Free(llist);
        }
Пример #2
0
 private void FillList(UnsafeLinkedList *llist)
 {
     for (int i = 0; i < 10; i++)
     {
         UnsafeLinkedList.AddLast <int>(llist, i);
     }
 }
Пример #3
0
        public void AddLastTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 3);
            UnsafeLinkedList.AddLast(llist, 9);
            UnsafeLinkedList.AddLast(llist, 0);

            Assert.AreEqual(3, UnsafeLinkedList.GetCount(llist));

            UnsafeLinkedList.Free(llist);
        }
Пример #4
0
        public void FindNodeTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 1);
            UnsafeLinkedList.AddLast(llist, 2);
            UnsafeLinkedList.AddLast(llist, 3);

            var node = UnsafeLinkedList.FindNode(llist, 2);

            Assert.AreEqual(2, UnsafeLinkedList.Node.GetItem <int>(node));

            node = UnsafeLinkedList.FindNode(llist, 5);
            Assert.IsTrue(node == null);

            UnsafeLinkedList.Free(llist);
        }
Пример #5
0
        public void AddMixedTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 3);
            UnsafeLinkedList.AddFirst(llist, 2);
            UnsafeLinkedList.AddLast(llist, 4);
            UnsafeLinkedList.AddLast(llist, 5);
            UnsafeLinkedList.AddFirst(llist, 1);

            var index = 0;

            foreach (int num in UnsafeLinkedList.GetEnumerator <int>(llist))
            {
                Assert.AreEqual(++index, num);
            }

            Assert.AreEqual(5, UnsafeLinkedList.GetCount(llist));

            UnsafeLinkedList.Free(llist);
        }
Пример #6
0
        public void RemoveNodeTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 1);
            UnsafeLinkedList.AddLast(llist, 2);
            UnsafeLinkedList.AddLast(llist, 3);

            // First grab the node
            var node = UnsafeLinkedList.FindNode <int>(llist, 3);

            // Remove the node
            var result = UnsafeLinkedList.Remove(llist, ref node);

            Assert.IsTrue(result);
            Assert.IsTrue(node == null);

            Assert.AreEqual(2, UnsafeLinkedList.GetCount(llist));

            UnsafeLinkedList.Free(llist);
        }
Пример #7
0
        public void RemoveItemTest()
        {
            var llist = UnsafeLinkedList.Allocate <int>();

            UnsafeLinkedList.AddLast(llist, 1);
            UnsafeLinkedList.AddLast(llist, 2);
            UnsafeLinkedList.AddLast(llist, 3);

            Assert.AreEqual(3, UnsafeLinkedList.GetCount(llist));

            UnsafeLinkedList.Remove(llist, 2);

            Assert.AreEqual(2, UnsafeLinkedList.GetCount(llist));

            var arr = stackalloc int[2];

            UnsafeLinkedList.CopyTo <int>(llist, arr, 0);

            Assert.AreEqual(1, arr[0]);
            Assert.AreEqual(3, arr[1]);

            UnsafeLinkedList.Free(llist);
        }
Пример #8
0
 public void AddLast(T item)
 {
     UnsafeLinkedList.AddLast(m_inner, item);
 }