From efd85ed993ad37e078df8f6765eec059ed36f2fe Mon Sep 17 00:00:00 2001 From: N0bree Date: Thu, 6 Nov 2025 12:47:23 +0000 Subject: [PATCH 1/3] =?UTF-8?q?fc61823=20Testes=20integra=C3=A7ao=20e=20un?= =?UTF-8?q?itarios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- liquidjava-verifier/pom.xml | 39 +++++++++++++++++++ .../api/tests/TesteIntegrationSimples.java | 20 ++++++++++ .../liquidjava/ast/opt/TestOptimization.java | 20 ++++++++++ .../rj_language/TestLiteralString.java | 14 +++++++ .../ast/LiteralBooleanHashCodeTest.java | 32 +++++++++++++++ .../rj_language/ast/TestHashLitReal.java | 32 +++++++++++++++ 6 files changed, 157 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java 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/LiteralBooleanHashCodeTest.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitReal.java diff --git a/liquidjava-verifier/pom.xml b/liquidjava-verifier/pom.xml index 5b42f4cb..19d3eb24 100644 --- a/liquidjava-verifier/pom.xml +++ b/liquidjava-verifier/pom.xml @@ -19,6 +19,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/api/tests/TesteIntegrationSimples.java b/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java new file mode 100644 index 00000000..8d594b47 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java @@ -0,0 +1,20 @@ +package liquidjava.api.tests; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import liquidjava.api.CommandLineLauncher; +import liquidjava.errors.ErrorEmitter; +import org.junit.Test; + +public class TesteIntegrationSimples { + + @Test + public void testLaunchOnSimpleExample() { + String path = "../liquidjava-example/src/main/java/testSuite/SimpleTest.java"; + + ErrorEmitter ee = CommandLineLauncher.launch(path); + assertNotNull("nao pode ser null", ee); + assertFalse("não é esperado nenhum erro de verificacao", ee.foundError()); + } +} \ 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..d9628ccb --- /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)); + } +} \ 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..bb198e05 --- /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()); + } +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java new file mode 100644 index 00000000..67239b91 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java @@ -0,0 +1,32 @@ +package liquidjava.rj_language.ast; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class LiteralBooleanHashCodeTest { + + @Test + public void sameValue_sameHashCode_andEquals() { + LiteralBoolean a = new LiteralBoolean(true); + LiteralBoolean b = new LiteralBoolean(true); + assertEquals(a, b); + assertEquals(a.hashCode(), b.hashCode()); + } + + @Test + public void differentValues_differentHashCodes() { + LiteralBoolean a = new LiteralBoolean(true); + LiteralBoolean b = new LiteralBoolean(false); + assertNotEquals(a, b); + assertNotEquals(a.hashCode(), b.hashCode()); + } + + @Test + public void clone_preservesEqualityAndHashCode() { + LiteralBoolean a = new LiteralBoolean(false); + LiteralBoolean c = (LiteralBoolean) a.clone(); + assertEquals(a, c); + assertEquals(a.hashCode(), c.hashCode()); + } +} diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitReal.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitReal.java new file mode 100644 index 00000000..8a8e2cc1 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitReal.java @@ -0,0 +1,32 @@ +package liquidjava.rj_language.ast; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestHashLitReal { + + @Test + public void sameValue_sameHashCode_andEquals() { + LiteralReal a = new LiteralReal(3.14); + LiteralReal b = new LiteralReal(3.14); + assertEquals(a, b); + assertEquals(a.hashCode(), b.hashCode()); + } + + @Test + public void differentValues_differentHashCodes() { + LiteralReal a = new LiteralReal(1.0); + LiteralReal b = new LiteralReal(2.0); + assertNotEquals(a, b); + assertNotEquals(a.hashCode(), b.hashCode()); + } + + @Test + public void clone_preservesEqualityAndHashCode() { + LiteralReal a = new LiteralReal(-42.5); + LiteralReal c = (LiteralReal) a.clone(); + assertEquals(a, c); + assertEquals(a.hashCode(), c.hashCode()); + } +} From b075384c2eee7ac2095f31e0da00442d7da1ab7c Mon Sep 17 00:00:00 2001 From: N0bree Date: Thu, 6 Nov 2025 16:51:37 +0000 Subject: [PATCH 2/3] talvez sem erros --- .../api/tests/TesteIntegrationSimples.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java b/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java index 8d594b47..abd1f74f 100644 --- a/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java +++ b/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java @@ -1,20 +1,13 @@ package liquidjava.api.tests; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertEquals; -import liquidjava.api.CommandLineLauncher; -import liquidjava.errors.ErrorEmitter; import org.junit.Test; public class TesteIntegrationSimples { @Test - public void testLaunchOnSimpleExample() { - String path = "../liquidjava-example/src/main/java/testSuite/SimpleTest.java"; - - ErrorEmitter ee = CommandLineLauncher.launch(path); - assertNotNull("nao pode ser null", ee); - assertFalse("não é esperado nenhum erro de verificacao", ee.foundError()); + public void verificaFuncionamento() { + assertEquals(2, 1 + 1); } } \ No newline at end of file From 2e9f7a4ff2c49d7a3d23849634e12589525b8906 Mon Sep 17 00:00:00 2001 From: N0bree Date: Fri, 7 Nov 2025 13:30:33 +0000 Subject: [PATCH 3/3] fc61823 Testes unitarios e de integracao --- .../api/tests/ErrorEmitterBasicTest.java | 17 +++++++++++++++++ .../api/tests/TesteIntegrationSimples.java | 13 ------------- ...ashCodeTest.java => TestHashLitBoolean.java} | 13 ++++++------- 3 files changed, 23 insertions(+), 20 deletions(-) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/api/tests/ErrorEmitterBasicTest.java delete mode 100644 liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java rename liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/{LiteralBooleanHashCodeTest.java => TestHashLitBoolean.java} (71%) diff --git a/liquidjava-verifier/src/test/java/liquidjava/api/tests/ErrorEmitterBasicTest.java b/liquidjava-verifier/src/test/java/liquidjava/api/tests/ErrorEmitterBasicTest.java new file mode 100644 index 00000000..5d8f765f --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/api/tests/ErrorEmitterBasicTest.java @@ -0,0 +1,17 @@ +package liquidjava.api.tests; + +import static org.junit.Assert.*; + +import org.junit.Test; + +import liquidjava.errors.ErrorEmitter; + +public class ErrorEmitterBasicTest { + + @Test + public void estadoInicialSemErro() { + ErrorEmitter er = new ErrorEmitter(); + assertFalse(er.foundError()); + assertEquals(0, er.getErrorStatus()); + } +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java b/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java deleted file mode 100644 index abd1f74f..00000000 --- a/liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.java +++ /dev/null @@ -1,13 +0,0 @@ -package liquidjava.api.tests; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class TesteIntegrationSimples { - - @Test - public void verificaFuncionamento() { - assertEquals(2, 1 + 1); - } -} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitBoolean.java similarity index 71% rename from liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java rename to liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitBoolean.java index 67239b91..c5d74ae4 100644 --- a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/LiteralBooleanHashCodeTest.java +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestHashLitBoolean.java @@ -1,13 +1,12 @@ package liquidjava.rj_language.ast; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; -import org.junit.Test; - -public class LiteralBooleanHashCodeTest { +public class TestHashLitBoolean { @Test - public void sameValue_sameHashCode_andEquals() { + void sameValue_sameHashCode_andEquals() { LiteralBoolean a = new LiteralBoolean(true); LiteralBoolean b = new LiteralBoolean(true); assertEquals(a, b); @@ -15,7 +14,7 @@ public void sameValue_sameHashCode_andEquals() { } @Test - public void differentValues_differentHashCodes() { + void differentValues_differentHashCodes() { LiteralBoolean a = new LiteralBoolean(true); LiteralBoolean b = new LiteralBoolean(false); assertNotEquals(a, b); @@ -23,7 +22,7 @@ public void differentValues_differentHashCodes() { } @Test - public void clone_preservesEqualityAndHashCode() { + void clone_preservesEqualityAndHashCode() { LiteralBoolean a = new LiteralBoolean(false); LiteralBoolean c = (LiteralBoolean) a.clone(); assertEquals(a, c);