zig/test/cases/bool.zig

58 lines
975 B
Zig

const assert = @import("std").debug.assert;
fn boolLiterals() {
@setFnTest(this);
assert(true);
assert(!false);
}
fn castBoolToInt() {
@setFnTest(this);
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));
}
fn boolCmp() {
@setFnTest(this);
assert(testBoolCmp(true, false) == false);
}
fn testBoolCmp(a: bool, b: bool) -> bool {
a == b
}
fn shortCircuitAndOr() {
@setFnTest(this);
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;
fn compileTimeBoolnot() {
@setFnTest(this);
assert(not_global_f);
assert(!not_global_t);
}