コード例 #1
0
        public void DepthFirstSearchTest()
        {
            var graph1 = GetTestGraph();

            var calculator1 = new StronglyConnectedComponentsCalculator<int>(graph1);
            IEnumerable<int> vertices1 = calculator1.DepthFirstSearch(0, true);
            vertices1.Should().HaveCount(9);

            var calculator2 = new StronglyConnectedComponentsCalculator<int>(graph1);
            IEnumerable<int> vertices2 = calculator2.DepthFirstSearch(1, true);
            vertices2.Should().HaveCount(3);

            var graph2 = new DirectedGraph<int>();
            graph2.AddEdge(0, 1);
            graph2.AddEdge(0, 2);
            graph2.AddEdge(2, 1);

            var calculator3 = new StronglyConnectedComponentsCalculator<int>(graph2);
            IEnumerable<int> vertices3 = calculator3.DepthFirstSearch(0, false);
            vertices3.Should().HaveCount(3);
        }