Beispiel #1
0
        public void Simple()
        {
            var root = new GeneralTree <int>(5);

            var child1 = new GeneralTree <int>(2);
            var child2 = new GeneralTree <int>(3);
            var child3 = new GeneralTree <int>(1);

            root.Add(child1);
            root.Add(child2);
            root.Add(child3);

            var child4 = new GeneralTree <int>(9);
            var child5 = new GeneralTree <int>(12);
            var child6 = new GeneralTree <int>(13);

            child1.Add(child4);
            child1.Add(child5);
            child2.Add(child6);

            Assert.AreEqual(root.FindNode(target => target == 13), child6);

            Assert.AreEqual(root.FindNode(target => target == 2), child1);

            Assert.AreEqual(root.FindNode(target => target == 9), child4);

            Assert.AreEqual(root.FindNode(target => target == 57), null);
        }
Beispiel #2
0
        public void TestFind()
        {
            GeneralTree <int> root = new GeneralTree <int>(5);

            GeneralTree <int> child1 = new GeneralTree <int>(2);
            GeneralTree <int> child2 = new GeneralTree <int>(3);
            GeneralTree <int> child3 = new GeneralTree <int>(1);

            root.Add(child1);
            root.Add(child2);
            root.Add(child3);

            GeneralTree <int> child4 = new GeneralTree <int>(9);
            GeneralTree <int> child5 = new GeneralTree <int>(12);
            GeneralTree <int> child6 = new GeneralTree <int>(13);

            child1.Add(child4);
            child1.Add(child5);
            child2.Add(child6);

            Assert.AreEqual(root.FindNode(
                                delegate(int target)
            {
                return(target == 13);
            })
                            ,
                            child6
                            );

            Assert.AreEqual(root.FindNode(
                                delegate(int target)
            {
                return(target == 2);
            })
                            ,
                            child1
                            );

            Assert.AreEqual(root.FindNode(
                                delegate(int target)
            {
                return(target == 9);
            })
                            ,
                            child4
                            );

            Assert.AreEqual(root.FindNode(
                                delegate(int target)
            {
                return(target == 57);
            })
                            ,
                            null
                            );
        }
Beispiel #3
0
        public void Simple()
        {
            var root = new GeneralTree <int>(5);

            var child1 = new GeneralTree <int>(2);
            var child2 = new GeneralTree <int>(3);
            var child3 = new GeneralTree <int>(5);
            var child4 = new GeneralTree <int>(7);

            root.Add(child1);
            root.Add(child2);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            root.RemoveAt(0);

            Assert.IsNull(child1.Parent);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            root.Add(child1);

            Assert.AreEqual(child1.Parent, root);
            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            Assert.IsTrue(root.Remove(child1));
            Assert.IsNull(child1.Parent);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            Assert.IsFalse(root.Remove(child3));

            root.Add(child3);
            root.Add(child4);

            Assert.AreEqual(root.Count, 3);
            Assert.AreEqual(root.Degree, 3);

            var fiveNode = root.FindNode(target => target == 5);

            Assert.IsTrue(root.Remove(5));

            Assert.IsNull(fiveNode.Parent);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);
            Assert.AreEqual(root.GetChild(1).Data, 7);

            Assert.IsFalse(root.Remove(13));
        }
Beispiel #4
0
        public void TestRemove()
        {
            GeneralTree <int> root = new GeneralTree <int>(5);

            GeneralTree <int> child1 = new GeneralTree <int>(2);
            GeneralTree <int> child2 = new GeneralTree <int>(3);
            GeneralTree <int> child3 = new GeneralTree <int>(5);
            GeneralTree <int> child4 = new GeneralTree <int>(7);

            root.Add(child1);
            root.Add(child2);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            root.RemoveAt(0);

            Assert.AreEqual(child1.Parent, null);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            root.Add(child1);

            Assert.AreEqual(child1.Parent, root);
            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            Assert.AreEqual(root.Remove(child1), true);
            Assert.AreEqual(child1.Parent, null);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            Assert.AreEqual(root.Remove(child3), false);

            root.Add(child3);
            root.Add(child4);

            Assert.AreEqual(root.Count, 3);
            Assert.AreEqual(root.Degree, 3);

            GeneralTree <int> fiveNode = root.FindNode(delegate(int target) { return(target == 5); });

            Assert.AreEqual(root.Remove(5), true);

            Assert.AreEqual(fiveNode.Parent, null);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);
            Assert.AreEqual(root.GetChild(1).Data, 7);

            Assert.AreEqual(root.Remove(13), false);
        }
Beispiel #5
0
        public void TestFindNull()
        {
            GeneralTree <int> tree = GetTestTree();

            tree.FindNode(null);
        }
Beispiel #6
0
        public void Simple()
        {
            var root = new GeneralTree<int>(5);

            var child1 = new GeneralTree<int>(2);
            var child2 = new GeneralTree<int>(3);
            var child3 = new GeneralTree<int>(5);
            var child4 = new GeneralTree<int>(7);

            root.Add(child1);
            root.Add(child2);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            root.RemoveAt(0);

            Assert.IsNull(child1.Parent);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            root.Add(child1);

            Assert.AreEqual(child1.Parent, root);
            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);

            Assert.IsTrue(root.Remove(child1));
            Assert.IsNull(child1.Parent);

            Assert.AreEqual(root.Count, 1);
            Assert.AreEqual(root.Degree, 1);
            Assert.AreEqual(root.GetChild(0), child2);
            Assert.AreEqual(root.GetChild(0).Data, 3);

            Assert.IsFalse(root.Remove(child3));

            root.Add(child3);
            root.Add(child4);

            Assert.AreEqual(root.Count, 3);
            Assert.AreEqual(root.Degree, 3);

            var fiveNode = root.FindNode(target => target == 5);
            Assert.IsTrue(root.Remove(5));

            Assert.IsNull(fiveNode.Parent);

            Assert.AreEqual(root.Count, 2);
            Assert.AreEqual(root.Degree, 2);
            Assert.AreEqual(root.GetChild(1).Data, 7);

            Assert.IsFalse(root.Remove(13));
        }
Beispiel #7
0
        public void Simple()
        {
            var root = new GeneralTree<int>(5);

            var child1 = new GeneralTree<int>(2);
            var child2 = new GeneralTree<int>(3);
            var child3 = new GeneralTree<int>(1);

            root.Add(child1);
            root.Add(child2);
            root.Add(child3);

            var child4 = new GeneralTree<int>(9);
            var child5 = new GeneralTree<int>(12);
            var child6 = new GeneralTree<int>(13);

            child1.Add(child4);
            child1.Add(child5);
            child2.Add(child6);

            Assert.AreEqual(root.FindNode(target => target == 13), child6);

            Assert.AreEqual(root.FindNode(target => target == 2), child1);

            Assert.AreEqual(root.FindNode(target => target == 9), child4);

            Assert.AreEqual(root.FindNode(target => target == 57), null);
        }