Skip to content

Commit 1beb792

Browse files
committed
Add assign in expression testcase
1 parent 2db365e commit 1beb792

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import junit.framework.*;
2+
3+
public class AssignInExpr extends TestCase {
4+
5+
public void testExpr() {
6+
int a = 1, b = 2, c = 3;
7+
8+
a = b += c;
9+
Assert.assertEquals(b, 5);
10+
Assert.assertEquals(a, 5);
11+
12+
a = b += c += a;
13+
Assert.assertEquals(c, 8);
14+
Assert.assertEquals(b, 13);
15+
Assert.assertEquals(a, 13);
16+
17+
a = (b = 1) * (c = 10);
18+
Assert.assertEquals(a, 10);
19+
Assert.assertEquals(b, 1);
20+
Assert.assertEquals(a, 10);
21+
22+
}
23+
24+
public void testIf() {
25+
int a = 4, b = 6, c = 10;
26+
27+
if ((a +=b) == c) {
28+
c = 20;
29+
}
30+
Assert.assertEquals(a, 10);
31+
Assert.assertEquals(b, 6);
32+
Assert.assertEquals(c, 20);
33+
}
34+
35+
public void testWhile() {
36+
int i = 0;
37+
38+
while (++i < 10) {
39+
Assert.assertTrue(i < 10);
40+
}
41+
Assert.assertEquals(i, 10);
42+
43+
}
44+
45+
public void testDo() {
46+
int i = 0;
47+
do {
48+
Assert.assertTrue(i < 10);
49+
} while (++i < 10);
50+
Assert.assertEquals(i, 10);
51+
}
52+
53+
public void testPostIncDec() {
54+
int i = 0, j = 0, k = 0;
55+
i = j++;
56+
Assert.assertEquals(i, 0);
57+
Assert.assertEquals(j, 1);
58+
59+
if (++i == j++) {
60+
k = 3;
61+
}
62+
Assert.assertEquals(i, 1);
63+
Assert.assertEquals(j, 2);
64+
Assert.assertEquals(k, 3);
65+
}
66+
67+
public void testAndOr() {
68+
int i = 0, j = 0;
69+
70+
if (i++ == 1 && j++ == 1) {
71+
Assert.fail("and test fail");
72+
} else {
73+
Assert.assertEquals(i, 1);
74+
Assert.assertEquals(j, 0);
75+
}
76+
77+
if (--i != 0 || j-- == 0) {
78+
Assert.assertEquals(i, 0);
79+
Assert.assertEquals(j, -1);
80+
} else {
81+
Assert.fail("or test fail");
82+
}
83+
84+
}
85+
86+
}

0 commit comments

Comments
 (0)