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); }
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); } }