Beispiel #1
0
        public void Complex_NormalMtg_ComplexReturned()
        {
            mtg tree = new mtg();

            // Add 4 children. Parents/children are : (0 => 1), (1 => 2,3) , (3 => 4).
            int firstChild  = tree.AddChild(0);
            int secondChild = tree.AddChild(firstChild);
            int thirdChild  = tree.AddChild(firstChild);
            int fourthChild = tree.AddChild(thirdChild);
            int fifthChild  = tree.AddChild(0);

            // Assign a complex to the firstChild
            tree.complex.Add(firstChild, 0);

            Assert.AreEqual(tree.Complex(firstChild), 0);
            Assert.AreEqual(tree.Complex(secondChild), 0);
            Assert.AreEqual(tree.Complex(thirdChild), 0);
            Assert.AreEqual(tree.Complex(fourthChild), 0);

            Assert.IsNull(tree.Complex(fifthChild));
        }
Beispiel #2
0
        public void MtgTest()
        {
            mtg tree = new mtg();

            int root = tree.root;

            Assert.AreEqual(0, root);

            // Scale 1

            int root1 = tree.AddComponent(root, new Dictionary <string, dynamic>()
            {
            });
            int vertex1 = tree.AddChild(root1);
            int vertex2 = tree.AddChild(root1);
            int vertex3 = tree.AddChild(root1);

            int vertex4 = tree.AddChild(vertex1);
            int vertex5 = tree.AddChild(vertex1);

            // Verify complex

            Assert.AreEqual(root, tree.Complex(root1));
            Assert.AreEqual(root, tree.Complex(vertex1));
            Assert.AreEqual(root, tree.Complex(vertex2));
            Assert.AreEqual(root, tree.Complex(vertex3));
            Assert.AreEqual(root, tree.Complex(vertex4));
            Assert.AreEqual(root, tree.Complex(vertex5));

            // Verify parents

            Assert.AreEqual(vertex1, tree.Parent(vertex5));
            Assert.AreEqual(vertex1, tree.Parent(vertex4));
            Assert.AreEqual(root1, tree.Parent(vertex3));
            Assert.AreEqual(root1, tree.Parent(vertex2));
            Assert.AreEqual(root1, tree.Parent(vertex1));

            // Verify children

            CollectionAssert.AreEqual(new List <int>()
            {
                vertex1, vertex2, vertex3
            }, tree.Children(root1));
            CollectionAssert.AreEqual(new List <int>()
            {
                vertex4, vertex5
            }, tree.Children(vertex1));
            Assert.IsFalse(tree.children.ContainsKey(vertex2));
            Assert.IsFalse(tree.children.ContainsKey(vertex3));
            Assert.IsFalse(tree.children.ContainsKey(vertex4));
            Assert.IsFalse(tree.children.ContainsKey(vertex5));

            // Verify length of the mtg

            Assert.AreEqual(7, tree.NbVertices());
        }