/// <summary> /// Converts a sequence of vertex pairs into an adjancency graph /// </summary> /// <typeparam name="TVertex">type of the vertices</typeparam> /// <param name="vertexPairs"></param> /// <returns></returns> public static AdjacencyGraph <TVertex, SEquatableEdge <TVertex> > ToAdjacencyGraph <TVertex> (this IEnumerable <SEquatableEdge <TVertex> > vertexPairs) { Contract.Requires(vertexPairs != null); var g = new AdjacencyGraph <TVertex, SEquatableEdge <TVertex> >(); g.AddVerticesAndEdgeRange(vertexPairs); return(g); }
public int AddVerticesAndEdgeRange <TVertex, TEdge>( [PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target, TEdge[] edges ) where TEdge : IEdge <TVertex> { // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.AddVerticesAndEdgeRange(AdjacencyGraph`2<!!0,!!1>, !!1[]) int result = target.AddVerticesAndEdgeRange((IEnumerable <TEdge>)edges); return(result); }
/// <summary> /// Converts a set of edges into an adjacency graph. /// </summary> /// <typeparam name="TVertex">The type of the vertex.</typeparam> /// <typeparam name="TEdge">The type of the edge.</typeparam> /// <param name="edges">The edges.</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 <TEdge> edges, bool allowParallelEdges) where TEdge : IEdge <TVertex> { Contract.Requires(edges != null); Contract.Requires(EnumerableContract.ElementsNotNull(edges)); var g = new AdjacencyGraph <TVertex, TEdge>(allowParallelEdges); g.AddVerticesAndEdgeRange(edges); return(g); }