コード例 #1
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_lt_false_2():
    assert evaluate(parse('(< 3 2)')) == 0
コード例 #2
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_div():
    assert evaluate(parse('(/ 6 2)')) == 3
コード例 #3
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_div_by_zero():
    with raises(ZeroDivisionError):
        evaluate(parse('(/ 6 0)'))
コード例 #4
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_numexp_inner():
    assert evaluate(parse('(+ 2 (* 3 4))')) == 14
コード例 #5
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_no_operator_detail():
    with raises(InvalidOperator) as excinfo:
        evaluate(parse('(2 3)'))

    assert str(excinfo.value) == 'invalid operator: 2'
コード例 #6
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_plus_one():
    assert parse('(++ 2)') == ['++', 2]
コード例 #7
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_op():
    import operator
    assert evaluate(parse('+')) == operator.add
コード例 #8
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_number():
    assert parse('3') == 3
コード例 #9
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_negative_number():
    assert parse('-3') == -3
コード例 #10
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_too_few_args():
    with raises(MissingArguments):
        evaluate(parse('(* 1)'))
コード例 #11
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_too_many_args():
    with raises(TooManyArguments):
        evaluate(parse('(* 1 2 3)'))
コード例 #12
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_plus_number():
    with raises(InvalidOperator):
        evaluate(parse('+1'))
コード例 #13
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_gt_false_2():
    assert evaluate(parse('(> 3 4)')) == 0
コード例 #14
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_gt_true():
    assert evaluate(parse('(> 4 3)')) == 1
コード例 #15
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_open_paren():
    with raises(UnexpectedEndOfInput):
        parse('(')
コード例 #16
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_symbol():
    assert parse('+') == '+'
コード例 #17
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_right_paren_detail():
    with raises(UnexpectedRightParen) as excinfo:
        parse(')')

    assert str(excinfo.value) == 'unexpected )'
コード例 #18
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_plus_number_as_symbol():
    assert parse('+1') == '+1'
コード例 #19
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_int():
    assert evaluate(parse('3')) == 3
コード例 #20
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_numexp():
    assert parse('(+ 2 3)') == ['+', 2, 3]
コード例 #21
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_numexp():
    assert evaluate(parse('(+ 2 3)')) == 5
コード例 #22
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_numexp_inner():
    assert parse('(+ 2 (* 3 4))') == ['+', 2, ['*', 3, 4]]
コード例 #23
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_no_operator2():
    with raises(InvalidOperator):
        evaluate(parse('(2 3)'))
コード例 #24
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_empty_paren():
    assert parse('()') == []
コード例 #25
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_sub():
    assert evaluate(parse('(- 2 3)')) == -1
コード例 #26
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_empty():
    with raises(UnexpectedEndOfInput):
        parse('')
コード例 #27
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_div_returns_int():
    assert evaluate(parse('(/ 6 4)')) == 1
コード例 #28
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_parse_right_paren():
    with raises(UnexpectedRightParen):
        parse(')')
コード例 #29
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_eq_true():
    assert evaluate(parse('(= 2 2)')) == 1
コード例 #30
0
ファイル: test_kamin0.py プロジェクト: pliba/kaminpy
def test_eval_lt_true():
    assert evaluate(parse('(< 2 3)')) == 1