private static void AssertGraphsEqual(
     IEdgeListGraph <int, Edge <int> > g,
     IEdgeListGraph <int, Edge <int> > result)
 {
     // check equal
     Assert.IsTrue(GraphContract.VertexCountEqual(g, result));
     Assert.IsTrue(GraphContract.EdgeCountEqual(g, result));
     foreach (var v in g.Vertices)
     {
         Assert.IsTrue(result.ContainsVertex(v));
     }
     //foreach (var e in g.Edges)
     //    Assert.IsTrue(result.ContainsEdge(e.Source, e.Target));
 }
        private static void AssertGraphsEqual(
            [NotNull] IEdgeListGraph <int, EquatableEdge <int> > expected,
            [NotNull] IEdgeListGraph <int, EquatableEdge <int> > graph)
        {
            // Check equal
            expected.AssertVertexCountEqual(graph);
            expected.AssertEdgeCountEqual(graph);

            foreach (int vertex in expected.Vertices)
            {
                Assert.IsTrue(graph.ContainsVertex(vertex));
            }
            foreach (Edge <int> edge in graph.Edges)
            {
                Assert.IsTrue(graph.ContainsEdge(new EquatableEdge <int>(edge.Source, edge.Target)));
            }
        }