import unittest
|
from numint.expression import Lark_StandAlone
|
from numint.expression_transformer import ExpressionTransformer
|
|
class MyTestCase(unittest.TestCase):
|
"""
|
tests if the grammer file 'expression.lark' work
|
"""
|
|
def test_prio_product_exponent(self):
|
parser = Lark_StandAlone()
|
tree = parser.parse("x ** -3 * sin(12)") # => (x^3) * sin(12)
|
print(tree.pretty())
|
|
def test_prio_product_exponent_revert(self):
|
parser = Lark_StandAlone()
|
tree = parser.parse("sin(12) * x ** sqrt(4)") # => sin(12) * (x ** sqrt(4))
|
print(tree.pretty())
|
|
def test_use_transform(self):
|
parser = Lark_StandAlone(transformer=ExpressionTransformer())
|
tree = parser.parse("log(-12, 5) * x ** sqrt(4)") # => sin(12) * (x^sqrt(4))
|
self.assertEqual(tree, 'math.log(-12, 5) * x ** math.sqrt(4)')
|
|
print(tree)
|
|
def test_use_function_in_function(self):
|
parser = Lark_StandAlone(transformer=ExpressionTransformer())
|
tree = parser.parse("tan(radians(x))") # =>
|
self.assertEqual(tree, 'math.tan(math.radians(x))')
|
|
print(tree)
|
|
|
|
if __name__ == '__main__':
|
unittest.main()
|