Exemple #1
0
        /// <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>(
#if !NET20
            this
#endif
            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);
        }
Exemple #2
0
 public void VerticesGet <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.VerticesGet(AdjacencyGraph`2<!!0,!!1>)
     IEnumerable <TVertex> result = target.Vertices;
 }
Exemple #3
0
 public void TrimEdgeExcess <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.TrimEdgeExcess(AdjacencyGraph`2<!!0,!!1>)
     target.TrimEdgeExcess();
 }
Exemple #4
0
 public void IsVerticesEmptyGet <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.IsVerticesEmptyGet(AdjacencyGraph`2<!!0,!!1>)
     bool result = target.IsVerticesEmpty;
 }
Exemple #5
0
 public void EdgeCountGet <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.EdgeCountGet(AdjacencyGraph`2<!!0,!!1>)
     int result = target.EdgeCount;
 }
Exemple #6
0
 public void ClearOutEdges <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target, TVertex v)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.ClearOutEdges(AdjacencyGraph`2<!!0,!!1>, !!0)
     target.ClearOutEdges(v);
 }
Exemple #7
0
 public void AllowParallelEdgesGet <TVertex, TEdge>([PexAssumeUnderTest] AdjacencyGraph <TVertex, TEdge> target)
     where TEdge : IEdge <TVertex>
 {
     // TODO: add assertions to method AdjacencyGraphTVertexTEdgeTest.AllowParallelEdgesGet(AdjacencyGraph`2<!!0,!!1>)
     bool result = target.AllowParallelEdges;
 }