Ejemplo n.º 1
0
        public void TestGetRoots()
        {
            INode[] nodes = EntityFactory.CreateDummyNodes(7);
            IDirectedGraph <INode> directedGraph = CreateBinaryDirectedGraph(nodes);
            INodes roots = directedGraph.GetRootNodes();

            Assert.True(roots != null, "There should be roots in the graph.");

            Assert.True(roots.Contains(nodes[0]), $"Leafs do not contain node {nodes[0]}.");
            Assert.True(roots.Count() == 1, "Roots must contain exact one node.");
        }
Ejemplo n.º 2
0
        public void TestGetPredecessorNodesRecursive()
        {
            INode[] nodes = EntityFactory.CreateDummyNodes(6);
            IDirectedGraph <INode> directedGraph = CreateBinaryDirectedGraph(nodes);

            foreach (var node in nodes)
            {
                INodes predecessors = directedGraph.GetPredecessorNodes(node);
                if (predecessors == null)
                {
                    continue;
                }
                INodes predecessorsRecursive = directedGraph.GetPredecessorNodesRecursive(node);
                Assert.True(predecessorsRecursive.Contains(node) == false);
                foreach (var predecessor in predecessors)
                {
                    Assert.True(predecessorsRecursive.Contains(predecessor));
                }
            }
        }
Ejemplo n.º 3
0
        public void TestGetLeafs()
        {
            INode[] nodes = EntityFactory.CreateDummyNodes(7);
            IDirectedGraph <INode> directedGraph = CreateBinaryDirectedGraph(nodes);
            INodes leafs = directedGraph.GetLeafNodes();

            Assert.True(leafs != null, "There should be leafs in the graph.");

            for (int i = 3; i < 7; i++)
            {
                Assert.True(leafs.Contains(nodes[i]), $"Leafs do not contain node {nodes[i]}.");
            }
        }
Ejemplo n.º 4
0
        public void TestGetPredecessorNodes()
        {
            INode[] nodes = EntityFactory.CreateDummyNodes(7);
            IDirectedGraph <INode> directedGraph = CreateBinaryDirectedGraph(nodes);
            INodes roots = directedGraph.GetRootNodes();

            foreach (var node in nodes)
            {
                INodes predecessors = directedGraph.GetPredecessorNodes(node);
                bool   isRoot       = roots.Contains(node);
                if (isRoot)
                {
                    Assert.True(predecessors == null, "A root cannot have predecessors.");
                }
                else
                {
                    Assert.True(predecessors != null, "A non-root MUST have predecessors.");
                }
            }
        }
Ejemplo n.º 5
0
        public void TestGetSuccessorNodes()
        {
            INode[] nodes = EntityFactory.CreateDummyNodes(7);
            IDirectedGraph <INode> directedGraph = CreateBinaryDirectedGraph(nodes);
            INodes leafs = directedGraph.GetLeafNodes();

            foreach (var node in nodes)
            {
                INodes successors = directedGraph.GetSuccessorNodes(node);
                bool   isLeaf     = leafs.Contains(node);
                if (isLeaf)
                {
                    Assert.True(successors == null, "A leaf cannot have successors.");
                }
                else
                {
                    Assert.True(successors != null, "A non-leaf MUST have successors.");
                }
            }
        }