private static void AssertSameProperties <TVertex, TEdge>(IBidirectionalGraph <TVertex, TEdge> graph) where TEdge : IEdge <TVertex> { ArrayBidirectionalGraph <TVertex, TEdge> bidirectionalGraph = graph.ToArrayBidirectionalGraph(); Assert.AreEqual(graph.VertexCount, bidirectionalGraph.VertexCount); CollectionAssert.AreEqual(graph.Vertices, bidirectionalGraph.Vertices); Assert.AreEqual(graph.EdgeCount, bidirectionalGraph.EdgeCount); CollectionAssert.AreEqual(graph.Edges, bidirectionalGraph.Edges); foreach (TVertex vertex in graph.Vertices) { CollectionAssert.AreEqual(graph.OutEdges(vertex), bidirectionalGraph.OutEdges(vertex)); } }