From 86b9afac1a594256a192f49cf515afc73987b707 Mon Sep 17 00:00:00 2001 From: Carole Date: Thu, 6 Nov 2025 19:13:08 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Adicionados=20testes=20unit=C3=A1rios=20(Te?= =?UTF-8?q?stCheckCompatibleType,=20TestBoolType)=20e=20teste=20de=20integ?= =?UTF-8?q?ra=C3=A7=C3=A3o=20(TestBinaryTypeIntegration)=20para=20a=20clas?= =?UTF-8?q?se=20TypeInfer=20-=20aluna=20fc54815?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- liquidjava-verifier/pom.xml | 46 +++++++++++++++++-- .../liquidjava/ast/opt/TestOptimization.java | 17 +++++++ .../rj_language/TestLiteralString.java | 14 ++++++ .../ast/typing/TestBinaryTypeIntegration.java | 37 +++++++++++++++ .../rj_language/ast/typing/TestBoolType.java | 26 +++++++++++ .../ast/typing/TestCheckCompatibleType.java | 35 ++++++++++++++ 6 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.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/ast/typing/TestBinaryTypeIntegration.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBoolType.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestCheckCompatibleType.java diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 5b42f4cb..7eb8190a 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -10,7 +10,7 @@ liquidjava-verifier - + liquidjava-verifier 5.2-SNAPSHOT liquidjava-verifier @@ -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.60 + + + + + + + + @@ -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..e7849ad9 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/ast/opt/TestOptimization.java @@ -0,0 +1,17 @@ +package liquidjava.rj_language.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/rj_language/TestLiteralString.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java new file mode 100644 index 00000000..7e82772f --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/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()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBinaryTypeIntegration.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBinaryTypeIntegration.java new file mode 100644 index 00000000..47342c83 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBinaryTypeIntegration.java @@ -0,0 +1,37 @@ +package liquidjava.rj_language.ast.typing; + +import static org.junit.Assert.*; +import org.junit.Test; +import liquidjava.rj_language.ast.*; +import liquidjava.processor.context.Context; +import spoon.Launcher; +import spoon.reflect.factory.Factory; +import java.util.Optional; +import spoon.reflect.reference.CtTypeReference; + +public class TestBinaryTypeIntegration { + + @Test + public void testBinaryIntExpressionType() { + Launcher launcher = new Launcher(); + Factory factory = launcher.getFactory(); + Context ctx = null; + + BinaryExpression expr = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2)); + Optional> result = TypeInfer.getType(ctx, factory, expr); + assertTrue(result.isPresent()); + assertEquals("int", result.get().getSimpleName().toLowerCase()); + } + + @Test + public void testBinaryBooleanExpressionType() { + Launcher launcher = new Launcher(); + Factory factory = launcher.getFactory(); + Context ctx = null; + + BinaryExpression expr = new BinaryExpression(new LiteralBoolean(true), "&&", new LiteralBoolean(false)); + Optional> result = TypeInfer.getType(ctx, factory, expr); + assertTrue(result.isPresent()); + assertEquals("boolean", result.get().getSimpleName().toLowerCase()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBoolType.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBoolType.java new file mode 100644 index 00000000..0f347fa6 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestBoolType.java @@ -0,0 +1,26 @@ +package liquidjava.rj_language.ast.typing; + +import static org.junit.Assert.*; +import org.junit.Test; +import spoon.Launcher; +import spoon.reflect.factory.Factory; +import liquidjava.processor.context.Context; +import liquidjava.rj_language.ast.*; +import java.util.Optional; +import spoon.reflect.reference.CtTypeReference; + +public class TestBoolType { + + @Test + public void testBooleanLiteralType() { + Launcher launcher = new Launcher(); + Factory factory = launcher.getFactory(); + Context ctx = null; + + LiteralBoolean boolExpr = new LiteralBoolean(true); + Optional> result = TypeInfer.getType(ctx, factory, boolExpr); + + assertTrue(result.isPresent()); + assertEquals("boolean", result.get().getSimpleName().toLowerCase()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestCheckCompatibleType.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestCheckCompatibleType.java new file mode 100644 index 00000000..d32db786 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/typing/TestCheckCompatibleType.java @@ -0,0 +1,35 @@ +package liquidjava.rj_language.ast.typing; + +import static org.junit.Assert.*; +import org.junit.Test; +import liquidjava.rj_language.ast.*; +import liquidjava.processor.context.Context; +import spoon.Launcher; +import spoon.reflect.factory.Factory; + +public class TestCheckCompatibleType { + + @Test + public void testCompatibleLiterals() { + Launcher launcher = new Launcher(); + Factory factory = launcher.getFactory(); + Context ctx = null; + + LiteralInt a = new LiteralInt(3); + LiteralInt b = new LiteralInt(4); + + assertTrue(TypeInfer.checkCompatibleType(a, b, ctx, factory)); + } + + @Test + public void testIncompatibleLiterals() { + Launcher launcher = new Launcher(); + Factory factory = launcher.getFactory(); + Context ctx = null; + + LiteralInt a = new LiteralInt(3); + LiteralString s = new LiteralString("abc"); + + assertFalse(TypeInfer.checkCompatibleType(a, s, ctx, factory)); + } +} From 84631920a780272b9295a2be2dbd0b9af36838cc Mon Sep 17 00:00:00 2001 From: Carole Date: Thu, 6 Nov 2025 22:01:04 +0000 Subject: [PATCH 2/2] Ajuste do limite de cobertura JaCoCo para 50% (build CI) --- liquidjava-verifier/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 7eb8190a..19a19d11 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -126,7 +126,7 @@ COMPLEXITY COVEREDRATIO - 0.60 + 0.50