cimport cython DEF INT_VAL = 1 def _not_constant_but_False(): return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def int_bool_result(): """ >>> int_bool_result() True """ if 5: return True else: return False @cython.test_fail_if_path_exists("//IfStatNode") def constant_if_elif_else(): """ >>> constant_if_elif_else() True """ if 0: return False elif 5: return True else: return False @cython.test_fail_if_path_exists("//PrintStatNode") @cython.test_assert_path_exists("//IfStatNode", "//IfClauseNode") def non_constant_if_elif_else1(): """ >>> non_constant_if_elif_else1() True """ if _not_constant_but_False(): return False elif 5: return True else: print(False) @cython.test_fail_if_path_exists("//PrintStatNode") @cython.test_assert_path_exists("//IfStatNode", "//IfClauseNode") def non_constant_if_elif_else2(): """ >>> non_constant_if_elif_else2() True """ if _not_constant_but_False(): return False elif 0: print(False) else: return True @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_not_compare_true(): """ >>> if_not_compare_true() False """ if not 0 == 0: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_true(): """ >>> if_compare_true() True """ if 0 == 0: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_false(): """ >>> if_compare_false() False """ if 0 == 1: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_or_true(): """ >>> if_compare_or_true() True """ if 0 == 1 or 1 == 1: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_or_false(): """ >>> if_compare_or_false() False """ if 0 == 1 or 1 == 0: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_and_true(): """ >>> if_compare_and_true() True """ if 0 == 0 and 1 == 1: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_and_false(): """ >>> if_compare_and_false() False """ if 1 == 1 and 1 == 0: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def if_compare_cascaded(): """ >>> if_compare_cascaded() True """ if 0 < 1 < 2 < 3: return True else: return False @cython.test_fail_if_path_exists("//CoerceToBooleanNode", "//ListNode", "//IfStatNode") def list_bool_result_true(): """ >>> list_bool_result_true() True """ if [1,2,3]: return True else: return False @cython.test_fail_if_path_exists("//CoerceToBooleanNode", "//ListNode", "//IfStatNode") def list_bool_result_false(): """ >>> list_bool_result_false() False """ if []: return True else: return False @cython.test_fail_if_path_exists("//PrimaryCmpNode", "//IfStatNode") def compile_time_DEF_if(): """ >>> compile_time_DEF_if() True """ if INT_VAL != 0: return True else: return False