AIMA.Test.Core.Unit.Logic.FOL.KB.FOLKnowledgeBaseTest.testAddComplexRule C# (CSharp) Method

testAddComplexRule() private method

private testAddComplexRule ( ) : void
return void
        public void testAddComplexRule()
        {
            weaponsKB
                    .tell("( (((American(x) AND Weapon(y)) AND Sells(x,y,z)) AND Hostile(z)) => Criminal(x))");
            Assert.AreEqual(1, weaponsKB.getNumberRules());
            weaponsKB.tell("American(West)");
            Assert.AreEqual(1, weaponsKB.getNumberRules());

            List<Term> terms = new List<Term>();
            terms.Add(new Variable("v0"));

            Clause dcRule = weaponsKB.getAllDefiniteClauseImplications()[0];
            Assert.IsNotNull(dcRule);
            Assert.AreEqual(true, dcRule.isImplicationDefiniteClause());
            Assert.AreEqual(new Literal(new Predicate("Criminal", terms)),
                    dcRule.getPositiveLiterals()[0]);
        }