コード例 #1
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_truediv():
    assert solve_rpn('3 5 /') == Decimal('5') / Decimal('3')
    assert solve_rpn('-6 2 /') == Decimal('2') / Decimal('-6')
    assert solve_rpn('5 -2 /') == Decimal('-2') / Decimal('5')
    assert solve_rpn('3.4 2.2 /') == Decimal('2.2') / Decimal('3.4')
    assert solve_rpn('5 4 / 3 /') == Decimal('3') / (Decimal('4') /
                                                     Decimal('5'))
コード例 #2
0
def test_truediv():
    assert solve_rpn('3 5 /') == Decimal('5') / Decimal('3')
    assert solve_rpn('-6 2 /') == Decimal('2') / Decimal('-6')
    assert solve_rpn('5 -2 /') == Decimal('-2') / Decimal('5')
    assert solve_rpn('3.4 2.2 /') == Decimal('2.2') / Decimal('3.4')
    assert solve_rpn('5 4 / 3 /') == Decimal('3') / (Decimal('4') /
                                                     Decimal('5'))
コード例 #3
0
def test_pow():
    assert solve_rpn('3 5 **') == 5**3
    assert solve_rpn('-5 2 **') == 2**(-5)
    assert solve_rpn('5 -2 **') == (-2)**5
    assert solve_rpn('3.4 2.2 **') == Decimal('2.2')**Decimal('3.4')
    assert solve_rpn('5 4 ** 3 **') == Decimal('3')**(
        Decimal('4')**Decimal('5'))
コード例 #4
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_pow():
    assert solve_rpn('3 5 **') == 5 ** 3
    assert solve_rpn('-5 2 **') == 2 ** (-5)
    assert solve_rpn('5 -2 **') == (-2) ** 5
    assert solve_rpn('3.4 2.2 **') == Decimal('2.2') ** Decimal('3.4')
    assert solve_rpn('5 4 ** 3 **') == Decimal('3') ** (Decimal('4') **
                                                        Decimal('5'))
コード例 #5
0
def test_decimal_errors():
    with pytest.raises(decimal.Overflow):
        solve_rpn('999999999999999999999999999 9999999999999999 **')

    with pytest.raises(decimal.InvalidOperation):
        solve_rpn('-5 sqrt')

    with pytest.raises(decimal.DivisionByZero):
        solve_rpn('0 5 /')
        solve_rpn('0 5 //')
コード例 #6
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_decimal_errors():
    with pytest.raises(decimal.Overflow):
        solve_rpn('999999999999999999999999999 9999999999999999 **')

    with pytest.raises(decimal.InvalidOperation):
        solve_rpn('-5 sqrt')

    with pytest.raises(decimal.DivisionByZero):
        solve_rpn('0 5 /')
        solve_rpn('0 5 //')
コード例 #7
0
def test_rpn_error():
    with pytest.raises(RPNError):
        solve_rpn('3 +')

    with pytest.raises(RPNError):
        solve_rpn('3 3 3 +')

    with pytest.raises(RPNError):
        solve_rpn('3 4 + 3 - *')

    with pytest.raises(RPNError):
        solve_rpn('3 4 + a -')
コード例 #8
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_rpn_error():
    with pytest.raises(RPNError):
        solve_rpn('3 +')

    with pytest.raises(RPNError):
        solve_rpn('3 3 3 +')

    with pytest.raises(RPNError):
        solve_rpn('3 4 + 3 - *')

    with pytest.raises(RPNError):
        solve_rpn('3 4 + a -')
コード例 #9
0
ファイル: calculator.py プロジェクト: pkchv/polystack-rpn
def compute(expression):
    try:
        solved = rpn.solve_rpn(expression)
        return str(solved.to_eng_string())
    except decimal.DivisionByZero:
        return "DivisionByZero"
    except decimal.InvalidOperation:
        return "InvalidOperation"
    except decimal.Overflow:
        return "Overflow"
    except:
        return "SyntaxError"
コード例 #10
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_sub():
    assert solve_rpn('3 5 -') == 5 - 3
    assert solve_rpn('-5 2 -') == 2 - (-5)
    assert solve_rpn('5 -2 -') == (-2) - 5
    assert solve_rpn('3.4 2.2 -') == Decimal('2.2') - Decimal('3.4')
    assert solve_rpn('5 4 - 3 -') == 3 - (4 - 5)
コード例 #11
0
def test_mod():
    assert solve_rpn('3 5 %') == 5 % 3
    assert solve_rpn('-5 2 %') == 2 % Decimal('-5')
    assert solve_rpn('5 -2 %') == Decimal('-2') % 5
    assert solve_rpn('3.4 2.2 %') == Decimal('2.2') % Decimal('3.4')
    assert solve_rpn('5 4 % 3 %') == 3 % (4 % 5)
コード例 #12
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_mul():
    assert solve_rpn('3 5 *') == 5 * 3
    assert solve_rpn('-5 2 *') == 2 * (-5)
    assert solve_rpn('5 -2 *') == (-2) * 5
    assert solve_rpn('3.4 2.2 *') == Decimal('2.2') * Decimal('3.4')
    assert solve_rpn('5 4 * 3 *') == 3 * (4 * 5)
