SetUp() { m_oConnectedComponentCalculator = new ConnectedComponentCalculator(); m_oGraph = new Graph(); m_oVertices = m_oGraph.Vertices; m_oEdges = m_oGraph.Edges; }
protected void CalculateConnectedComponentMetrics ( IGraph oGraph, out Int32 iConnectedComponents, out Int32 iSingleVertexConnectedComponents, out Int32 iMaximumConnectedComponentVertices, out Int32 iMaximumConnectedComponentEdges ) { Debug.Assert(oGraph != null); ConnectedComponentCalculator oConnectedComponentCalculator = new ConnectedComponentCalculator(); IList<LinkedList<IVertex>> oConnectedComponents = oConnectedComponentCalculator.CalculateStronglyConnectedComponents( oGraph, true); iConnectedComponents = oConnectedComponents.Count; iSingleVertexConnectedComponents = 0; iMaximumConnectedComponentVertices = 0; iMaximumConnectedComponentEdges = 0; foreach (LinkedList<IVertex> oConnectedComponent in oConnectedComponents) { Int32 iVertices = oConnectedComponent.Count; if (iVertices == 1) { iSingleVertexConnectedComponents++; } iMaximumConnectedComponentVertices = Math.Max( iMaximumConnectedComponentVertices, iVertices); iMaximumConnectedComponentEdges = Math.Max( iMaximumConnectedComponentEdges, CountUniqueEdges(oConnectedComponent)); } }