コード例 #1
0
        public void TestParsingRules()
        {
            string            rules  = "на случай дождя : если 'холодно - да' и 'влажность-высокая' то 'будет дождь - да', 'взять зонт - да'";
            IParser           parser = new PrModelParser(new LogicalExpressionHelper());
            ILogicalStatement st     = parser.ParseRule(rules);

            Assert.IsTrue(st is ProductionRule); //правило построено правильно (см. предыдущий тест)
            rules = rules + ";" + rules + ";" + rules + ";" + rules + ";";
            IEnumerable <ILogicalStatement> statements = parser.ParseRules(rules);

            //правила построены правильно (т.к. отдельные правила строятся правильно)
            //проверим количество правил
            Assert.IsTrue(statements.Count() == 4);
        }
コード例 #2
0
        public void TestReteCreation()
        {
            //это прсото тест на создание
            //корректность создания и работы проверяется в тесте решателя

            IParser                    parser  = new PrModelParser(new LogicalExpressionHelper());
            IStorageService            service = new PrMInMemoryStService();
            ProductionModelReteNetwork rete    = new ProductionModelReteNetwork(service);

            foreach (var statement in parser.ParseRules(Properties.Resources.sampleBase))
            {
                rete.AddStatement(statement);
            }
        }