Files
compiler-old/tests/booleans.test
T

40 lines
1.1 KiB
Plaintext

[expected_return_code]
0
[code]
fn eq(a: i32, b: i32) -> bool { return a == b; }
fn neq(a: i32, b: i32) -> bool { return a != b; }
fn lt(a: i32, b: i32) -> bool { return a < b; }
fn lte(a: i32, b: i32) -> bool { return a <= b; }
fn gt(a: i32, b: i32) -> bool { return a > b; }
fn gte(a: i32, b: i32) -> bool { return a >= b; }
fn not_bool(a: bool) -> bool { return !a; }
[harness]
#include <stdbool.h>
extern bool eq(int a, int b);
extern bool neq(int a, int b);
extern bool lt(int a, int b);
extern bool lte(int a, int b);
extern bool gt(int a, int b);
extern bool gte(int a, int b);
extern bool not_bool(bool a);
int main() {
if (!eq(5, 5)) return 1;
if (eq(5, 6)) return 2;
if (!neq(5, 6)) return 3;
if (neq(5, 5)) return 4;
if (!lt(4, 5)) return 5;
if (lt(5, 5)) return 6;
if (!lte(5, 5)) return 7;
if (lte(6, 5)) return 8;
if (!gt(6, 5)) return 9;
if (gt(5, 5)) return 10;
if (!gte(5, 5)) return 11;
if (gte(4, 5)) return 12;
if (!not_bool(false)) return 13;
if (not_bool(true)) return 14;
return 0; // Success
}