mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
158 lines
2.4 KiB
C
158 lines
2.4 KiB
C
module signed_unsigned_comparisons @test;
|
|
|
|
fn void test_signed()
|
|
{
|
|
int a = 0;
|
|
int b = 1;
|
|
|
|
bool ab_gt = a > b;
|
|
bool ab_ge = a >= b;
|
|
bool ab_le = a <= b;
|
|
bool ab_lt = a < b;
|
|
bool ab_ne = a != b;
|
|
bool ab_eq = a == b;
|
|
|
|
}
|
|
|
|
fn void test_unsigned()
|
|
{
|
|
uint a = 0;
|
|
uint b = 1;
|
|
|
|
bool ab_gt = a > b;
|
|
bool ab_ge = a >= b;
|
|
bool ab_le = a <= b;
|
|
bool ab_lt = a < b;
|
|
bool ab_ne = a != b;
|
|
bool ab_eq = a == b;
|
|
|
|
}
|
|
|
|
fn void test_signedunsigned()
|
|
{
|
|
ichar a = 0 - 1;
|
|
char b = (char)(a);
|
|
|
|
assert(!(a > b));
|
|
assert(!(a >= b));
|
|
assert(a < b);
|
|
assert(a <= b);
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 1;
|
|
b = 1;
|
|
|
|
assert(!(a > b));
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(a <= b);
|
|
assert(!(a != b));
|
|
assert(a == b);
|
|
|
|
a = 1;
|
|
b = 4;
|
|
|
|
assert(!(a > b));
|
|
assert(!(a >= b));
|
|
assert(a < b);
|
|
assert(a <= b);
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 4;
|
|
b = 1;
|
|
|
|
assert(a > b);
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(!(a <= b));
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 4;
|
|
b = 129;
|
|
|
|
assert(!(a > b));
|
|
assert(!(a >= b));
|
|
assert(a < b);
|
|
assert(a <= b);
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 0 - 4;
|
|
b = 129;
|
|
|
|
assert(!(a > b));
|
|
assert(!(a >= b));
|
|
assert(a < b);
|
|
assert(a <= b);
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
}
|
|
|
|
fn void test_unsignedsigned()
|
|
{
|
|
int b = -1;
|
|
uint a = (uint)(b);
|
|
|
|
assert(a > b);
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(!(a <= b));
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 1;
|
|
b = 1;
|
|
|
|
assert(!(a > b));
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(a <= b);
|
|
assert(!(a != b));
|
|
assert(a == b);
|
|
|
|
a = 4;
|
|
b = 1;
|
|
|
|
assert(a > b);
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(!(a <= b));
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 1;
|
|
b = 4;
|
|
|
|
assert(!(a > b));
|
|
assert(!(a >= b));
|
|
assert(a < b);
|
|
assert(a <= b);
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
a = 0x8000_0001;
|
|
b = 4;
|
|
|
|
assert(a > b);
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(!(a <= b));
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
b = 0 - 4;
|
|
a = 0x8000_0001;
|
|
|
|
assert(a > b);
|
|
assert(a >= b);
|
|
assert(!(a < b));
|
|
assert(!(a <= b));
|
|
assert(a != b);
|
|
assert(!(a == b));
|
|
|
|
}
|