TestCalculateGraphMetrics6()
{
// More complicated example.
Boolean bIsDirected = true;
CreateGraph(bIsDirected);
IVertex oVertexA = m_oVertices.Add();
IVertex oVertexB = m_oVertices.Add();
IVertex oVertexC = m_oVertices.Add();
IVertex oVertexD = m_oVertices.Add();
IVertex oVertexE = m_oVertices.Add();
m_oEdges.Add(oVertexA, oVertexB, bIsDirected);
m_oEdges.Add(oVertexB, oVertexC, bIsDirected);
m_oEdges.Add(oVertexA, oVertexC, bIsDirected);
m_oEdges.Add(oVertexC, oVertexA, bIsDirected);
m_oEdges.Add(oVertexA, oVertexD, bIsDirected);
m_oEdges.Add(oVertexD, oVertexE, bIsDirected);
m_oEdges.Add(oVertexE, oVertexD, bIsDirected);
Nullable<Double> dReciprocatedVertexPairRatio, dReciprocatedEdgeRatio;
m_oOverallReciprocationCalculator.CalculateGraphMetrics(m_oGraph,
out dReciprocatedVertexPairRatio, out dReciprocatedEdgeRatio);
Assert.AreEqual(2.0 / 5.0, dReciprocatedVertexPairRatio.Value);
Assert.AreEqual(4.0 / 7.0, dReciprocatedEdgeRatio.Value, 0.001);
}