package alice.tuprolog;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Test;
public class BuiltInTestCase {
@Test public void convertTermToGoal() throws InvalidTermException {
Term t = new Var("T");
Struct result = new Struct("call", t);
assertEquals(result, BuiltIn.convertTermToGoal(t));
assertEquals(result, BuiltIn.convertTermToGoal(new Struct("call", t)));
t = new Int(2);
assertNull(BuiltIn.convertTermToGoal(t));
t = new Struct("p", new Struct("a"), new Var("B"), new Struct("c"));
result = (Struct) t;
assertEquals(result, BuiltIn.convertTermToGoal(t));
Var linked = new Var("X");
linked.setLink(new Struct("!"));
Term[] arguments = new Term[] { linked, new Var("Y") };
Term[] results = new Term[] { new Struct("!"), new Struct("call", new Var("Y")) };
assertEquals(new Struct(";", results), BuiltIn.convertTermToGoal(new Struct(";", arguments)));
assertEquals(new Struct(",", results), BuiltIn.convertTermToGoal(new Struct(",", arguments)));
assertEquals(new Struct("->", results), BuiltIn.convertTermToGoal(new Struct("->", arguments)));
}
}