Ejemplo n.º 1
0
        public void Test2()
        {
            // Arrange
            var root = Tests.CreateTree();

            // Act
            var(node, count) = new GP21_2().Solve(root, root);

            // Assert
            Assert.AreEqual(5, count);
        }
Ejemplo n.º 2
0
        public void TestNodesBelow()
        {
            // Arrange
            var root = CreateTree1();
            var nodeAugmentations = new Dictionary <Node, GP21_2.NodeAugmentation>();

            // Act
            GP21_2.Pass1(null, root, nodeAugmentations);

            // Assert
            Assert.AreEqual(11, nodeAugmentations[root].NodesBelow);
            Assert.AreEqual(5, nodeAugmentations[root.Right.Right].NodesBelow);
        }
Ejemplo n.º 3
0
        public void Test3()
        {
            // Arrange
            var root = Tests.CreateTree();

            // Act
            var node3 = root.Right;

            var(node, count) = new GP21_2().Solve(root, node3);

            // Assert
            Assert.AreEqual(6, count);
            Assert.AreEqual(1, node.Value);
        }
Ejemplo n.º 4
0
        public void TestNodesAbove()
        {
            // Arrange
            var root = CreateTree1();
            var nodeAugmentations = new Dictionary <Node, GP21_2.NodeAugmentation>();

            GP21_2.Pass1(null, root, nodeAugmentations);

            // Act
            GP21_2.Pass2(root, 0, nodeAugmentations);

            // Assert
            Assert.AreEqual(0, nodeAugmentations[root].NodesAbove);
            Assert.AreEqual(9, nodeAugmentations[root.Left].NodesAbove);
            Assert.AreEqual(3, nodeAugmentations[root.Right].NodesAbove);
            Assert.AreEqual(9, nodeAugmentations[root.Right.Left].NodesAbove);
        }