package org.uva.ql.test.typechecker; import org.junit.Assert; import org.junit.Test; import org.uva.ql.ast.CodePosition; import org.uva.ql.ast.expression.binary.Addition; import org.uva.ql.ast.expression.binary.Equal; import org.uva.ql.ast.expression.literal.IntLiteral; import org.uva.ql.ast.expression.literal.Literal; import org.uva.ql.ast.expression.literal.StrLiteral; import org.uva.ql.typechecker.TypeChecker; public class SpecialCases { private final CodePosition codePos = new CodePosition(0, 0); private final TypeChecker typeChecker = new TypeChecker(); private final Literal int1 = new IntLiteral(5, codePos); private final Literal int2 = new IntLiteral(3, codePos); private final Literal int3 = new IntLiteral(2, codePos); private final Literal str1 = new StrLiteral("Hello", codePos); @Test public void testSpecialCase1() { // Testing 5 == (3+2) Addition add = new Addition(int2, int3, codePos); Equal equal = new Equal(int1, add, codePos); Assert.assertEquals(typeChecker.visit(equal), true); } @Test public void testSpecialCase2() { // Testing "Hello" == (3+2) Addition add = new Addition(int2, int3, codePos); Equal equal = new Equal(str1, add, codePos); Assert.assertEquals(typeChecker.visit(equal), false); } }