From 03f6b6f0213302883d6e305a6077bcb3f53d6129 Mon Sep 17 00:00:00 2001 From: TORebelo Date: Thu, 30 Oct 2025 16:40:47 +0000 Subject: [PATCH 1/2] re-add files from removed commit 60dbd55 --- liquidjava-verifier/.vscode/settings.json | 3 ++ liquidjava-verifier/pom.xml | 40 ++++++++++++++ .../liquidjava/ast/opt/TestOptimization.java | 20 +++++++ .../ast/opt/TestOptimizationIntegration.java | 22 ++++++++ .../rj_language/TestLiteralString.java | 53 +++++++++++++++++++ .../rj_language/TestLiteralStringEquals.java | 33 ++++++++++++ 6 files changed, 171 insertions(+) create mode 100644 liquidjava-verifier/.vscode/settings.json create mode 100644 liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimizationIntegration.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralStringEquals.java diff --git a/liquidjava-verifier/.vscode/settings.json b/liquidjava-verifier/.vscode/settings.json new file mode 100644 index 00000000..385f27a2 --- /dev/null +++ b/liquidjava-verifier/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 5b42f4cb..919efbb0 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -95,6 +95,46 @@ + + + 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/TestOptimization.java b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java new file mode 100644 index 00000000..d32a94bc --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java @@ -0,0 +1,20 @@ +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.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)); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimizationIntegration.java b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimizationIntegration.java new file mode 100644 index 00000000..1545408e --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimizationIntegration.java @@ -0,0 +1,22 @@ +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.opt.ConstantFolding; +import liquidjava.rj_language.opt.derivation_node.ValDerivationNode; + +public class TestOptimizationIntegration { + @Test + public void testBinaryFoldNested() { + BinaryExpression inner = new BinaryExpression(new LiteralInt(2), "+", new LiteralInt(3)); + BinaryExpression outer = new BinaryExpression(new LiteralInt(1), "+", inner); + ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(outer, null)); + assertEquals(new LiteralInt(6), r.getValue()); + } +} + +// António Rebelo - 58530 \ No newline at end of file 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..6cd06cf4 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java @@ -0,0 +1,53 @@ + +package liquidjava.rj_language; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; +import liquidjava.rj_language.ast.LiteralString; + +public class TestLiteralString { + // Teste fornecido + @Test + public void testLiteralString() { + LiteralString s1 = new LiteralString("hello"); + LiteralString s2 = new LiteralString("world"); + assertNotEquals(s1.hashCode(), s2.hashCode()); + } + + @Test + public void testEqualsSameContent() { + LiteralString a = new LiteralString("hello"); + LiteralString b = new LiteralString("hello"); + assertTrue(a.equals(b)); + assertTrue(b.equals(a)); + } + + @Test + public void testEqualsDifferentContent() { + LiteralString a = new LiteralString("hello"); + LiteralString c = new LiteralString("world"); + assertFalse(a.equals(c)); + assertFalse(c.equals(a)); + } + + @Test + public void testEqualsSameReference() { + LiteralString a = new LiteralString("hello"); + assertTrue(a.equals(a)); + } + + @Test + public void testEqualsNull() { + LiteralString a = new LiteralString("hello"); + assertFalse(a.equals(null)); + } + + @Test + public void testEqualsDifferentClass() { + LiteralString a = new LiteralString("hello"); + assertFalse(a.equals(new Object())); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralStringEquals.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralStringEquals.java new file mode 100644 index 00000000..d3e9324c --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralStringEquals.java @@ -0,0 +1,33 @@ +package liquidjava.rj_language; + +import static org.junit.Assert.*; +import org.junit.Test; +import liquidjava.rj_language.ast.LiteralString; + +public class TestLiteralStringEquals { + @Test + public void testBothValuesNull() { + LiteralString a = new LiteralString(null); + LiteralString b = new LiteralString(null); + assertTrue(a.equals(b)); + assertTrue(b.equals(a)); + assertTrue(a.equals(a)); + assertEquals(a.hashCode(), b.hashCode()); + } + + @Test + public void testThisValueNullOtherNotNull() { + LiteralString a = new LiteralString(null); + LiteralString b = new LiteralString("hello"); + assertFalse(a.equals(b)); + assertFalse(b.equals(a)); + } + + @Test + public void testOtherValueNullThisNotNull() { + LiteralString a = new LiteralString("hello"); + LiteralString b = new LiteralString(null); + assertFalse(a.equals(b)); + assertFalse(b.equals(a)); + } +} \ No newline at end of file From b5d3912aefcf19ca6459f99d049a814f9cd24116 Mon Sep 17 00:00:00 2001 From: TORebelo Date: Thu, 30 Oct 2025 17:08:20 +0000 Subject: [PATCH 2/2] test: add TestLiteralStringEquals and TestOptimizationIntegration Antonio Rebelo 58530 --- .../rj_language/TestLiteralString.java | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java index 6cd06cf4..25906763 100644 --- a/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java @@ -16,38 +16,4 @@ public void testLiteralString() { LiteralString s2 = new LiteralString("world"); assertNotEquals(s1.hashCode(), s2.hashCode()); } - - @Test - public void testEqualsSameContent() { - LiteralString a = new LiteralString("hello"); - LiteralString b = new LiteralString("hello"); - assertTrue(a.equals(b)); - assertTrue(b.equals(a)); - } - - @Test - public void testEqualsDifferentContent() { - LiteralString a = new LiteralString("hello"); - LiteralString c = new LiteralString("world"); - assertFalse(a.equals(c)); - assertFalse(c.equals(a)); - } - - @Test - public void testEqualsSameReference() { - LiteralString a = new LiteralString("hello"); - assertTrue(a.equals(a)); - } - - @Test - public void testEqualsNull() { - LiteralString a = new LiteralString("hello"); - assertFalse(a.equals(null)); - } - - @Test - public void testEqualsDifferentClass() { - LiteralString a = new LiteralString("hello"); - assertFalse(a.equals(new Object())); - } }