# Test cases for booleans (compile and run) [case testTrueAndFalse] def t() -> bool: return True def f() -> bool: return False [file driver.py] from native import t, f print(t()) print(f()) [out] True False [case testBoolOps] def f(x: bool) -> bool: if x: return False else: return True def test_if() -> None: assert f(True) is False assert f(False) is True def test_bitwise_and() -> None: # Use eval() to avoid constand folding t = eval('True') # type: bool f = eval('False') # type: bool assert t & t == True assert t & f == False assert f & t == False assert f & f == False t &= t assert t == True t &= f assert t == False def test_bitwise_or() -> None: # Use eval() to avoid constand folding t = eval('True') # type: bool f = eval('False') # type: bool assert t | t == True assert t | f == True assert f | t == True assert f | f == False t |= f assert t == True f |= t assert f == True def test_bitwise_xor() -> None: # Use eval() to avoid constand folding t = eval('True') # type: bool f = eval('False') # type: bool assert t ^ t == False assert t ^ f == True assert f ^ t == True assert f ^ f == False t ^= f assert t == True t ^= t assert t == False f ^= f assert f == False [case testIsinstanceBool] def test_isinstance_bool() -> None: a = True b = 1.0 c = 1 d = False assert isinstance(a, bool) == True assert isinstance(b, bool) == False assert isinstance(c, bool) == False assert isinstance(d, bool) == True