TestCalculateGraphMetrics3()
{
// Directed graph.
Boolean bIsDirected = true;
CreateGraph(bIsDirected);
IVertex oVertexA = m_oVertices.Add();
IVertex oVertexB = m_oVertices.Add();
IVertex oVertexC = m_oVertices.Add();
IEdge oEdge1 = m_oEdges.Add(oVertexA, oVertexB, bIsDirected);
IEdge oEdge2 = m_oEdges.Add(oVertexA, oVertexC, bIsDirected);
IEdge oEdge3 = m_oEdges.Add(oVertexB, oVertexC, bIsDirected);
IEdge oEdge4 = m_oEdges.Add(oVertexB, oVertexA, bIsDirected);
IEdge oEdge5 = m_oEdges.Add(oVertexC, oVertexA, bIsDirected);
IEdge oEdge6 = m_oEdges.Add(oVertexC, oVertexB, bIsDirected);
IDictionary<Int32, Boolean> oReciprocationFlags =
m_oEdgeReciprocationCalculator.CalculateGraphMetrics(m_oGraph);
Assert.AreEqual(6, oReciprocationFlags.Count);
Assert.IsTrue(oReciprocationFlags[oEdge1.ID]);
Assert.IsTrue(oReciprocationFlags[oEdge2.ID]);
Assert.IsTrue(oReciprocationFlags[oEdge3.ID]);
Assert.IsTrue(oReciprocationFlags[oEdge4.ID]);
Assert.IsTrue(oReciprocationFlags[oEdge5.ID]);
Assert.IsTrue(oReciprocationFlags[oEdge6.ID]);
}