public void GetTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Assert.IsNull(dll.Get(0)); Assert.IsNull(dll.Get(5)); try { dll.Get(-1); Assert.Fail("Should throw an exception"); } catch (InvalidElementIndexException) {} Node n0 = new Node(null, null, new Element(new byte[0]), 0); dll.Insert(n0); Assert.AreEqual(dll.Get(0), n0); Assert.IsNull(dll.Get(1)); Assert.IsNull(dll.Get(2)); Node n1 = new Node(null, null, new Element(new byte[0]), 1); dll.Insert(n1); Assert.AreEqual(dll.Get(0), n1); Assert.AreEqual(dll.Get(1), n0); Assert.AreEqual(dll.Get(0), n0); Assert.IsNull(dll.Get(2)); }
public void MoveToHeadTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Node n0 = new Node(null, null, new Element(new byte[0]), 0); dll.Insert(n0); dll.MoveToHead(n0); Assert.AreEqual(n0, dll.Get(0)); Assert.AreEqual(1, dll.Size); Node n1 = new Node(null, null, new Element(new byte[0]), 1); dll.Insert(n1); dll.MoveToHead(n0); Assert.AreEqual(n0, dll.Get(0)); Assert.AreEqual(2, dll.Size); Node n2 = new Node(null, null, new Element(new byte[0]), 2); dll.Insert(n2); dll.MoveToHead(n0); Assert.AreEqual(n0, dll.Get(0)); Assert.AreEqual(3, dll.Size); }
private void InsertMoreThanOneTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Node n0 = new Node(null, null, new Element(new byte[0]), 0); dll.Insert(n0); Node n1 = new Node(null, null, new Element(new byte[0]), 1); dll.Insert(n1); Assert.AreEqual(n1, dll.Get(0)); Assert.AreEqual(n0, dll.Get(1)); Assert.AreEqual(2, dll.Size); }
public void RemoveEndTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Assert.IsNull(dll.RemoveEnd()); Node n0 = new Node(null, null, new Element(new byte[0]), 0); dll.Insert(n0); dll.RemoveEnd(); Assert.IsNull(dll.Get(0)); Assert.AreEqual(0, dll.Size); dll.Insert(n0); Node n1 = new Node(null, null, new Element(new byte[0]), 1); dll.Insert(n1); dll.RemoveEnd(); Assert.AreEqual(dll.Get(0), n1); Assert.IsNull(dll.Get(1)); Assert.AreEqual(1, dll.Size); }