diff --git a/src/SparseTransform/ConversionManager.cs b/src/SparseTransform/ConversionManager.cs index 5fc419b16404a3adb1dcec006784105a3b144377..ca79cd2c8ed883437188d41458df2686e7bb3ad3 100644 --- a/src/SparseTransform/ConversionManager.cs +++ b/src/SparseTransform/ConversionManager.cs @@ -1,5 +1,6 @@ using SparseTransform.DataStructures; using SparseTransform.Convert; +using System.Diagnostics; namespace SparseTransform { @@ -29,19 +30,53 @@ namespace SparseTransform public static String Partition2ColoredDot(String MMMatrix, bool textColor = false) { MatrixMarketReader reader = new MatrixMarketReader(); + + Stopwatch inWatch = Stopwatch.StartNew(); + IGraph graph = reader.ReadGraph(MMMatrix); + + inWatch.Stop(); + TimeSpan inTime = inWatch.Elapsed; + Colorer color = new Colorer(); - if (graph is AdjacencyGraph) - { - - color.StarColor1((AdjacencyGraph) graph); + Stopwatch colWatch = Stopwatch.StartNew(); + if (graph is AdjacencyGraph) + { + color.StarColor1((AdjacencyGraph)graph); } else + { color.PartialD2Color((BipartiteGraph)graph); + } + + colWatch.Stop(); + TimeSpan colTime = colWatch.Elapsed; + ColoredDotWriter writer = new ColoredDotWriter(graph, textColor); - return writer.Write(graph); + + Stopwatch outWatch = Stopwatch.StartNew(); + + String dotOutput = writer.Write(graph); + + outWatch.Stop(); + TimeSpan outTime = outWatch.Elapsed; + + string inTimeOutput = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", + inTime.Hours, inTime.Minutes, inTime.Seconds, + inTime.Milliseconds / 10); + + string colTimeOutput = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", + colTime.Hours, colTime.Minutes, colTime.Seconds, + colTime.Milliseconds / 10); + + string outTimeOutput = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", + outTime.Hours, outTime.Minutes, outTime.Seconds, + outTime.Milliseconds / 10); + + Console.WriteLine($"Time elapsed in ConversionManager:\nIn-Transformation:\t{inTimeOutput}\nColoring:\t\t{colTimeOutput}\nOut-Transformation:\t{outTimeOutput}\n"); + return dotOutput; } /// <summary>