Ejemplo n.º 1
0
def test_SymbolTreeNode_err_operator_support_not_implimented():
    SymbolTreeNodeExtended = type('SymbolTreeNodeExtended', (SymbolTreeNode, ),
                                  {})
    SymbolTreeNodeExtended.supported_operators.append('¬')

    with pytest.raises(NotImplementedError):
        SymbolTreeNodeExtended(get_symbols('2 ¬ 3')).calculate()
Ejemplo n.º 2
0
def test_SymbolTreeNode_handle_plus_minus():
    assert str(SymbolTreeNode(get_symbols('1 + -1'))) == "[1, '+', -1]"
Ejemplo n.º 3
0
def test_get_symbols_allows_invalid_symbols():
    assert get_symbols('¬') == ['¬']
Ejemplo n.º 4
0
def test_get_symbols_float_with_trailing_dot_okay():
    assert get_symbols('2. +') == [2.0, '+']
Ejemplo n.º 5
0
def test_get_symbols_ignores_spaces():
    assert get_symbols('2.1 + 5') == [2.1, '+', 5]
Ejemplo n.º 6
0
def test_get_symbols_can_parse_multiple():
    assert get_symbols('2.1+5') == [2.1, '+', 5]
Ejemplo n.º 7
0
def test_get_symbols_can_parse_open_parenthesis():
    assert get_symbols('(') == ['(']
Ejemplo n.º 8
0
def test_SymbolTreeNode_calculate_no_truncate_on_divide():
    assert SymbolTreeNode(get_symbols('3/2')).calculate() == 1.5
Ejemplo n.º 9
0
def test_get_symbols_can_parse_divde():
    assert get_symbols('/') == ['/']
Ejemplo n.º 10
0
def test_SymbolTreeNode_calculate_add_minus_nested():
    assert SymbolTreeNode(get_symbols('1 + 1 - 1')).calculate() == 1
Ejemplo n.º 11
0
def test_SymbolTreeNode_calculate_add():
    assert SymbolTreeNode(get_symbols('1 + 1')).calculate() == 2
Ejemplo n.º 12
0
def test_SymbolTreeNode_handle_minus_multiply():
    with pytest.raises(ParseError):
        SymbolTreeNode(get_symbols('1 - * 1'))
Ejemplo n.º 13
0
def test_SymbolTreeNode_handle_multiply_plus():
    assert str(SymbolTreeNode(get_symbols('1 * +1'))) == "[1, '*', 1]"
Ejemplo n.º 14
0
def test_SymbolTreeNode_handle_multiply_minus():
    assert str(SymbolTreeNode(get_symbols('1 * -1'))) == "[1, '*', -1]"
Ejemplo n.º 15
0
def test_SymbolTreeNode_handle_double_minus():
    assert str(SymbolTreeNode(get_symbols('1 - -1'))) == "[1, '-', -1]"
Ejemplo n.º 16
0
def test_get_symbols_can_parse_multiply():
    assert get_symbols('*') == ['*']
Ejemplo n.º 17
0
def test_SymbolTreeNode_calculate_stacked_ops6():
    assert SymbolTreeNode(
        get_symbols('2^3*(3+6)*7/2-(10^2+(1*2))')).calculate() == 150
Ejemplo n.º 18
0
def test_SymbolTreeNode_calculate_multiply():
    assert SymbolTreeNode(get_symbols('1 * 3')).calculate() == 3
Ejemplo n.º 19
0
def test_get_symbols_can_parse_power():
    assert get_symbols('^') == ['^']
Ejemplo n.º 20
0
def test_SymbolTreeNode_calculate_divide():
    assert SymbolTreeNode(get_symbols('15 / 3')).calculate() == 5
Ejemplo n.º 21
0
def test_get_symbols_can_parse_close_parenthesis():
    assert get_symbols(')') == [')']
Ejemplo n.º 22
0
def test_SymbolTreeNode_calculate_power():
    assert SymbolTreeNode(get_symbols('2 ^ 3')).calculate() == 8
Ejemplo n.º 23
0
def test_get_symbols_can_parse_multiple_all_symbols():
    assert get_symbols('2.1*3+5/2-(2^4)') == [
        2.1, '*', 3, '+', 5, '/', 2, '-', '(', 2, '^', 4, ')'
    ]
Ejemplo n.º 24
0
def test_SymbolTreeNode_calculate_mult_add_mult():
    assert SymbolTreeNode(get_symbols('2*3 + 6*7')).calculate() == 48
Ejemplo n.º 25
0
def test_get_symbols_ignores_tabs():
    assert get_symbols('2.1\t+\t5') == [2.1, '+', 5]
Ejemplo n.º 26
0
def test_SymbolTreeNode_calculate_stacked_ops2():
    assert SymbolTreeNode(get_symbols('2*(3+6)*7/2')).calculate() == 63
Ejemplo n.º 27
0
def test_get_symbols_float_with_leading_dot_okay():
    assert get_symbols('.2 +') == [0.2, '+']
Ejemplo n.º 28
0
def test_SymbolTreeNode_calculate_stacked_ops4():
    assert SymbolTreeNode(get_symbols('2^3*(3+6)*7/2-100')).calculate() == 152
Ejemplo n.º 29
0
def test_get_symbols_can_parse_ints():
    assert get_symbols('1984') == [1984]
Ejemplo n.º 30
0
def test_SymbolTreeNode_handle_triple_plus():
    assert str(SymbolTreeNode(get_symbols('1 + + +1'))) == "[1, '+', 1]"