--- /dev/null
+// arithmetic
+
+int main(void) {
+ int i = 0 - 1;
+
+ expecti(0, 0);
+ expecti(1, 1);
+
+ expecti(1 + 2, 3);
+ expecti(2 - 1, 1);
+
+ expecti(1 + 2 + 3 + 4, 10);
+ expecti(1 + 2 * 3 + 4, 11);
+ expecti(1 * 2 + 3 * 4, 14);
+
+ expecti(4 / 2 + 6 / 3, 4);
+ expecti(24 / 2 / 3 , 4);
+
+ expecti(24 % 7, 3);
+ expecti(24 % 3, 0);
+
+ expecti('a' + 1, 98);
+ expecti('b' + 1, 99);
+ expecti('a' + 2, 'b' + 1);
+ expecti('b' + 1, 'c');
+
+ expecti(i, 0 - 1);
+ expecti(i, -1);
+ expecti(i+1, 0);
+
+ expecti(1, +1);
+
+ i = 16;
+ expecti(i++, 16);
+ expecti(i, 17);
+ expecti(i--, 17);
+ expecti(i, 16);
+ expecti(++i, 17);
+ expecti(i, 17);
+ expecti(--i, 16);
+ expecti(i, 16);
+
+ expecti(!1, 0);
+ expecti(!0, 1);
+
+ expecti((1 + 2) ? 128 : 256, 128);
+ expecti((1 - 1) ? 128 : 256, 256);
+ expecti((1 - 1) ? 64 : 256/2, 128);
+ expecti((1 - 0) ? 256 : 64/2, 256);
+
+
+ expecti((1 + 2) ?: 1024, 3);
+
+ return 0;
+}