diff --git a/liquidjava b/liquidjava old mode 100755 new mode 100644 diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 5b42f4cb..89d68300 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -77,7 +77,8 @@ - + liquidjava.api.CommandLineLauncher @@ -95,6 +96,45 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.14 + + + default-prepare-agent + + prepare-agent + + + + default-report + + report + + + + default-check + + check + + + + + BUNDLE + + + COMPLEXITY + COVEREDRATIO + 0.5 + + + + + + + + @@ -206,4 +246,4 @@ - + \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java new file mode 100644 index 00000000..49de4f82 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java @@ -0,0 +1,28 @@ +package liquidjava.ast.opt; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +import liquidjava.rj_language.ast.BinaryExpression; +import liquidjava.rj_language.ast.LiteralInt; +import liquidjava.rj_language.ast.UnaryExpression; +import liquidjava.rj_language.opt.ConstantFolding; +import liquidjava.rj_language.opt.derivation_node.ValDerivationNode; + +public class TestOptimization { + + @Test + public void testBinaryFold() { + BinaryExpression b = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2)); + + ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(b, null)); + assertEquals(r.getValue(), new LiteralInt(3)); + } + + @Test + public void testUnaryExpression() { + UnaryExpression u = new UnaryExpression("-", new LiteralInt(3)); + ValDerivationNode vd = ConstantFolding.fold(new ValDerivationNode(u, null)); + assertEquals(vd.getValue(), new LiteralInt(-3)); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java new file mode 100644 index 00000000..b5cb6e57 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java @@ -0,0 +1,15 @@ +package liquidjava.rj_language; + +import static org.junit.Assert.assertNotEquals; +import org.junit.Test; +import liquidjava.rj_language.ast.LiteralString; + +public class TestLiteralString { + + @Test + public void testLiteralString() { + LiteralString s1 = new LiteralString("hello"); + LiteralString s2 = new LiteralString("world"); + assertNotEquals(s1.hashCode(), s2.hashCode()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestPredicate.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestPredicate.java new file mode 100644 index 00000000..aaef03c5 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestPredicate.java @@ -0,0 +1,13 @@ +package liquidjava.rj_language; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +public class TestPredicate { + + @Test + public void testCreateInvocation() { + Predicate p = Predicate.createInvocation("test", Predicate.createVar("x")); + assertEquals("test(x)", p.getExpression().toString()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/testLiteralBoolean.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/testLiteralBoolean.java new file mode 100644 index 00000000..87fa0ace --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/testLiteralBoolean.java @@ -0,0 +1,16 @@ +package liquidjava.rj_language; + +import static org.junit.Assert.assertNotEquals; +import org.junit.Test; + +import liquidjava.rj_language.ast.LiteralBoolean; + +public class testLiteralBoolean { + + @Test + public void testLiteralBoolean() { + LiteralBoolean s1 = new LiteralBoolean(true); + LiteralBoolean s2 = new LiteralBoolean(false); + assertNotEquals(s1.hashCode(), s2.hashCode()); + } +}