mirror of
https://github.com/ziglang/zig.git
synced 2024-11-27 23:52:31 +00:00
cf3b9f4f5b
closes #205
58 lines
975 B
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);
|
|
}
|