From 9baef0a71ff01794c8d32498d00b80dc19dc6d07 Mon Sep 17 00:00:00 2001 From: fc63718 Date: Sat, 13 Dec 2025 21:23:12 +0000 Subject: [PATCH] =?UTF-8?q?Adiciona=20dois=20testes=20unit=C3=A1rios=20e?= =?UTF-8?q?=20um=20teste=20de=20integra=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- liquidjava-verifier/pom.xml | 39 +++++++++++++++ .../rj_language/TestLiteralString.java | 25 ++++++++++ .../opt/ExpressionSimplifierTest.java | 0 .../rj_language/ast/opt/TestOptimization.java | 48 +++++++++++++++++++ .../{ => ast}/opt/VariableResolverTest.java | 0 5 files changed, 112 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java rename liquidjava-verifier/src/test/java/liquidjava/rj_language/{ => ast}/opt/ExpressionSimplifierTest.java (100%) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/TestOptimization.java rename liquidjava-verifier/src/test/java/liquidjava/rj_language/{ => ast}/opt/VariableResolverTest.java (100%) diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index af57236d..ba06b330 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -61,6 +61,45 @@ ${jar.finalName} + +org.jacoco +jacoco-maven-plugin +0.8.14 + + +default-prepare-agent + +prepare-agent + + + +default-report + +report + + + +default-check + +check + + + + +BUNDLE + + +COMPLEXITY +COVEREDRATIO +0.60 + + + + + + + + net.revelc.code.formatter formatter-maven-plugin 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..5ed1ffcb --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/TestLiteralString.java @@ -0,0 +1,25 @@ +package liquidjava.rj_language; + +import static org.junit.Assert.assertEquals; +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()); + } + + @Test + public void testToString() { + LiteralString string = new LiteralString("hello world"); + + String result = string.toString(); + + assertEquals("hello world", result); + } +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/ExpressionSimplifierTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/ExpressionSimplifierTest.java similarity index 100% rename from liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/ExpressionSimplifierTest.java rename to liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/ExpressionSimplifierTest.java diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/TestOptimization.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/TestOptimization.java new file mode 100644 index 00000000..2a596127 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/TestOptimization.java @@ -0,0 +1,48 @@ +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)); + } + + @Test + public void testBinaryExpressionWithLiteralInt() { + LiteralInt num1 = new LiteralInt(40); + LiteralInt num2 = new LiteralInt(60); + + BinaryExpression expression = new BinaryExpression(num1, "+", num2); + + String result = expression.toString(); + + assertEquals("40 + 60", result); + } + + @Test + public void testIntegrationNestedAddition() { + // Create integer literals + LiteralInt num1 = new LiteralInt(5); + LiteralInt num2 = new LiteralInt(10); + LiteralInt num3 = new LiteralInt(20); + + // Create nested binary expressions + BinaryExpression firstSum = new BinaryExpression(num1, "+", num2); // 5 + 10 + BinaryExpression nestedSum = new BinaryExpression(firstSum, "+", num3); // (5 + 10) + 20 + + // Convert to string + String result = nestedSum.toString(); + + // Expected output: "(5 + 10) + 20" + assertEquals("5 + 10 + 20", result); + } + +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VariableResolverTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/VariableResolverTest.java similarity index 100% rename from liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VariableResolverTest.java rename to liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/opt/VariableResolverTest.java