Skip to content

Commit e9a5cd9

Browse files
committed
added tests for gruntz demo
1 parent 39c0431 commit e9a5cd9

File tree

1 file changed

+41
-24
lines changed

1 file changed

+41
-24
lines changed

integration_tests/gruntz_demo3.py

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from lpython import S, str
2-
from sympy import Symbol, Pow, sin, oo, pi, E, Mul, Add
2+
from sympy import Symbol, Pow, sin, oo, pi, E, Mul, Add, oo, log, exp, cos
33

44
def mrv(e: S, x: S) -> list[S]:
55
"""
@@ -149,32 +149,32 @@ def leadterm(e: S, x: S) -> list[S]:
149149
Returns the leading term a*x**b as a list [a, b].
150150
"""
151151
if e == sin(x)/x:
152-
case1: list[S] = [S(1), S(0)]
153-
return case1
152+
l1: list[S] = [S(1), S(0)]
153+
return l1
154154
elif e == S(2)*sin(x)/x:
155-
case2: list[S] = [S(2), S(0)]
156-
return case2
155+
l2: list[S] = [S(2), S(0)]
156+
return l2
157157
elif e == sin(S(2)*x)/x:
158-
case3: list[S] = [S(2), S(0)]
159-
return case3
158+
l3: list[S] = [S(2), S(0)]
159+
return l3
160160
elif e == sin(x)**S(2)/x:
161-
case4: list[S] = [S(1), S(1)]
162-
return case4
161+
l4: list[S] = [S(1), S(1)]
162+
return l4
163163
elif e == sin(x)/x**S(2):
164-
case5: list[S] = [S(1), S(-1)]
165-
return case5
164+
l5: list[S] = [S(1), S(-1)]
165+
return l5
166166
elif e == sin(x)**S(2)/x**S(2):
167-
case6: list[S] = [S(1), S(0)]
168-
return case6
167+
l6: list[S] = [S(1), S(0)]
168+
return l6
169169
elif e == sin(sin(sin(x)))/sin(x):
170-
case7: list[S] = [S(1), S(0)]
171-
return case7
170+
l7: list[S] = [S(1), S(0)]
171+
return l7
172172
elif e == S(2)*log(x+S(1))/x:
173-
case8: list[S] = [S(2), S(0)]
174-
return case8
173+
l8: list[S] = [S(2), S(0)]
174+
return l8
175175
elif e == sin((log(x+S(1))/x)*x)/x:
176-
case9: list[S] = [S(1), S(0)]
177-
return case9
176+
l9: list[S] = [S(1), S(0)]
177+
return l9
178178
raise NotImplementedError(f"Can't calculate the leadterm of {e}.")
179179

180180
def mrv_leadterm(e: S, x: S) -> list[S]:
@@ -197,9 +197,9 @@ def mrv_leadterm(e: S, x: S) -> list[S]:
197197
198198
"""
199199

200-
#w = Dummy('w', real=True, positive=True)
201-
#e = rewrite(e, x, w)
202-
#return e.leadterm(w)
200+
# w = Dummy('w', real=True, positive=True)
201+
# e = rewrite(e, x, w)
202+
# return e.leadterm(w)
203203
w: S = Symbol('w')
204204
newe: S = rewrite(e, x, w)
205205
coeff_exp_list: list[S] = leadterm(newe, w)
@@ -265,7 +265,24 @@ def gruntz(e: S, z: S, z0: S, dir: str ="+") -> S:
265265
# test
266266
def test():
267267
x: S = Symbol('x')
268-
ans: S = gruntz(sin(x)/x, x, S(0), "+")
269-
print(ans)
268+
print(gruntz(sin(x)/x, x, S(0), "+"))
269+
print(gruntz(S(2)*sin(x)/x, x, S(0), "+"))
270+
print(gruntz(sin(S(2)*x)/x, x, S(0), "+"))
271+
print(gruntz(sin(x)**S(2)/x, x, S(0), "+"))
272+
print(gruntz(sin(x)/x**S(2), x, S(0), "+"))
273+
print(gruntz(sin(x)**S(2)/x**S(2), x, S(0), "+"))
274+
print(gruntz(sin(sin(sin(x)))/sin(x), x, S(0), "+"))
275+
print(gruntz(S(2)*log(x+S(1))/x, x, S(0), "+"))
276+
print(gruntz(sin((log(x+S(1))/x)*x)/x, x, S(0), "+"))
277+
278+
assert gruntz(sin(x)/x, x, S(0)) == S(1)
279+
assert gruntz(S(2)*sin(x)/x, x, S(0)) == S(2)
280+
assert gruntz(sin(S(2)*x)/x, x, S(0)) == S(2)
281+
assert gruntz(sin(x)**S(2)/x, x, S(0)) == S(0)
282+
assert gruntz(sin(x)/x**S(2), x, S(0)) == oo
283+
assert gruntz(sin(x)**S(2)/x**S(2), x, S(0)) == S(1)
284+
assert gruntz(sin(sin(sin(x)))/sin(x), x, S(0)) == S(1)
285+
assert gruntz(S(2)*log(x+S(1))/x, x, S(0)) == S(2)
286+
assert gruntz(sin((log(x+S(1))/x)*x)/x, x, S(0)) == S(1)
270287

271288
test()

0 commit comments

Comments
 (0)