Simplify test_expression for py.test and adapt it for explain method
This commit is contained in:
parent
6d8b1786b3
commit
3c21b42d6c
@ -1,63 +1,77 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding: utf-8
|
||||
|
||||
""" Testing Expression """
|
||||
|
||||
|
||||
import unittest
|
||||
|
||||
from pymath.expression import Expression
|
||||
from pymath.fraction import Fraction
|
||||
from pymath.generic import first_elem
|
||||
from pymath.render import txt, tex
|
||||
|
||||
|
||||
class TestExpression(unittest.TestCase):
|
||||
"""Testing functions from pymath.expression"""
|
||||
|
||||
def setup(self):
|
||||
Expression.set_render(txt)
|
||||
|
||||
def test_init_from_str(self):
|
||||
def test_init_from_str():
|
||||
exp = Expression("2 + 3")
|
||||
self.assertEqual(exp.postfix_tokens, [2, 3, "+"])
|
||||
assert exp.postfix_tokens == [2, 3, "+"]
|
||||
|
||||
def test_init_from_exp(self):
|
||||
def test_init_from_exp():
|
||||
pass
|
||||
|
||||
def test_list(self):
|
||||
def test_init_list():
|
||||
exp = Expression([2, 3, "+"])
|
||||
self.assertEqual(exp.postfix_tokens, [2, 3, "+"])
|
||||
assert exp.postfix_tokens == [2, 3, "+"]
|
||||
|
||||
def test_simplify_frac(self):
|
||||
exp = Expression("1/2 - 4")
|
||||
steps = ['\\frac{ 1 }{ 2 } - 4', \
|
||||
'\\frac{ 1 \\times 1 }{ 2 \\times 1 } - \\frac{ 4 \\times 2 }{ 1 \\times 2 }',\
|
||||
'\\frac{ 1 }{ 2 } - \\frac{ 8 }{ 2 }',\
|
||||
'\\frac{ 1 - 8 }{ 2 }',\
|
||||
'\\frac{ -7 }{ 2 }']
|
||||
self.assertEqual(steps, list(exp.simplify()))
|
||||
Expression.set_render(txt)
|
||||
def test_init_one_element_int_from_str():
|
||||
exp = Expression("1")
|
||||
|
||||
def test_add_exp(self):
|
||||
def test_init_one_element_int_from_list():
|
||||
exp = Expression([1])
|
||||
|
||||
#def test_init_one_element_str_from_str():
|
||||
# exp = Expression("x")
|
||||
#
|
||||
#def test_init_one_element_str_from_list():
|
||||
# exp = Expression(["x"])
|
||||
|
||||
def test_simplify_exp():
|
||||
exp = Expression("1 + 2 * 3")
|
||||
simplified = exp.simplify()
|
||||
ans = Expression("7")
|
||||
assert ans == simplified
|
||||
|
||||
#def test_simplify_frac():
|
||||
# exp = Expression("1/2 - 4")
|
||||
# simplified = exp.simplify()
|
||||
# ans = Expression("-7/2")
|
||||
# assert simplified == ans
|
||||
#
|
||||
#def test_explain_frac():
|
||||
# exp = Expression("1/2 - 4")
|
||||
# simplified = exp.simplify()
|
||||
#
|
||||
# steps = ['\\frac{ 1 }{ 2 } - 4', \
|
||||
# '\\frac{ 1 \\times 1 }{ 2 \\times 1 } - \\frac{ 4 \\times 2 }{ 1 \\times 2 }',\
|
||||
# '\\frac{ 1 }{ 2 } - \\frac{ 8 }{ 2 }',\
|
||||
# '\\frac{ 1 - 8 }{ 2 }',\
|
||||
# '\\frac{ -7 }{ 2 }']
|
||||
# assert simplified.steps == list(exp.simplify())
|
||||
|
||||
def test_add_exp():
|
||||
e = Expression("12- 4")
|
||||
f = Expression("4 + 1")
|
||||
g = e + f
|
||||
self.assertEqual(g.postfix_tokens, [12, 4, '-', 4, 1, "+", "+"])
|
||||
assert g.postfix_tokens == [12, 4, '-', 4, 1, "+", "+"]
|
||||
|
||||
def test_mul_exp(self):
|
||||
def test_mul_exp():
|
||||
e = Expression("12- 4")
|
||||
f = Expression("4 + 1")
|
||||
g = e * f
|
||||
self.assertEqual(g.postfix_tokens, [12, 4, '-', 4, 1, "+", "*"])
|
||||
assert g.postfix_tokens == [12, 4, '-', 4, 1, "+", "*"]
|
||||
|
||||
def test_neg_exp(self):
|
||||
def test_neg_exp():
|
||||
e = Expression("12- 4")
|
||||
g = -e
|
||||
self.assertEqual(g.postfix_tokens, [12, 4, '-', '-'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
assert g.postfix_tokens == [12, 4, '-', '-']
|
||||
|
||||
|
||||
# -----------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user