Example #1
0
        public void testSCCS()
        {
            OrientedGraph s  = new OrientedGraph();
            OrientedGraph og = oriented();

            for (int i = 1; i < 9; i++)
            {
                s.AddVertex();
            }
            s.AddEdge(1, 2);
            s.AddEdge(2, 3);
            s.AddEdge(3, 1);
            s.AddEdge(2, 4);
            s.AddEdge(2, 5);
            s.AddEdge(5, 6);
            s.AddEdge(6, 7);
            s.AddEdge(7, 5);
            int [] correct = new int[] { 4, 3, 3, 3, 2, 1, 1, 1 };
            int [] res     = Scc.FindSCCS(s);
            Assert.AreEqual(correct, res);
            Assert.AreEqual(new int[] { 7, 6, 5, 4, 3, 2, 1 }, Scc.FindSCCS(og));
        }