public void Prim<TVertex, TEdge>([PexAssumeNotNull]IUndirectedGraph<TVertex, TEdge> g) where TEdge : IEdge<TVertex> { var distances = new Dictionary<TEdge, double>(); foreach (var e in g.Edges) distances[e] = g.AdjacentDegree(e.Source) + 1; var edges = AlgorithmExtensions.MinimumSpanningTreePrim(g, e => distances[e]); AssertSpanningTree(g, edges); }