Ejemplo n.º 1
0
def test_main_pos3():
    env = Env(make_global_frame())
    make_counter = """
    ((lambda ()
             (define counter
                     ((lambda (x)
                              (lambda () (update x (add x 1))
                                         x))
                              0))
             (counter)
             (counter)
             (counter)
    ))"""
    actual = read_expr(make_counter)[0].eval(env)
    expected = NUMBER(3)
    eq_(actual, expected)
Ejemplo n.º 2
0
def test_eval_pos5():
    env = Env({SYMBOL('add'): PRIMITIVE_FUNC(fn_add)})
    actual = LIST(SYMBOL('add'), NUMBER(10), NUMBER(20)).eval(env)
    expected = NUMBER(30)
    eq_(actual, expected)
Ejemplo n.º 3
0
def test_eval_pos4():
    env = Env({SYMBOL('if'): SPECIAL_FORM(sf_if)})
    actual = LIST(SYMBOL('if'), TRUE(), NUMBER(10), NUMBER(20)).eval(env)
    expected = NUMBER(10)
    eq_(actual, expected)
Ejemplo n.º 4
0
def test_eval_pos3():
    env = Env({SYMBOL('foo'): NUMBER(100)})
    actual = SYMBOL('foo').eval(env)
    expected = NUMBER(100)
    eq_(actual, expected)
Ejemplo n.º 5
0
def test_eval_pos2():
    actual = LIST(SPECIAL_FORM(sf_if), TRUE(), NUMBER(10),
                  NUMBER(20)).eval(Env({}))
    expected = NUMBER(10)
    eq_(actual, expected)
Ejemplo n.º 6
0
def test_eval_pos1():
    actual = LIST(PRIMITIVE_FUNC(fn_add), NUMBER(1), NUMBER(2)).eval(Env({}))
    expected = NUMBER(3)
    eq_(actual, expected)
Ejemplo n.º 7
0
def test_eval_pos0():
    actual = NIL().eval(Env({}))
    expected = NIL()
    eq_(actual, expected)
Ejemplo n.º 8
0
def test_main_pos2():
    env = Env(make_global_frame())
    actual = read_expr('((lambda (x y) (add x y)) 10 20)')[0].eval(env)
    expected = NUMBER(30)
    eq_(actual, expected)
Ejemplo n.º 9
0
def test_main_pos0():
    env = Env({SYMBOL('if'): SPECIAL_FORM(sf_if), SYMBOL('true'): TRUE()})
    actual = read_expr('(if true 1 2)')[0].eval(env)
    expected = NUMBER(1)
    eq_(actual, expected)