zig/test/cases/bool.zig

48 lines
870 B
Zig
Raw Normal View History

2017-01-05 08:57:48 +00:00
const assert = @import("std").debug.assert;
test "boolLiterals" {
2016-12-22 06:20:08 +00:00
assert(true);
assert(!false);
}
test "castBoolToInt" {
2016-12-22 06:20:08 +00:00
const t = true;
const f = false;
assert(i32(t) == i32(1));
assert(i32(f) == i32(0));
nonConstCastBoolToInt(t, f);
}
fn nonConstCastBoolToInt(t: bool, f: bool) {
assert(i32(t) == i32(1));
assert(i32(f) == i32(0));
}
test "boolCmp" {
2016-12-22 06:42:30 +00:00
assert(testBoolCmp(true, false) == false);
}
fn testBoolCmp(a: bool, b: bool) -> bool {
a == b
}
test "shortCircuitAndOr" {
var a = true;
a &&= false;
assert(!a);
a &&= true;
assert(!a);
a ||= false;
assert(!a);
a ||= true;
assert(a);
}
const global_f = false;
const global_t = true;
const not_global_f = !global_f;
const not_global_t = !global_t;
test "compileTimeBoolnot" {
assert(not_global_f);
assert(!not_global_t);
}