Пример #1
0
def test_injection():
    parse_maxima('c: x+1', globals=globals())
    # c created by parse_maxima
    assert c == x + 1

    parse_maxima('g: sqrt(81)', globals=globals())
    # g created by parse_maxima
    assert g == 9
Пример #2
0
def test_injection():
    parse_maxima("c: x+1", globals=globals())
    # c created by parse_maxima
    assert c == x + 1  # noqa:F821

    parse_maxima("g: sqrt(81)", globals=globals())
    # g created by parse_maxima
    assert g == 9  # noqa:F821
Пример #3
0
 def __init__(self, exprStringOrObj, exprStringType="sympy"):
     '''Initializes the object using string in a specific format or from an object'''
     self.properties = {}
     self.inRelation = {}
     self.outRelation = {}
     #jugaad for function overloading
     if type(exprStringOrObj) is str:
         flag = False
         try:
             if exprStringType == 'sympy':
                 self.symObj = parse_expr(exprStringOrObj)
                 #Note: Can use transformations as given in http://docs.sympy.org/dev/modules/parsing.html to improve the generality of possible expressions
             elif exprStringType == 'mathematica':
                 self.symObj = mathematica(exprStringOrObj)
             elif exprStringType == 'maxima':
                 self.symObj = parse_maxima(exprStringOrObj)
             else:
                 flag = true
         except:
             raise Exception("Error in parsing \'"+exprStringType+"\' code: \'"+exprStringOrObj+"\'")   
              
         if flag:
                 raise Exception("Currently parsing strings of type \'"+exprStringType+"\' has not been implemented for the symPy backend. Please use \'sympy\', \'mathematica\' or \'maxima\' syntax")
     else: #it is a sympy object directly
         self.symObj = exprStringOrObj
Пример #4
0
def plot(function_str, filename, x_min, x_max, y_min, y_max):
    expr = parse_maxima(function_str)
    config.output_file = path + filename
    config.frame_rate = 25
    config.pixel_width = 1280
    config.pixel_height = 720
    scene = FunctionPlot(expr=expr,
                         x_min=x_min,
                         x_max=x_max,
                         y_min=y_min,
                         y_max=y_max)
    scene.render()
    return filename
def test_parser():
    assert Abs(parse_maxima('float(1/3)') - 0.333333333) < 10**(-5)
    assert parse_maxima('13^26') == 91733330193268616658399616009
    assert parse_maxima('sin(%pi/2) + cos(%pi/3)') == Rational(3, 2)
    assert parse_maxima('log(%e)') == 1
def test_maxima_functions():
    assert parse_maxima('expand( (x+1)^2)') == x**2 + 2 * x + 1
    assert parse_maxima('factor( x**2 + 2*x + 1)') == (x + 1)**2
    assert parse_maxima('2*cos(x)^2 + sin(x)^2') == 2 * cos(x)**2 + sin(x)**2
    assert parse_maxima('trigexpand(sin(2*x)+cos(2*x))') == \
        -1 + 2*cos(x)**2 + 2*cos(x)*sin(x)
    assert parse_maxima('solve(x^2-4,x)') == [-2, 2]
    assert parse_maxima('limit((1+1/x)^x,x,inf)') == E
    assert parse_maxima('limit(sqrt(-x)/x,x,0,minus)') == -oo
    assert parse_maxima('diff(x^x, x)') == x**x * (1 + log(x))
    assert parse_maxima('sum(k, k, 1, n)',
                        name_dict=dict(
                            n=Symbol('n', integer=True),
                            k=Symbol('k', integer=True))) == (n**2 + n) / 2
    assert parse_maxima('product(k, k, 1, n)',
                        name_dict=dict(n=Symbol('n', integer=True),
                                       k=Symbol('k',
                                                integer=True))) == factorial(n)
    assert parse_maxima('ratsimp((x^2-1)/(x+1))') == x - 1
    assert Abs(
        parse_maxima('float(sec(%pi/3) + csc(%pi/3))') -
        3.154700538379252) < 10**(-5)
def test_injection():
    parse_maxima('c: x+1', globals=globals())
    assert c == x + 1

    parse_maxima('g: sqrt(81)', globals=globals())
    assert g == 9
Пример #8
0
def test_parser():
    assert Abs(parse_maxima('float(1/3)') - 0.333333333) < 10**(-5)
    assert parse_maxima('13^26') == 91733330193268616658399616009
    assert parse_maxima('sin(%pi/2) + cos(%pi/3)') == Rational(3, 2)
    assert parse_maxima('log(%e)') == 1
