package ql.tests.ast; import org.junit.Test; import ql.ast.expression.*; import ql.tests.TestHelper; import ql.util.ParserHelper; import static org.junit.Assert.assertNotNull; /** * Created by bore on 19/02/15. */ public class RelationalExpr { @Test public void gtExpr() { Gt e = TestHelper.as(ParserHelper.ParseExpression("x>y"), Gt.class); assertNotNull(e); } @Test public void gtExprThreeArgs() { Gt e = TestHelper.as(ParserHelper.ParseExpression("x>y>z"), Gt.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Gt.class); } @Test public void gtExprNestedLeft() { Gt e = TestHelper.as(ParserHelper.ParseExpression("(x>y)>z"), Gt.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Gt.class); } @Test public void gtExprNestedRight() { Gt e = TestHelper.as(ParserHelper.ParseExpression("x>(y>z)"), Gt.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), Gt.class); } @Test public void gtEquExpr() { GtEqu e = TestHelper.as(ParserHelper.ParseExpression("x>=y"), GtEqu.class); assertNotNull(e); } @Test public void gtEquExprThreeArgs() { GtEqu e = TestHelper.as(ParserHelper.ParseExpression("x>=y>=z"), GtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), GtEqu.class); } @Test public void gtEquExprNestedLeft() { GtEqu e = TestHelper.as(ParserHelper.ParseExpression("(x>=y)>=z"), GtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), GtEqu.class); } @Test public void gtEquExprNestedRight() { GtEqu e = TestHelper.as(ParserHelper.ParseExpression("x>=(y>=z)"), GtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), GtEqu.class); } @Test public void ltExpr() { Lt e = TestHelper.as(ParserHelper.ParseExpression("x<y"), Lt.class); assertNotNull(e); } @Test public void ltExprThreeArgs() { Lt e = TestHelper.as(ParserHelper.ParseExpression("x<y<z"), Lt.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Lt.class); } @Test public void ltExprNestedLeft() { Lt e = TestHelper.as(ParserHelper.ParseExpression("(x<y)<z"), Lt.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Lt.class); } @Test public void ltExprNestedRight() { Lt e = TestHelper.as(ParserHelper.ParseExpression("x<(y<z)"), Lt.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), Lt.class); } @Test public void ltEquExpr() { LtEqu e = TestHelper.as(ParserHelper.ParseExpression("x<=y"), LtEqu.class); assertNotNull(e); } @Test public void ltEquExprThreeArgs() { LtEqu e = TestHelper.as(ParserHelper.ParseExpression("x<=y<=z"), LtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), LtEqu.class); } @Test public void ltEquExprNestedLeft() { LtEqu e = TestHelper.as(ParserHelper.ParseExpression("(x<=y)<=z"), LtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), LtEqu.class); } @Test public void ltEquExprNestedRight() { LtEqu e = TestHelper.as(ParserHelper.ParseExpression("x<=(y<=z)"), LtEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), LtEqu.class); } @Test public void equExpr() { Equ e = TestHelper.as(ParserHelper.ParseExpression("x==y"), Equ.class); assertNotNull(e); } @Test public void equExprThreeArgs() { Equ e = TestHelper.as(ParserHelper.ParseExpression("x==y==z"), Equ.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Equ.class); } @Test public void equExprNestedLeft() { Equ e = TestHelper.as(ParserHelper.ParseExpression("(x==y)==z"), Equ.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), Equ.class); } @Test public void equExprNestedRight() { Equ e = TestHelper.as(ParserHelper.ParseExpression("x==(y==z)"), Equ.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), Equ.class); } @Test public void notEquExpr() { NotEqu e = TestHelper.as(ParserHelper.ParseExpression("x!=y"), NotEqu.class); assertNotNull(e); } @Test public void notEquExprThreeArgs() { NotEqu e = TestHelper.as(ParserHelper.ParseExpression("x!=y!=z"), NotEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), NotEqu.class); } @Test public void notEquExprNestedLeft() { NotEqu e = TestHelper.as(ParserHelper.ParseExpression("(x!=y)!=z"), NotEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getLeft(), NotEqu.class); } @Test public void notEquExprNestedRight() { NotEqu e = TestHelper.as(ParserHelper.ParseExpression("x!=(y!=z)"), NotEqu.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), NotEqu.class); } @Test public void addLtMul() { Lt e = TestHelper.as(ParserHelper.ParseExpression("x+y<z*w"), Lt.class); assertNotNull(e); TestHelper.assertChildType(e.getRight(), Mul.class); TestHelper.assertChildType(e.getLeft(), Add.class); } }