Пример #1
0
        public void DeleteLeaf_tree_Culled()
        {
            var root = new SortedTree <int>(60);

            root.Add(35);
            root.Add(76);
            root.Add(21);
            root.Add(42);
            root.Add(71);
            root.Add(89);
            root.Add(17);
            root.Add(24);
            root.Add(68);
            root.Add(11);
            root.Add(23);
            root.Add(63);
            root.Add(69);

            root.Delete(89);

            var tree = root.DepthFirst().ToArray();

            Assert.AreEqual(
                new int[] { 60, 35, 76, 21, 42, 71, 17, 24, 68, 11, 23, 63, 69 },
                tree);
        }
Пример #2
0
        public void MoveRoot()
        {
            var sortedTree = new SortedTree <int, String>();

            sortedTree.Visit(1).Set("Node");

            Assert.ThrowsException <CircularStructureException>(() => sortedTree.MoveTo(sortedTree.Visit(1)));
        }
Пример #3
0
        public void AddHigher_Root_AddedToTheRight()
        {
            var root = new SortedTree <int>(60);

            root.Add(61);

            Assert.AreEqual(61, root.Right.Value);
        }
Пример #4
0
        public void AddLower_Root_AddedToTheLeft()
        {
            var root = new SortedTree <int>(60);

            root.Add(58);

            Assert.AreEqual(58, root.Left.Value);
        }
Пример #5
0
        public void MoveBad()
        {
            var sortedTree = new SortedTree <int, String>();

            sortedTree.Visit(1).Set("1");
            sortedTree.Visit(1, 2).Set("12");
            sortedTree.Visit(1, 2, 3).Set("123");

            Assert.ThrowsException <CircularStructureException>(() => sortedTree.Visit(1).MoveTo(sortedTree.Visit(1, 2, 3)));
        }
Пример #6
0
        public void FindNode_tree_Found()
        {
            var root = new SortedTree <int>(60);

            root.Add(61);
            root.Add(59);

            var result = root.FindNode(59);

            Assert.AreEqual(59, result.Value);
        }
Пример #7
0
        public void FindNode_tree_NotFound()
        {
            var root = new SortedTree <int>(60);

            root.Add(61);
            root.Add(59);

            var result = root.FindNode(20);

            Assert.IsNull(result);
        }
Пример #8
0
        public void DeleteLeafWithRightChild_tree_Culled()
        {
            var root = new SortedTree <int>(60);

            root.Add(35);
            root.Add(76);
            root.Add(80);
            root.Add(82);

            root.Delete(80);

            var tree = root.DepthFirst().ToArray();

            Assert.AreEqual(
                new int[] { 60, 35, 76, 82 },
                tree);
        }
Пример #9
0
        public void Order()
        {
            var sortedTree = new SortedTree <int, String>();

            sortedTree.Visit(1, 3).Set("ing");
            sortedTree.Visit(1, 1).Set("Pa");
            sortedTree.Visit(1, 2).Set("ss");

            var           singleNode = sortedTree.Next();
            StringBuilder nodeValues = new StringBuilder();

            while (singleNode != null)
            {
                nodeValues.Append(singleNode.Value);
                singleNode = singleNode.Next();
            }

            Assert.AreEqual("Passing", nodeValues.ToString());
        }
Пример #10
0
        public void OrderWithMoveWithReplace()
        {
            var sortedTree = new SortedTree <int, String>();

            sortedTree.Visit(1, 1).Set("Pa");
            sortedTree.Visit(1, 3).Set("ing");
            sortedTree.Visit(1, 2).Set("REPLACENODE");
            sortedTree.Visit(1, 2, 3).Set("REPLACECHILD");
            sortedTree.Visit(2).Set("ss");

            sortedTree.Visit(2).MoveTo(sortedTree.Visit(1), true);
            var           singleNode = sortedTree.Next();
            StringBuilder nodeValues = new StringBuilder();

            while (singleNode != null)
            {
                nodeValues.Append(singleNode.Value);
                singleNode = singleNode.Next();
            }

            Assert.AreEqual("Passing", nodeValues.ToString());
        }
Пример #11
0
        public void DeleteLeafWithTwoChildrenLCaseTwoB_tree_Culled()
        {
            var root = new SortedTree <int>(60);

            root.Add(35);
            root.Add(76);
            root.Add(17);
            root.Add(42);
            root.Add(68);
            root.Add(11);
            root.Add(24);
            root.Add(63);
            root.Add(69);

            root.Delete(35);

            var tree = root.DepthFirst().ToArray();

            Assert.AreEqual(
                new int[] { 60, 24, 76, 17, 42, 68, 11, 63, 69 },
                tree);
        }