public void Test_DetectCycle2(int[] values, int expected) { ListNode node = LinkedListHelper.CreateLinkedList(values); var node1 = node.next.next; var node2 = node.next.next.next.next; node2.next = node1; var actual = sut.DetectCycle(node); Assert.Equal(expected, actual.val); }
public void OddEvenList_TwoItemList_ReturnsListOddEven() { var sut = new Solution(); var helper = new LinkedListHelper(); var input_list = helper.CreateSinglyLinkedList(new int[] { 1, 2 }); var expected = helper.CreateSinglyLinkedList(new int[] { 1, 2 }); var actual = sut.OddEvenList(input_list); AssertLinkedList.AreEqualValue(expected, actual); }
public void Test_Can_add_one_to_999999_to_make_a_million() { var helper = new LinkedListHelper(); var input1 = helper.CreateSinglyLinkedList(new int[] { 1 }); var input2 = helper.CreateSinglyLinkedList(new int[] { 9, 9, 9, 9, 9, 9 }); var expected = helper.CreateSinglyLinkedList(new int[] { 1, 0, 0, 0, 0, 0, 0 }); var sut = new Solution(); var actual = sut.AddTwoNumbers(input1, input2); AssertLinkedList.AreEqualValue(expected, actual); }
public void Example3_Can_add_two_zeroes() { var helper = new LinkedListHelper(); var input1 = helper.CreateSinglyLinkedList(new int[] { 0 }); var input2 = helper.CreateSinglyLinkedList(new int[] { 0 }); var expected = helper.CreateSinglyLinkedList(new int[] { 0 }); var sut = new Solution(); var actual = sut.AddTwoNumbers(input1, input2); AssertLinkedList.AreEqualValue(expected, actual); }
public void Example2_Can_add_two_numbers_of_same_length() { var helper = new LinkedListHelper(); var input1 = helper.CreateSinglyLinkedList(new int[] { 2, 4, 3 }); var input2 = helper.CreateSinglyLinkedList(new int[] { 5, 6, 4 }); var expected = helper.CreateSinglyLinkedList(new int[] { 8, 0, 7 }); var sut = new Solution(); var actual = sut.AddTwoNumbers(input1, input2); AssertLinkedList.AreEqualValue(expected, actual); }
public void RemoveElement_ListWhereEveryItemNeedsRemoval_ReturnsNull() { var helper = new LinkedListHelper(); var sut = new Solution(); var input_head = helper.CreateSinglyLinkedList(new int[] { 7, 7, 7, 7 }); var input_val = 7; var expected = helper.CreateSinglyLinkedList(new int[] { }); var actual = sut.RemoveElements(input_head, input_val); AssertLinkedList.AreEqualValue(expected, actual); }
public void BasicTest() { LinkedListHelper <int> helper = new LinkedListHelper <int>(); LinkedList <int> input = helper.CreateLinkedList(1, 2, 3, 4, 5); GetKthToLast getKth = new GetKthToLast(); int k = getKth.GetKth_WithSizeInput(input, 2); int r = getKth.GetKth_WithOutSizeInput(input, 2); Assert.Equal(4, k); Assert.Equal(4, r); }
public void Get_can_return_at_index() { var head = new LinkedListHelper().CreateSinglyLinkedList(new int[] { 1, 2, 3, 4 }); var sut = new MySinglyLinkedList(head); var result1 = sut.Get(0); var result2 = sut.Get(2); var result3 = sut.Get(3); Assert.AreEqual(1, result1); Assert.AreEqual(3, result2); Assert.AreEqual(4, result3); }
public void ListHasSameLength() { LinkedListHelper <int> helper = new LinkedListHelper <int>(); var input1 = helper.CreateLinkedList_Node(7, 1, 6); var input2 = helper.CreateLinkedList_Node(5, 9, 2); SumLists sum = new SumLists(); var result = sum.SumList_reverse(input1, input2); string resultVal = helper.PrintLinkedList(result); Assert.Equal("2 1 9", resultVal); }
public void BasicTest() { LinkedListHelper <int> helper = new LinkedListHelper <int>(); var inputHead = helper.CreateLinkedList_Node(0, 1, 2, 1, 0); Palindrome p = new Palindrome(); var result = p.isPalindrome(inputHead); var inputHead2 = helper.CreateLinkedList_Node(0, 1, 2, 3, 4); var result2 = p.isPalindrome(inputHead2); Assert.True(result); Assert.False(result2); }
public void TestEx4_2(int[] input, int pivot, int[] smallerArr, int[] biggerArr) { { Node head = LinkedListHelper.CreateIntLinkedList(input); Ex4_2.Partition_v1(ref head, pivot); Node iterator = head; int countSmaller = 0; int countBigger = 0; while (iterator != null) { if (iterator.Value >= pivot) { countSmaller++; Assert.That(biggerArr.Contains(iterator.Value)); } else { countBigger++; Assert.That(smallerArr.Contains(iterator.Value)); } iterator = iterator.Next; } Assert.That(smallerArr.Length == countSmaller); Assert.That(biggerArr.Length == countBigger); } { Node head = LinkedListHelper.CreateIntLinkedList(input); Ex4_2.Partition_v2(ref head, pivot); Node iterator = head; int countSmaller = 0; int countBigger = 0; while (iterator != null) { if (iterator.Value >= pivot) { countSmaller++; Assert.That(biggerArr.Contains(iterator.Value)); } else { countBigger++; Assert.That(smallerArr.Contains(iterator.Value)); } iterator = iterator.Next; } Assert.That(smallerArr.Length == countSmaller); Assert.That(biggerArr.Length == countBigger); } }
public static void TestDeleteNode() { Console.WriteLine("Delete the linked list node with direct reference"); DeleteNodeWithDirectReference delNode = new DeleteNodeWithDirectReference(); SingleLinkedListNode <int> ll = LinkedListHelper.CreateSinglyLinkedList(10); LinkedListHelper.PrintSinglyLinkedList(ll); SingleLinkedListNode <int> rndNode = LinkedListHelper.GetRandomNode(ll, 10); Console.WriteLine("The random node selected is" + rndNode.Data); delNode.DeleteNode(rndNode); Console.WriteLine("The linked list after node deletion is"); LinkedListHelper.PrintSinglyLinkedList(ll); }
public void TestPossibleCircularReferenceException() { var entry = GenerateList(3); // make closed loop var last = entry; while (last.Next != null) { last = last.Next; } last.Next = entry.Next; LinkedListHelper.Get5thElementFromTheTail(entry); }