package org.uva.student.calinwouter.qlqls.ql.tests.types;
import org.junit.Test;
import org.uva.student.calinwouter.qlqls.ql.types.IntegerValue;
import static org.junit.Assert.*;
public class TestIntegerOperations {
@Test
public void testAdd() {
assertEquals(new IntegerValue(10).add(new IntegerValue(5)).toJavaObject(), 15);
}
@Test
public void testSub() {
assertEquals(new IntegerValue(10).subtract(new IntegerValue(5)).toJavaObject(), 5);
}
@Test
public void testMul() {
assertEquals(new IntegerValue(10).multiply(new IntegerValue(5)).toJavaObject(), 50);
}
@Test
public void testDiv() {
assertEquals(new IntegerValue(10).divide(new IntegerValue(5)).toJavaObject(), 2);
}
@Test
public void testMod() {
assertEquals(new IntegerValue(10).modulo(new IntegerValue(5)).toJavaObject(), 0);
}
@Test
public void testLt() {
assertEquals(true, new IntegerValue(-1).lesserThan(new IntegerValue(0)).toJavaObject());
assertEquals(false, new IntegerValue(0).lesserThan(new IntegerValue(0)).toJavaObject());
assertEquals(false, new IntegerValue(1).lesserThan(new IntegerValue(0)).toJavaObject());
}
@Test
public void testGt() {
assertEquals(false, new IntegerValue(-1).greaterThan(new IntegerValue(0)).toJavaObject());
assertEquals(false, new IntegerValue(0).greaterThan(new IntegerValue(0)).toJavaObject());
assertEquals(true, new IntegerValue(1).greaterThan(new IntegerValue(0)).toJavaObject());
}
@Test
public void testLte() {
assertEquals(true, new IntegerValue(-1).lesserThanOrEquals(new IntegerValue(0)).toJavaObject());
assertEquals(true, new IntegerValue(0).lesserThanOrEquals(new IntegerValue(0)).toJavaObject());
assertEquals(false, new IntegerValue(1).lesserThanOrEquals(new IntegerValue(0)).toJavaObject());
}
@Test
public void testGte() {
assertEquals(false, new IntegerValue(-1).greaterThanOrEquals(new IntegerValue(0)).toJavaObject());
assertEquals(true, new IntegerValue(0).greaterThanOrEquals(new IntegerValue(0)).toJavaObject());
assertEquals(true, new IntegerValue(1).greaterThanOrEquals(new IntegerValue(0)).toJavaObject());
}
}