def test_if(): bytecode = compile_ast(If(ConstantNum(1.0), ConstantNum(2.0))) expected_code = to_code([ LOAD_CONSTANT_FLOAT, 0, JUMP_IF_FALSE, 6, LOAD_CONSTANT_FLOAT, 1, RETURN, 0]) assert bytecode.code == expected_code assert bytecode.names == [] assert bytecode.constants_float == [1.0, 2.0] bytecode = compile_ast( If(ConstantNum(1.0), ConstantNum(2.0), ConstantNum(3.0))) expected_code = to_code([ LOAD_CONSTANT_FLOAT, 0, JUMP_IF_FALSE, 8, LOAD_CONSTANT_FLOAT, 1, JUMP_ABSOLUTE, 10, LOAD_CONSTANT_FLOAT, 2, RETURN, 0]) print dis(bytecode.code) assert bytecode.code == expected_code assert bytecode.names == [] assert bytecode.constants_float == [1.0, 2.0, 3.0]
def test_dis(): code = to_code([LOAD_CONSTANT_FLOAT, 1, RETURN, 0]) assert dis(code) == 'LOAD_CONSTANT_FLOAT 1\nRETURN 0'