AnalyzerUnitTest.ConnectedComponentCalculatorTest.TestCalculateStronglyConnectedComponents7 C# (CSharp) Method

TestCalculateStronglyConnectedComponents7() private method

private TestCalculateStronglyConnectedComponents7 ( ) : void
return void
        TestCalculateStronglyConnectedComponents7()
        {
            // N components with 1-N vertices each, sort descending.

            const Int32 Components = 100;
            Int32[][] aiiVertexIDs = new Int32[Components][];

            // Add the components in increasing order to test component sorting.

            for (Int32 iComponent = 0; iComponent < Components; iComponent++)
            {
                Int32 iVertices = iComponent + 1;
                Int32[] aiVertexIDs = new Int32[iVertices];
                aiiVertexIDs[iComponent] = aiVertexIDs;

                IVertex oFirstVertex = null;

                for (Int32 i = 0; i < iVertices; i++)
                {
                    IVertex oVertex = m_oVertices.Add();
                    aiVertexIDs[i] = oVertex.ID;

                    if (i == 0)
                    {
                        oFirstVertex = oVertex;
                    }
                    else
                    {
                        m_oEdges.Add(oFirstVertex, oVertex);
                    }
                }
            }

            IList<LinkedList<IVertex>> oStronglyConnectedComponents =
                m_oConnectedComponentCalculator.
                CalculateStronglyConnectedComponents(m_oGraph, false);

            Assert.AreEqual(Components, oStronglyConnectedComponents.Count);

            Int32 j = oStronglyConnectedComponents.Count - 1;

            foreach (LinkedList<IVertex> oStronglyConnectedComponent in
                oStronglyConnectedComponents)
            {
                CheckThatComponentConsistsOfVertices(
                    oStronglyConnectedComponent, aiiVertexIDs[j]);

                j--;
            }
        }