Exemple #1
0
        public void FindArticulationPointsTest()
        {
            var n = 9;
            var g = Common.CreateEmptyGraph(n);

            Common.AddUndirectedEdge(g, 0, 1);
            Common.AddUndirectedEdge(g, 0, 2);
            Common.AddUndirectedEdge(g, 1, 2);
            Common.AddUndirectedEdge(g, 2, 3);
            Common.AddUndirectedEdge(g, 3, 4);
            Common.AddUndirectedEdge(g, 2, 5);
            Common.AddUndirectedEdge(g, 5, 6);
            Common.AddUndirectedEdge(g, 6, 7);
            Common.AddUndirectedEdge(g, 7, 8);
            Common.AddUndirectedEdge(g, 8, 5);

            var articulationPoints = BridgesAndArticulationPoints.FindArticulationPoints(g.Select(l => l.ToArray()).ToArray());
            var expected           = new[] { false, false, true, true, false, true, false, false, false };

            Common.AssertEqual(expected, articulationPoints);
        }
Exemple #2
0
        public void FindBridgesTest()
        {
            var n = 9;
            var g = Common.CreateEmptyGraph(n);

            Common.AddUndirectedEdge(g, 0, 1);
            Common.AddUndirectedEdge(g, 0, 2);
            Common.AddUndirectedEdge(g, 1, 2);
            Common.AddUndirectedEdge(g, 2, 3);
            Common.AddUndirectedEdge(g, 3, 4);
            Common.AddUndirectedEdge(g, 2, 5);
            Common.AddUndirectedEdge(g, 5, 6);
            Common.AddUndirectedEdge(g, 6, 7);
            Common.AddUndirectedEdge(g, 7, 8);
            Common.AddUndirectedEdge(g, 8, 5);

            var bridges = BridgesAndArticulationPoints.FindBridges(g.Select(l => l.ToArray()).ToArray());

            Assert.Equal(3, bridges.Length);
            Assert.Equal((3, 4), bridges[0]);
            Assert.Equal((2, 3), bridges[1]);
            Assert.Equal((2, 5), bridges[2]);
        }