public int AddEdgeRange <TVertex, TEdge>( [PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target, TEdge[] edges ) where TEdge : IEdge <TVertex> { // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.AddEdgeRange(AdjacencyGraph`2<!!0,!!1>, !!1[]) int result = target.AddEdgeRange((IEnumerable <TEdge>)edges); return(result); }
/// <summary> /// Converts a set of vertices into an adjacency graph, /// using an edge factory. /// </summary> /// <typeparam name="TVertex">The type of the vertex.</typeparam> /// <typeparam name="TEdge">The type of the edge.</typeparam> /// <param name="vertices">The vertices.</param> /// <param name="outEdgesFactory">The out edges factory.</param> /// <param name="allowParallelEdges">if set to <c>true</c>, the graph allows parallel edges.</param> /// <returns></returns> public static AdjacencyGraph <TVertex, TEdge> ToAdjacencyGraph <TVertex, TEdge> (this IEnumerable <TVertex> vertices, Func <TVertex, IEnumerable <TEdge> > outEdgesFactory, bool allowParallelEdges ) where TEdge : IEdge <TVertex> { Contract.Requires(vertices != null); Contract.Requires(outEdgesFactory != null); Contract.Requires(EnumerableContract.ElementsNotNull(vertices)); var g = new AdjacencyGraph <TVertex, TEdge>(allowParallelEdges); g.AddVertexRange(vertices); foreach (var vertex in g.Vertices) { g.AddEdgeRange(outEdgesFactory(vertex)); } return(g); }