use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class Masstest method predQuery.
public void predQuery() {
String st = "diagnose_declaration(1,[(sp, 'prefix', [('arg1', '+', 'list', 'Liste1'), ('arg2', '+', 'list', 'Liste2')])], DecMap, ErrorList)";
Query stQuery = new Query(st);
String errString = stQuery.oneSolution().get("ErrorList").toString();
System.out.println("errString=" + errString);
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class SyntaxError method main.
public static void main(String[] argv) {
Query q = new Query("syntax)error");
System.err.println(q.hasSolution() ? "yes" : "no");
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testHasMoreElements1.
@SuppressWarnings("unchecked")
public void testHasMoreElements1() {
StringBuffer sb = new StringBuffer();
Query q = new Query("atom_chars(prolog, Cs), member(C, Cs)");
Map<String, Term> soln;
q.open();
while (q.hasMoreElements()) {
soln = (Map<String, Term>) q.nextElement();
sb.append(((Atom) soln.get("C")).name());
}
q.close();
assertEquals("Query#hasMoreElements() + Query#nextElement() work as intended", "prolog", sb.toString());
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testGetSolution2.
public void testGetSolution2() {
// this query has no solutions
Query q = new Query("fail");
// this opens the query
q.open();
// this finds no solution, and closes the query
q.getSolution();
try {
// this call is invalid, as the query is closed
q.getSolution();
// shouldn't get to here
fail("jpl.Query#getSolution() shoulda thrown JPLException");
} catch (JPLException e) {
// in detail?
if (e.getMessage().endsWith("Query is not open")) {
// ...which
// should throw
// a
// JPLException
// like this
// OK: an appropriate exception was thrown
} else {
fail("jpl.Query#getSolution() threw incorrect JPLException: " + e);
}
} catch (Exception e) {
fail("jpl.Query#getSolution() threw wrong class of exception: " + e);
}
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testVariableBinding1.
public void testVariableBinding1() {
Term lhs = new Compound("p", new Term[] { new Variable("X"), new Variable("Y") });
Term rhs = new Compound("p", new Term[] { new Atom("a"), new Atom("b") });
Term goal = new Compound("=", new Term[] { lhs, rhs });
Map<String, Term> soln = new Query(goal).oneSolution();
assertTrue("two Variables with different names can bind to distinct atoms", soln != null && (soln.get("X")).name().equals("a") && (soln.get("Y")).name().equals("b"));
}
Aggregations