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); }
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); }
public void LRUDoublyLinkedListCtorTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Assert.IsNotNull(dll); }
private void InsertOneTest() { LRUDoublyLinkedList dll = new LRUDoublyLinkedList(); Node n0 = new Node(null, null, new Element(new byte[0]), 0); Assert.AreEqual(0, dll.Size); dll.Insert(n0); Assert.AreEqual(n0, dll.Get(0)); Assert.AreEqual(1, dll.Size); }
private void InsertMoreThanTwoTest() { 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); Node n2 = new Node(null, null, new Element(new byte[0]), 2); dll.Insert(n2); Assert.AreEqual(n2, dll.Get(0)); Assert.AreEqual(n1, dll.Get(1)); Assert.AreEqual(n0, dll.Get(2)); Assert.AreEqual(3, dll.Size); }
public LRUElementCache(int size) { _cacheSize = size; _cacheList = new LRUDoublyLinkedList(); _index = new Dictionary<int, Node>(); }