Files
c3c/test/unit7/regression/signed_unsigned_compare.c3
2025-02-24 01:05:45 +01:00

158 lines
2.4 KiB
Plaintext

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));
}