public void Save(string path, Encoding encoding, DotKind kind) { using (var stream = File.Create(path)) { Save(stream, encoding, kind); } }
public void Save(Stream stream, Encoding encoding, DotKind kind) { using (var writer = new StreamWriter(stream, encoding)) { Save(writer, kind); } }
public void Save_Graph2(DotKind kind) { var target = new Graph <int>(); target.Add(1); target.Add(2); target.Add(3); target.SetAntecedent(1, 2); target.SetAntecedent(1, 3); var path = Path.Combine(TestContext.CurrentContext.TestDirectory, TestContext.CurrentContext.Test.Name + ".dot"); TestContext.WriteLine("Path: " + path); // Act target.Save(path, kind); // Assert }
public void Save(TextWriter textWriter, DotKind kind) { using (var writer = new IndentedTextWriter(textWriter)) { var ids = new Dictionary <Node <T>, string>(); writer.WriteLine("digraph graphname {"); writer.Indent++; writer.WriteLine("node [shape=doublecircle]; Start;"); writer.Write("node [shape=circle];"); foreach (var node in Nodes) { ids.Add(node, node.Value.ToString()); writer.Write(" {0}", ids[node]); } writer.WriteLine(";"); if (kind == DotKind.Dependency) { var startNodes = Nodes.Where(item => !item.Antecedents.Any()); foreach (var item in startNodes) { writer.WriteLine("End -> {0};", ids[item]); } var endNodes = Nodes.Where(item => !item.Descendants.Any()); foreach (var item in endNodes) { writer.WriteLine("{0} -> Start;", ids[item]); } } else { var startNodes = Nodes.Where(item => !item.Antecedents.Any()); foreach (var item in startNodes) { writer.WriteLine("{0} -> End;", ids[item]); } var endNodes = Nodes.Where(item => !item.Descendants.Any()); foreach (var item in endNodes) { writer.WriteLine("Start -> {0};", ids[item]); } } foreach (var node in Nodes) { var enumerable = kind == DotKind.Dependency ? node.Descendants : node.Antecedents; var items = new HashSet <Node <T> >(enumerable); foreach (var item in items) { writer.WriteLine("{0} -> {1};", ids[node], ids[item]); } } writer.Indent--; writer.WriteLine("}"); } }
public void Save(string path, DotKind kind) { Save(path, Encoding.ASCII, kind); }