# Bool type operator and function tests a = true b = false # __not__ println("__not__") println(!a) println(!!a) println(!!!a) println(!!!!a) println(!b) println(!!b) println(!!!b) println(!!!!b) # __and__ println("__and__") println(a && b) println(b && a) println(a && a) println(b && b) # __or__ println("__or__") println(a || b) println(b || a) println(a || a) println(b || b) # __eq__ println("__eq__") println(a == a) println(a == b) println(b == b) println(b == a) println(a == true) println(true == a) println(a == false) println(false == a) println(b == true) println(true == b) println(b == false) println(false == b) # __ne__ println("__ne__") println(a != a) println(a != b) println(b != b) println(b != a) println(a != true) println(true != a) println(a != false) println(false != a) println(b != true) println(true != b) println(b != false) println(false != b) # constructor println("constructor") println(Bool("")) println(Bool(0)) println(Bool(0.0)) println(Bool(false)) # This is a fun one. Bool constructor does *not* parse bools, it just checks if they are empty. println(Bool("false")) println(Bool("true")) println(Bool(1)) println(Bool(1.0)) println(Bool(true)) println(Bool(nil))