Exemplo n.º 1
0
        public void TwoVerticeGraphHashNoArticulationPoints()
        {
            var sut   = new TarjansAlgorithm();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(2);

            graph.Connect(0, 1);
            Assert.Empty(sut.GetArticulationPoints(graph));
        }
Exemplo n.º 2
0
        public void ThreeVerticeGraphHashOneArticulationPoint()
        {
            var sut   = new TarjansAlgorithm();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(3);

            graph.Connect(0, 1);
            graph.Connect(1, 2);
            Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(1, arg));
        }
Exemplo n.º 3
0
        public void LinedUpGraph()
        {
            var sut   = new TarjansAlgorithm();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(4);

            graph.Connect(0, 1);
            graph.Connect(1, 2);
            graph.Connect(2, 3);
            Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg));
        }
Exemplo n.º 4
0
        public void NonDenseGraph()
        {
            var sut   = new TarjansAlgorithm();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(5);

            graph.Connect(1, 0);
            graph.Connect(0, 2);
            graph.Connect(2, 1);
            graph.Connect(0, 3);
            graph.Connect(3, 4);
            Assert.Collection <int>(sut.GetArticulationPoints(graph), arg => Assert.Equal(0, arg), arg => Assert.Equal(3, arg));
        }
Exemplo n.º 5
0
        public void TwoVerticeGraphHashHashOneBiconnectedComponent()
        {
            var sut   = new TarjansAlgorithmForBiconnectedComponents();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(2);

            graph.Connect(0, 1);
            var biconnectedComponents = sut.GetBiconnectedComponents(graph);

            Assert.Collection(biconnectedComponents, arg => {
                Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(0, arg));
            });
        }
Exemplo n.º 6
0
        public void LinedUpGraph()
        {
            var sut   = new TarjansAlgorithmForBiconnectedComponents();
            var graph = new Algorithms.Graph.Common.UndirectedGraph(4);

            graph.Connect(0, 1);
            graph.Connect(1, 2);
            graph.Connect(2, 3);
            var biconnectedComponents = sut.GetBiconnectedComponents(graph);

            Assert.Collection(biconnectedComponents, arg => {
                Assert.Collection(arg, arg => Assert.Equal(2, arg), arg => Assert.Equal(3, arg));
            },
                              arg => {
                Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg));
            },
                              arg => {
                Assert.Collection(arg, arg => Assert.Equal(1, arg), arg => Assert.Equal(0, arg));
            });
        }