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); }
private void FillList(UnsafeLinkedList *llist) { for (int i = 0; i < 10; i++) { UnsafeLinkedList.AddLast <int>(llist, i); } }
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); }
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); }
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); }
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); }
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); }
public void AddLast(T item) { UnsafeLinkedList.AddLast(m_inner, item); }