package alice.tuprolog;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import org.junit.Before;
import org.junit.Test;
public class BitwiseAndTest {
Prolog engine;
@Before
public void setUp() {
engine = new Prolog();
}
@Test public void test0() throws PrologException {
SolveInfo solution = engine.solve("X is '/\\'(10, 12).");
assertEquals(Term.createTerm("8"), solution.getTerm("X"));
}
@Test(expected=MalformedGoalException.class)
public void test1() throws PrologException {
SolveInfo solution = engine.solve("X is /\\(10, 12).");
assertEquals(Term.createTerm("8"), solution.getTerm("X"));
}
@Test public void test2() throws PrologException {
SolveInfo solution = engine.solve("X is '/\\'(17 * 256 + 125, 255).");
assertEquals(Term.createTerm("125"), solution.getTerm("X"));
}
@Test(expected=MalformedGoalException.class)
public void test3() throws PrologException {
SolveInfo solution = engine.solve("X is /\\(-10, 12).");
assertNotNull(solution.getTerm("X"));
}
@Test public void test4() throws PrologException {
SolveInfo solution = engine.solve("X is '/\\'(77, N).");
assertFalse(solution.isSuccess());
// TODO Should throw instantiation_error
}
@Test public void test5() throws PrologException {
SolveInfo solution = engine.solve("X is '/\\'(foo, 2).");
assertFalse(solution.isSuccess());
// TODO Should throw type_error(integer, foo)
}
}