Exemplo n.º 1
0
        public void TestWhenGivenNodeIsLast()
        {
            MyLinkedListNode head    = new MyLinkedListNode(1);
            MyLinkedListNode current = head;

            int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            for (int i = 1; i < source.Length; i++)
            {
                current.Next = new MyLinkedListNode(source[i]);
                current      = current.Next;
            }

            DeleteNodeFromLinkedList.Delete(ref head, head.Next.Next.Next.Next.Next.Next.Next.Next);

            MyLinkedListNode currentNode = head;

            int[] set = { 1, 2, 3, 4, 5, 6, 7, 8 };
            for (int i = 0; i < set.Length; i++)
            {
                Assert.Equal(set[i], currentNode.Value);
                currentNode = currentNode.Next;
            }
            Assert.Null(currentNode);
        }
Exemplo n.º 2
0
        public void TestWithNodeNotBelongsToList()
        {
            MyLinkedListNode head    = new MyLinkedListNode(1);
            MyLinkedListNode current = head;

            int[] source = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            for (int i = 1; i < source.Length; i++)
            {
                current.Next = new MyLinkedListNode(source[i]);
                current      = current.Next;
            }

            DeleteNodeFromLinkedList.Delete(ref head, new MyLinkedListNode(9));//采用object.==比对节点,所以即使Value一致,也不会认为是链表中的节点

            MyLinkedListNode currentNode = head;

            int[] set = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            for (int i = 0; i < set.Length; i++)
            {
                Assert.Equal(set[i], currentNode.Value);
                currentNode = currentNode.Next;
            }
            Assert.Null(currentNode);
        }
Exemplo n.º 3
0
        public void TestWithOnlyOneNode()
        {
            MyLinkedListNode node = new MyLinkedListNode(20);

            DeleteNodeFromLinkedList.Delete(ref node, node);

            Assert.Null(node);
        }
Exemplo n.º 4
0
        public void TestInvalidInput()
        {
            MyLinkedListNode head = null;

            Assert.Throws <ArgumentNullException>
            (
                () => DeleteNodeFromLinkedList.Delete(ref head, new MyLinkedListNode(30))
            );

            MyLinkedListNode head1 = new MyLinkedListNode(2);

            Assert.Throws <ArgumentNullException>
            (
                () => DeleteNodeFromLinkedList.Delete(ref head1, null)
            );
        }