use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testDontTellMeMode2.
public void testDontTellMeMode2() {
final Query q = new Query("setof(_M,current_module(_M),_Ms),length(_Ms,N)");
JPL.setDTMMode(false);
assertTrue("not in dont-tell-me mode, setof(_M,current_module(_M),_Ms),length(_Ms,N) returns binding for three variables", q.oneSolution().keySet().size() == 3);
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testOpenGetClose2.
public void testOpenGetClose2() {
// we're not going to open this...
Query q = new Query("dummy");
try {
// should throw exception (query not open)
q.getSolution();
// shouldn't get
fail("getSolution() succeeds on unopened Query");
// to here
} catch (JPLException e) {
// expected exception class
if (e.getMessage().endsWith("Query is not open")) {
// OK: an appropriate exception was thrown
} else {
fail("jpl.Query#getSolution() threw wrong JPLException: " + e);
}
} catch (Exception e) {
fail("jpl.Query#getSolution() threw wrong exception class: " + e);
}
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testVariableBinding5.
public void testVariableBinding5() {
Variable Anon = new Variable("_");
Term lhs = new Compound("p", new Term[] { Anon, Anon });
Term rhs = new Compound("p", new Term[] { new Atom("a"), new Atom("b") });
Term goal = new Compound("=", new Term[] { lhs, rhs });
assertTrue("two references to an anonymous Variable can unify with differing atoms", new Query(goal).hasSolution());
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testVariableBinding4.
public void testVariableBinding4() {
Term lhs = new Compound("p", new Term[] { new Variable("_"), new Variable("_") });
Term rhs = new Compound("p", new Term[] { new Atom("a"), new Atom("b") });
Term goal = new Compound("=", new Term[] { lhs, rhs });
assertTrue("two distinct anonymous Variables can unify with distinct atoms", new Query(goal).hasSolution());
}
use of org.molgenis.emx2.Query in project packages-jpl by SWI-Prolog.
the class TestJUnit method testLength1.
public void testLength1() {
Query q5 = new Query(new Compound("length", new Term[] { new Variable("Zs"), new org.jpl7.Integer(2) }));
Term zs = q5.oneSolution().get("Zs");
assertTrue("length(Zs,2) binds Zs to a list of two distinct variables " + zs.toString(), zs.isListPair() && zs.arg(1).isVariable() && zs.arg(2).isListPair() && zs.arg(2).arg(1).isVariable() && zs.arg(2).arg(2).isListNil() && !zs.arg(1).name().equals(zs.arg(2).arg(1).name()));
}
Aggregations