Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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); */
        }