Skip to content

Commit 8cde2d2

Browse files
committed
Update Tests
1 parent 99131d4 commit 8cde2d2

4 files changed

Lines changed: 22 additions & 24 deletions

File tree

liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VCFoldingTest.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,17 @@ void applyReturnsNullForNullImplication() {
2828

2929
@Test
3030
void foldsIntegerArithmeticAndComparisons() {
31-
assertSimplificationSteps(vc("1 + 2 == 3"), VCFolding::apply, "1 + 2 == 3", "3 == 3", "true");
31+
assertSimplificationSteps(VCFolding::apply, vc("1 + 2 == 3"), simplified("3 == 3", "1 + 2 == 3"),
32+
simplified("true", "1 + 2 == 3"));
3233
assertFolded("4 > 7", "false");
3334
}
3435

3536
@Test
3637
void foldsRealAndMixedNumericExpressions() {
37-
assertSimplificationSteps(vc("1.5 + 2.0 == 3.5"), VCFolding::apply, "1.5 + 2.0 == 3.5", "3.5 == 3.5", "true");
38-
assertSimplificationSteps(vc("2 + 0.5 > 2"), VCFolding::apply, "2 + 0.5 > 2", "2.5 > 2", "true");
38+
assertSimplificationSteps(VCFolding::apply, vc("1.5 + 2.0 == 3.5"),
39+
simplified("3.5 == 3.5", "1.5 + 2.0 == 3.5"), simplified("true", "1.5 + 2.0 == 3.5"));
40+
assertSimplificationSteps(VCFolding::apply, vc("2 + 0.5 > 2"), simplified("2.5 > 2", "2 + 0.5 > 2"),
41+
simplified("true", "2 + 0.5 > 2"));
3942
}
4043

4144
@Test
@@ -76,7 +79,8 @@ void foldsPartialComparisonsWithoutDroppingSymbolicTerms() {
7679
@Test
7780
void foldsUnaryExpressions() {
7881
assertFolded("!true", "false");
79-
assertSimplificationSteps(vc("-3 < 0"), VCFolding::apply, "-3 < 0", "-3 < 0", "true");
82+
assertSimplificationSteps(VCFolding::apply, vc("-3 < 0"), simplified("-3 < 0", "-3 < 0"),
83+
simplified("true", "-3 < 0"));
8084
}
8185

8286
@Test
@@ -88,7 +92,8 @@ void foldsIteExpressions() {
8892

8993
@Test
9094
void foldsIteBranchesBeforeComparingThem() {
91-
assertSimplificationSteps(vc("cond ? 1 + 2 : 3"), VCFolding::apply, "cond ? 1 + 2 : 3", "cond ? 3 : 3", "3");
95+
assertSimplificationSteps(VCFolding::apply, vc("cond ? 1 + 2 : 3"),
96+
simplified("cond ? 3 : 3", "cond ? 1 + 2 : 3"), simplified("3", "cond ? 1 + 2 : 3"));
9297
}
9398

9499
@Test
@@ -112,7 +117,7 @@ void foldsResolvedEnumLiterals() {
112117
VCImplication implication = new VCImplication(
113118
new Predicate(new BinaryExpression(limit, "==", new LiteralInt(3))));
114119

115-
assertSimplificationSteps(implication, VCFolding::apply, simplified("3 == 3", "Config.LIMIT == 3"),
120+
assertSimplificationSteps(VCFolding::apply, implication, simplified("3 == 3", "Config.LIMIT == 3"),
116121
simplified("true", "Config.LIMIT == 3"));
117122
}
118123

@@ -124,15 +129,15 @@ void foldsResolvedEnumLiteralsInsideLargerExpression() {
124129
VCImplication implication = new VCImplication(
125130
new Predicate(new BinaryExpression(arithmetic, "==", new LiteralInt(5))));
126131

127-
assertSimplificationSteps(implication, VCFolding::apply, simplified("3 + 2 == 5", "Config.LIMIT + 2 == 5"),
132+
assertSimplificationSteps(VCFolding::apply, implication, simplified("3 + 2 == 5", "Config.LIMIT + 2 == 5"),
128133
simplified("5 == 5", "Config.LIMIT + 2 == 5"), simplified("true", "Config.LIMIT + 2 == 5"));
129134
}
130135

131136
@Test
132137
void preservesOriginFromExistingSimplifiedImplication() {
133138
VCImplication substituted = VCSubstitution.apply(vc("∀x:int. x == 1", "x + 1 + 2 > 0"));
134139

135-
assertSimplificationSteps(substituted, VCFolding::apply, simplified("2 + 2 > 0", "∀x:int. x + 1 + 2 > 0"),
140+
assertSimplificationSteps(VCFolding::apply, substituted, simplified("2 + 2 > 0", "∀x:int. x + 1 + 2 > 0"),
136141
simplified("4 > 0", "∀x:int. x + 1 + 2 > 0"), simplified("true", "∀x:int. x + 1 + 2 > 0"));
137142
}
138143

liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VCSimplificationTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ void simplifyOnceReturnsNullForNullImplication() {
2626
void simplifyOnceAppliesSubstitutionBeforeFolding() {
2727
VCImplication implication = vc("∀x:int. x == 1 + 2", "x > 2");
2828

29-
assertSimplificationSteps(implication, VCSimplification::simplifyOnce, simplified("1 + 2 > 2", "∀x:int. x > 2"),
29+
assertSimplificationSteps(VCSimplification::simplifyOnce, implication, simplified("1 + 2 > 2", "∀x:int. x > 2"),
3030
simplified("3 > 2", "∀x:int. x > 2"), simplified("true", "∀x:int. x > 2"));
3131
}
3232

3333
@Test
3434
void simplifyOnceDoesNotFoldAfterSubstitutionInSameStep() {
3535
VCImplication implication = vc("∀x:int. x == 1 + 2", "x == 3");
3636

37-
assertSimplificationSteps(implication, VCSimplification::simplifyOnce,
37+
assertSimplificationSteps(VCSimplification::simplifyOnce, implication,
3838
simplified("1 + 2 == 3", "∀x:int. x == 3"), simplified("3 == 3", "∀x:int. x == 3"),
3939
simplified("true", "∀x:int. x == 3"));
4040
}
@@ -43,7 +43,7 @@ void simplifyOnceDoesNotFoldAfterSubstitutionInSameStep() {
4343
void simplifyOnceAppliesFoldingWhenNoSubstitutionIsAvailable() {
4444
VCImplication implication = vc("1 + 2 > 2");
4545

46-
assertSimplificationSteps(implication, VCSimplification::simplifyOnce, simplified("3 > 2", "1 + 2 > 2"),
46+
assertSimplificationSteps(VCSimplification::simplifyOnce, implication, simplified("3 > 2", "1 + 2 > 2"),
4747
simplified("true", "1 + 2 > 2"));
4848
}
4949

liquidjava-verifier/src/test/java/liquidjava/rj_language/opt/VCSubstitutionTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ void substitutesBinderEqualityIntoWholeChain() {
2121
VCImplication result = VCSubstitution.apply(implication);
2222

2323
assertSimplifiedVC(result, simplified("3 > 0", "∀x:int. x > 0"));
24-
assertSimplificationSteps(result, VCSimplification::simplifyOnce, simplified("true", "∀x:int. x > 0"));
24+
assertSimplificationSteps(VCSimplification::simplifyOnce, result, simplified("true", "∀x:int. x > 0"));
2525
}
2626

2727
@Test
@@ -31,7 +31,7 @@ void substitutesReverseBinderEquality() {
3131
VCImplication result = VCSubstitution.apply(implication);
3232

3333
assertSimplifiedVC(result, simplified("3 > 0", "∀x:int. x > 0"));
34-
assertSimplificationSteps(result, VCSimplification::simplifyOnce, simplified("true", "∀x:int. x > 0"));
34+
assertSimplificationSteps(VCSimplification::simplifyOnce, result, simplified("true", "∀x:int. x > 0"));
3535
}
3636

3737
@Test
@@ -59,7 +59,7 @@ void substitutesEveryOccurrenceInPredicate() {
5959
VCImplication result = VCSubstitution.apply(implication);
6060

6161
assertSimplifiedVC(result, simplified("2 + 2 > 0", "∀x:int. x + x > 0"));
62-
assertSimplificationSteps(result, VCSimplification::simplifyOnce, simplified("4 > 0", "∀x:int. x + x > 0"),
62+
assertSimplificationSteps(VCSimplification::simplifyOnce, result, simplified("4 > 0", "∀x:int. x + x > 0"),
6363
simplified("true", "∀x:int. x + x > 0"));
6464
}
6565

@@ -114,7 +114,7 @@ void substitutesOuterKnownValueIntoNestedBinderRefinements() {
114114

115115
assertSimplifiedVC(result, simplified("y == 3 + 1", "∀x:int. y == x + 1"),
116116
simplified("y > 3", "∀x:int. y > x"));
117-
assertSimplificationSteps(result, VCSimplification::simplifyOnce, simplified("3 + 1 > 3", "∀y:int. y > x"),
117+
assertSimplificationSteps(VCSimplification::simplifyOnce, result, simplified("3 + 1 > 3", "∀y:int. y > x"),
118118
simplified("4 > 3", "∀y:int. y > x"), simplified("true", "∀y:int. y > x"));
119119
}
120120

liquidjava-verifier/src/test/java/liquidjava/utils/VCTestUtils.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ public static void assertVC(VCImplication implication, String... expected) {
9494
assertNull(current, "Expected VC chain to end after " + expected.length + " implications");
9595
}
9696

97-
public static VCImplication assertSimplificationSteps(VCImplication implication,
98-
UnaryOperator<VCImplication> simplifier, ExpectedSimplifiedVCImplication... expectedSteps) {
97+
public static VCImplication assertSimplificationSteps(UnaryOperator<VCImplication> simplifier,
98+
VCImplication implication, ExpectedSimplifiedVCImplication... expectedSteps) {
9999
VCImplication current = implication;
100100
for (int i = 0; i < expectedSteps.length; i++) {
101101
current = simplifier.apply(current);
@@ -104,13 +104,6 @@ public static VCImplication assertSimplificationSteps(VCImplication implication,
104104
return current;
105105
}
106106

107-
public static VCImplication assertSimplificationSteps(VCImplication implication,
108-
UnaryOperator<VCImplication> simplifier, String origin, String... simplifiedSteps) {
109-
ExpectedSimplifiedVCImplication[] expectedSteps = java.util.Arrays.stream(simplifiedSteps)
110-
.map(step -> simplified(step, origin)).toArray(ExpectedSimplifiedVCImplication[]::new);
111-
return assertSimplificationSteps(implication, simplifier, expectedSteps);
112-
}
113-
114107
public static SimplifiedVCImplication simplifiedImplication(VCImplication implication, int index) {
115108
return assertInstanceOf(SimplifiedVCImplication.class, implication,
116109
"Expected implication " + index + " to be a SimplifiedVCImplication");

0 commit comments

Comments
 (0)