Exemplo n.º 1
0
 public void Save(string path, Encoding encoding, DotKind kind)
 {
     using (var stream = File.Create(path))
     {
         Save(stream, encoding, kind);
     }
 }
Exemplo n.º 2
0
 public void Save(Stream stream, Encoding encoding, DotKind kind)
 {
     using (var writer = new StreamWriter(stream, encoding))
     {
         Save(writer, kind);
     }
 }
Exemplo n.º 3
0
        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
        }
Exemplo n.º 4
0
        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("}");
            }
        }
Exemplo n.º 5
0
 public void Save(string path, DotKind kind)
 {
     Save(path, Encoding.ASCII, kind);
 }