コード例 #1
0
        private static void WriteToDot(IDependencyGraph subgraph, string dotFileName)
        {
            using (var streamWriter = new StreamWriter(dotFileName))
            {
                streamWriter.WriteLine("digraph graphname {");
                var dependencyNodes = subgraph.DependencyNodes.ToList();
                Dictionary <DependencyNode, int> map = dependencyNodes.Select((n, i) => Tuple.Create(n, i)).ToDictionary(t => t.Item1, t => t.Item2);
                for (int index = 0; index < dependencyNodes.Count; index++)
                {
                    var    dependencyNode = dependencyNodes[index];
                    string shape          = dependencyNode.TerminalOutputValues.Any() ? "doubleoctagon" : "ellipse";
                    streamWriter.WriteLine(string.Format("{0} [label=\"{1}\", shape=\"{2}\"];", index,
                                                         string.Join(",", dependencyNode.OutputValues.Select(v => v.ValueName).Distinct()), shape));
                }

                for (int index = 0; index < dependencyNodes.Count; index++)
                {
                    var dependencyNode = dependencyNodes[index];
                    foreach (var inputNode in dependencyNode.InputNodes)
                    {
                        var labels    = inputNode.OutputValues.Intersect(dependencyNode.InputValues).Select(v => v.ValueName).Distinct();
                        var edgelabel = string.Join(",", labels);
                        streamWriter.WriteLine(string.Format("{0} -> {1} [label=\"{2}\"];", map[inputNode], index, edgelabel));
                    }
                }
                streamWriter.WriteLine("}");
            }
        }
コード例 #2
0
 public DeployComponent(IDependencyGraph<BranchInfo> branchGraph, string backupBranch, string activeBranch, IEnumerable<DatabaseInfo> databasesInfos) :
     base(null, "Done!")
 {
     var branchesByName = branchGraph.GetPath().ToDictionary(x => x.Name);
     mBranchGraph = branchGraph;
     mBackupBranch = branchesByName[backupBranch];
     mActiveBranch = branchesByName[activeBranch];
     mDatabasesInfos = databasesInfos.ToArray();
 }
コード例 #3
0
        internal DirectReferencesModuleFilter(
            IDependencyGraph dependencyGraph,
            IEqualityComparer <ModuleReference> moduleComparer)
        {
            ArgumentChecker.NotNull(dependencyGraph, () => dependencyGraph);
            ArgumentChecker.NotNull(moduleComparer, () => moduleComparer);

            _dependencyGraph = dependencyGraph;
            _moduleComparer  = moduleComparer;
        }
コード例 #4
0
        internal DirectReferencesModuleFilter(
            IDependencyGraph dependencyGraph,
            IEqualityComparer<ModuleReference> moduleComparer)
        {
            ArgumentChecker.NotNull(dependencyGraph, () => dependencyGraph);
            ArgumentChecker.NotNull(moduleComparer, () => moduleComparer);

            _dependencyGraph = dependencyGraph;
            _moduleComparer = moduleComparer;
        }
コード例 #5
0
 private static void CheckCompleteGraph(IDependencyGraph wholeGraph)
 {
     foreach (DependencyNode node in wholeGraph.DependencyNodes)
     {
         if (!node.TerminalOutputValues.Any())
         {
             Assert.True(wholeGraph.DependencyNodes.Any(n => n.InputNodes.Contains(node)));
         }
     }
 }
コード例 #6
0
        public DeployComponent(IDependencyGraph <BranchInfo> branchGraph, string backupBranch, string activeBranch, IEnumerable <DatabaseInfo> databasesInfos) :
            base(null, "Done!")
        {
            var branchesByName = branchGraph.GetPath().ToDictionary(x => x.Name);

            mBranchGraph    = branchGraph;
            mBackupBranch   = branchesByName[backupBranch];
            mActiveBranch   = branchesByName[activeBranch];
            mDatabasesInfos = databasesInfos.ToArray();
        }
