public void Should_ReturnOneRoot_When_TestFile09AndDivideToConquerIndex200()
        {
            var edges = GetDataFromFile(@"TestFile\Test09.txt");
            var treeGraphPropagation = new FastestTreeGraphPropagation <Node>(edges, 200);

            var result = treeGraphPropagation.GetFastOptimisedRoot();

            Assert.AreEqual(result[0].RootNode.NodeId, 41078);
            Assert.AreEqual(result[0].Propagation, 15);
        }
        public void Should_ReturnOneRoot_When_TestFile10()
        {
            var edges = GetDataFromFile(@"TestFile\Test10.txt");
            var treeGraphPropagation = new FastestTreeGraphPropagation <Node>(edges);

            var result = treeGraphPropagation.GetFastOptimisedRoot();

            Assert.AreEqual(result[0].RootNode.NodeId, 1);
            Assert.AreEqual(result[0].Propagation, 5);
        }
        public void Should_ReturnTWORoot_When_TreeHasElements()
        {
            var edgeList = new List <Tuple <Node, Node> >();

            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 1
            }, new Node {
                NodeId = 2
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 4
            }, new Node {
                NodeId = 2
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 3
            }, new Node {
                NodeId = 2
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 4
            }, new Node {
                NodeId = 5
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 4
            }, new Node {
                NodeId = 6
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 3
            }, new Node {
                NodeId = 8
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 3
            }, new Node {
                NodeId = 7
            }));
            edgeList.Add(new Tuple <Node, Node>(new Node {
                NodeId = 9
            }, new Node {
                NodeId = 7
            }));
            var treeGraphPropagation = new FastestTreeGraphPropagation <Node>(edgeList);

            var result = treeGraphPropagation.GetFastOptimisedRoot();

            Assert.AreEqual(result[0].RootNode.NodeId, 3);
            Assert.AreEqual(result[0].Propagation, 3);
            Assert.AreEqual(result[1].RootNode.NodeId, 2);
            Assert.AreEqual(result[1].Propagation, 3);
        }
        public void Should_ReturnEmptyRoot_When_TreeIsEmpty()
        {
            var treeGraphPropagation = new FastestTreeGraphPropagation <Node>(null);

            Assert.IsNull(treeGraphPropagation.GetFastOptimisedRoot());
        }