protected static UndirectedGraph <string, TaggedEdge <string, double> > GetUndirectedCompleteGraph(int vertex) { var random = new QuikGraph.Utils.CryptoRandom(); var graph = new UndirectedGraph <string, TaggedEdge <string, double> >(); var trueGraph = new UndirectedGraph <string, TaggedEdge <string, double> >(); var sets = new ForestDisjointSet <string>(vertex); for (int i = 0; i < vertex; ++i) { graph.AddVertex(i.ToString()); trueGraph.AddVertex(i.ToString()); sets.MakeSet(i.ToString()); } for (int i = 0; i < vertex; ++i) { for (int j = i + 1; j < vertex; ++j) { graph.AddEdge( new TaggedEdge <string, double>( i.ToString(), j.ToString(), random.Next(100))); } } return(graph); }
public void EdgeCondensation() { var rand = new QuikGraph.Utils.CryptoRandom(123456); foreach (BidirectionalGraph <string, Edge <string> > graph in TestGraphFactory.GetBidirectionalGraphs_SlowTests()) { RunEdgesCondensationAndCheck(graph, v => true); RunEdgesCondensationAndCheck(graph, v => rand.Next(0, 1) == 1); } }
public void ToDirectedGraphML_WithColors() { var random = new QuikGraph.Utils.CryptoRandom(123456); foreach (AdjacencyGraph <string, Edge <string> > graph in TestGraphFactory.GetAdjacencyGraphs_All()) { Dictionary <string, GraphColor> vertexColors = graph.Vertices.ToDictionary( vertex => vertex, vertex => (GraphColor)random.Next(0, 3)); DirectedGraph directedGraph = graph.ToDirectedGraphML( vertex => { Assert.IsNotNull(vertex); return(vertexColors[vertex]); }); Assert.IsNotNull(graph); AssertGraphContentEquivalent(graph, directedGraph); foreach (DirectedGraphNode node in directedGraph.Nodes) { Assert.AreEqual( ColorToStringColor(vertexColors[node.Id]), node.Background); } } #region Local function string ColorToStringColor(GraphColor color) { switch (color) { case GraphColor.Black: return("Black"); case GraphColor.Gray: return("LightGray"); case GraphColor.White: return("White"); default: Assert.Fail("Unknown color."); return(string.Empty); } } #endregion }