public void DLLe_Insert_Element_Inside() { // Arrange var list = new DoublyLinkedListExpanded <int>(); // Act list.AddFirst(0); list.InsertAt(1, 0); list.InsertAt(2, 1); // Assert var items = new List <int>(); list.ForEach(items.Add); CollectionAssert.AreEqual(items, new List <int>() { 1, 2, 0 }); }
public void DLLe_AddFirst_EmptyList_ShouldAddElement() { // Arrange var list = new DoublyLinkedListExpanded <int>(); // Act list.AddFirst(5); // Assert Assert.AreEqual(1, list.Count); var items = new List <int>(); list.ForEach(items.Add); CollectionAssert.AreEqual(items, new List <int>() { 5 }); }
public void DLLe_AddFirst_SeveralElements_ShouldAddElementsCorrectly() { // Arrange var list = new DoublyLinkedListExpanded <int>(); // Act list.AddFirst(10); list.AddFirst(5); list.AddFirst(3); // Assert Assert.AreEqual(3, list.Count); var items = new List <int>(); list.ForEach(items.Add); CollectionAssert.AreEqual(items, new List <int>() { 3, 5, 10 }); }
public void DLLe_ForEach_MultipleElements_ShouldEnumerateElementsCorrectly() { // Arrange var list = new DoublyLinkedListExpanded <string>(); list.AddLast("Five"); list.AddLast("Six"); list.AddLast("Seven"); // Act var items = new List <string>(); list.ForEach(items.Add); // Assert CollectionAssert.AreEqual(items, new List <string>() { "Five", "Six", "Seven" }); }
public void DLLe_RemoveLast_OneElement_ShouldMakeListEmpty() { // Arrange var list = new DoublyLinkedListExpanded <int>(); list.AddFirst(5); // Act var element = list.RemoveLast(); // Assert Assert.AreEqual(5, element); Assert.AreEqual(0, list.Count); var items = new List <int>(); list.ForEach(items.Add); CollectionAssert.AreEqual(items, new List <int>() { }); }
public T this[int index] { get { if (index >= this.Count || index < 0) { throw new IndexOutOfRangeException(); } int currentPosition = 0; DoublyLinkedListExpanded <T> .ListNode <T> currentNode = this.head; while (currentPosition < index) { currentNode = currentNode.NextNode; currentPosition++; } return(currentNode.Value); } set { if (index >= this.Count || index < 0) { throw new IndexOutOfRangeException(); } int currentPosition = 0; DoublyLinkedListExpanded <T> .ListNode <T> currentNode = this.head; while (currentPosition < index) { currentNode = currentNode.NextNode; currentPosition++; } currentNode.Value = value; } }
public void DLLe_IEnumerable_NonGeneric_MultipleElements() { // Arrange var list = new DoublyLinkedListExpanded <object>(); list.AddLast("Five"); list.AddLast(6); list.AddLast(7.77); // Act var enumerator = ((IEnumerable)list).GetEnumerator(); var items = new List <object>(); while (enumerator.MoveNext()) { items.Add(enumerator.Current); } // Assert CollectionAssert.AreEqual(items, new List <object>() { "Five", 6, 7.77 }); }
public void DLLe_IEnumerable_Foreach_MultipleElements() { // Arrange var list = new DoublyLinkedListExpanded <string>(); list.AddLast("Five"); list.AddLast("Six"); list.AddLast("Seven"); // Act var items = new List <string>(); foreach (var element in list) { items.Add(element); } // Assert CollectionAssert.AreEqual(items, new List <string>() { "Five", "Six", "Seven" }); }
public void DLLe_RemoveLast_SeveralElements_ShouldRemoveElementsCorrectly() { // Arrange var list = new DoublyLinkedListExpanded <int>(); list.AddFirst(10); list.AddFirst(9); list.AddFirst(8); // Act var element = list.RemoveLast(); // Assert Assert.AreEqual(10, element); Assert.AreEqual(2, list.Count); var items = new List <int>(); list.ForEach(items.Add); CollectionAssert.AreEqual(items, new List <int>() { 8, 9 }); }