]> pd.if.org Git - lice/blob - tests/arithmetic.c
autocommit for files dated 2014-11-17 20:15:26
[lice] / tests / arithmetic.c
1 // arithmetic
2
3 int main(void) {
4     int i = 0 - 1;
5
6     expecti(0, 0);
7     expecti(1, 1);
8
9     expecti(1 + 2, 3);
10     expecti(2 - 1, 1);
11
12     expecti(1 + 2 + 3 + 4, 10);
13     expecti(1 + 2 * 3 + 4, 11);
14     expecti(1 * 2 + 3 * 4, 14);
15
16     expecti(4 / 2 + 6 / 3, 4);
17     expecti(24 / 2 / 3 ,   4);
18
19     expecti(24 % 7, 3);
20     expecti(24 % 3, 0);
21
22     expecti('a' + 1, 98);
23     expecti('b' + 1, 99);
24     expecti('a' + 2, 'b' + 1);
25     expecti('b' + 1, 'c');
26
27     expecti(i,   0 - 1);
28     expecti(i,  -1);
29     expecti(i+1, 0);
30
31     expecti(1, +1);
32
33     i = 16;
34     expecti(i++, 16);
35     expecti(i,   17);
36     expecti(i--, 17);
37     expecti(i,   16);
38     expecti(++i, 17);
39     expecti(i,   17);
40     expecti(--i, 16);
41     expecti(i,   16);
42
43     expecti(!1, 0);
44     expecti(!0, 1);
45
46     expecti((1 + 2) ? 128 : 256,   128);
47     expecti((1 - 1) ? 128 : 256,   256);
48     expecti((1 - 1) ? 64  : 256/2, 128);
49     expecti((1 - 0) ? 256 : 64/2,  256);
50
51
52     expecti((1 + 2) ?: 1024,       3);
53
54     return 0;
55 }