def test_math_min_expr_5(): program = """ a = min(1 + 10, 1 - 2) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == -1
def test_math_min_expr_2(): program = """ a = min(1, 2) + 10 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 11
def test_math_min_expr_3(): program = """ a = 1 if 10 + min(1, 2) else 0 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 1
def test_condition_assignment_ternary_false(): program = """ out = 1 if 1 and 0 else 0 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 0
def test_condition_assignment_and_true(): program = """ out = 1 and 1 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 1
def test_not_test_ternary_true(): program = """ out = 1 if not 1 else 0 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 0
def test_sleep(): program = """ sleep(1) """ vm = MIPSVM(program) vm.execute() assert vm.get_total_sleep() == 1
def test_math_min_exp_4(): program = """ a = min(3, 1 if 0 else 2) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 2
def test_not_expr_false(): program = """ out = not 0 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 1
def test_exprstmt_mul_2(): program = """ out = 1 * 2 * 3 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 6
def test_exprstmt_div(): program = """ out = 1 / 2 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 0.5
def test_exprstmt_add_div_par(): program = """ out = (10 + 20) / 2 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 15
def test_if_else_ternary_true_expr(): program = """ out = 1 * 10 if 1 * 2 else 2 * 10 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 10
def test_exprstmt_mod(): program = """ out = 5 % 2 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 1
def test_exprstmt_add_mul_par(): program = """ out = (1 + 2) * 10 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 30
def test_math_not_min_1(): program = """ a = not min(0, 1) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 1
def test_math_if_ternary_min_1(): program = """ a = 0 if min(0, 1) else 1 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 1
def test_not_expr_neg_true(): program = """ out = not -1 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 0
def test_math_min_exp_1(): program = """ a = min(1 if 1 else 2, 3) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 1
def test_math_max_2(): program = """ a = max(2, 1) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('r0') == 2
def test_if_else_ternary_expr_r_true(): program = """ out = (1 if 1 else 2) + 10 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 11
def test_var_assign(): program = """ a = 1 out = a """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 1
def test_var_negative(): program = """ a = -1 out = a """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == -1
def test_math_rand_3(): program = """ a = min(rand(), 1) """ vm = MIPSVM(program) vm.execute() assert vm.mips_len == 2 assert vm.get_variable('r0') == 0.5
def test_ternary_call_cond_true_improve(): program = """ out = min(1, 2) if max(0, 1) else max(3, 4) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 1 assert vm.mips_len <= 4
def test_exception_sleep_return_1(): program = """ a = sleep(2) """ vm = MIPSVM(program) vm.execute() assert vm.get_total_sleep() == 2 assert vm.get_variable('r0') == 0
def test_ternary_call_false_improve(): program = """ out = min(1, 2) if 0 else max(3, 4) """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 4 assert vm.mips_len <= 4
def test_math_rand_2(): program = """ a = rand() if True else 0 """ vm = MIPSVM(program) vm.execute() assert vm.mips_len == 4 assert vm.get_variable('r0') == 0.5
def test_if_else_ternary_false(): program = """ out = 1 if 0 else 2 """ vm = MIPSVM(program) vm.execute() assert vm.get_variable('o') == 2 assert vm.mips_len == 4
def test_sleep_args_2(): program = """ a = 2 sleep(1 if a else 2) """ vm = MIPSVM(program) vm.execute() assert vm.get_total_sleep() == 1