Skip to content

Commit 86b9afa

Browse files
committed
Adicionados testes unitários (TestCheckCompatibleType, TestBoolType) e teste de integração (TestBinaryTypeIntegration) para a classe TypeInfer - aluna fc54815
1 parent d906b45 commit 86b9afa

File tree

6 files changed

+172
-3
lines changed

6 files changed

+172
-3
lines changed

liquidjava-verifier/pom.xml

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111

1212
<groupId>liquidjava-verifier
13-
</groupId>
13+
</groupId>
1414
<artifactId>liquidjava-verifier</artifactId>
1515
<version>5.2-SNAPSHOT</version>
1616
<name>liquidjava-verifier</name>
@@ -77,7 +77,8 @@
7777
</goals>
7878
<configuration>
7979
<transformers>
80-
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
80+
<transformer
81+
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
8182
<mainClass>liquidjava.api.CommandLineLauncher</mainClass>
8283
</transformer>
8384
</transformers>
@@ -95,6 +96,45 @@
9596
</execution>
9697
</executions>
9798
</plugin>
99+
<plugin>
100+
<groupId>org.jacoco</groupId>
101+
<artifactId>jacoco-maven-plugin</artifactId>
102+
<version>0.8.14</version>
103+
<executions>
104+
<execution>
105+
<id>default-prepare-agent</id>
106+
<goals>
107+
<goal>prepare-agent</goal>
108+
</goals>
109+
</execution>
110+
<execution>
111+
<id>default-report</id>
112+
<goals>
113+
<goal>report</goal>
114+
</goals>
115+
</execution>
116+
<execution>
117+
<id>default-check</id>
118+
<goals>
119+
<goal>check</goal>
120+
</goals>
121+
<configuration>
122+
<rules>
123+
<rule>
124+
<element>BUNDLE</element>
125+
<limits>
126+
<limit>
127+
<counter>COMPLEXITY</counter>
128+
<value>COVEREDRATIO</value>
129+
<minimum>0.60</minimum>
130+
</limit>
131+
</limits>
132+
</rule>
133+
</rules>
134+
</configuration>
135+
</execution>
136+
</executions>
137+
</plugin>
98138
</plugins>
99139
</build>
100140

@@ -206,4 +246,4 @@
206246
</dependency>
207247
</dependencies>
208248
</dependencyManagement>
209-
</project>
249+
</project>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package liquidjava.rj_language.ast.opt;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import org.junit.Test;
5+
import liquidjava.rj_language.ast.BinaryExpression;
6+
import liquidjava.rj_language.ast.LiteralInt;
7+
import liquidjava.rj_language.opt.ConstantFolding;
8+
import liquidjava.rj_language.opt.derivation_node.ValDerivationNode;
9+
10+
public class TestOptimization {
11+
@Test
12+
public void testBinaryFold() {
13+
BinaryExpression b = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2));
14+
ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(b, null));
15+
assertEquals(r.getValue(), new LiteralInt(3));
16+
}
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package liquidjava.rj_language;
2+
3+
import static org.junit.Assert.assertNotEquals;
4+
import org.junit.Test;
5+
import liquidjava.rj_language.ast.LiteralString;
6+
7+
public class TestLiteralString {
8+
@Test
9+
public void testLiteralString() {
10+
LiteralString s1 = new LiteralString("hello");
11+
LiteralString s2 = new LiteralString("world");
12+
assertNotEquals(s1.hashCode(), s2.hashCode());
13+
}
14+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package liquidjava.rj_language.ast.typing;
2+
3+
import static org.junit.Assert.*;
4+
import org.junit.Test;
5+
import liquidjava.rj_language.ast.*;
6+
import liquidjava.processor.context.Context;
7+
import spoon.Launcher;
8+
import spoon.reflect.factory.Factory;
9+
import java.util.Optional;
10+
import spoon.reflect.reference.CtTypeReference;
11+
12+
public class TestBinaryTypeIntegration {
13+
14+
@Test
15+
public void testBinaryIntExpressionType() {
16+
Launcher launcher = new Launcher();
17+
Factory factory = launcher.getFactory();
18+
Context ctx = null;
19+
20+
BinaryExpression expr = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2));
21+
Optional<CtTypeReference<?>> result = TypeInfer.getType(ctx, factory, expr);
22+
assertTrue(result.isPresent());
23+
assertEquals("int", result.get().getSimpleName().toLowerCase());
24+
}
25+
26+
@Test
27+
public void testBinaryBooleanExpressionType() {
28+
Launcher launcher = new Launcher();
29+
Factory factory = launcher.getFactory();
30+
Context ctx = null;
31+
32+
BinaryExpression expr = new BinaryExpression(new LiteralBoolean(true), "&&", new LiteralBoolean(false));
33+
Optional<CtTypeReference<?>> result = TypeInfer.getType(ctx, factory, expr);
34+
assertTrue(result.isPresent());
35+
assertEquals("boolean", result.get().getSimpleName().toLowerCase());
36+
}
37+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package liquidjava.rj_language.ast.typing;
2+
3+
import static org.junit.Assert.*;
4+
import org.junit.Test;
5+
import spoon.Launcher;
6+
import spoon.reflect.factory.Factory;
7+
import liquidjava.processor.context.Context;
8+
import liquidjava.rj_language.ast.*;
9+
import java.util.Optional;
10+
import spoon.reflect.reference.CtTypeReference;
11+
12+
public class TestBoolType {
13+
14+
@Test
15+
public void testBooleanLiteralType() {
16+
Launcher launcher = new Launcher();
17+
Factory factory = launcher.getFactory();
18+
Context ctx = null;
19+
20+
LiteralBoolean boolExpr = new LiteralBoolean(true);
21+
Optional<CtTypeReference<?>> result = TypeInfer.getType(ctx, factory, boolExpr);
22+
23+
assertTrue(result.isPresent());
24+
assertEquals("boolean", result.get().getSimpleName().toLowerCase());
25+
}
26+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package liquidjava.rj_language.ast.typing;
2+
3+
import static org.junit.Assert.*;
4+
import org.junit.Test;
5+
import liquidjava.rj_language.ast.*;
6+
import liquidjava.processor.context.Context;
7+
import spoon.Launcher;
8+
import spoon.reflect.factory.Factory;
9+
10+
public class TestCheckCompatibleType {
11+
12+
@Test
13+
public void testCompatibleLiterals() {
14+
Launcher launcher = new Launcher();
15+
Factory factory = launcher.getFactory();
16+
Context ctx = null;
17+
18+
LiteralInt a = new LiteralInt(3);
19+
LiteralInt b = new LiteralInt(4);
20+
21+
assertTrue(TypeInfer.checkCompatibleType(a, b, ctx, factory));
22+
}
23+
24+
@Test
25+
public void testIncompatibleLiterals() {
26+
Launcher launcher = new Launcher();
27+
Factory factory = launcher.getFactory();
28+
Context ctx = null;
29+
30+
LiteralInt a = new LiteralInt(3);
31+
LiteralString s = new LiteralString("abc");
32+
33+
assertFalse(TypeInfer.checkCompatibleType(a, s, ctx, factory));
34+
}
35+
}

0 commit comments

Comments
 (0)