diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index e9727bff..f69b52f2 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -213,6 +213,45 @@ + + org.jacoco + jacoco-maven-plugin + 0.8.14 + + + default-prepare-agent + + prepare-agent + + + + default-report + + report + + + + default-check + + check + + + + + BUNDLE + + + COMPLEXITY + COVEREDRATIO + 0.60 + + + + + + + + diff --git a/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestIte.java b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestIte.java new file mode 100644 index 00000000..3c01f8c1 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestIte.java @@ -0,0 +1,17 @@ +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import liquidjava.rj_language.ast.LiteralInt; +import liquidjava.rj_language.ast.Ite; + +public class TestIte { + @Test + public void testIte() { + LiteralInt i1 = new LiteralInt(3); + LiteralInt i2 = new LiteralInt(3); + + Ite ite1 = new Ite(i1, i1, i1); + Ite ite2 = new Ite(i2, i2, i2); + + assertEquals(ite1.hashCode(), ite2.hashCode()); + } +} 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..046f0289 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java @@ -0,0 +1,16 @@ +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.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)); + } +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java b/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java new file mode 100644 index 00000000..2ebaa96b --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java @@ -0,0 +1,16 @@ +package liquidjava.diagnostics; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; + +public class TestLJDiagnostic { + @Test + public void testGetTitle() { + String title1 = "title"; + String title2 = "fake title"; + LJDiagnostic ljd = new LJDiagnostic(title1, null, null, null, null); + + assertTrue(ljd.getTitle().equals(title1)); + assertTrue(!ljd.getTitle().equals(title2)); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java new file mode 100644 index 00000000..84dd278d --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java @@ -0,0 +1,21 @@ +package liquidjava.rj_language.ast; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import java.util.Arrays; + +public class TestFunctionInvocation { + @Test + public void testFunctionInvocationEqualsAndHashcode() { + Expression exp1 = new LiteralString("./testFiles/file.txt"); + Expression exp2 = new LiteralString("./testFiles/file_fake.txt"); + + FunctionInvocation f1 = new FunctionInvocation("java.nio.file.Paths.get", Arrays.asList(exp1)); + FunctionInvocation f2 = new FunctionInvocation("java.nio.file.Paths.get", Arrays.asList(exp1)); + FunctionInvocation f3 = new FunctionInvocation("java.nio.file.Paths.get", Arrays.asList(exp2)); + + assertTrue(f1.equals(f2) && !f1.equals(f3)); + assertTrue(f1.hashCode() == f2.hashCode() && f1.hashCode() != f3.hashCode()); + } + +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralString.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralString.java new file mode 100644 index 00000000..bb198e05 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralString.java @@ -0,0 +1,14 @@ +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()); + } +} \ No newline at end of file