public RulesGraph GenerateRules(List <CustomSocket> sockets)
        {
            var rulesGraph = new RulesGraph(GetSocketDomainsOrdered(sockets));

            foreach (var socket in sockets)
            {
                rulesGraph.AddSocketRules(socket);
            }

            return(rulesGraph.Compress());
        }
Example #2
0
        public void NeighborsTest()
        {
            var rules = new[]
                {
                    new Rule { One = "A", Two = "B" },
                    new Rule { One = "A", Two = "C" },
                };
            var rulesGraph = new RulesGraph(rules);

            Assert.IsTrue(new ValidNeighbors(rulesGraph, new LinkedList<string>(new[] { "A", "C" }).First).Result);
            Assert.IsTrue(new ValidNeighbors(rulesGraph, new LinkedList<string>(new[] { "D", "A" }).First).Result);

            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList<string>(new[] { "C", "A" }).First).Result);
            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList<string>(new[] { "A" }).First).Result);
            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList<string>(new[] { "A", "D" }).First).Result);
        }
Example #3
0
        public void BuildScriptTest()
        {
            var sources = new LinkedList<string>(new[] { "A", "C", "C", "D", string.Empty, "B", "A", "E", "C" });

            var rules = new[]
                {
                    new Rule { One = "A", Two = "B" },
                    new Rule { One = "A", Two = "C" },
                };

            var rulesGraph = new RulesGraph(rules);

            LinkedListNode<string> cursor = sources.Last;

            while (cursor.Previous != null)
            {
                var validNeighbors = new ValidNeighbors(rulesGraph, cursor.Previous);

                cursor = cursor.Previous;
            }
        }
Example #4
0
        public void NeighborsTest()
        {
            var rules = new[]
            {
                new Rule {
                    One = "A", Two = "B"
                },
                new Rule {
                    One = "A", Two = "C"
                },
            };
            var rulesGraph = new RulesGraph(rules);



            Assert.IsTrue(new ValidNeighbors(rulesGraph, new LinkedList <string>(new[] { "A", "C" }).First).Result);
            Assert.IsTrue(new ValidNeighbors(rulesGraph, new LinkedList <string>(new[] { "D", "A" }).First).Result);

            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList <string>(new[] { "C", "A" }).First).Result);
            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList <string>(new[] { "A" }).First).Result);
            Assert.IsFalse(new ValidNeighbors(rulesGraph, new LinkedList <string>(new[] { "A", "D" }).First).Result);
        }
Example #5
0
 public ProductionProcessor(RulesGraph graph, ProcessorOptions options)
     : base(options)
 {
     _graph = graph;
 }