public void Should_Remove_First() { //arrange var node1 = new MyDoublyLinkedListNode <int>(2); var node2 = new MyDoublyLinkedListNode <int>(4); var node3 = new MyDoublyLinkedListNode <int>(3); var node4 = new MyDoublyLinkedListNode <int>(5); node1.Next = node2; node2.Next = node3; node3.Next = node4; node2.Prev = node1; node3.Prev = node2; node4.Prev = node3; var list = new MyDoublyLinkedList <int>(node1); //act list.RemoveFirst(); //assert list.Count.ShouldBeEquivalentTo(3); list.Head.ShouldBeEquivalentTo(node2); list.Head.Next.ShouldBeEquivalentTo(node3); list.Head.Next.Next.ShouldBeEquivalentTo(node4); }
public void Should_RemoveFirst_Throw_If_Empty() { //arrange var list = new MyDoublyLinkedList <int>(); //act Action act = () => list.RemoveFirst(); //assert act.ShouldThrow <InvalidOperationException>(); }
public void Should_Remove_First_When_Length_One() { //arrange var node1 = new MyDoublyLinkedListNode <int>(2); var list = new MyDoublyLinkedList <int>(node1); //act list.RemoveFirst(); //assert list.Count.ShouldBeEquivalentTo(0); list.Head.Should().BeNull(); list.Tail.Should().BeNull(); }
private void ArrangeAndActUponLinkedLists(LinkedList <int> originalLinkedList, MyDoublyLinkedList <int> myLinkedList) { LinkedListNode <int> fiveHundredListNode = new LinkedListNode <int>(500); LinkedListNode <int> tenListNode = new LinkedListNode <int>(10); LinkedListNode <int> last = new LinkedListNode <int>(666); MyLinkedListNode <int> myFiveHundredListNode = new MyLinkedListNode <int>(500); MyLinkedListNode <int> myTenListNode = new MyLinkedListNode <int>(10); MyLinkedListNode <int> myLast = new MyLinkedListNode <int>(666); originalLinkedList.AddFirst(tenListNode); originalLinkedList.AddBefore(tenListNode, 9); originalLinkedList.AddAfter(tenListNode, fiveHundredListNode); originalLinkedList.AddLast(last); originalLinkedList.Remove(10); originalLinkedList.AddAfter(last, 777); originalLinkedList.Remove(fiveHundredListNode); originalLinkedList.RemoveFirst(); originalLinkedList.RemoveLast(); originalLinkedList.Clear(); originalLinkedList.AddLast(5); originalLinkedList.RemoveFirst(); myLinkedList.AddFirst(myTenListNode); myLinkedList.AddBefore(myTenListNode, 9); myLinkedList.AddAfter(myTenListNode, myFiveHundredListNode); myLinkedList.AddLast(myLast); myLinkedList.Remove(10); myLinkedList.AddAfter(myLast, 777); myLinkedList.Remove(myFiveHundredListNode); myLinkedList.RemoveFirst(); myLinkedList.RemoveLast(); myLinkedList.Clear(); myLinkedList.AddLast(5); myLinkedList.RemoveFirst(); }
public static void Main(string[] args) { MyDoublyLinkedList list = new MyDoublyLinkedList(); list.AddFirst("Hello"); list.AddLast("world"); list.AddLast("!"); list.AddLast("!"); list.AddLast("!"); list.AddLast("!"); list.RemoveByIndex(0); list.AddFirst("Hi"); // check = true var check = list.RemoveEveryEqual("!"); var array = list.ToArray(); // Hi // world foreach (var @object in array) { Console.WriteLine(@object); } list.AddFirst("Bob"); list.AddFirst("Eugene"); list[0] = "Zero"; list.RemoveByIndex(1); list.RemoveFirst(); array = list.ToArray(); // Bob // Hi // world foreach (var @object in array) { Console.WriteLine(@object); } list.Clear(); }