Skip to content

Commit c2bc11e

Browse files
committed
2 testes unitários e teste de integração
1 parent 11a9263 commit c2bc11e

File tree

5 files changed

+82
-0
lines changed

5 files changed

+82
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package liquidjava.rj_language;
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 TestBinaryExpression {
11+
@Test
12+
public void testSimpleAddition() {
13+
BinaryExpression expr = new BinaryExpression(new LiteralInt(5), "+", new LiteralInt(7));
14+
ValDerivationNode result = ConstantFolding.fold(new ValDerivationNode(expr, null));
15+
assertEquals(new LiteralInt(12), result.getValue());
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+
import static org.junit.Assert.assertNotEquals;
3+
import org.junit.Test;
4+
import liquidjava.rj_language.ast.LiteralString;
5+
6+
public class TestLiteralInt{
7+
@Test
8+
public void testLiteralInt(){
9+
LiteralInt s1 = new LiteralInt(10);
10+
LiteralInt s2 = new LiteralInt(20);
11+
assertNotEquals(s1.hashCode(), s2.hashCode());
12+
}
13+
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package liquidjava.rj_language;
2+
import static org.junit.Assert.assertNotEquals;
3+
import org.junit.Test;
4+
import liquidjava.rj_language.ast.LiteralString;
5+
6+
public class TestLiteralString {
7+
@Test
8+
public void testLiteralString() {
9+
LiteralString s1 = new LiteralString("hello");
10+
LiteralString s2 = new LiteralString("world");
11+
assertNotEquals(s1.hashCode(), s2.hashCode());
12+
}
13+
}
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+
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 TestConstantFoldingIntegration {
11+
@Test
12+
public void testComplexFold() {
13+
BinaryExpression expr = new BinaryExpression(
14+
new BinaryExpression(new LiteralInt(2), "*", new LiteralInt(3)),
15+
"+",
16+
new LiteralInt(4)
17+
);
18+
19+
ValDerivationNode result = ConstantFolding.fold(new ValDerivationNode(expr, null));
20+
assertEquals(new LiteralInt(10), result.getValue());
21+
}
22+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import org.junit.Test;
2+
3+
import liquidjava.rj_language.ast.BinaryExpression;
4+
import liquidjava.rj_language.ast.LiteralInt;
5+
import liquidjava.rj_language.opt.ConstantFolding;
6+
import liquidjava.rj_language.opt.derivation_node.ValDerivationNode;
7+
8+
public class TestOptimization {
9+
@Test
10+
public void testBinaryFold() {
11+
BinaryExpression b = new BinaryExpression(new LiteralInt(1), "+", new LiteralInt(2));
12+
13+
ValDerivationNode r = ConstantFolding.fold(new ValDerivationNode(b, null));
14+
assertEquals(r.getValue(), new LiteralInt(3));
15+
}
16+
}

0 commit comments

Comments
 (0)