public void List_CanMoveCyclicNodeFromHeadToSomewhereInTheMiddle() { var circular = new CircularLinkedList <int>(); circular.AddLast(30); circular.AddLast(40); circular.AddLast(50); circular.ChangeCyclicNode(1); var cyclic = circular.GetNodeWhereCycleBegins(); Assert.Equal(40, cyclic.Value); }
public void List_CanMoveCyclicNodeFromHeadToTheEnd() { var circular = new CircularLinkedList <int>(); circular.AddLast(30); circular.AddLast(40); circular.AddLast(50); circular.ChangeCyclicNode(2); var cyclic = circular.GetNodeWhereCycleBegins(); Assert.Equal(50, cyclic.Value); Assert.Equal(circular.TailNode, cyclic); }
public void List_DeletingTheCyclicNodeMovesTheCyclicLinkToNextNode() { var circular = new CircularLinkedList <int>(); circular.AddLast(30); circular.AddLast(40); circular.AddLast(50); circular.ChangeCyclicNode(1); circular.RemoveAt(1); var cyclic = circular.GetNodeWhereCycleBegins(); Assert.Equal(2, circular.Size); Assert.Equal(circular.TailNode, cyclic); Assert.Equal(circular.GetAt(1), cyclic); }