static void Benchmark(int vertices, int maxEdges, int increment, int repetitions, string filename) { Stopwatch timer = new Stopwatch(); using (StreamWriter file = new StreamWriter("Results/Data/" + filename + ".csv")) { for (int edges = 10000; edges <= maxEdges; edges += increment) { long averageTime = 0; var rand = new Random(); for (int j = 0; j < repetitions; j++) { Graph g = GraphGenerator(vertices, edges); timer.Start(); SpanningTreeInfo sti = SpanningTree.GetSpanning(g); timer.Stop(); averageTime += timer.ElapsedMilliseconds; timer.Reset(); } averageTime /= repetitions; file.WriteLine("{0},{1}", edges, averageTime); Console.WriteLine(edges + " " + averageTime); } } }
public void test_kruskal() { Graph g = g1(); SpanningTreeInfo s = SpanningTree.GetSpanning(g); Assert.AreEqual(16, s.cost); Graph mg = mstGraph(); SpanningTreeInfo mst = SpanningTree.GetSpanning(mg); Assert.AreEqual(10, mst.cost); // Test for listing edges /* foreach(Edge e in mst.edges) */ /* { */ /* Console.WriteLine("From {0} to {1} with cost {2}", */ /* e.source, e.destination, e.weight); */ /* } */ /* Assert.True(false); */ }