It doesn't work because you've hard-coded the symbol x into the function, and then used a different one in the tests (Symbol("x", real=True) != Symbol("x")). Generally functions like this take a parameter for the variable, like Delta(expr, x, d=1).
Unrelated: why are you using integrate to compute this? That is very inefficient, and won't always work. Just use subs. Aaron Meurer On Jul 7, 2012, at 11:08 PM, Saurabh Jha <saurabh.j...@gmail.com> wrote: > This is the code along with documentation > > from sympy import diff, integrate, sympify, expand, Symbol > x=Symbol('x') > def Delta(expr, d = 1): > """Takes as input function expression and returns the diffrence > between final value(function's expression incremented to 1) and > initial value (function's expression). > >>>> from sympy import Symbol >>>> from sympy import sin, cos >>>> from sympy.series.integrals import Delta >>>> x = Symbol('x') >>>> Delta(x**2 + 3*x -2) > 2*x + 4 >>>> Delta(sin(x)) > - sin(x) + sin(x + 1) > > If you want an increment different than 1, you can give it the > increment value as an argument to Delta > as shown below >>>> Delta(x**2 - 2*x + 3, 2) > 4*x >>>> Delta(x**3 + 3*x**2 + 4*x + 5, 3) > 9*x**2 + 45*x + 66 > """ > > expr=sympify(expr) > a=diff(expr) > b=integrate(a, (x, x, x+d)) > expand(b) > return expand(b) > > > > and these are the tests > > from sympy import sin, cos > from sympy import pi > from sympy import Symbol > from sympy.series.kauers import Delta > x = Symbol('x', real=True) > m = Symbol('m', real=True) > > > def test_Delta(): > assert Delta(x**2 + 2*x + 1) == 2*x + 3 > assert Delta(x**3 + 2*x**2 + 3*x +5) == 3*x**2 + 7*x + 6 > assert Delta(x**2 - 2*x + 3) == 2*x - 1 > assert Delta(x**2 + 3*x -2) == 2*x + 4 > assert Delta(sin(x), pi/6) == -sin(x) + sin(x + pi/6) > assert Delta(cos(x), pi/3) > assert Delta(x**2 - 2*x + 3, 2) == 4*x > assert Delta(x**2 - 2*x + 3, 3) == 6*x + 3 > > > > > On Jul 8, 7:59 am, Aaron Meurer <asmeu...@gmail.com> wrote: >> It's hard to tell without seeing the code. What you wrote should work. >> >> Aaron Meurer >> >> On Jul 7, 2012, at 5:44 AM, Saurabh Jha <saurabh.j...@gmail.com> wrote: >> >> >> >> >> >> >> >>> Hi, >> >>> I implemented a Delta() function as a part of my project of >>> implementation of Kauers' algorithm >> >>> It takes as input function expression and returns the difference >>> between final value(function's expression incremented to 1) and >>> initial value (function's expression) >>> . >>> I saved the changes and ran it from sympy at python IDLE as >>> follows >> >>>>>> Delta(x**2 + 2*x + 1) >>> 2*x + 3 >> >>> But when I wrote the tests as >> >>> assert Delta(x**2 + 2*x + 1) == 2*x + 3 >> >>> it printed assertion error >> >>> The tests diden't passed. I don't know what's the differenece between >>> the two situations, please help me figure it out >> >>> -Saurabh Jha >> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sympy" group. >>> To post to this group, send email to sympy@googlegroups.com. >>> To unsubscribe from this group, send email to >>> sympy+unsubscr...@googlegroups.com. >>> For more options, visit this group >>> athttp://groups.google.com/group/sympy?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to sympy@googlegroups.com. > To unsubscribe from this group, send email to > sympy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.