mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-09-25 16:37:56 +03:00
Building 'test/test.pje' with the SDK compiler produces a file at 'test/Run/test.ain' which can be run with xsystem4 to test various features. Not the greatest testing method, but it works.
59 lines
2.1 KiB
C
Executable File
59 lines
2.1 KiB
C
Executable File
// -*-mode: C; coding: sjis; -*-
|
|
|
|
void test_arithmetic(void)
|
|
{
|
|
int n;
|
|
int one = 1;
|
|
int three = 3;
|
|
int five = 5;
|
|
int ten = 10;
|
|
test_equal("-(5)", -five, -5);
|
|
test_equal("-(-5)", -(-five), 5);
|
|
test_equal("!5", !five, 0);
|
|
test_equal("!!5", !!five, 1);
|
|
test_equal("~5", ~five, 0xFFFFFFFA);
|
|
test_equal("5 + 10", five + ten, 15);
|
|
test_equal("5 - 10", five - ten, -5);
|
|
test_equal("10 - 5", ten - five, 5);
|
|
test_equal("5 * 10", five * ten, 50);
|
|
test_equal("5 / 10", five / ten, 0);
|
|
test_equal("10 / 5", ten / five, 2);
|
|
test_equal("5 % 10", five % ten, 5);
|
|
test_equal("10 % 5", ten % five, 0);
|
|
test_equal("5 & 10", five & ten, 0);
|
|
test_equal("5 | 10", five | ten, 15);
|
|
test_equal("1 ^ 3", one ^ three, 2);
|
|
test_equal("1 << 3", one << three, 8);
|
|
test_equal("3 >> 1", three >> one, 1);
|
|
// comparisons
|
|
test_bool("1 < 3", one < three, true);
|
|
test_bool("3 < 1", three < one, false);
|
|
test_bool("1 < 1", one < one, false);
|
|
test_bool("3 > 1", three > one, true);
|
|
test_bool("1 > 3", one > three, false);
|
|
test_bool("1 > 1", one > one, false);
|
|
test_bool("1 <= 3", one <= three, true);
|
|
test_bool("3 <= 1", three <= one, false);
|
|
test_bool("1 <= 1", one <= one, true);
|
|
test_bool("3 >= 1", three >= one, true);
|
|
test_bool("1 >= 3", one >= three, false);
|
|
test_bool("1 >= 1", one >= one, true);
|
|
test_bool("1 != 3", one != three, true);
|
|
test_bool("1 != 1", one != one, false);
|
|
test_bool("1 == 1", one == one, true);
|
|
test_bool("1 == 3", one == three, false);
|
|
// assignment
|
|
test_equal("++0", (n = 0, ++n), 1);
|
|
test_equal("--1", (n = 1, --n), 0);
|
|
test_equal("0 += 2", (n = 0, n+=2), 2);
|
|
test_equal("3 -= 2", (n = 3, n-=2), 1);
|
|
test_equal("2 *= 3", (n = 2, n*=3), 6);
|
|
test_equal("6 /= 2", (n = 6, n/=2), 3);
|
|
test_equal("4 %= 3", (n = 4, n%=3), 1);
|
|
test_equal("3 &= 2", (n = 3, n&=2), 2);
|
|
test_equal("2 |= 1", (n = 2, n|=1), 3);
|
|
test_equal("3 ^= 1", (n = 3, n^=1), 2);
|
|
test_equal("1 <<= 3", (n = 1, n<<=3), 8);
|
|
test_equal("3 >>= 1", (n = 3, n>>=1), 1);
|
|
}
|