package alice.tuprolog; import static org.junit.Assert.assertTrue; import org.junit.Test; public class StateRuleSelectionTestCase { @Test public void unknownPredicateInQuery() throws MalformedGoalException { Prolog engine = new Prolog(); TestWarningListener warningListener = new TestWarningListener(); engine.addWarningListener(warningListener); String query = "p(X)."; engine.solve(query); assertTrue(warningListener.warning.indexOf("p/1") > 0); assertTrue(warningListener.warning.indexOf("is unknown") > 0); } @Test public void unknownPredicateInTheory() throws InvalidTheoryException, MalformedGoalException { Prolog engine = new Prolog(); TestWarningListener warningListener = new TestWarningListener(); engine.addWarningListener(warningListener); String theory = "p(X) :- a, b. \nb."; engine.setTheory(new Theory(theory)); String query = "p(X)."; engine.solve(query); assertTrue(warningListener.warning.indexOf("a/0") > 0); assertTrue(warningListener.warning.indexOf("is unknown") > 0); } }