public void AddBeforeAndAfterTest() { CircularLinkedListNode <int> node = threeList.Find(3); threeList.AddAfter(node, new CircularLinkedListNode <int>(5)); CircularLinkedListNode <int> sixNode = threeList.AddAfter(node, 6); CircularLinkedListNode <int> sevenNode = threeList.AddBefore(node, 7); threeList.AddBefore(node, new CircularLinkedListNode <int>(8)); Assert.AreEqual(6, sixNode.Value); Assert.AreEqual(7, sevenNode.Value); // 2 7 8 3 6 5 4 int[] values = new int[] { 2, 7, 8, 3, 6, 5, 4 }; int i = 0; foreach (int current in threeList) { Assert.AreEqual(values[i], current); i++; } CircularLinkedListNode <int> node2 = threeList.First; do { Assert.AreSame(threeList, node2.List); node2 = node2.Next; }while (node2 != threeList.First); }
public void RemoveTest() { Assert.IsTrue(threeList.Remove(3)); Assert.AreEqual(2, threeList.Count); int[] values = { 2, 4 }; int i = 0; foreach (int current in threeList) { Assert.AreEqual(values[i], current); i++; } Assert.IsFalse(threeList.Remove(5)); CircularLinkedListNode <string> node = stringList.Find("baz"); stringList.Remove(node); Assert.IsNull(node.List); Assert.IsNull(node.Previous); Assert.IsNull(node.Next); string[] values2 = { "foo", "bar" }; i = 0; foreach (string current in stringList) { Assert.AreEqual(values2[i], current); i++; } }