From 355bc2e9d2825f1d679073d7caa5973a781cfe02 Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Sat, 15 Nov 2025 19:04:57 +0000 Subject: [PATCH 1/8] Jacoco plugin added --- liquidjava-verifier/pom.xml | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) 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 + + + + + + + + From 57a296872999a5be95be3f6838138ad0a8d29011 Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Sat, 15 Nov 2025 19:07:12 +0000 Subject: [PATCH 2/8] hashcode and constructor unit test for LiteralString class --- .../rj_language/opt/TestLiteralString.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/TestLiteralString.java 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 From 20e656ca44345bb6bd0c642d7b04ceedb6b05e14 Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Sat, 15 Nov 2025 19:23:13 +0000 Subject: [PATCH 3/8] ConstantFolding and BinaryExpression integration test --- .../liquidjava/ast/opt/TestOptimization.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java 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 From 7fd88bce34f6f3eedf538dc973d4b561e0fe40d7 Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Sat, 15 Nov 2025 20:29:46 +0000 Subject: [PATCH 4/8] Ite unit test --- .../test/java/liquidjava/ast/opt/TestIte.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestIte.java 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()); + } +} From ab7882e7a6f185dd6a7ee03ad1de4cddf90b7450 Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Fri, 28 Nov 2025 17:35:57 +0000 Subject: [PATCH 5/8] LJDiagnostic getTitle method unit test implementation --- .../diagnostics/TestLJDiagnostic.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java 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..c9d7abab --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java @@ -0,0 +1,17 @@ +package liquidjava.diagnostics; + +import static org.junit.Assert.assertTrue; +import liquidjava.diagnostics.LJDiagnostic; +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)); + } +} From e788b3d61969db8cc6117fe1de39ddc9f4a3dbcc Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Fri, 28 Nov 2025 17:45:39 +0000 Subject: [PATCH 6/8] Useless import removed --- .../src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java | 1 - 1 file changed, 1 deletion(-) diff --git a/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java b/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java index c9d7abab..2ebaa96b 100644 --- a/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java +++ b/liquidjava-verifier/src/test/java/liquidjava/diagnostics/TestLJDiagnostic.java @@ -1,7 +1,6 @@ package liquidjava.diagnostics; import static org.junit.Assert.assertTrue; -import liquidjava.diagnostics.LJDiagnostic; import org.junit.Test; public class TestLJDiagnostic { From 113b0e674a5792311056e9b849c21637df0a265b Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Fri, 28 Nov 2025 18:19:34 +0000 Subject: [PATCH 7/8] Function Invocation equals and hashcode integration test implementation --- .../ast/TestFunctionInvocation.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java 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..37e05a01 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java @@ -0,0 +1,23 @@ +package liquidjava.rj_language.ast; + +import java.util.Arrays; + +import static org.junit.Assert.assertTrue; + +import liquidjava.rj_language.opt.Test; + +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()); + } + +} From 01facafcd7f5e465bf67269a9d0a9481664370fe Mon Sep 17 00:00:00 2001 From: Daniel Horta Date: Fri, 28 Nov 2025 20:28:30 +0000 Subject: [PATCH 8/8] TestFunctionInvocation fix --- .../rj_language/ast/TestFunctionInvocation.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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 index 37e05a01..84dd278d 100644 --- a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestFunctionInvocation.java @@ -1,14 +1,12 @@ package liquidjava.rj_language.ast; -import java.util.Arrays; - import static org.junit.Assert.assertTrue; - -import liquidjava.rj_language.opt.Test; +import org.junit.Test; +import java.util.Arrays; public class TestFunctionInvocation { @Test - public void testFunctionInvocationEqualsAndHashcode(){ + public void testFunctionInvocationEqualsAndHashcode() { Expression exp1 = new LiteralString("./testFiles/file.txt"); Expression exp2 = new LiteralString("./testFiles/file_fake.txt"); @@ -19,5 +17,5 @@ public void testFunctionInvocationEqualsAndHashcode(){ assertTrue(f1.equals(f2) && !f1.equals(f3)); assertTrue(f1.hashCode() == f2.hashCode() && f1.hashCode() != f3.hashCode()); } - + }