TestGraphContainsDuplicateEdges13() { // Undirected graph, many duplicates. m_oDuplicateEdgeDetector = new DuplicateEdgeDetector(m_oUndirectedGraph); IEdgeCollection oEdges = m_oUndirectedGraph.Edges; oEdges.Add(m_oUndirectedVertexB, m_oUndirectedVertexA, false); oEdges.Add(m_oUndirectedVertexC, m_oUndirectedVertexD, false); oEdges.Add(m_oUndirectedVertexA, m_oUndirectedVertexA, false); oEdges.Add(m_oUndirectedVertexB, m_oUndirectedVertexB, false); oEdges.Add(m_oUndirectedVertexC, m_oUndirectedVertexD, false); oEdges.Add(m_oUndirectedVertexA, m_oUndirectedVertexB, false); oEdges.Add(m_oUndirectedVertexA, m_oUndirectedVertexB, false); oEdges.Add(m_oUndirectedVertexB, m_oUndirectedVertexA, false); oEdges.Add(m_oUndirectedVertexC, m_oUndirectedVertexD, false); Assert.IsTrue(m_oDuplicateEdgeDetector.GraphContainsDuplicateEdges); Assert.AreEqual(2, m_oDuplicateEdgeDetector.UniqueEdges); Assert.AreEqual(7, m_oDuplicateEdgeDetector.EdgesWithDuplicates); Assert.AreEqual(2, m_oDuplicateEdgeDetector. TotalEdgesAfterMergingDuplicatesNoSelfLoops); }
TestGraphContainsDuplicateEdges12() { // Undirected graph, duplicate null name, C. m_oDuplicateEdgeDetector = new DuplicateEdgeDetector(m_oUndirectedGraph); IEdgeCollection oEdges = m_oUndirectedGraph.Edges; oEdges.Add(m_oUndirectedVertexA, m_oUndirectedVertexB, false); oEdges.Add(m_oUndirectedVertexA, m_oUndirectedVertexA, false); oEdges.Add(m_oUndirectedVertexB, m_oUndirectedVertexB, false); oEdges.Add(m_oUndirectedVertexC, m_oUndirectedVertexD, false); oEdges.Add(m_oUndirectedVertexC, m_oUndirectedVertexWithNullName, false); oEdges.Add(m_oUndirectedVertexWithNullName, m_oUndirectedVertexC, false); Assert.IsFalse(m_oDuplicateEdgeDetector.GraphContainsDuplicateEdges); Assert.AreEqual(4, m_oDuplicateEdgeDetector.UniqueEdges); Assert.AreEqual(0, m_oDuplicateEdgeDetector.EdgesWithDuplicates); Assert.AreEqual(2, m_oDuplicateEdgeDetector. TotalEdgesAfterMergingDuplicatesNoSelfLoops); }
TestGraphContainsDuplicateEdges() { // Directed graph, no duplicate edges. m_oDuplicateEdgeDetector = new DuplicateEdgeDetector(m_oDirectedGraph); IEdgeCollection oEdges = m_oDirectedGraph.Edges; oEdges.Add(m_oDirectedVertexA, m_oDirectedVertexB, true); oEdges.Add(m_oDirectedVertexB, m_oDirectedVertexA, true); oEdges.Add(m_oDirectedVertexA, m_oDirectedVertexA, true); oEdges.Add(m_oDirectedVertexB, m_oDirectedVertexB, true); oEdges.Add(m_oDirectedVertexC, m_oDirectedVertexD, true); oEdges.Add(m_oDirectedVertexC, m_oDirectedVertexWithNullName, true); Assert.IsFalse(m_oDuplicateEdgeDetector.GraphContainsDuplicateEdges); Assert.AreEqual(6, m_oDuplicateEdgeDetector.UniqueEdges); Assert.AreEqual(0, m_oDuplicateEdgeDetector.EdgesWithDuplicates); Assert.AreEqual(4, m_oDuplicateEdgeDetector. TotalEdgesAfterMergingDuplicatesNoSelfLoops); }