Skip to content

Commit 03f6b6f

Browse files
committed
re-add files from removed commit 60dbd55
1 parent f0ab2f9 commit 03f6b6f

File tree

6 files changed

+171
-0
lines changed

6 files changed

+171
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"java.configuration.updateBuildConfiguration": "interactive"
3+
}

liquidjava-verifier/pom.xml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,46 @@
9595
</execution>
9696
</executions>
9797
</plugin>
98+
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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package liquidjava.ast.opt;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
7+
import liquidjava.rj_language.ast.BinaryExpression;
8+
import liquidjava.rj_language.ast.LiteralInt;
9+
import liquidjava.rj_language.opt.ConstantFolding;
10+
import liquidjava.rj_language.opt.derivation_node.ValDerivationNode;
11+
12+
public class TestOptimization {
13+
@Test
14+
public void testBinaryFold() {
15+
BinaryExpression b = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2));
16+
17+
ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(b, null));
18+
assertEquals(r.getValue(), new LiteralInt(3));
19+
}
20+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package liquidjava.ast.opt;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
7+
import liquidjava.rj_language.ast.BinaryExpression;
8+
import liquidjava.rj_language.ast.LiteralInt;
9+
import liquidjava.rj_language.opt.ConstantFolding;
10+
import liquidjava.rj_language.opt.derivation_node.ValDerivationNode;
11+
12+
public class TestOptimizationIntegration {
13+
@Test
14+
public void testBinaryFoldNested() {
15+
BinaryExpression inner = new BinaryExpression(new LiteralInt(2), "+", new LiteralInt(3));
16+
BinaryExpression outer = new BinaryExpression(new LiteralInt(1), "+", inner);
17+
ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(outer, null));
18+
assertEquals(new LiteralInt(6), r.getValue());
19+
}
20+
}
21+
22+
// António Rebelo - 58530
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
2+
package liquidjava.rj_language;
3+
4+
import static org.junit.Assert.assertFalse;
5+
import static org.junit.Assert.assertNotEquals;
6+
import static org.junit.Assert.assertTrue;
7+
8+
import org.junit.Test;
9+
import liquidjava.rj_language.ast.LiteralString;
10+
11+
public class TestLiteralString {
12+
// Teste fornecido
13+
@Test
14+
public void testLiteralString() {
15+
LiteralString s1 = new LiteralString("hello");
16+
LiteralString s2 = new LiteralString("world");
17+
assertNotEquals(s1.hashCode(), s2.hashCode());
18+
}
19+
20+
@Test
21+
public void testEqualsSameContent() {
22+
LiteralString a = new LiteralString("hello");
23+
LiteralString b = new LiteralString("hello");
24+
assertTrue(a.equals(b));
25+
assertTrue(b.equals(a));
26+
}
27+
28+
@Test
29+
public void testEqualsDifferentContent() {
30+
LiteralString a = new LiteralString("hello");
31+
LiteralString c = new LiteralString("world");
32+
assertFalse(a.equals(c));
33+
assertFalse(c.equals(a));
34+
}
35+
36+
@Test
37+
public void testEqualsSameReference() {
38+
LiteralString a = new LiteralString("hello");
39+
assertTrue(a.equals(a));
40+
}
41+
42+
@Test
43+
public void testEqualsNull() {
44+
LiteralString a = new LiteralString("hello");
45+
assertFalse(a.equals(null));
46+
}
47+
48+
@Test
49+
public void testEqualsDifferentClass() {
50+
LiteralString a = new LiteralString("hello");
51+
assertFalse(a.equals(new Object()));
52+
}
53+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package liquidjava.rj_language;
2+
3+
import static org.junit.Assert.*;
4+
import org.junit.Test;
5+
import liquidjava.rj_language.ast.LiteralString;
6+
7+
public class TestLiteralStringEquals {
8+
@Test
9+
public void testBothValuesNull() {
10+
LiteralString a = new LiteralString(null);
11+
LiteralString b = new LiteralString(null);
12+
assertTrue(a.equals(b));
13+
assertTrue(b.equals(a));
14+
assertTrue(a.equals(a));
15+
assertEquals(a.hashCode(), b.hashCode());
16+
}
17+
18+
@Test
19+
public void testThisValueNullOtherNotNull() {
20+
LiteralString a = new LiteralString(null);
21+
LiteralString b = new LiteralString("hello");
22+
assertFalse(a.equals(b));
23+
assertFalse(b.equals(a));
24+
}
25+
26+
@Test
27+
public void testOtherValueNullThisNotNull() {
28+
LiteralString a = new LiteralString("hello");
29+
LiteralString b = new LiteralString(null);
30+
assertFalse(a.equals(b));
31+
assertFalse(b.equals(a));
32+
}
33+
}

0 commit comments

Comments
 (0)