コード例 #7
0
        private static void CheckSaneGraph(string viewCalculationConfiguration, IDependencyGraph subgraph)
        {
            Assert.NotNull(subgraph);

            Assert.Equal(viewCalculationConfiguration, subgraph.CalculationConfigurationName);
            Assert.NotEmpty(subgraph.DependencyNodes);

            foreach (var node in subgraph.DependencyNodes)
            {
                Assert.NotEmpty(node.OutputValues);

                Assert.NotNull(node.Function);
                Assert.NotNull(node.Function.UniqueId);
                Assert.NotNull(node.Function.Parameters);
                Assert.NotNull(node.Function.Function);
                Assert.NotNull(node.Function.Function.TargetType);
                Assert.NotNull(node.Function.Function.FunctionDefinition);
                Assert.NotEmpty(node.Function.Function.FunctionDefinition.UniqueId);
                Assert.NotEmpty(node.Function.Function.FunctionDefinition.ShortName);
            }

            WriteToDot(subgraph, string.Format("{0}.{1}.dot", viewCalculationConfiguration, TestUtils.ExecutingTestName));
        }
コード例 #8
0
 public void SetUp()
 {
     _dependencyGraph = new DependencyGraph <string>();
 }
コード例 #9
0
 public void Dispose()
 {
     _dependencyGraph = null;
 }
コード例 #10
0
 public IRegistrationProcessingSyntax CreateToProcess(IDependencyGraph graph)
 {
     return new RegistrationProcessingSyntax(graph);
 }
コード例 #11
0
 public void Dispose()
 {
     _dependencyGraph = null;
 }
コード例 #12
0
        private static void WriteToDot(IDependencyGraph subgraph, string dotFileName)
        {
            using (var streamWriter = new StreamWriter(dotFileName))
            {
                streamWriter.WriteLine("digraph graphname {");
                var dependencyNodes = subgraph.DependencyNodes.ToList();
                Dictionary<DependencyNode, int> map = dependencyNodes.Select((n, i) => Tuple.Create(n, i)).ToDictionary(t => t.Item1, t => t.Item2);
                for (int index = 0; index < dependencyNodes.Count; index++)
                {
                    var dependencyNode = dependencyNodes[index];
                    string shape = dependencyNode.TerminalOutputValues.Any() ? "doubleoctagon" : "ellipse";
                    streamWriter.WriteLine(string.Format("{0} [label=\"{1}\", shape=\"{2}\"];", index,
                        string.Join(",", dependencyNode.OutputValues.Select(v => v.ValueName).Distinct()), shape));
                }

                for (int index = 0; index < dependencyNodes.Count; index++)
                {
                    var dependencyNode = dependencyNodes[index];
                    foreach (var inputNode in dependencyNode.InputNodes)
                    {
                        var labels = inputNode.OutputValues.Intersect(dependencyNode.InputValues).Select(v => v.ValueName).Distinct();
                        var edgelabel = string.Join(",", labels);
                        streamWriter.WriteLine(string.Format("{0} -> {1} [label=\"{2}\"];", map[inputNode], index, edgelabel));
                    }
                }
                streamWriter.WriteLine("}");
            }
        }
コード例 #13
0
        private static void CheckSaneGraph(string viewCalculationConfiguration, IDependencyGraph subgraph)
        {
            Assert.NotNull(subgraph);

            Assert.Equal(viewCalculationConfiguration, subgraph.CalculationConfigurationName);
            Assert.NotEmpty(subgraph.DependencyNodes);

            foreach (var node in subgraph.DependencyNodes)
            {
                Assert.NotEmpty(node.OutputValues);

                Assert.NotNull(node.Function);
                Assert.NotNull(node.Function.UniqueId);
                Assert.NotNull(node.Function.Parameters);
                Assert.NotNull(node.Function.Function);
                Assert.NotNull(node.Function.Function.TargetType);
                Assert.NotNull(node.Function.Function.FunctionDefinition);
                Assert.NotEmpty(node.Function.Function.FunctionDefinition.UniqueId);
                Assert.NotEmpty(node.Function.Function.FunctionDefinition.ShortName);
            }

            WriteToDot(subgraph, string.Format("{0}.{1}.dot", viewCalculationConfiguration, TestUtils.ExecutingTestName));
        }
コード例 #14
0
 private static void CheckCompleteGraph(IDependencyGraph wholeGraph)
 {
     foreach (DependencyNode node in wholeGraph.DependencyNodes)
     {
         if (! node.TerminalOutputValues.Any())
         {
             Assert.True(wholeGraph.DependencyNodes.Any(n => n.InputNodes.Contains(node)));
         }
     }
 }
コード例 #15
0
 public RegistrationProcessingSyntax(IDependencyGraph graph)
 {
     this.graph = graph;
 }