aboutsummaryrefslogtreecommitdiffstats
path: root/src/Program/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Program/Program.cs')
-rw-r--r--src/Program/Program.cs21
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;
}
-
+
}
}