diff options
Diffstat (limited to 'src/Program/Program.cs')
-rw-r--r-- | src/Program/Program.cs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/Program/Program.cs b/src/Program/Program.cs index 6aab0a3..c27369a 100644 --- a/src/Program/Program.cs +++ b/src/Program/Program.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.IO; using System.Linq; using Graph = NetworkFlow.Graph; @@ -15,29 +14,32 @@ namespace Program List<Analysis> Analysii = new(); DirectoryInfo graphDir = new DirectoryInfo((args.Length > 0) ? args[0] : "graphs"); + FileInfo outfile = new("../../output.csv"); + File.WriteAllText(outfile.FullName, $"Filename,ResultType,Iterations,MinCut,Runtime\n"); + if (!graphDir.Exists) { Console.WriteLine($"Failed to open {graphDir}: Graph does not exist."); System.Environment.Exit(1); } - + foreach (var file in graphDir.EnumerateFiles()) { - Graph graph = ReadFile(file.FullName); - Analysis analysis = new(graph); + Graph graph = ReadFile(file); + Analysis analysis = new(graph, file.Name); analysis.Analize(); Analysii.Add(analysis); - Console.WriteLine(analysis.ToString()); + File.AppendAllLines(outfile.FullName, analysis.ToCSV()); } } - public static Graph ReadFile(string file) + public static Graph ReadFile(FileInfo file) { // create default Graph object Graph graph = new Graph(undirected: true); // Read in graph file - foreach (string line in File.ReadLines(file)) + foreach (string line in File.ReadLines(file.FullName)) { // each file line is a Node with optional edges // line format: @@ -52,12 +54,13 @@ namespace Program // AddEdge(int u, int v, double weight) int.TryParse(vals[i], out v); double.TryParse(vals[i + 1], out weight); - graph.AddEdge(u, v, weight); + if (!graph[u].Edges.ContainsKey(v)) + graph.AddEdge(u, v, weight); } } // return object when done return graph; } - + } } |