diff --git a/MODA.Console/MODA.Console.csproj b/MODA.Console/MODA.Console.csproj index 2988e74..e55ef35 100644 --- a/MODA.Console/MODA.Console.csproj +++ b/MODA.Console/MODA.Console.csproj @@ -43,8 +43,10 @@ + + diff --git a/MODA.Console/MODATest.cs b/MODA.Console/MODATest.cs new file mode 100644 index 0000000..737887e --- /dev/null +++ b/MODA.Console/MODATest.cs @@ -0,0 +1,56 @@ +using MODA.Impl; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace MODA.Console +{ + public class MODATest + { + internal static void Run(string[] args) + { + try + { + string graphFolder = args[0]; // @"C:\SOMA\Drive\MyUW\Research\Kim\remodaalgorithmimplementation"; + string filename = args[1]; // "QueryGraph.txt"; // "Ecoli20141001CR_idx.txt"; + var dotFileFulllName = Path.Combine(graphFolder, filename); + int subGraphSize = int.Parse(args[2]); + int numIterations = int.Parse(args[3]); + + var sb = new StringBuilder("Processing Graph..."); + sb.AppendFormat("Network File: {0}\nSub-graph Size: {1}\nNumber of Iterations: {2}\n", dotFileFulllName, subGraphSize, numIterations); + sb.AppendLine("==========================================================================\n"); + System.Console.WriteLine(sb); + sb.Clear(); + for (int i = 0; i < numIterations; i++) + { + var sw = Stopwatch.StartNew(); + var newGraphInstance = GraphProcessor.LoadGraph(dotFileFulllName); + System.Console.WriteLine("Iteration {0}:\t Network: Nodes - {1}; Edges: {2}\n", (i + 1), newGraphInstance.VertexCount, newGraphInstance.EdgeCount); + + //Visualizer.Visualize(newGraphInstance, dotFileFulllName + ".dot"); + + var frequentSubgraphs = new ModaAlgorithms().Algorithm1(newGraphInstance, subGraphSize); + sw.Stop(); + int totalMappings = 0; + foreach (var queryGraph in frequentSubgraphs) + { + sb.AppendFormat("\tSub-graph: {0}\t Mappings: {1}\n", queryGraph.Key.AsString(), queryGraph.Value); + totalMappings += queryGraph.Value; + } + sb.AppendFormat("\nTime Taken: {0} ({1}ms)\t Network: Nodes - {2}; Edges: {3}; Total Mappings found: {4}\n", sw.Elapsed.ToString(), sw.ElapsedMilliseconds.ToString("N"), newGraphInstance.VertexCount, newGraphInstance.EdgeCount, totalMappings); + sb.AppendLine("-------------------------------------------\n"); + newGraphInstance = null; + frequentSubgraphs = null; + } + File.WriteAllText(dotFileFulllName + ".puo", sb.ToString()); + } + catch (System.Exception ex) + { + System.Console.WriteLine(ex); + } + System.Console.WriteLine("Done!"); + System.Console.ReadKey(); + } + } +} diff --git a/MODA.Console/Program.cs b/MODA.Console/Program.cs index 0fefb3f..9d43fb4 100644 --- a/MODA.Console/Program.cs +++ b/MODA.Console/Program.cs @@ -1,57 +1,11 @@ -using MODA.Impl; -using MODA.Impl.Graphics; -using System.Diagnostics; -using System.IO; -using System.Text; - -namespace MODA.Console +namespace MODA.Console { class Program { static void Main(string[] args) { - try - { - string graphFolder = args[0]; // @"C:\SOMA\Drive\MyUW\Research\Kim\remodaalgorithmimplementation"; - string filename = args[1]; // "QueryGraph.txt"; // "Ecoli20141001CR_idx.txt"; - var dotFileFulllName = Path.Combine(graphFolder, filename); - int subGraphSize = int.Parse(args[2]); - int numIterations = int.Parse(args[3]); - - var sb = new StringBuilder("Processing Graph..."); - sb.AppendFormat("Network File: {0}\nSub-graph Size: {1}\nNumber of Iterations: {2}\n", dotFileFulllName, subGraphSize, numIterations); - sb.AppendLine("==========================================================================\n"); - System.Console.WriteLine(sb); - sb.Clear(); - for (int i = 0; i < numIterations; i++) - { - var sw = Stopwatch.StartNew(); - var newGraphInstance = GraphProcessor.LoadGraph(dotFileFulllName); - System.Console.WriteLine("Iteration {0}:\t Network: Nodes - {1}; Edges: {2}\n", (i + 1), newGraphInstance.VertexCount, newGraphInstance.EdgeCount); - - //Visualizer.Visualize(newGraphInstance, dotFileFulllName + ".dot"); - - var frequentSubgraphs = new ModaAlgorithms().Algorithm1(newGraphInstance, subGraphSize); - sw.Stop(); - int totalMappings = 0; - foreach (var queryGraph in frequentSubgraphs) - { - sb.AppendFormat("\tSub-graph: {0}\t Mappings: {1}\n", queryGraph.Key.AsString(), queryGraph.Value); - totalMappings += queryGraph.Value; - } - sb.AppendFormat("\nTime Taken: {0} ({1}ms)\t Network: Nodes - {2}; Edges: {3}; Total Mappings found: {4}\n", sw.Elapsed.ToString(), sw.ElapsedMilliseconds.ToString("N"), newGraphInstance.VertexCount, newGraphInstance.EdgeCount, totalMappings); - sb.AppendLine("-------------------------------------------\n"); - newGraphInstance = null; - frequentSubgraphs = null; - } - File.WriteAllText(dotFileFulllName + ".puo", sb.ToString()); - } - catch (System.Exception ex) - { - System.Console.WriteLine(ex); - } - System.Console.WriteLine("Done!"); - System.Console.ReadKey(); + MODATest.Run(args); + //RecursionHelperTest.Run(); } } } diff --git a/MODA.Console/RecursionHelperTest.cs b/MODA.Console/RecursionHelperTest.cs new file mode 100644 index 0000000..c309798 --- /dev/null +++ b/MODA.Console/RecursionHelperTest.cs @@ -0,0 +1,86 @@ +using MODA.Impl; +using System.Diagnostics; +using System.Threading; + +namespace MODA.Console +{ + public class RecursionHelperTest + { + public static void Run() + { + var arr = new[] { 1,5,5,5,5,5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; + RunRecursionHelper(arr); + RunRecursion(arr); + System.Console.ReadKey(); + } + + static void RunRecursion(int[] arr) + { + var sw = Stopwatch.StartNew(); + + var ans = Factorial(20); // Sum(arr); + + sw.Stop(); + System.Console.WriteLine("RunRecursion done.\n Time taken: {0}s. Ans = {1}", sw.Elapsed, ans); + } + + static void RunRecursionHelper(int[] arr) + { + var sw = Stopwatch.StartNew(); + + var ans = FactorialWithHelper(20); // SumWithHelper(arr); + + sw.Stop(); + System.Console.WriteLine("RunRecursionHelper done.\n Time taken: {0}s. Ans = {1}", sw.Elapsed, ans); + } + + static long Factorial(long n) + { + //This is the termination condition + if (n < 2) + { + //This is the returning value when termination condition is true + Thread.Sleep(3000); + return 1; + } + + //This is the recursive call + var fac = Factorial(n - 1); + + //This is the work to do with the current item and the + //result of recursive call + return n * fac; + } + + static long FactorialWithHelper(long n) + { + return RecursionHelper.CreateSingular(currentParam => currentParam < 2, currentVal => { Thread.Sleep(3000); return 1; }) + .RecursiveCall((currentParam, rv) => currentParam - 1) + .Do((i, rv) => i * rv) + .Execute(n); + } + + static int Sum(int[] array, int index = 0) + { + //This is the termination condition + if (index >= array.Length) + //This is the returning value when termination condition is true + return 0; + + //This is the recursive call + var sumofrest = Sum(array, index + 1); + + //This is the work to do with the current item and the + //result of recursive call + return array[index] + sumofrest; + } + + static int SumWithHelper(int[] ar) + { + return RecursionHelper.CreateSingular(i => i >= ar.Length, i => 0) + .RecursiveCall((i, rv) => i + 1) + .Do((i, rv) => ar[i] + rv) + .Execute(0); + } + } +} diff --git a/MODA.Impl/ExpansionTreeBuilder.cs b/MODA.Impl/ExpansionTreeBuilder.cs index a43512f..48c41b2 100644 --- a/MODA.Impl/ExpansionTreeBuilder.cs +++ b/MODA.Impl/ExpansionTreeBuilder.cs @@ -36,6 +36,9 @@ public void Build() case 3: rootNode = ExpansionTree.BuildThreeNodesTree(); break; + case 5: + rootNode = ExpansionTree.BuildFiveNodesTree(); + break; case 4: default: rootNode = ExpansionTree.BuildFourNodesTree(); @@ -53,6 +56,7 @@ public void Build() VerticesSorted = bfs.VertexColors; Graph = bfs.VisitedGraph; + bfs = null; } else { @@ -62,6 +66,7 @@ public void Build() VerticesSorted = dfs.VertexColors; Graph = dfs.VisitedGraph; + dfs = null; } VerticesSorted[rootNode] = GraphColor.White; } diff --git a/MODA.Impl/ExpansionTrees/FiveNodes.cs b/MODA.Impl/ExpansionTrees/FiveNodes.cs index d9247e4..ba8f5a7 100644 --- a/MODA.Impl/ExpansionTrees/FiveNodes.cs +++ b/MODA.Impl/ExpansionTrees/FiveNodes.cs @@ -1,5 +1,4 @@ using QuickGraph; -using System.Collections.Generic; namespace MODA.Impl { @@ -15,15 +14,462 @@ public static ExpansionTreeNode> BuildFiveNodesTree(this AdjacencyG //Level 0 - Root Node var rootNode = new ExpansionTreeNode>(); - //Level 1 + #region Level 1 - Three (3) Trees + var qGraphL1_1 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var qGraphL1_2 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E") + } + .ToUndirectedGraph>(false); + var qGraphL1_3 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D"), + new Edge("C","E") + } + .ToUndirectedGraph>(false); - //Level 2 + var nodeL1_1 = new ExpansionTreeNode> + { + Level = 1, + QueryGraph = qGraphL1_1, + }; + var nodeL1_2 = new ExpansionTreeNode> + { + Level = 1, + QueryGraph = qGraphL1_2, + }; + var nodeL1_3 = new ExpansionTreeNode> + { + Level = 1, + QueryGraph = qGraphL1_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(rootNode, nodeL1_1)); + expansionTree.AddVerticesAndEdge(new Edge>>(rootNode, nodeL1_2)); + expansionTree.AddVerticesAndEdge(new Edge>>(rootNode, nodeL1_3)); + #endregion - //Level 3 + #region Level 2 - Five (5) graphs + //From L1_3 + var qGraphL2_3 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E") //New Add + } + .ToUndirectedGraph>(false); + var nodeL2_3 = new ExpansionTreeNode> + { + Level = 2, + QueryGraph = qGraphL2_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_3, nodeL2_3)); - //Level 4 + //From L1_2 + var qGraphL2_2 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), //New add + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E") + } + .ToUndirectedGraph>(false); + var nodeL2_2 = new ExpansionTreeNode> + { + Level = 2, + QueryGraph = qGraphL2_2, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_2, nodeL2_2)); + + //From L1_1 + var qGraphL2_1a = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D"), + new Edge("D","E"), + new Edge("E","A") //new Add + } + .ToUndirectedGraph>(false); + var nodeL2_1a = new ExpansionTreeNode> + { + Level = 2, + QueryGraph = qGraphL2_1a, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_1, nodeL2_1a)); + var qGraphL2_1b = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), //New Add + new Edge("C","D"), + new Edge("D","E"), + } + .ToUndirectedGraph>(false); + var nodeL2_1b = new ExpansionTreeNode> + { + Level = 2, + QueryGraph = qGraphL2_1b, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_1, nodeL2_1b)); + + var qGraphL2_1c = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","E"), //New Add + new Edge("C","D"), + new Edge("D","E"), + } + .ToUndirectedGraph>(false); + var nodeL2_1c = new ExpansionTreeNode> + { + Level = 2, + QueryGraph = qGraphL2_1c, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_1, nodeL2_1c)); + #endregion + + #region Level 3 - Three (3) graphs + //From L2_1a + var qGraphL3_1 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D"), + new Edge("D","E"), + new Edge("E","A"), + new Edge("E","B") //new Add + } + .ToUndirectedGraph>(false); + var nodeL3_1 = new ExpansionTreeNode> + { + Level = 3, + QueryGraph = qGraphL3_1, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL2_1a, nodeL3_1)); + + //From L2_2 + var qGraphL3_2 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), + new Edge("C","D") //New add + } + .ToUndirectedGraph>(false); + var nodeL3_2 = new ExpansionTreeNode> + { + Level = 3, + QueryGraph = qGraphL3_2, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL2_2, nodeL3_2)); + + //From L2_3 + var qGraphL3_3 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), //New Add + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL3_3 = new ExpansionTreeNode> + { + Level = 3, + QueryGraph = qGraphL3_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL2_3, nodeL3_3)); + + #endregion + + #region Level 4 - Three (3) graphs + //From L3_1 + var qGraphL4_1 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), //new Add + new Edge("C","D"), + new Edge("D","E"), + new Edge("E","A"), + new Edge("E","B") + } + .ToUndirectedGraph>(false); + var nodeL4_1 = new ExpansionTreeNode> + { + Level = 4, + QueryGraph = qGraphL4_1, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL3_1, nodeL4_1)); + + //From L3_2 + var qGraphL4_2 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), + new Edge("C","D"), + new Edge("D","E") //New add + } + .ToUndirectedGraph>(false); + var nodeL4_2 = new ExpansionTreeNode> + { + Level = 4, + QueryGraph = qGraphL4_2, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL3_2, nodeL4_2)); + + //From L3_3 + var qGraphL4_3 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), //New Add + new Edge("B","C"), + new Edge("B","D"), + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL4_3 = new ExpansionTreeNode> + { + Level = 4, + QueryGraph = qGraphL4_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL3_3, nodeL4_3)); + + #endregion + + #region Level 5 - Three (3) graphs + //From L4_1 + var qGraphL5_1 = new Edge[] + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("C","D"), + new Edge("C","E"), //new Add + new Edge("D","E"), + new Edge("E","A"), + new Edge("E","B") + } + .ToUndirectedGraph>(false); + var nodeL5_1 = new ExpansionTreeNode> + { + Level = 5, + QueryGraph = qGraphL5_1, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL4_1, nodeL5_1)); + + //From L4_2 + var qGraphL5_2 = new Edge[] + { + new Edge("A","B"), + new Edge("A","C"), //New add + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), + new Edge("C","D"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL5_2 = new ExpansionTreeNode> + { + Level = 5, + QueryGraph = qGraphL5_2, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL4_2, nodeL5_2)); + + //From L4_3 + var qGraphL5_3 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), //New Add + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL5_3 = new ExpansionTreeNode> + { + Level = 5, + QueryGraph = qGraphL5_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL4_3, nodeL5_3)); + + #endregion + + #region Level 6 - Three (3) graphs + //From L5_1 + var qGraphL6_1 = new Edge[] + { + new Edge("A","B"), + new Edge("A","C"), //new Add + new Edge("B","C"), + new Edge("B","D"), + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E"), + new Edge("E","A"), + new Edge("E","B") + } + .ToUndirectedGraph>(false); + var nodeL6_1 = new ExpansionTreeNode> + { + Level = 6, + QueryGraph = qGraphL6_1, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL5_1, nodeL6_1)); + + //From L5_2 + var qGraphL6_2 = new Edge[] + { + new Edge("A","B"), + new Edge("A","C"), + new Edge("A","D"), //New add + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), + new Edge("C","D"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL6_2 = new ExpansionTreeNode> + { + Level = 6, + QueryGraph = qGraphL6_2, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL5_2, nodeL6_2)); + + //TODO: From L5_3 + var qGraphL6_3 = new Edge[] + { + new Edge("A","B"), + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), //New Add + new Edge("C","D"), + new Edge("C","E"), + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL6_3 = new ExpansionTreeNode> + { + Level = 6, + QueryGraph = qGraphL6_3, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL5_3, nodeL6_3)); + + #endregion + + #region Level 7 - One (1) graph, the complete graph + + //From L6_2 + var qGraphL7_1 = new Edge[] + { + new Edge("A","B"), + new Edge("A","C"), + new Edge("A","D"), + new Edge("A","E"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("B","E"), + new Edge("C","D"), + new Edge("C","E"), //New add + new Edge("D","E") + } + .ToUndirectedGraph>(false); + var nodeL7_1 = new ExpansionTreeNode> + { + Level = 7, + QueryGraph = qGraphL7_1, + }; + expansionTree.AddVerticesAndEdge(new Edge>>(nodeL6_2, nodeL7_1)); + + #endregion + + #region Clean up + //- GC doesn't come quickly and I need to keep memory down. I've learnt my lesson! T + // This is optional of course, and can always be taken out + + qGraphL1_1 = null; + qGraphL1_2 = null; + qGraphL1_3 = null; + nodeL1_1 = null; + nodeL1_2 = null; + nodeL1_3 = null; + + qGraphL2_1a = null; + qGraphL2_1b = null; + qGraphL2_1c = null; + qGraphL2_2 = null; + qGraphL2_3 = null; + nodeL2_1a = null; + nodeL2_1b = null; + nodeL2_1c = null; + nodeL2_2 = null; + nodeL2_3 = null; + + qGraphL3_1 = null; + qGraphL3_2 = null; + qGraphL3_3 = null; + nodeL3_1 = null; + nodeL3_2 = null; + nodeL3_3 = null; + + qGraphL4_1 = null; + qGraphL4_2 = null; + qGraphL4_3 = null; + nodeL4_1 = null; + nodeL4_2 = null; + nodeL4_3 = null; + + qGraphL5_1 = null; + qGraphL5_2 = null; + qGraphL5_3 = null; + nodeL5_1 = null; + nodeL5_2 = null; + nodeL5_3 = null; + + qGraphL6_1 = null; + qGraphL6_2 = null; + qGraphL6_3 = null; + nodeL6_1 = null; + nodeL6_2 = null; + nodeL6_3 = null; + + qGraphL7_1 = null; + nodeL7_1 = null; + #endregion return rootNode; } diff --git a/MODA.Impl/ExpansionTrees/FourNodes.cs b/MODA.Impl/ExpansionTrees/FourNodes.cs index 8c52f3a..06405d9 100644 --- a/MODA.Impl/ExpansionTrees/FourNodes.cs +++ b/MODA.Impl/ExpansionTrees/FourNodes.cs @@ -1,5 +1,4 @@ using QuickGraph; -using System.Collections.Generic; namespace MODA.Impl { @@ -15,19 +14,19 @@ public static ExpansionTreeNode> BuildFourNodesTree(this AdjacencyG //Level 0 - Root Node var rootNode = new ExpansionTreeNode>(); - //Level 1 + #region Level 1 - Two (2) Trees var qGraphL1_1 = new Edge[] - { - new Edge("0","1"), - new Edge("1","2"), - new Edge("2","3") - } - .ToUndirectedGraph>(false); + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("C","D") + } + .ToUndirectedGraph>(false); var qGraphL1_2 = new Edge[] { - new Edge("0","1"), - new Edge("1","2"), - new Edge("1","3") + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D") } .ToUndirectedGraph>(false); @@ -44,22 +43,23 @@ public static ExpansionTreeNode> BuildFourNodesTree(this AdjacencyG expansionTree.AddVerticesAndEdge(new Edge>>(rootNode, nodeL1_1)); expansionTree.AddVerticesAndEdge(new Edge>>(rootNode, nodeL1_2)); + #endregion - //Level 2 + #region Level 2 - Two (2) graphs var qGraphL2_1 = new Edge[] - { - new Edge("0","1"), - new Edge("1","2"), - new Edge("1","3"), //New Add; could have been 0-2 - new Edge("2","3") - } - .ToUndirectedGraph>(false); + { + new Edge("A","B"), + new Edge("B","C"), + new Edge("B","D"), //New Add; could have been 0-2 + new Edge("C","D") + } + .ToUndirectedGraph>(false); var qGraphL2_2 = new Edge[] { - new Edge("0","1"), - new Edge("0","3"), //New Add - new Edge("1","2"), - new Edge("2","3") + new Edge("A","B"), + new Edge("A","D"), //New Add + new Edge("B","C"), + new Edge("C","D") } .ToUndirectedGraph>(false); @@ -77,49 +77,37 @@ public static ExpansionTreeNode> BuildFourNodesTree(this AdjacencyG expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_1, nodeL2_1)); expansionTree.AddVerticesAndEdge(new Edge>>(nodeL1_1, nodeL2_2)); - //Level 3 - var qGraphL3_1 = new Edge[] - { - new Edge("0","1"), - new Edge("0","2"), //New Add - new Edge("1","2"), - new Edge("1","3"), - new Edge("2","3") - } - .ToUndirectedGraph>(false); - var qGraphL3_2 = new Edge[] - { - new Edge("0","1"), - new Edge("0","3"), - new Edge("1","2"), - new Edge("1","3"), //New Add; could have been 0-2 - new Edge("2","3") - } - .ToUndirectedGraph>(false); + #endregion + #region Level 3 - One (1) graph + var qGraphL3_1 = new Edge[] + { + new Edge("A","B"), + new Edge("A","C"), //New Add + new Edge("B","C"), + new Edge("B","D"), + new Edge("C","D") + } + .ToUndirectedGraph>(false); var nodeL3_1 = new ExpansionTreeNode> { Level = 3, QueryGraph = qGraphL3_1, }; - var nodeL3_2 = new ExpansionTreeNode> - { - Level = 3, - QueryGraph = qGraphL3_2, - }; expansionTree.AddVerticesAndEdge(new Edge>>(nodeL2_1, nodeL3_1)); - expansionTree.AddVerticesAndEdge(new Edge>>(nodeL2_2, nodeL3_2)); - //Level 4 + #endregion + + #region Level 4 - One (1) Graph, which is the complete graph var qGraphL4_1 = new Edge[] { - new Edge("0","1"), - new Edge("0","2"), //New Add - new Edge("0","3"), - new Edge("1","2"), - new Edge("1","3"), - new Edge("2","3") + new Edge("A","B"), + new Edge("A","C"), //New Add + new Edge("A","D"), + new Edge("B","C"), + new Edge("B","D"), + new Edge("C","D") } .ToUndirectedGraph>(false); @@ -130,7 +118,28 @@ public static ExpansionTreeNode> BuildFourNodesTree(this AdjacencyG }; expansionTree.AddVerticesAndEdge(new Edge>>(nodeL3_1, nodeL4_1)); - + #endregion + + #region clean up + + qGraphL1_1 = null; + qGraphL1_2 = null; + nodeL1_1 = null; + nodeL1_2 = null; + + qGraphL2_1 = null; + qGraphL2_2 = null; + nodeL2_1 = null; + nodeL2_2 = null; + + qGraphL3_1 = null; + nodeL3_1 = null; + + qGraphL4_1 = null; + nodeL4_1 = null; + + #endregion + return rootNode; } } diff --git a/MODA.Impl/ExpansionTrees/ThreeNodes.cs b/MODA.Impl/ExpansionTrees/ThreeNodes.cs index 3542824..849b3e9 100644 --- a/MODA.Impl/ExpansionTrees/ThreeNodes.cs +++ b/MODA.Impl/ExpansionTrees/ThreeNodes.cs @@ -1,7 +1,4 @@ -using MODA.Impl.Graphics; -using QuickGraph; -using System.Collections.Generic; -using System.IO; +using QuickGraph; namespace MODA.Impl { diff --git a/MODA.Impl/Extensions.cs b/MODA.Impl/Extensions.cs index 891f847..d816346 100644 --- a/MODA.Impl/Extensions.cs +++ b/MODA.Impl/Extensions.cs @@ -1,5 +1,4 @@ using QuickGraph; -using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; diff --git a/MODA.Impl/MODA.Impl.csproj b/MODA.Impl/MODA.Impl.csproj index d19acfb..b1e3f4d 100644 --- a/MODA.Impl/MODA.Impl.csproj +++ b/MODA.Impl/MODA.Impl.csproj @@ -65,6 +65,7 @@ + diff --git a/MODA.Impl/Map.cs b/MODA.Impl/Map.cs index 1891731..adb7f3f 100644 --- a/MODA.Impl/Map.cs +++ b/MODA.Impl/Map.cs @@ -1,9 +1,6 @@ using QuickGraph; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace MODA.Impl { diff --git a/MODA.Impl/Mapping.cs b/MODA.Impl/Mapping.cs index c65fafa..1cba20d 100644 --- a/MODA.Impl/Mapping.cs +++ b/MODA.Impl/Mapping.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Text; -using System.Linq; namespace MODA.Impl { diff --git a/MODA.Impl/ModaAlgorithms.1.cs b/MODA.Impl/ModaAlgorithms.1.cs index d5eaf41..5c8faab 100644 --- a/MODA.Impl/ModaAlgorithms.1.cs +++ b/MODA.Impl/ModaAlgorithms.1.cs @@ -1,5 +1,4 @@ using QuickGraph; -using System; using System.Collections.Generic; using System.IO; diff --git a/MODA.Impl/ModaAlgorithms.2.Modified.cs b/MODA.Impl/ModaAlgorithms.2.Modified.cs index e57c0a4..e7255fd 100644 --- a/MODA.Impl/ModaAlgorithms.2.Modified.cs +++ b/MODA.Impl/ModaAlgorithms.2.Modified.cs @@ -66,6 +66,8 @@ private List Algorithm2_Modified(UndirectedGraph> //Remember: f(h) = g, so h is Domain and g is Range //function, f = new Dictionary(1) { { h, g } } var mappings = IsomorphicExtension(new Dictionary(1) { { h, g } }, queryGraph_, inputGraph_); + if (mappings.Count == 0) continue; + sw.Stop(); var logGist = new StringBuilder(); logGist.AppendFormat("Maps gotten from IsoExtension.\tTook:\t{0:N}s.\th = {1}. g = {2}\n", sw.Elapsed.ToString(), h, g); @@ -118,6 +120,7 @@ private List Algorithm2_Modified(UndirectedGraph> } Console.WriteLine(sBuilder); + sBuilder = null; Task.WaitAll(tasks.ToArray()); var toReturn = theMappings.SelectMany(x => x.Value).ToList(); @@ -328,10 +331,7 @@ private HashSet ChooseNeighboursOfRange(string[] used_range, UndirectedG local.Remove(local[j - counter]); counter++; } - catch (Exception ex) - { - //throw new ArgumentOutOfRangeException(string.Format("ERROR in 'ChooseNeighboursOfRange' trying to remove from local:\n\t in Index (j - counter) = {0}; j = {1}; counter = {2}; local.Count = {3}.", (j - counter), j, counter, local.Count), ex); - } + catch { } if (local.Count == 0) { break; @@ -404,10 +404,7 @@ private string GetMostConstrainedNeighbour(string[] domain, UndirectedGraph + { + private readonly List, bool>> _steps = new List, bool>>(); + private readonly Stack> _stack = new Stack>(); + private Func _terminationCondition; + private Func _terminationOperation; + + /// + /// Creates a single stack recursion manager. + /// + /// Type of item to recurse for + /// The terminate condition. + /// Operation to run in case termination was true. + /// + public static RecursionHelper CreateSingular(Func terminateCondition, Func terminationOperation = null) + { + var rv = new RecursionHelper + { + _terminationCondition = terminateCondition, + _terminationOperation = terminationOperation + }; + return rv; + } + + public RecursionHelper RecursiveCall(Func func) + { + addStep(func, true); + return this; + } + + public RecursionHelper Do(Func func) + { + addStep(func, false); + return this; + } + + public RecursionHelper Do(Action action) + { + addStep((i, o) => + { + action(i, o); + return o; + }, false); + return this; + } + + private void addStep(Func func, bool isRecursive) + { + _steps.Add(Tuple.Create(func, isRecursive)); + } + + public T Execute(T initialItem) + { + var currentItem = initialItem; + var currentResult = default(T); + var currentStep = 0; + while (true) + { + var recursiveContinue = false; + if (currentStep == 0 && _terminationCondition(currentItem)) + { + currentResult = _terminationOperation(currentItem); + } + else + { + for (int index = currentStep; index < _steps.Count; index++) + { + var step = _steps[index]; + if (step.Item2) //Step is recursive + { + _stack.Push(Tuple.Create(currentItem, index + 1)); //Push the current position and value + currentItem = step.Item1(currentItem, currentResult); + recursiveContinue = true; + break; + } + currentResult = step.Item1(currentItem, currentResult); + recursiveContinue = false; + } + } + currentStep = 0; + if (!recursiveContinue) + { + //Once a function has finished it works, pop the stack and continue from where it was before + if (_stack.Count == 0) + { + return currentResult; + } + var stackPopped = _stack.Pop(); + currentItem = stackPopped.Item1; + currentStep = stackPopped.Item2; + } + } + } + } +} diff --git a/QuickGraph.Graphviz/Dot/GraphvizArrow.cs b/QuickGraph.Graphviz/Dot/GraphvizArrow.cs index 53879ef..ba5bce3 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizArrow.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizArrow.cs @@ -1,6 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; using System.IO; public class GraphvizArrow diff --git a/QuickGraph.Graphviz/Dot/GraphvizArrowClipping.cs b/QuickGraph.Graphviz/Dot/GraphvizArrowClipping.cs index 0333905..9fb496d 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizArrowClipping.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizArrowClipping.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizArrowClipping { None, diff --git a/QuickGraph.Graphviz/Dot/GraphvizArrowFilling.cs b/QuickGraph.Graphviz/Dot/GraphvizArrowFilling.cs index 1534c08..e5a3689 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizArrowFilling.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizArrowFilling.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizArrowFilling { Close, diff --git a/QuickGraph.Graphviz/Dot/GraphvizArrowShape.cs b/QuickGraph.Graphviz/Dot/GraphvizArrowShape.cs index 6431b0f..fba4fd8 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizArrowShape.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizArrowShape.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizArrowShape { Box, diff --git a/QuickGraph.Graphviz/Dot/GraphvizClusterMode.cs b/QuickGraph.Graphviz/Dot/GraphvizClusterMode.cs index 0fc6605..177f3b6 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizClusterMode.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizClusterMode.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizClusterMode { Local, diff --git a/QuickGraph.Graphviz/Dot/GraphvizColor.cs b/QuickGraph.Graphviz/Dot/GraphvizColor.cs index 0be222e..b4ca40f 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizColor.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizColor.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Graphviz.Dot diff --git a/QuickGraph.Graphviz/Dot/GraphvizEdge.cs b/QuickGraph.Graphviz/Dot/GraphvizEdge.cs index 1180dfe..b291745 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizEdge.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizEdge.cs @@ -1,9 +1,8 @@ namespace QuickGraph.Graphviz.Dot { using System; - using System.Collections; - using System.IO; using System.Collections.Generic; + using System.IO; public class GraphvizEdge { diff --git a/QuickGraph.Graphviz/Dot/GraphvizEdgeDirection.cs b/QuickGraph.Graphviz/Dot/GraphvizEdgeDirection.cs index 7ce4e04..04cfb3e 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizEdgeDirection.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizEdgeDirection.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizEdgeDirection { None, diff --git a/QuickGraph.Graphviz/Dot/GraphvizEdgeExtremity.cs b/QuickGraph.Graphviz/Dot/GraphvizEdgeExtremity.cs index 10b9081..b6dcad7 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizEdgeExtremity.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizEdgeExtremity.cs @@ -1,9 +1,7 @@ namespace QuickGraph.Graphviz.Dot { - using System; - using System.Collections; - using System.Diagnostics.Contracts; using System.Collections.Generic; + using System.Diagnostics.Contracts; public class GraphvizEdgeExtremity { diff --git a/QuickGraph.Graphviz/Dot/GraphvizEdgeLabel.cs b/QuickGraph.Graphviz/Dot/GraphvizEdgeLabel.cs index d8b0534..81ccbac 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizEdgeLabel.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizEdgeLabel.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - using System.Collections; using System.Collections.Generic; public class GraphvizEdgeLabel diff --git a/QuickGraph.Graphviz/Dot/GraphvizEdgeStyle.cs b/QuickGraph.Graphviz/Dot/GraphvizEdgeStyle.cs index 6bf740c..14d5e8b 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizEdgeStyle.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizEdgeStyle.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizEdgeStyle { Unspecified, diff --git a/QuickGraph.Graphviz/Dot/GraphvizFont.cs b/QuickGraph.Graphviz/Dot/GraphvizFont.cs index f60f96d..9ceae90 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizFont.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizFont.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Graphviz.Dot diff --git a/QuickGraph.Graphviz/Dot/GraphvizGraph.cs b/QuickGraph.Graphviz/Dot/GraphvizGraph.cs index 4992180..9c138d2 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizGraph.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizGraph.cs @@ -1,9 +1,8 @@ namespace QuickGraph.Graphviz.Dot { using System; - using System.Collections; - using System.IO; using System.Collections.Generic; + using System.IO; public class GraphvizGraph { diff --git a/QuickGraph.Graphviz/Dot/GraphvizImageType.cs b/QuickGraph.Graphviz/Dot/GraphvizImageType.cs index 6139bca..561f14c 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizImageType.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizImageType.cs @@ -1,8 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - using System.ComponentModel; - public enum GraphvizImageType { /// diff --git a/QuickGraph.Graphviz/Dot/GraphvizLabelJustification.cs b/QuickGraph.Graphviz/Dot/GraphvizLabelJustification.cs index 4a6c6cc..2b27f38 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizLabelJustification.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizLabelJustification.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizLabelJustification { L, diff --git a/QuickGraph.Graphviz/Dot/GraphvizLabelLocation.cs b/QuickGraph.Graphviz/Dot/GraphvizLabelLocation.cs index 2b839e6..ef67bb2 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizLabelLocation.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizLabelLocation.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizLabelLocation { T, diff --git a/QuickGraph.Graphviz/Dot/GraphvizLayerCollection.cs b/QuickGraph.Graphviz/Dot/GraphvizLayerCollection.cs index 60a0d1b..502075f 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizLayerCollection.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizLayerCollection.cs @@ -1,10 +1,9 @@ namespace QuickGraph.Graphviz.Dot { using System; - using System.IO; - using System.Reflection; using System.Collections.ObjectModel; using System.Diagnostics.Contracts; + using System.IO; public class GraphvizLayerCollection : Collection { diff --git a/QuickGraph.Graphviz/Dot/GraphvizOutputMode.cs b/QuickGraph.Graphviz/Dot/GraphvizOutputMode.cs index b70d863..9e9e313 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizOutputMode.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizOutputMode.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizOutputMode { BreadthFirst, diff --git a/QuickGraph.Graphviz/Dot/GraphvizPageDirection.cs b/QuickGraph.Graphviz/Dot/GraphvizPageDirection.cs index 92cd444..b93fb6d 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizPageDirection.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizPageDirection.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizPageDirection { BL, diff --git a/QuickGraph.Graphviz/Dot/GraphvizPoint.cs b/QuickGraph.Graphviz/Dot/GraphvizPoint.cs index eac38e3..d5620a8 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizPoint.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizPoint.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace QuickGraph.Graphviz.Dot +namespace QuickGraph.Graphviz.Dot { public sealed class GraphvizPoint { diff --git a/QuickGraph.Graphviz/Dot/GraphvizRankDirection.cs b/QuickGraph.Graphviz/Dot/GraphvizRankDirection.cs index b6b5927..f74d407 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRankDirection.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRankDirection.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizRankDirection { LR, diff --git a/QuickGraph.Graphviz/Dot/GraphvizRatioMode.cs b/QuickGraph.Graphviz/Dot/GraphvizRatioMode.cs index 50fcff8..d5e5131 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRatioMode.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRatioMode.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizRatioMode { Fill, diff --git a/QuickGraph.Graphviz/Dot/GraphvizRecord.cs b/QuickGraph.Graphviz/Dot/GraphvizRecord.cs index fbe4fa0..d6d4159 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRecord.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRecord.cs @@ -1,6 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; using System.Text; public class GraphvizRecord diff --git a/QuickGraph.Graphviz/Dot/GraphvizRecordCell.cs b/QuickGraph.Graphviz/Dot/GraphvizRecordCell.cs index 207d23a..26d9d28 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRecordCell.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRecordCell.cs @@ -1,6 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; using System.Text; public class GraphvizRecordCell diff --git a/QuickGraph.Graphviz/Dot/GraphvizRecordCellCollection.cs b/QuickGraph.Graphviz/Dot/GraphvizRecordCellCollection.cs index 810e555..1d30913 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRecordCellCollection.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRecordCellCollection.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - using System.Reflection; using System.Collections.ObjectModel; public sealed class GraphvizRecordCellCollection : Collection diff --git a/QuickGraph.Graphviz/Dot/GraphvizRecordEscaper.cs b/QuickGraph.Graphviz/Dot/GraphvizRecordEscaper.cs index 1db6fc9..6a572a1 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizRecordEscaper.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizRecordEscaper.cs @@ -1,8 +1,7 @@ namespace QuickGraph.Graphviz.Dot { - using System; - using System.Text.RegularExpressions; using System.Diagnostics.Contracts; + using System.Text.RegularExpressions; public sealed class GraphvizRecordEscaper { diff --git a/QuickGraph.Graphviz/Dot/GraphvizSize.cs b/QuickGraph.Graphviz/Dot/GraphvizSize.cs index 03e6eac..3c47a1b 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizSize.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizSize.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Globalization; -using System.Diagnostics; +using System.Diagnostics; using System.Diagnostics.Contracts; +using System.Globalization; namespace QuickGraph.Graphviz.Dot { diff --git a/QuickGraph.Graphviz/Dot/GraphvizVertex.cs b/QuickGraph.Graphviz/Dot/GraphvizVertex.cs index 8da5839..5c845c3 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizVertex.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizVertex.cs @@ -1,9 +1,8 @@ namespace QuickGraph.Graphviz.Dot { using System; - using System.Collections; - using System.IO; using System.Collections.Generic; + using System.IO; public class GraphvizVertex { diff --git a/QuickGraph.Graphviz/Dot/GraphvizVertexShape.cs b/QuickGraph.Graphviz/Dot/GraphvizVertexShape.cs index c3fd79b..1b9816a 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizVertexShape.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizVertexShape.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizVertexShape { Unspecified, diff --git a/QuickGraph.Graphviz/Dot/GraphvizVertexStyle.cs b/QuickGraph.Graphviz/Dot/GraphvizVertexStyle.cs index 3a74d04..74bce94 100644 --- a/QuickGraph.Graphviz/Dot/GraphvizVertexStyle.cs +++ b/QuickGraph.Graphviz/Dot/GraphvizVertexStyle.cs @@ -1,7 +1,5 @@ namespace QuickGraph.Graphviz.Dot { - using System; - public enum GraphvizVertexStyle { Unspecified, diff --git a/QuickGraph.Graphviz/FormatEdgeEventArgs.cs b/QuickGraph.Graphviz/FormatEdgeEventArgs.cs index b68717d..4e4dfa1 100644 --- a/QuickGraph.Graphviz/FormatEdgeEventArgs.cs +++ b/QuickGraph.Graphviz/FormatEdgeEventArgs.cs @@ -1,6 +1,4 @@ -using System; -using QuickGraph.Graphviz.Dot; -using System.Diagnostics.Contracts; +using QuickGraph.Graphviz.Dot; namespace QuickGraph.Graphviz { diff --git a/QuickGraph.Graphviz/FormatVertexEventArgs.cs b/QuickGraph.Graphviz/FormatVertexEventArgs.cs index 5e27d3e..901f3b7 100644 --- a/QuickGraph.Graphviz/FormatVertexEventArgs.cs +++ b/QuickGraph.Graphviz/FormatVertexEventArgs.cs @@ -1,6 +1,5 @@ -using System; -using QuickGraph.Graphviz.Dot; -using System.Diagnostics.Contracts; +using QuickGraph.Graphviz.Dot; +using System; namespace QuickGraph.Graphviz { diff --git a/QuickGraph.Graphviz/GraphRendererBase.cs b/QuickGraph.Graphviz/GraphRendererBase.cs index 4e475da..0128015 100644 --- a/QuickGraph.Graphviz/GraphRendererBase.cs +++ b/QuickGraph.Graphviz/GraphRendererBase.cs @@ -1,5 +1,4 @@ -using System; -using QuickGraph.Graphviz.Dot; +using QuickGraph.Graphviz.Dot; namespace QuickGraph.Graphviz { diff --git a/QuickGraph.Graphviz/GraphvizAlgorithm.cs b/QuickGraph.Graphviz/GraphvizAlgorithm.cs index f57741f..25262bc 100644 --- a/QuickGraph.Graphviz/GraphvizAlgorithm.cs +++ b/QuickGraph.Graphviz/GraphvizAlgorithm.cs @@ -1,9 +1,9 @@ -using System; -using System.IO; -using System.Text.RegularExpressions; +using QuickGraph.Graphviz.Dot; +using System; using System.Collections.Generic; -using QuickGraph.Graphviz.Dot; using System.Diagnostics.Contracts; +using System.IO; +using System.Text.RegularExpressions; namespace QuickGraph.Graphviz { diff --git a/QuickGraph.Graphviz/GraphvizExtensions.cs b/QuickGraph.Graphviz/GraphvizExtensions.cs index 93d773a..74d4be9 100644 --- a/QuickGraph.Graphviz/GraphvizExtensions.cs +++ b/QuickGraph.Graphviz/GraphvizExtensions.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Diagnostics.Contracts; namespace QuickGraph.Graphviz { diff --git a/QuickGraph.Graphviz/IDotEngine.cs b/QuickGraph.Graphviz/IDotEngine.cs index 643c893..f0533b8 100644 --- a/QuickGraph.Graphviz/IDotEngine.cs +++ b/QuickGraph.Graphviz/IDotEngine.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Text; using QuickGraph.Graphviz.Dot; +using System; using System.Diagnostics.Contracts; namespace QuickGraph.Graphviz diff --git a/QuickGraph.Graphviz/Properties/AssemblyInfo.cs b/QuickGraph.Graphviz/Properties/AssemblyInfo.cs index 23834e6..3784f22 100644 --- a/QuickGraph.Graphviz/Properties/AssemblyInfo.cs +++ b/QuickGraph.Graphviz/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/QuickGraph/AdjacencyGraph.cs b/QuickGraph/AdjacencyGraph.cs index 9a84b3f..d0ebc12 100644 --- a/QuickGraph/AdjacencyGraph.cs +++ b/QuickGraph/AdjacencyGraph.cs @@ -1,9 +1,8 @@ -using System; +using QuickGraph.Collections; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; -using QuickGraph.Collections; namespace QuickGraph { diff --git a/QuickGraph/Algorithms/AlgorithmBase.cs b/QuickGraph/Algorithms/AlgorithmBase.cs index 4cf7c10..a5444f4 100644 --- a/QuickGraph/Algorithms/AlgorithmBase.cs +++ b/QuickGraph/Algorithms/AlgorithmBase.cs @@ -1,5 +1,5 @@ -using System; -using QuickGraph.Algorithms.Services; +using QuickGraph.Algorithms.Services; +using System; using System.Collections.Generic; using System.Diagnostics.Contracts; diff --git a/QuickGraph/Algorithms/Contracts/IAlgorithmContract.cs b/QuickGraph/Algorithms/Contracts/IAlgorithmContract.cs index af29bcd..47e095a 100644 --- a/QuickGraph/Algorithms/Contracts/IAlgorithmContract.cs +++ b/QuickGraph/Algorithms/Contracts/IAlgorithmContract.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms.Contracts diff --git a/QuickGraph/Algorithms/IAlgorithm.cs b/QuickGraph/Algorithms/IAlgorithm.cs index d66f6f6..779c666 100644 --- a/QuickGraph/Algorithms/IAlgorithm.cs +++ b/QuickGraph/Algorithms/IAlgorithm.cs @@ -1,10 +1,8 @@ -using System; -using QuickGraph.Algorithms.Services; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms { - [ContractClass(typeof(Contracts.IAlgorithmContract<>))] + [ContractClass(typeof(Contracts.IAlgorithmContract<>))] public interface IAlgorithm : IComputation { diff --git a/QuickGraph/Algorithms/IDistanceRecorderAlgorithm.cs b/QuickGraph/Algorithms/IDistanceRecorderAlgorithm.cs index a14721b..cd3732c 100644 --- a/QuickGraph/Algorithms/IDistanceRecorderAlgorithm.cs +++ b/QuickGraph/Algorithms/IDistanceRecorderAlgorithm.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { /// /// An algorithm that exposes events to compute a distance map between vertices diff --git a/QuickGraph/Algorithms/IEdgePredecessorRecorderAlgorithm.cs b/QuickGraph/Algorithms/IEdgePredecessorRecorderAlgorithm.cs index 0c46d3d..081e4a1 100644 --- a/QuickGraph/Algorithms/IEdgePredecessorRecorderAlgorithm.cs +++ b/QuickGraph/Algorithms/IEdgePredecessorRecorderAlgorithm.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { public interface IEdgePredecessorRecorderAlgorithm where TEdge : IEdge diff --git a/QuickGraph/Algorithms/ITreeBuilderAlgorithm.cs b/QuickGraph/Algorithms/ITreeBuilderAlgorithm.cs index 2e56de3..bf54ebe 100644 --- a/QuickGraph/Algorithms/ITreeBuilderAlgorithm.cs +++ b/QuickGraph/Algorithms/ITreeBuilderAlgorithm.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { public interface ITreeBuilderAlgorithm where TEdge : IEdge diff --git a/QuickGraph/Algorithms/IVertexColorizerAlgorithm.cs b/QuickGraph/Algorithms/IVertexColorizerAlgorithm.cs index 671552b..9b2da6d 100644 --- a/QuickGraph/Algorithms/IVertexColorizerAlgorithm.cs +++ b/QuickGraph/Algorithms/IVertexColorizerAlgorithm.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { public interface IVertexColorizerAlgorithm where TEdge : IEdge diff --git a/QuickGraph/Algorithms/IVertexPredecessorRecorderAlgorithm.cs b/QuickGraph/Algorithms/IVertexPredecessorRecorderAlgorithm.cs index f540db6..a8fe231 100644 --- a/QuickGraph/Algorithms/IVertexPredecessorRecorderAlgorithm.cs +++ b/QuickGraph/Algorithms/IVertexPredecessorRecorderAlgorithm.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { public interface IVertexPredecessorRecorderAlgorithm : ITreeBuilderAlgorithm diff --git a/QuickGraph/Algorithms/IVertexTimeStamperAlgorithm.cs b/QuickGraph/Algorithms/IVertexTimeStamperAlgorithm.cs index 7381b4d..a5fc7f7 100644 --- a/QuickGraph/Algorithms/IVertexTimeStamperAlgorithm.cs +++ b/QuickGraph/Algorithms/IVertexTimeStamperAlgorithm.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph.Algorithms +namespace QuickGraph.Algorithms { public interface IVertexTimeStamperAlgorithm where TEdge : IEdge diff --git a/QuickGraph/Algorithms/Observers/DisposableAction.cs b/QuickGraph/Algorithms/Observers/DisposableAction.cs index 56e8399..43f08b7 100644 --- a/QuickGraph/Algorithms/Observers/DisposableAction.cs +++ b/QuickGraph/Algorithms/Observers/DisposableAction.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms.Observers diff --git a/QuickGraph/Algorithms/RootedAlgorithmBase.cs b/QuickGraph/Algorithms/RootedAlgorithmBase.cs index c5db86d..169a385 100644 --- a/QuickGraph/Algorithms/RootedAlgorithmBase.cs +++ b/QuickGraph/Algorithms/RootedAlgorithmBase.cs @@ -1,7 +1,7 @@ -using System; -using QuickGraph.Algorithms.Services; -using System.Diagnostics.Contracts; +using QuickGraph.Algorithms.Services; +using System; using System.Collections.Generic; +using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms { diff --git a/QuickGraph/Algorithms/Search/BreadthFirstSearchAlgorithm.cs b/QuickGraph/Algorithms/Search/BreadthFirstSearchAlgorithm.cs index 6e4452a..16691d4 100644 --- a/QuickGraph/Algorithms/Search/BreadthFirstSearchAlgorithm.cs +++ b/QuickGraph/Algorithms/Search/BreadthFirstSearchAlgorithm.cs @@ -1,11 +1,9 @@ -using System; -using System.Collections.Generic; - +using QuickGraph.Algorithms.Services; using QuickGraph.Collections; -using QuickGraph.Algorithms.Observers; -using QuickGraph.Algorithms.Services; -using System.Diagnostics.Contracts; +using System; +using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms.Search { diff --git a/QuickGraph/Algorithms/Search/DepthFirstSearchAlgorithm.cs b/QuickGraph/Algorithms/Search/DepthFirstSearchAlgorithm.cs index 6b6a6c3..4db9502 100644 --- a/QuickGraph/Algorithms/Search/DepthFirstSearchAlgorithm.cs +++ b/QuickGraph/Algorithms/Search/DepthFirstSearchAlgorithm.cs @@ -1,6 +1,6 @@ -using System; +using QuickGraph.Algorithms.Services; +using System; using System.Collections.Generic; -using QuickGraph.Algorithms.Services; using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms.Search diff --git a/QuickGraph/Algorithms/Services/IAlgorithmComponent.cs b/QuickGraph/Algorithms/Services/IAlgorithmComponent.cs index 8cac175..f131b24 100644 --- a/QuickGraph/Algorithms/Services/IAlgorithmComponent.cs +++ b/QuickGraph/Algorithms/Services/IAlgorithmComponent.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace QuickGraph.Algorithms.Services +namespace QuickGraph.Algorithms.Services { public interface IAlgorithmComponent { diff --git a/QuickGraph/Algorithms/Services/IAlgorithmServices.cs b/QuickGraph/Algorithms/Services/IAlgorithmServices.cs index bdd269e..100e33c 100644 --- a/QuickGraph/Algorithms/Services/IAlgorithmServices.cs +++ b/QuickGraph/Algorithms/Services/IAlgorithmServices.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph.Algorithms.Services { diff --git a/QuickGraph/Algorithms/Services/ICancelManager.cs b/QuickGraph/Algorithms/Services/ICancelManager.cs index 528a668..77ed8af 100644 --- a/QuickGraph/Algorithms/Services/ICancelManager.cs +++ b/QuickGraph/Algorithms/Services/ICancelManager.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using System.Threading; namespace QuickGraph.Algorithms.Services diff --git a/QuickGraph/Collections/EdgeEdgeDictionary.cs b/QuickGraph/Collections/EdgeEdgeDictionary.cs index 61ab1af..975be34 100644 --- a/QuickGraph/Collections/EdgeEdgeDictionary.cs +++ b/QuickGraph/Collections/EdgeEdgeDictionary.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; #if !SILVERLIGHT using System.Runtime.Serialization; #endif diff --git a/QuickGraph/Collections/EdgeList.cs b/QuickGraph/Collections/EdgeList.cs index 6c4b0ea..c544907 100644 --- a/QuickGraph/Collections/EdgeList.cs +++ b/QuickGraph/Collections/EdgeList.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; namespace QuickGraph.Collections { diff --git a/QuickGraph/Collections/IQueue.cs b/QuickGraph/Collections/IQueue.cs index 308d981..89d5146 100644 --- a/QuickGraph/Collections/IQueue.cs +++ b/QuickGraph/Collections/IQueue.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace QuickGraph.Collections +namespace QuickGraph.Collections { public interface IQueue { diff --git a/QuickGraph/Collections/Queue.cs b/QuickGraph/Collections/Queue.cs index fbc7dd3..8f715d0 100644 --- a/QuickGraph/Collections/Queue.cs +++ b/QuickGraph/Collections/Queue.cs @@ -1,7 +1,6 @@ namespace QuickGraph.Collections { using System; - using System.Collections.Generic; #if !SILVERLIGHT [Serializable] diff --git a/QuickGraph/Collections/VertexEdgeDictionary.cs b/QuickGraph/Collections/VertexEdgeDictionary.cs index d8ecb20..0bc6196 100644 --- a/QuickGraph/Collections/VertexEdgeDictionary.cs +++ b/QuickGraph/Collections/VertexEdgeDictionary.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; #if !SILVERLIGHT using System.Runtime.Serialization; #endif diff --git a/QuickGraph/Collections/VertexList.cs b/QuickGraph/Collections/VertexList.cs index 33cacf4..01bf9c8 100644 --- a/QuickGraph/Collections/VertexList.cs +++ b/QuickGraph/Collections/VertexList.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Text; #if !SILVERLIGHT -using System.Runtime.Serialization; #endif namespace QuickGraph.Collections diff --git a/QuickGraph/Contracts/IEdgeContract.cs b/QuickGraph/Contracts/IEdgeContract.cs index 5d37cb7..5855ae5 100644 --- a/QuickGraph/Contracts/IEdgeContract.cs +++ b/QuickGraph/Contracts/IEdgeContract.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IEdgeSetContract.cs b/QuickGraph/Contracts/IEdgeSetContract.cs index 75d777e..815ceaf 100644 --- a/QuickGraph/Contracts/IEdgeSetContract.cs +++ b/QuickGraph/Contracts/IEdgeSetContract.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; +using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/Contracts/IGraphContract.cs b/QuickGraph/Contracts/IGraphContract.cs index 9be59a6..e3c49bf 100644 --- a/QuickGraph/Contracts/IGraphContract.cs +++ b/QuickGraph/Contracts/IGraphContract.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IImplicitGraphContract.cs b/QuickGraph/Contracts/IImplicitGraphContract.cs index 19b9a02..1cab077 100644 --- a/QuickGraph/Contracts/IImplicitGraphContract.cs +++ b/QuickGraph/Contracts/IImplicitGraphContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/Contracts/IImplicitUndirectedGraphContract.cs b/QuickGraph/Contracts/IImplicitUndirectedGraphContract.cs index a05cb2f..b24dbcf 100644 --- a/QuickGraph/Contracts/IImplicitUndirectedGraphContract.cs +++ b/QuickGraph/Contracts/IImplicitUndirectedGraphContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/Contracts/IImplicitVertexSetContract.cs b/QuickGraph/Contracts/IImplicitVertexSetContract.cs index 2a93405..2443889 100644 --- a/QuickGraph/Contracts/IImplicitVertexSetContract.cs +++ b/QuickGraph/Contracts/IImplicitVertexSetContract.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IIncidenceGraphContract.cs b/QuickGraph/Contracts/IIncidenceGraphContract.cs index ef30636..88a5912 100644 --- a/QuickGraph/Contracts/IIncidenceGraphContract.cs +++ b/QuickGraph/Contracts/IIncidenceGraphContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Contracts diff --git a/QuickGraph/Contracts/IMutableGraphContract.cs b/QuickGraph/Contracts/IMutableGraphContract.cs index 1187d4a..54f92b9 100644 --- a/QuickGraph/Contracts/IMutableGraphContract.cs +++ b/QuickGraph/Contracts/IMutableGraphContract.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Diagnostics.Contracts; namespace QuickGraph.Contracts diff --git a/QuickGraph/Contracts/IMutableIncidenceGraphContract.cs b/QuickGraph/Contracts/IMutableIncidenceGraphContract.cs index 43daf29..7578787 100644 --- a/QuickGraph/Contracts/IMutableIncidenceGraphContract.cs +++ b/QuickGraph/Contracts/IMutableIncidenceGraphContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/Contracts/IMutableUndirectedGraphContract.cs b/QuickGraph/Contracts/IMutableUndirectedGraphContract.cs index 06c4de3..e9e645a 100644 --- a/QuickGraph/Contracts/IMutableUndirectedGraphContract.cs +++ b/QuickGraph/Contracts/IMutableUndirectedGraphContract.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Diagnostics.Contracts; +using System.Linq; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IMutableVertexAndEdgeSetContract.cs b/QuickGraph/Contracts/IMutableVertexAndEdgeSetContract.cs index 2b52f75..b5199ac 100644 --- a/QuickGraph/Contracts/IMutableVertexAndEdgeSetContract.cs +++ b/QuickGraph/Contracts/IMutableVertexAndEdgeSetContract.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Diagnostics.Contracts; +using System.Linq; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IMutableVertexListGraphContract.cs b/QuickGraph/Contracts/IMutableVertexListGraphContract.cs index 56c8625..4135c29 100644 --- a/QuickGraph/Contracts/IMutableVertexListGraphContract.cs +++ b/QuickGraph/Contracts/IMutableVertexListGraphContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Contracts diff --git a/QuickGraph/Contracts/IMutableVertexSetContract.cs b/QuickGraph/Contracts/IMutableVertexSetContract.cs index 62ce52d..8e19184 100644 --- a/QuickGraph/Contracts/IMutableVertexSetContract.cs +++ b/QuickGraph/Contracts/IMutableVertexSetContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/Contracts/IUndirectedEdgeContract.cs b/QuickGraph/Contracts/IUndirectedEdgeContract.cs index 176a933..822ee03 100644 --- a/QuickGraph/Contracts/IUndirectedEdgeContract.cs +++ b/QuickGraph/Contracts/IUndirectedEdgeContract.cs @@ -1,6 +1,6 @@ using System; -using System.Diagnostics.Contracts; using System.Collections.Generic; +using System.Diagnostics.Contracts; namespace QuickGraph.Contracts { diff --git a/QuickGraph/Contracts/IUndirectedGraphContract.cs b/QuickGraph/Contracts/IUndirectedGraphContract.cs index 00d9425..f43dc5d 100644 --- a/QuickGraph/Contracts/IUndirectedGraphContract.cs +++ b/QuickGraph/Contracts/IUndirectedGraphContract.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Diagnostics.Contracts; namespace QuickGraph.Contracts diff --git a/QuickGraph/Contracts/IVertexSetContract.cs b/QuickGraph/Contracts/IVertexSetContract.cs index 92fe2a5..05c6eb0 100644 --- a/QuickGraph/Contracts/IVertexSetContract.cs +++ b/QuickGraph/Contracts/IVertexSetContract.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; using System.Linq; diff --git a/QuickGraph/EdgeEdgeEventArgs.cs b/QuickGraph/EdgeEdgeEventArgs.cs index e697bf5..01a52b1 100644 --- a/QuickGraph/EdgeEdgeEventArgs.cs +++ b/QuickGraph/EdgeEdgeEventArgs.cs @@ -1,7 +1,4 @@ -using System; -using System.Diagnostics.Contracts; - -namespace QuickGraph +namespace QuickGraph { /// /// The handler for events involving two edges diff --git a/QuickGraph/EdgeExtensions.cs b/QuickGraph/EdgeExtensions.cs index 71b1a1c..fd031a3 100644 --- a/QuickGraph/EdgeExtensions.cs +++ b/QuickGraph/EdgeExtensions.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics.Contracts; -using QuickGraph.Collections; using System.Linq; namespace QuickGraph diff --git a/QuickGraph/EdgePredicate.cs b/QuickGraph/EdgePredicate.cs index ee40aa2..0c85e33 100644 --- a/QuickGraph/EdgePredicate.cs +++ b/QuickGraph/EdgePredicate.cs @@ -1,5 +1,4 @@ -using System; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph { diff --git a/QuickGraph/GraphExtensions.cs b/QuickGraph/GraphExtensions.cs index dcd37ab..4dd0dc0 100644 --- a/QuickGraph/GraphExtensions.cs +++ b/QuickGraph/GraphExtensions.cs @@ -1,10 +1,5 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text; +using System.Collections.Generic; using System.Diagnostics.Contracts; -using QuickGraph.Collections; -using QuickGraph.Algorithms; using System.Linq; namespace QuickGraph diff --git a/QuickGraph/IEdgeListGraph.cs b/QuickGraph/IEdgeListGraph.cs index 8e0731b..fd6f91f 100644 --- a/QuickGraph/IEdgeListGraph.cs +++ b/QuickGraph/IEdgeListGraph.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IEdgeSet.cs b/QuickGraph/IEdgeSet.cs index a357987..b81068f 100644 --- a/QuickGraph/IEdgeSet.cs +++ b/QuickGraph/IEdgeSet.cs @@ -1,7 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; -using System.Text; -using QuickGraph.Contracts; using System.Diagnostics.Contracts; namespace QuickGraph diff --git a/QuickGraph/IGraph.cs b/QuickGraph/IGraph.cs index 83e6abb..5dc64d6 100644 --- a/QuickGraph/IGraph.cs +++ b/QuickGraph/IGraph.cs @@ -1,6 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IImplicitGraph.cs b/QuickGraph/IImplicitGraph.cs index fa4c7f1..87e7132 100644 --- a/QuickGraph/IImplicitGraph.cs +++ b/QuickGraph/IImplicitGraph.cs @@ -1,6 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; -using QuickGraph.Contracts; using System.Diagnostics.Contracts; namespace QuickGraph @@ -10,7 +9,7 @@ namespace QuickGraph /// /// The type of the vertex. /// The type of the edge. - [ContractClass(typeof(IImplicitGraphContract<,>))] + [ContractClass(typeof(IImplicitGraphContract<,>))] public interface IImplicitGraph : IGraph , IImplicitVertexSet diff --git a/QuickGraph/IImplicitUndirectedGraph.cs b/QuickGraph/IImplicitUndirectedGraph.cs index 9641ea9..a1dbd8c 100644 --- a/QuickGraph/IImplicitUndirectedGraph.cs +++ b/QuickGraph/IImplicitUndirectedGraph.cs @@ -1,7 +1,6 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IImplicitVertexSet.cs b/QuickGraph/IImplicitVertexSet.cs index 2b7a4f2..91c7ba9 100644 --- a/QuickGraph/IImplicitVertexSet.cs +++ b/QuickGraph/IImplicitVertexSet.cs @@ -1,6 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IIncidenceGraph.cs b/QuickGraph/IIncidenceGraph.cs index d63cccb..27773bc 100644 --- a/QuickGraph/IIncidenceGraph.cs +++ b/QuickGraph/IIncidenceGraph.cs @@ -1,6 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; -using QuickGraph.Contracts; using System.Diagnostics.Contracts; namespace QuickGraph diff --git a/QuickGraph/IMutableEdgeListGraph.cs b/QuickGraph/IMutableEdgeListGraph.cs index 52386a4..2112998 100644 --- a/QuickGraph/IMutableEdgeListGraph.cs +++ b/QuickGraph/IMutableEdgeListGraph.cs @@ -1,7 +1,6 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IMutableGraph.cs b/QuickGraph/IMutableGraph.cs index 97139f6..c048958 100644 --- a/QuickGraph/IMutableGraph.cs +++ b/QuickGraph/IMutableGraph.cs @@ -1,6 +1,6 @@ -using System; +using QuickGraph.Contracts; +using System; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IMutableIncidenceGraph.cs b/QuickGraph/IMutableIncidenceGraph.cs index 43893f3..bb5ebf2 100644 --- a/QuickGraph/IMutableIncidenceGraph.cs +++ b/QuickGraph/IMutableIncidenceGraph.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IMutableUndirectedGraph.cs b/QuickGraph/IMutableUndirectedGraph.cs index 859c5c5..b5c704d 100644 --- a/QuickGraph/IMutableUndirectedGraph.cs +++ b/QuickGraph/IMutableUndirectedGraph.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IMutableVertexAndEdgeListGraph.cs b/QuickGraph/IMutableVertexAndEdgeListGraph.cs index e407f2b..609850b 100644 --- a/QuickGraph/IMutableVertexAndEdgeListGraph.cs +++ b/QuickGraph/IMutableVertexAndEdgeListGraph.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using QuickGraph.Contracts; -using System.Diagnostics.Contracts; - -namespace QuickGraph +namespace QuickGraph { /// /// A mutable vertex and edge list graph diff --git a/QuickGraph/IMutableVertexAndEdgeSet.cs b/QuickGraph/IMutableVertexAndEdgeSet.cs index 5a66005..a224dff 100644 --- a/QuickGraph/IMutableVertexAndEdgeSet.cs +++ b/QuickGraph/IMutableVertexAndEdgeSet.cs @@ -1,8 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; -using System.Linq; -using System.Text; -using QuickGraph.Contracts; using System.Diagnostics.Contracts; namespace QuickGraph diff --git a/QuickGraph/IMutableVertexListGraph.cs b/QuickGraph/IMutableVertexListGraph.cs index 8a9e767..9332fa4 100644 --- a/QuickGraph/IMutableVertexListGraph.cs +++ b/QuickGraph/IMutableVertexListGraph.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { @@ -10,7 +8,7 @@ namespace QuickGraph /// /// /// - [ContractClass(typeof(IMutableVertexListGraphContract<,>))] + [ContractClass(typeof(IMutableVertexListGraphContract<,>))] public interface IMutableVertexListGraph : IMutableIncidenceGraph, IMutableVertexSet diff --git a/QuickGraph/IMutableVertexSet.cs b/QuickGraph/IMutableVertexSet.cs index ec0b2af..e1d42a6 100644 --- a/QuickGraph/IMutableVertexSet.cs +++ b/QuickGraph/IMutableVertexSet.cs @@ -1,7 +1,6 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IUndirectedEdge.cs b/QuickGraph/IUndirectedEdge.cs index b5c1796..29ed60c 100644 --- a/QuickGraph/IUndirectedEdge.cs +++ b/QuickGraph/IUndirectedEdge.cs @@ -1,6 +1,5 @@ -using System; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IUndirectedGraph.cs b/QuickGraph/IUndirectedGraph.cs index 80966c7..17ee5d5 100644 --- a/QuickGraph/IUndirectedGraph.cs +++ b/QuickGraph/IUndirectedGraph.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using QuickGraph.Contracts; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/IVertexAndEdgeListGraph.cs b/QuickGraph/IVertexAndEdgeListGraph.cs index f73bdee..0ca6fff 100644 --- a/QuickGraph/IVertexAndEdgeListGraph.cs +++ b/QuickGraph/IVertexAndEdgeListGraph.cs @@ -1,6 +1,4 @@ -using System; - -namespace QuickGraph +namespace QuickGraph { /// /// A directed graph where vertices and edges can be enumerated efficiently. diff --git a/QuickGraph/IVertexListGraph.cs b/QuickGraph/IVertexListGraph.cs index 4e6cc92..1ec361a 100644 --- a/QuickGraph/IVertexListGraph.cs +++ b/QuickGraph/IVertexListGraph.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; - -namespace QuickGraph +namespace QuickGraph { /// /// A directed graph datastructure where out-edges can be traversed, diff --git a/QuickGraph/IVertexSet.cs b/QuickGraph/IVertexSet.cs index da3290e..cc8c2e4 100644 --- a/QuickGraph/IVertexSet.cs +++ b/QuickGraph/IVertexSet.cs @@ -1,8 +1,6 @@ -using System; +using QuickGraph.Contracts; using System.Collections.Generic; -using System.Text; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; namespace QuickGraph { diff --git a/QuickGraph/Properties/AssemblyInfo.cs b/QuickGraph/Properties/AssemblyInfo.cs index ef049ed..0591c3b 100644 --- a/QuickGraph/Properties/AssemblyInfo.cs +++ b/QuickGraph/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/QuickGraph/UndirectedGraph.cs b/QuickGraph/UndirectedGraph.cs index ad7852e..40ba857 100644 --- a/QuickGraph/UndirectedGraph.cs +++ b/QuickGraph/UndirectedGraph.cs @@ -1,9 +1,8 @@ -using System; +using QuickGraph.Collections; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.Contracts; -using QuickGraph.Contracts; -using QuickGraph.Collections; namespace QuickGraph { diff --git a/QuickGraph/VertexPredicate.cs b/QuickGraph/VertexPredicate.cs index db825e9..f7ab328 100644 --- a/QuickGraph/VertexPredicate.cs +++ b/QuickGraph/VertexPredicate.cs @@ -1,5 +1,4 @@ -using System; -using System.Diagnostics.Contracts; +using System.Diagnostics.Contracts; namespace QuickGraph {