protected void testDefiniteClauseKBKingsQueryEvilXReturnsJohnSucceeds(
InferenceProcedure infp)
{
FOLKnowledgeBase kkb = FOLKnowledgeBaseFactory
.createKingsKnowledgeBase(infp);
List<Term> terms = new List<Term>();
terms.Add(new Variable("x"));
Predicate query = new Predicate("Evil", terms);
InferenceResult answer = kkb.ask(query);
Assert.IsTrue(null != answer);
Assert.IsFalse(answer.isPossiblyFalse());
Assert.IsTrue(answer.isTrue());
Assert.IsFalse(answer.isUnknownDueToTimeout());
Assert.IsFalse(answer.isPartialResultDueToTimeout());
Assert.IsTrue(1 == answer.getProofs().Count);
Assert.IsTrue(1 == answer.getProofs()[0].getAnswerBindings()
.Count);
Assert.AreEqual(new Constant("John"), answer.getProofs()[0]
.getAnswerBindings()[new Variable("x")]);
}