public void FindCircularStartNodeInplaceTest_FullCycle() { var testList = new LinkedList(new LinkedListNode(1) { Next = new LinkedListNode(2) { Next = new LinkedListNode(3) { Next = new LinkedListNode(4) { Next = new LinkedListNode(5) { Next = new LinkedListNode(6) } } } } }); testList.Head.Next.Next.Next.Next.Next.Next = testList.Head; LinkedListNode resultNode = Question_2_8.FindCircularStartNodeInplace(testList); Assert.IsNotNull(resultNode, "List is not circular."); Assert.AreEqual(testList.Head, resultNode, $"Incorrect circular start node {testList.Head.Data} (expected) vs {resultNode.Data} (actual)."); }
public void FindCircularStartNodeTest_NegativeCase() { var testList = new LinkedList(new int[] { 1, 2, 3, 4, 5, 3 }); LinkedListNode resultNode = Question_2_8.FindCircularStartNode(testList); int resultData = (resultNode != null) ? resultNode.Data : -1; Assert.IsNull(resultNode, $"List is circular starting at node {resultData}."); testList = new LinkedList(new int[] { 1, 2, 3, 4, 5, 6, 3 }); resultNode = Question_2_8.FindCircularStartNode(testList); resultData = (resultNode != null) ? resultNode.Data : -1; Assert.IsNull(resultNode, $"List is circular starting at node {resultData}."); }
public void FindCircularStartNodeTest_PositiveCase() { var circularStartNode = new LinkedListNode(3) { Next = new LinkedListNode(4) { Next = new LinkedListNode(5) } }; circularStartNode.Next.Next.Next = circularStartNode; var testList = new LinkedList(new LinkedListNode(1) { Next = new LinkedListNode(2) { Next = circularStartNode } }); LinkedListNode resultNode = Question_2_8.FindCircularStartNode(testList); Assert.IsNotNull(resultNode, "List is not circular."); Assert.AreEqual(circularStartNode, resultNode, $"Incorrect circular start node {circularStartNode.Data} (expected) vs {resultNode.Data} (actual)."); }
private static void Validate <T>(Node <T> expected, Node <T> list) where T : IEquatable <T> { Assert.AreEqual(expected, Question_2_8.BeginningOfCycle(list)); }
public void Question_2_8_InvalidCases() { TestHelpers.AssertExceptionThrown(() => Question_2_8.BeginningOfCycle <int>(null), typeof(ArgumentNullException)); }