Пример #9
0
def test_maxima_functions():
    assert parse_maxima('expand( (x+1)^2)') == x**2 + 2*x + 1
    assert parse_maxima('factor( x**2 + 2*x + 1)') == (x + 1)**2
    assert parse_maxima('trigsimp(2*cos(x)^2 + sin(x)^2)') == 2 - sin(x)**2
    assert parse_maxima('trigexpand(sin(2*x)+cos(2*x))') == (
        -1) + 2*cos(x)**2 + 2*cos(x)*sin(x)
    assert parse_maxima('solve(x^2-4,x)') == [-2, 2]
    assert parse_maxima('limit((1+1/x)^x,x,inf)') == E
    assert parse_maxima('limit(sqrt(-x)/x,x,0,minus)') == -oo
    assert parse_maxima('diff(x^x, x)') == x**x*(1 + log(x))
    assert parse_maxima('sum(k, k, 1, n)', name_dict=dict(
                n=Symbol('n', integer=True),
                k=Symbol('k', integer=True)
                )) == (n**2 + n)/2
    assert parse_maxima('product(k, k, 1, n)',
            name_dict=dict(
                n=Symbol('n', integer=True),
                k=Symbol('k', integer=True)
                )
            ) == factorial(n)
    assert parse_maxima('ratsimp((x^2-1)/(x+1))') == x - 1
    assert Abs( parse_maxima(
        'float(sec(%pi/3) + csc(%pi/3))') - 3.154700538379252) < 10**(-5)
Пример #10
0
def test_injection():
    parse_maxima('c: x+1', globals=globals())
    assert c == x + 1

    parse_maxima('g: sqrt(81)', globals=globals())
    assert g == 9
Пример #11
0
def test_maxima_functions():
    assert parse_maxima("expand( (x+1)^2)") == x**2 + 2 * x + 1
    assert parse_maxima("factor( x**2 + 2*x + 1)") == (x + 1)**2
    assert parse_maxima("2*cos(x)^2 + sin(x)^2") == 2 * cos(x)**2 + sin(x)**2
    assert parse_maxima("trigexpand(sin(2*x)+cos(2*x))"
                        ) == -1 + 2 * cos(x)**2 + 2 * cos(x) * sin(x)
    assert parse_maxima("solve(x^2-4,x)") == [-2, 2]
    assert parse_maxima("limit((1+1/x)^x,x,inf)") == E
    assert parse_maxima("limit(sqrt(-x)/x,x,0,minus)") is -oo
    assert parse_maxima("diff(x^x, x)") == x**x * (1 + log(x))
    assert (parse_maxima(
        "sum(k, k, 1, n)",
        name_dict=dict(n=Symbol("n", integer=True),
                       k=Symbol("k", integer=True)),
    ) == (n**2 + n) / 2)
    assert parse_maxima(
        "product(k, k, 1, n)",
        name_dict=dict(n=Symbol("n", integer=True),
                       k=Symbol("k", integer=True)),
    ) == factorial(n)
    assert parse_maxima("ratsimp((x^2-1)/(x+1))") == x - 1
    assert Abs(
        parse_maxima("float(sec(%pi/3) + csc(%pi/3))") -
        3.154700538379252) < 10**(-5)
Пример #12
0
def test_maxima_functions():
    assert parse_maxima("expand( (x+1)^2)") == x ** 2 + 2 * x + 1
    assert parse_maxima("factor( x**2 + 2*x + 1)") == (x + 1) ** 2
    assert parse_maxima("trigsimp(2*cos(x)^2 + sin(x)^2)") == 2 - sin(x) ** 2
    assert parse_maxima("trigexpand(sin(2*x)+cos(2*x))") == (-1) + 2 * cos(x) ** 2 + 2 * cos(x) * sin(x)
    assert parse_maxima("solve(x^2-4,x)") == [2, -2]
    assert parse_maxima("limit((1+1/x)^x,x,inf)") == E
    assert parse_maxima("limit(sqrt(-x)/x,x,0,minus)") == -oo
    assert parse_maxima("diff(x^x, x)") == x ** x * (1 + log(x))
    assert (
        parse_maxima("sum(k, k, 1, n)", name_dict=dict(n=Symbol("n", integer=True), k=Symbol("k", integer=True)))
        == (n ** 2 + n) / 2
    )
    assert parse_maxima(
        "product(k, k, 1, n)", name_dict=dict(n=Symbol("n", integer=True), k=Symbol("k", integer=True))
    ) == factorial(n)
    assert parse_maxima("ratsimp((x^2-1)/(x+1))") == x - 1
    assert Abs(parse_maxima("float(sec(%pi/3) + csc(%pi/3))") - 3.154700538379252) < 10 ** (-5)
Пример #13
0
def test_injection():
    parse_maxima("c: x+1", globals=globals())
    assert c == x + 1

    parse_maxima("g: sqrt(81)", globals=globals())
    assert g == 9