package ql.tests.evaluator;
import org.junit.Test;
import ql.semantics.ValueTable;
import ql.semantics.values.BoolValue;
import ql.semantics.values.UndefValue;
import ql.tests.TestHelper;
import static org.junit.Assert.*;
/**
* Created by bore on 24/02/15.
*/
public class Relational
{
@Test
public void gtDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.1>1.0", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void gtDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0>1.0", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void gtIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("3>1", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void gtIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1>3", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void ltDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0<1.1", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void ltDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0<1.0", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void ltIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1<3", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void ltIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("3<1", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void ltEquDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0<=1.1", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void ltEquDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.1<=1.0", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void ltEquIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1<=3", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void ltEquIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("3<=1", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void gtEquDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.1>=1.0", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void gtEquDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0>=1.1", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void gtEquIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("3>=1", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void gtEquIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1>=3", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void notEquBoolTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("true!=false", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void notEquBoolFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("true!=true", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void notEquStringTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("\"string\"!=\"s\"", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void notEquStringFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("\"string\"!=\"string\"", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void notEquDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0!=1.1", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void notEquDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0!=1.0", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void notEquIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("10!=11", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void notEquIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1!=1", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void equBoolTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("true==true", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void equBoolFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("true==false", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void equStringTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("\"string\"==\"string\"", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void equStringFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("\"string\"==\"s\"", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void equDecTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0==1.0", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void equDecFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1.0==1.1", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void equIntTrue()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("10==10", null), BoolValue.class);
assertNotNull(v);
assertTrue(v.getValue());
}
@Test
public void equIntFalse()
{
BoolValue v = TestHelper.as(TestHelper.evaluate("1==2", null), BoolValue.class);
assertNotNull(v);
assertFalse(v.getValue());
}
@Test
public void undefinedEqu()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1==hasHouse==2", table), UndefValue.class);
assertNotNull(v);
}
@Test
public void undefinedLt()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1<hasHouse<2", table), UndefValue.class);
assertNotNull(v);
}
@Test
public void undefinedGt()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1>hasHouse>2", table), UndefValue.class);
assertNotNull(v);
}
@Test
public void undefinedLtEqu()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1<=hasHouse<=2", table), UndefValue.class);
assertNotNull(v);
}
@Test
public void undefinedGtEqu()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1>=hasHouse>=2", table), UndefValue.class);
assertNotNull(v);
}
@Test
public void undefinedNotEqu()
{
ValueTable table = new ValueTable();
table.storeValue("hasHouse", new UndefValue());
UndefValue v = TestHelper.as(TestHelper.evaluate("1!=hasHouse!=2", table), UndefValue.class);
assertNotNull(v);
}
}