Skip to content

Commit 06cbeeb

Browse files
committed
Split Tests
1 parent 24158c7 commit 06cbeeb

3 files changed

Lines changed: 63 additions & 32 deletions

File tree

liquidjava-verifier/src/test/java/liquidjava/rj_language/ast/ExpressionFormatterTest.java

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,12 @@
44

55
import org.junit.jupiter.api.Test;
66

7-
import liquidjava.rj_language.Predicate;
87
import liquidjava.rj_language.parsing.RefinementsParser;
98

109
class ExpressionFormatterTest {
1110

1211
private static Expression parse(String refinement) {
13-
return parse(refinement, "");
14-
}
15-
16-
private static Expression parse(String refinement, String prefix) {
17-
return RefinementsParser.createAST(refinement, prefix);
12+
return RefinementsParser.createAST(refinement, "");
1813
}
1914

2015
@Test
@@ -23,15 +18,6 @@ void formatsUnary() {
2318
assertEquals("!false", parse("!false").toDisplayString());
2419
}
2520

26-
@Test
27-
void formatsInternalVariables() {
28-
assertEquals("x", parse("x").toDisplayString());
29-
assertEquals("x²", parse("#x_2").toDisplayString());
30-
assertEquals("#fresh¹²", parse("#fresh_12").toDisplayString());
31-
assertEquals("#ret³", parse("#ret_3").toDisplayString());
32-
assertEquals("this#Class", parse("this#Class").toDisplayString());
33-
}
34-
3521
@Test
3622
void formatsEnums() {
3723
assertEquals("Color.RED", parse("Color.RED").toDisplayString());
@@ -103,21 +89,4 @@ void formatsTernaryExpressions() {
10389
assertEquals("a ? b : c", parse("a ? b : c").toDisplayString());
10490
}
10591

106-
@Test
107-
void formatsWithQualifiedNames() {
108-
Expression exp = new BinaryExpression(parse("size(this)", "java.util.ArrayList"), "==",
109-
parse("size(this)", "java.util.ArrayDeque"));
110-
assertEquals("java.util.ArrayList.size(this) == java.util.ArrayDeque.size(this)", exp.toDisplayString());
111-
112-
Predicate differentInstances = Predicate.createEquals(Predicate.createVar("#java.util.ArrayList.size_1"),
113-
Predicate.createVar("#java.util.ArrayDeque.size_2"));
114-
assertEquals("java.util.ArrayList.size¹ == java.util.ArrayDeque.size²",
115-
differentInstances.getExpression().toDisplayString());
116-
}
117-
118-
@Test
119-
void formatsWithoutQualifiedNames() {
120-
assertEquals("size(this)", parse("size(this)", "java.util.List").toDisplayString());
121-
assertEquals("size(this) == size(this)", parse("size(this) == size(this)", "java.util.List").toDisplayString());
122-
}
12392
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package liquidjava.rj_language.ast.formatter;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
import liquidjava.rj_language.Predicate;
8+
import liquidjava.rj_language.ast.BinaryExpression;
9+
import liquidjava.rj_language.ast.Expression;
10+
import liquidjava.rj_language.parsing.RefinementsParser;
11+
12+
class ExpressionNameResolverTest {
13+
14+
private static Expression parse(String refinement, String prefix) {
15+
return RefinementsParser.createAST(refinement, prefix);
16+
}
17+
18+
@Test
19+
void stripsQualifiedNamesWhenUnambiguous() {
20+
ExpressionNameResolver resolver = ExpressionNameResolver
21+
.forExpression(parse("size(this) == size(this)", "java.util.List"));
22+
23+
assertEquals("size", resolver.resolveFunction("java.util.List.size"));
24+
}
25+
26+
@Test
27+
void keepsQualifiedNamesForDifferentPrefixes() {
28+
Expression expression = new BinaryExpression(parse("size(this)", "java.util.ArrayList"), "==",
29+
parse("size(this)", "java.util.ArrayDeque"));
30+
ExpressionNameResolver resolver = ExpressionNameResolver.forExpression(expression);
31+
32+
assertEquals("java.util.ArrayList.size", resolver.resolveFunction("java.util.ArrayList.size"));
33+
assertEquals("java.util.ArrayDeque.size", resolver.resolveFunction("java.util.ArrayDeque.size"));
34+
}
35+
36+
@Test
37+
void keepsQualifiedNamesForDifferentInstances() {
38+
Predicate differentInstances = Predicate.createEquals(Predicate.createVar("#java.util.ArrayList.size_1"),
39+
Predicate.createVar("#java.util.ArrayDeque.size_2"));
40+
ExpressionNameResolver resolver = ExpressionNameResolver.forExpression(differentInstances.getExpression());
41+
42+
assertEquals("java.util.ArrayList.size¹", resolver.resolveVariable("#java.util.ArrayList.size_1"));
43+
assertEquals("java.util.ArrayDeque.size²", resolver.resolveVariable("#java.util.ArrayDeque.size_2"));
44+
}
45+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package liquidjava.rj_language.ast.formatter;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
class VariableFormatterTest {
8+
9+
@Test
10+
void formatsVariables() {
11+
assertEquals("x", VariableFormatter.format("x"));
12+
assertEquals("x²", VariableFormatter.format("#x_2"));
13+
assertEquals("#fresh¹²", VariableFormatter.format("#fresh_12"));
14+
assertEquals("#ret³", VariableFormatter.format("#ret_3"));
15+
assertEquals("this#Class", VariableFormatter.format("this#Class"));
16+
}
17+
}

0 commit comments

Comments
 (0)