1#unittest {
2	name: "Bitwise and on a bool";
3	error: NONE;
4	result: true;
5};
6
7func b_and() {
8	var bool_ff = false & false; // false
9	var bool_tf = true  & false; // false
10	var bool_ft = false & true;  // false
11	var bool_tt = true  & true;  // true
12
13	return !bool_ff && !bool_tf && !bool_ft && bool_tt;
14}
15
16func b_or() {
17	var bool_ff = false | false; // false
18	var bool_tf = true  | false; // true
19	var bool_ft = false | true;  // true
20	var bool_tt = true  | true;  // true
21
22	return !bool_ff && bool_tf && bool_ft && bool_tt;
23}
24
25func b_xor() {
26	var bool_ff = false ^ false; // false
27	var bool_tf = true  ^ false; // true
28	var bool_ft = false ^ true;  // true
29	var bool_tt = true  ^ true;  // false
30
31	return !bool_ff && bool_tf && bool_ft && !bool_tt;
32}
33
34func main() {
35	return b_and() && b_or() && b_xor();
36}
37
38