package test; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Test; import expr.operation.Add; import expr.operation.Div; import expr.relational.GT; import expr.relational.LEq; import expr.relational.LT; public class ExprTest1 { QParse parser = new QParse(); @Test public void testQParse() throws ParseError, IOException { // String test = "C:\\Users\\nisha\\Documents\\poly-ql\\Nisha\\QLJava\\src\\test1.ql"; // Form file = parseF(test); } @Test public void testAdd() throws ParseError, IOException { assertEquals(Add.class, parser.parseE("a + b").getClass()); assertEquals(Add.class, parser.parseE("a + b + c").getClass()); assertEquals(Add.class, parser.parseE("(a + b + c)").getClass()); assertEquals(Add.class, parser.parseE("a + (b + c)").getClass()); assertEquals(Add.class, parser.parseE("(a + b) + c").getClass()); assertEquals(Add.class, parser.parseE("a + b * c").getClass()); assertEquals(Add.class, parser.parseE("a * b + c").getClass()); } @Test public void testDiv() throws ParseError, IOException { assertEquals(Div.class, parser.parseE("a / b").getClass()); assertEquals(Div.class, parser.parseE("a * b / c").getClass()); assertEquals(Div.class, parser.parseE("a / (b * c)").getClass()); assertEquals(Div.class, parser.parseE("(a * b) / c").getClass()); assertEquals(Div.class, parser.parseE("(a / b)").getClass()); assertEquals(Div.class, parser.parseE("(a + b) / c").getClass()); assertEquals(Div.class, parser.parseE("a / (b + c)").getClass()); } @Test public void testRels() throws ParseError, IOException { assertEquals(LT.class, parser.parseE("a < b").getClass()); assertEquals(LT.class, parser.parseE("a < b + c").getClass()); assertEquals(LT.class, parser.parseE("a < (b * c)").getClass()); assertEquals(LT.class, parser.parseE("(a * b) < c").getClass()); assertEquals(LEq.class, parser.parseE("(a <= b)").getClass()); assertEquals(GT.class, parser.parseE("a + b > c").getClass()); } }