Search in sources :

Example 26 with Atom

use of org.jpl7.Atom in project packages-jpl by SWI-Prolog.

the class TestJUnit method testAtomToString3.

public void testAtomToString3() {
    String name = "3";
    String toString = "'3'";
    Atom a = new Atom(name);
    assertEquals("an Atom's .toString() value is quoted iff appropriate", a.toString(), toString);
}
Also used : Atom(org.jpl7.Atom)

Example 27 with Atom

use of org.jpl7.Atom in project packages-jpl by SWI-Prolog.

the class TestJUnit method testVariableBinding3.

public void testVariableBinding3() {
    Variable X = new Variable("X");
    Term lhs = new Compound("p", new Term[] { X, X });
    Term rhs = new Compound("p", new Term[] { new Atom("a"), new Atom("b") });
    Term goal = new Compound("=", new Term[] { lhs, rhs });
    assertFalse("two references to the same (named) Variable cannot unify with differing atoms", new Query(goal).hasSolution());
}
Also used : Variable(org.jpl7.Variable) Query(org.jpl7.Query) Compound(org.jpl7.Compound) Term(org.jpl7.Term) Atom(org.jpl7.Atom)

Example 28 with Atom

use of org.jpl7.Atom in project packages-jpl by SWI-Prolog.

the class TestJUnit method testArrayToList1.

public void testArrayToList1() {
    Term l2 = Util.termArrayToList(new Term[] { new Atom("a"), new Atom("b"), new Atom("c"), new Atom("d"), new Atom("e") });
    Query q9 = new Query(new Compound("append", new Term[] { new Variable("Xs"), new Variable("Ys"), l2 }));
    assertTrue("append(Xs,Ys,[a,b,c,d,e]) has 6 solutions", q9.allSolutions().length == 6);
}
Also used : Variable(org.jpl7.Variable) Query(org.jpl7.Query) Compound(org.jpl7.Compound) Term(org.jpl7.Term) Atom(org.jpl7.Atom)

Example 29 with Atom

use of org.jpl7.Atom in project packages-jpl by SWI-Prolog.

the class TestJUnit method testRef7.

public void testRef7() {
    Term badJRef = new Compound("@", new Term[] { new Atom("foobar") });
    try {
        // should throw exception
        badJRef.jrefToObject();
        // shouldn't
        fail("@(foobar) .jrefToObject() shoulda thrown JPLException");
    // get
    // to
    // here
    } catch (JPLException e) {
        // expected exception class
        if (e.getMessage().endsWith("term is not a JRef")) {
        // OK: an appropriate exception was thrown
        } else {
            fail("@(foobar) .jrefToObject() threw wrong JPLException: " + e);
        }
    } catch (Exception e) {
        fail("@(foobar) .jrefToObject() threw wrong exception class: " + e);
    }
}
Also used : JPLException(org.jpl7.JPLException) Compound(org.jpl7.Compound) Term(org.jpl7.Term) Atom(org.jpl7.Atom) PrologException(org.jpl7.PrologException) JPLException(org.jpl7.JPLException)

Example 30 with Atom

use of org.jpl7.Atom in project packages-jpl by SWI-Prolog.

the class TestJUnit method testRef6.

public void testRef6() {
    Term nullJRef = new Compound("@", new Term[] { new Atom("null") });
    Object nullObject = nullJRef.jrefToObject();
    assertNull("@(null) .jrefToObject() yields null", nullObject);
}
Also used : Compound(org.jpl7.Compound) Term(org.jpl7.Term) Atom(org.jpl7.Atom)

Aggregations

Atom (org.jpl7.Atom)32 Term (org.jpl7.Term)23 Query (org.jpl7.Query)19 Compound (org.jpl7.Compound)13 Variable (org.jpl7.Variable)12 Map (java.util.Map)2 PrologException (org.jpl7.PrologException)2 BigInteger (java.math.BigInteger)1 URL (java.net.URL)1 TestSuite (junit.framework.TestSuite)1 JPLException (org.jpl7.JPLException)1 DoubleHolder (org.jpl7.fli.DoubleHolder)1 Int64Holder (org.jpl7.fli.Int64Holder)1 IntHolder (org.jpl7.fli.IntHolder)1 ObjectHolder (org.jpl7.fli.ObjectHolder)1 StringHolder (org.jpl7.fli.StringHolder)1 org.jpl7.fli.term_t (org.jpl7.fli.term_t)1