Пример #1
0
        public void DeleteMiddleNodeTest()
        {
            var testList = new LinkedList(
                new LinkedListNode(1)
            {
                Next = new LinkedListNode(5)
                {
                    Next = new LinkedListNode(9)
                    {
                        Next = new LinkedListNode(12)
                    }
                }
            }
                );
            var expectedList = new LinkedList(
                new LinkedListNode(1)
            {
                Next = new LinkedListNode(5)
                {
                    Next = new LinkedListNode(12)
                }
            }
                );
            bool success = Question_2_3.DeleteMiddleNode(testList.Head.Next.Next);

            Assert.IsTrue(success, "Action was not successful.");
            Assert.AreEqual(expectedList, testList);
        }
Пример #2
0
        public void Question_2_3_InvalidCases()
        {
            // Remove end of list
            var l3       = ListHelpers.CreateLinkedList(1, 2);
            var expected = ListHelpers.CreateLinkedList(1);

            TestHelpers.AssertExceptionThrown(() => Question_2_3.RemoveMiddleNode(l3.Next), typeof(ArgumentException));

            // Pass null node.
            Node <int> head = null;

            TestHelpers.AssertExceptionThrown(() => Question_2_3.RemoveMiddleNode(head), typeof(ArgumentNullException));
        }
Пример #3
0
        public void DeleteMiddleNodeTest_FailureCases()
        {
            var testList = new LinkedList(
                new LinkedListNode(1)
            {
                Next = new LinkedListNode(5)
            }
                );
            bool success1 = Question_2_3.DeleteMiddleNode(testList.Head.Next);
            bool success2 = Question_2_3.DeleteMiddleNode(testList.Head.Next.Next);

            Assert.IsFalse(success1, "Action 1 did not fail as expected.");
            Assert.IsFalse(success2, "Action 2 did not fail as expected.");
        }
Пример #4
0
        public void Question_2_3_BasicCases()
        {
            // Remove 1 middle node: 1, 2, 3 => 1, 3
            var l1       = ListHelpers.CreateLinkedList(1, 2, 3);
            var expected = ListHelpers.CreateLinkedList(1, 3);

            Question_2_3.RemoveMiddleNode(l1.Next);
            ListHelpers.ValidateLinkedListContent(expected, l1);

            // Remove 2: 1, 2, 3, 4 => 1, 4
            var l2 = ListHelpers.CreateLinkedList(1, 2, 3, 4);

            expected = ListHelpers.CreateLinkedList(1, 4);
            Question_2_3.RemoveMiddleNode(l2.Next);
            Question_2_3.RemoveMiddleNode(l2.Next);
            ListHelpers.ValidateLinkedListContent(expected, l2);

            // Remove 1 node from big list: 1, 2, 3, 4, 5, 6, 7 => 1, 2, 3, 5, 6, 7
            var l3 = ListHelpers.CreateLinkedList(1, 2, 3, 4, 5, 6, 7);

            expected = ListHelpers.CreateLinkedList(1, 2, 3, 5, 6, 7);
            Question_2_3.RemoveMiddleNode(l3.Next.Next.Next);
            ListHelpers.ValidateLinkedListContent(expected, l3);
        }