Ejemplo n.º 1
0
def test_load_constant():
    bc = ByteCode(to_code([
        LOAD_CONSTANT_FLOAT, 0,
        RETURN, 0]),
        [], [12.2], [], [])
    frame = interpret(bc)
    assert frame.test_valuestack == [W_FloatObject(12.2)]
    assert frame.vars == []
Ejemplo n.º 2
0
def test_jumps():
    bc = ByteCode(to_code([
        LOAD_CONSTANT_FLOAT, 0,
        JUMP_IF_FALSE, 8,
        LOAD_CONSTANT_FLOAT, 1,
        JUMP_ABSOLUTE, 10,
        LOAD_CONSTANT_FLOAT, 2,
        RETURN, 0]),
        [], [0.0, -1.0, 1.0], [], [])
    frame = interpret(bc)
    assert frame.test_valuestack == [W_FloatObject(1.0)]

    bc = ByteCode(to_code([
        LOAD_CONSTANT_FLOAT, 0,
        JUMP_IF_FALSE, 8,
        LOAD_CONSTANT_FLOAT, 1,
        JUMP_ABSOLUTE, 10,
        LOAD_CONSTANT_FLOAT, 2,
        RETURN, 0]),
        [], [1.0, -1.0, 2.0], [], [])
    frame = interpret(bc)
    assert frame.test_valuestack == [W_FloatObject(-1.0)]