예제 #1
0
        public void AddBeforeTest()
        {
            //1 2 3   原来的顺序
            //  1  [3]  2
            node2.AddBefore(node3);
            Assert.IsNull(node1.Previous);
            Assert.AreEqual(node3, node1.Next);
            Assert.AreEqual(node1, node3.Previous);
            Assert.AreEqual(node2, node3.Next);
            Assert.AreEqual(node3, node2.Previous);

            // [2]  1  3
            node1.AddBefore(node2);
            Assert.IsNull(node2.Previous);
            Assert.AreEqual(node1, node2.Next);
            Assert.AreEqual(node2, node1.Previous);
            Assert.AreEqual(node3, node1.Next);
            Assert.AreEqual(node1, node3.Previous);

            // [3]  1  2
            node1.AddBefore(node3);
            Assert.IsNull(node3.Previous);
            Assert.AreEqual(node1, node3.Next);
            Assert.AreEqual(node3, node1.Previous);
            Assert.AreEqual(node2, node1.Next);
            Assert.AreEqual(node1, node2.Previous);
        }
예제 #2
0
        public void AddBeforeTest()
        {
            //2.InerstBefore():在某个节点前插入
            //[1] 2
            node2.AddBefore(node1);
            Assert.AreEqual(node1, node2.Previous);
            Assert.AreEqual(node2, node1.Next);
            Assert.IsNull(node1.Previous);
            Assert.IsNull(node2.Next);

            //[3] 1 2
            node1.AddBefore(node3);
            Assert.AreEqual(node1, node3.Next);
            Assert.AreEqual(node3, node1.Previous);
            Assert.IsNull(node3.Previous);

            //3 [4] 1 2
            node1.AddBefore(node4);
            Assert.AreEqual(node4, node1.Previous);
            Assert.AreEqual(node3, node4.Previous);
            Assert.AreEqual(node4, node3.Next);
            Assert.AreEqual(node1, node4.Next);
        }
예제 #3
0
        public void AddBeforeTest()
        {
            // [7] 1 2 3 4 5 6
            DLinkNode <int> node7 = new DLinkNode <int>();

            node1.AddBefore(node7);

            Assert.AreEqual(node7, node1.Previous);
            Assert.AreEqual(node2, node1.Next);
            Assert.AreEqual(node1, node7.Next);
            Assert.IsNull(node7.Previous);

            // 7 1 2 [8] 3 4 5 6
            DLinkNode <int> node8 = new DLinkNode <int>();

            node3.AddBefore(node8);

            Assert.AreEqual(node8, node3.Previous);
            Assert.AreEqual(node4, node3.Next);
            Assert.AreEqual(node1, node2.Previous);
            Assert.AreEqual(node8, node2.Next);
            Assert.AreEqual(node2, node8.Previous);
            Assert.AreEqual(node3, node8.Next);
        }
예제 #4
0
        public void AddTest()
        {
            //AddAfter
            //首
            DLinkNode <int> node8 = new DLinkNode <int>();

            node1.AddAfter(node8);
            //1 [8] 2 3 4
            Assert.IsNull(node1.Prev);
            Assert.AreEqual(node8, node1.Next);
            Assert.AreEqual(node1, node8.Prev);
            Assert.AreEqual(node2, node8.Next);
            Assert.AreEqual(node8, node2.Prev);
            Assert.AreEqual(node3, node2.Next);

            //中
            DLinkNode <int> node9 = new DLinkNode <int>();

            node3.AddAfter(node9);
            //1 8 2 3 [9] 4
            Assert.AreEqual(node2, node3.Prev);
            Assert.AreEqual(node9, node3.Next);
            Assert.AreEqual(node3, node9.Prev);
            Assert.AreEqual(node4, node9.Next);
            Assert.AreEqual(node9, node4.Prev);
            Assert.IsNull(node4.Next);

            //尾
            DLinkNode <int> node10 = new DLinkNode <int>();

            node4.AddAfter(node10);
            //1 8 2 3 9 4 [10]
            Assert.AreEqual(node9, node4.Prev);
            Assert.AreEqual(node10, node4.Next);
            Assert.AreEqual(node4, node10.Prev);
            Assert.IsNull(node10.Next);


            //AddBefore
            //首
            DLinkNode <int> node21 = new DLinkNode <int>();

            node1.AddBefore(node21);
            //[21] 1 8 2 3 9 4 10
            Assert.IsNull(node21.Prev);
            Assert.AreEqual(node1, node21.Next);
            Assert.AreEqual(node21, node1.Prev);
            Assert.AreEqual(node8, node1.Next);

            //中
            DLinkNode <int> node22 = new DLinkNode <int>();

            node3.AddBefore(node22);
            //21 1 8 2 [22] 3 9 4 10
            Assert.AreEqual(node8, node2.Prev);
            Assert.AreEqual(node22, node2.Next);
            Assert.AreEqual(node2, node22.Prev);
            Assert.AreEqual(node3, node22.Next);
            Assert.AreEqual(node22, node3.Prev);
            Assert.AreEqual(node9, node3.Next);

            //尾
            DLinkNode <int> node23 = new DLinkNode <int>();

            node10.AddBefore(node23);
            //21 1 8 2 22 3 9 4 [23] 10
            Assert.AreEqual(node9, node4.Prev);
            Assert.AreEqual(node23, node4.Next);
            Assert.AreEqual(node4, node23.Prev);
            Assert.AreEqual(node10, node23.Next);
            Assert.AreEqual(node23, node10.Prev);
            Assert.IsNull(node10.Next);
        }