//************************************************************************* // Constructor: ConnectedComponentCalculatorTest() // /// <summary> /// Initializes a new instance of the <see /// cref="ConnectedComponentCalculatorTest" /> class. /// </summary> //************************************************************************* public ConnectedComponentCalculatorTest() { m_oConnectedComponentCalculator = null; m_oGraph = null; m_oVertices = null; m_oEdges = null; }
public void SetUp() { m_oConnectedComponentCalculator = new ConnectedComponentCalculator(); m_oGraph = new Graph(); m_oVertices = m_oGraph.Vertices; m_oEdges = m_oGraph.Edges; }
CalculateConnectedComponentMetrics ( IGraph oGraph, out Int32 iConnectedComponents, out Int32 iSingleVertexConnectedComponents, out Int32 iMaximumConnectedComponentVertices, out Int32 iMaximumConnectedComponentEdges ) { Debug.Assert(oGraph != null); AssertValid(); 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)); } }
//************************************************************************* // Method: CalculateConnectedComponentMetrics() // /// <summary> /// Calculates the graph's connected component metrics. /// </summary> /// /// <param name="oGraph"> /// The graph to calculate metrics for. /// </param> /// /// <param name="iConnectedComponents"> /// Where the number of connected components in the graph gets stored. /// </param> /// /// <param name="iSingleVertexConnectedComponents"> /// Where the number of connected components in the graph that have one /// vertex gets stored. /// </param> /// /// <param name="iMaximumConnectedComponentVertices"> /// Where the maximum number of vertices in a connected component gets /// stored. /// </param> /// /// <param name="iMaximumConnectedComponentEdges"> /// Where the maximum number of edges in a connected component gets stored. /// </param> //************************************************************************* protected void CalculateConnectedComponentMetrics( IGraph oGraph, out Int32 iConnectedComponents, out Int32 iSingleVertexConnectedComponents, out Int32 iMaximumConnectedComponentVertices, out Int32 iMaximumConnectedComponentEdges ) { Debug.Assert(oGraph != null); AssertValid(); 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) ); } }
public void TearDown() { m_oConnectedComponentCalculator = null; m_oGraph = null; m_oVertices = null; m_oEdges = null; }