コード例 #13
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_abs():
    assert solve_rpn('3 abs') == abs(3)
    assert solve_rpn('-5 abs') == abs(-5)
    assert solve_rpn('3.4 abs') == abs(Decimal('3.4'))
    assert solve_rpn('-3.4 abs') == abs(Decimal('-3.4'))
コード例 #14
0
def test_stack():
    assert solve_rpn('3 -4 abs + 7 * 10 100 sqrt - *') == 0
コード例 #15
0
def test_add():
    assert solve_rpn('3 5 +') == 5 + 3
    assert solve_rpn('-5 3 +') == 3 + (-5)
    assert solve_rpn('5 4 + 3 +') == 3 + (4 + 5)
    assert solve_rpn('3.4 2.2 +') == Decimal('2.2') + Decimal('3.4')
コード例 #16
0
def test_sqrt():
    assert solve_rpn('3 sqrt') == Decimal('3').sqrt()
    assert solve_rpn('3.4 sqrt') == Decimal('3.4').sqrt()
コード例 #17
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_whitespace():
    assert solve_rpn('  4   3 +   5  -     ') == -2
コード例 #18
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_stack():
    assert solve_rpn('3 -4 abs + 7 * 10 100 sqrt - *') == 0
コード例 #19
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_floor():
    assert solve_rpn('3.4 floor') == Decimal(3.4).__floor__()
    assert solve_rpn('-3.4 floor') == Decimal(-3.4).__floor__()
コード例 #20
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_add():
    assert solve_rpn('3 5 +') == 5 + 3
    assert solve_rpn('-5 3 +') == 3 + (-5)
    assert solve_rpn('5 4 + 3 +') == 3 + (4 + 5)
    assert solve_rpn('3.4 2.2 +') == Decimal('2.2') + Decimal('3.4')
コード例 #21
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_ceil():
    assert solve_rpn('3.4 ceil') == Decimal(3.4).__ceil__()
    assert solve_rpn('-3.4 ceil') == Decimal(-3.4).__ceil__()
コード例 #22
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_sqrt():
    assert solve_rpn('3 sqrt') == Decimal('3').sqrt()
    assert solve_rpn('3.4 sqrt') == Decimal('3.4').sqrt()
コード例 #23
0
def test_floordiv():
    assert solve_rpn('3 5 //') == 5 // 3
    assert solve_rpn('-5 2 //') == 2 // Decimal('-5')
    assert solve_rpn('5 -2 //') == Decimal('-2') // 5
    assert solve_rpn('3.4 2.2 //') == Decimal('2.2') // Decimal('3.4')
    assert solve_rpn('5 7 // 3 //') == 3 // (7 // 5)
コード例 #24
0
def test_abs():
    assert solve_rpn('3 abs') == abs(3)
    assert solve_rpn('-5 abs') == abs(-5)
    assert solve_rpn('3.4 abs') == abs(Decimal('3.4'))
    assert solve_rpn('-3.4 abs') == abs(Decimal('-3.4'))
コード例 #25
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_mod():
    assert solve_rpn('3 5 %') == 5 % 3
    assert solve_rpn('-5 2 %') == 2 % Decimal('-5')
    assert solve_rpn('5 -2 %') == Decimal('-2') % 5
    assert solve_rpn('3.4 2.2 %') == Decimal('2.2') % Decimal('3.4')
    assert solve_rpn('5 4 % 3 %') == 3 % (4 % 5)
コード例 #26
0
def test_ceil():
    assert solve_rpn('3.4 ceil') == Decimal(3.4).__ceil__()
    assert solve_rpn('-3.4 ceil') == Decimal(-3.4).__ceil__()
コード例 #27
0
def test_whitespace():
    assert solve_rpn('  4   3 +   5  -     ') == -2
コード例 #28
0
def test_floor():
    assert solve_rpn('3.4 floor') == Decimal(3.4).__floor__()
    assert solve_rpn('-3.4 floor') == Decimal(-3.4).__floor__()
コード例 #29
0
def test_sub():
    assert solve_rpn('3 5 -') == 5 - 3
    assert solve_rpn('-5 2 -') == 2 - (-5)
    assert solve_rpn('5 -2 -') == (-2) - 5
    assert solve_rpn('3.4 2.2 -') == Decimal('2.2') - Decimal('3.4')
    assert solve_rpn('5 4 - 3 -') == 3 - (4 - 5)
コード例 #30
0
def test_mul():
    assert solve_rpn('3 5 *') == 5 * 3
    assert solve_rpn('-5 2 *') == 2 * (-5)
    assert solve_rpn('5 -2 *') == (-2) * 5
    assert solve_rpn('3.4 2.2 *') == Decimal('2.2') * Decimal('3.4')
    assert solve_rpn('5 4 * 3 *') == 3 * (4 * 5)
コード例 #31
0
ファイル: test_rpn.py プロジェクト: dustinrohde/python-rpn
def test_floordiv():
    assert solve_rpn('3 5 //') == 5 // 3
    assert solve_rpn('-5 2 //') == 2 // Decimal('-5')
    assert solve_rpn('5 -2 //') == Decimal('-2') // 5
    assert solve_rpn('3.4 2.2 //') == Decimal('2.2') // Decimal('3.4')
    assert solve_rpn('5 7 // 3 //') == 3 // (7 // 5)