示例#1
0
def test_conditional(text, expected):
    assert expected == translate(text).commands[0]
示例#2
0
def test_lambda(text, expected):
    result = translate(text).commands[0]
    assert expected == result
示例#3
0
def test_definition(text, expected):
    assert expected == translate(text).commands[0]
示例#4
0
def test_transformer(text, expected):
    assert expected == translate(text, debug=False).commands[0]
示例#5
0
def test_procedure_call(text, expected):
    result = translate(text).commands[0]
    assert expected == result
示例#6
0
def test_cond(text, expected):
    ast = translate(text)
    assert expected == execute(ast, default_context())
示例#7
0
def test_set_(text, expected):
    assert expected == translate(text).commands[0]
示例#8
0
def test_definition():
    ast = translate("""
    (define add1 (lambda x (+ x 1)))
    (add1 3)""")
    result = execute(ast, default_context())
    assert 4 == result
示例#9
0
def test_procedure(text, expected):
    context = default_context()
    print(execute(translate(text), context))
    print(context)
    assert expected == execute(translate(text), default_context())
示例#10
0
def test_lambda(text, expected):
    context = default_context()
    assert expected == execute(translate(text), default_context())
示例#11
0
def test_variable():
    ast = translate('a')
    context = default_context()
    result = execute(ast, context.bind(Variable("a"), 1))
    assert 1 == result
示例#12
0
def test_literal(text, expected):
    print(execute(translate(text), default_context()))
    assert expected == execute(translate(text), default_context())