示例#1
0
def test_math_min_expr_5():
    program = """
a = min(1 + 10, 1 - 2)
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('r0') == -1
示例#2
0
def test_math_min_expr_2():
    program = """
a =  min(1, 2) + 10
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('r0') == 11
示例#3
0
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
示例#6
0
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
示例#7
0
def test_sleep():
    program = """
sleep(1)
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_total_sleep() == 1
示例#8
0
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
示例#9
0
def test_not_expr_false():
    program = """
out = not 0
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 1
示例#10
0
def test_exprstmt_mul_2():
    program = """
out = 1 * 2 * 3
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 6
示例#11
0
def test_exprstmt_div():
    program = """
out = 1 / 2
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 0.5
示例#12
0
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
示例#14
0
def test_exprstmt_mod():
    program = """
out = 5 % 2
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 1
示例#15
0
def test_exprstmt_add_mul_par():
    program = """
out = (1 + 2) * 10
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 30
示例#16
0
def test_math_not_min_1():
    program = """
a = not min(0, 1)
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('r0') == 1
示例#17
0
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
示例#18
0
def test_not_expr_neg_true():
    program = """
out = not -1
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 0
示例#19
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
示例#20
0
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
示例#22
0
def test_var_assign():
    program = """
a = 1
out = a
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == 1
示例#23
0
def test_var_negative():
    program = """
a = -1
out = a
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_variable('o') == -1
示例#24
0
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
示例#26
0
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
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
示例#28
0
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
示例#30
0
def test_sleep_args_1():
    program = """
a = 2
sleep(min(a + 1, a))
"""
    vm = MIPSVM(program)
    vm.execute()
    assert vm.get_total_sleep() == 2