From 9043fc890a76d564901a8c1bdbc21a511d223bb3 Mon Sep 17 00:00:00 2001 From: N0bree Date: Mon, 3 Nov 2025 19:12:15 +0000 Subject: [PATCH] fc61823 Testes --- liquidjava-verifier/pom.xml | 39 +++++++++++++++++++ .../api/tests/TesteIntegrationSimples.java | 20 ++++++++++ .../rj_language/TestLiteralString.java | 14 +++++++ .../rj_language/ast/BinExprBasicosTest.java | 18 +++++++++ .../rj_language/ast/TestOptimization.java | 18 +++++++++ .../rj_language/ast/VarsBasicosTest.java | 23 +++++++++++ 6 files changed, 132 insertions(+) create mode 100644 liquidjava-verifier/src/test/java/liquidjava/api/tests/TesteIntegrationSimples.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/BinExprBasicosTest.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestOptimization.java create mode 100644 liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/VarsBasicosTest.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/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/BinExprBasicosTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/BinExprBasicosTest.java new file mode 100644 index 00000000..ffb91721 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/BinExprBasicosTest.java @@ -0,0 +1,18 @@ +package liquidjava.rj_language.ast; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class BinaryExpressionBasicsTest { + + @Test + void testeOperacaoAritmetica() { + BinaryExpression be = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2)); + + assertTrue(be.isArithmeticOperation()); + assertFalse(be.isBooleanOperation()); + assertFalse(be.isLogicOperation()); + + assertEquals("1 + 2", be.toString()); + } +} \ No newline at end of file diff --git a/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestOptimization.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestOptimization.java new file mode 100644 index 00000000..d99b0e7a --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/TestOptimization.java @@ -0,0 +1,18 @@ +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/ast/VarsBasicosTest.java b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/VarsBasicosTest.java new file mode 100644 index 00000000..96ad0c09 --- /dev/null +++ b/liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/VarsBasicosTest.java @@ -0,0 +1,23 @@ +package liquidjava.rj_language.ast; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class VarBasicsTest { + + @Test + void testeNome_Clone() { + Var v = new Var("x"); //metodos similares retornam o mesmo + + assertEquals("x", v.getName(), "Nome var"); + assertEquals("x", v.toString(), "toString deve devolver o nome"); + + Var vClone = (Var) v.clone(); //mesmo objeto mas dif instancia + assertNotSame(v, vClone, "clone deve ser outra instância"); + assertEquals(v, vClone, "clone deve ser igual ao original"); + } +} \ No newline at end of file