U
    	-e*                     @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD d dlEmFZG ed\ZHZIZJZKedZLdd	 ZMd
d ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXd d! ZYd"d# ZZd$d% Z[d&d' Z\d(S ))    )SpioosymbolsFunctionRationalIntegerTuple
DerivativeEqNeLeLtGtGe)Integral)Sum)0expsincosfresnelcfresnels	conjugateMaxMingamma	polygammaloggammaerferfierfcerf2expinterfinverfcinvEiSiCiliShiChi
uppergammabetasubfactorialerf2inv	factorial
factorial2catalanRisingFactorialFallingFactorialharmonicatan2secacschermitelaguerreassoc_laguerrejacobi
gegenbauer
chebyshevt
chebyshevulegendreassoc_legendreLiLambertW)mathematica_codezx,y,z,wfc                   C   s,   t tddkstt tddks(td S )NC   Z67-1)mcoder   AssertionError rJ   rJ   f/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/printing/tests/test_mathematica.pytest_Integer   s    rL   c                   C   s   t tdddkstt tdddks,tt tdddksBtt td	ddksXtt ttdd d
ksrtt tddt dkstd S )N      z3/7   	   2iz-3/7zx + 3/7z(3/7)*x)rH   r   rI   xrJ   rJ   rJ   rK   test_Rational   s    rT   c                   C   s   t tttdkstt tttdks,tt tttdksBtt tttdksXtt tttdksntt t	ttdkstd S )Nzx == yzx != yzx <= yzx < yzx > yzx >= y)
rH   r   rS   yrI   r   r   r   r   r   rJ   rJ   rJ   rK   test_Relational#   s    rV   c                   C   s  t ttttdkstt tttt dks4tt ttt	t dksPtt t
ttdksftt ttdksztt ttttttt dkstt ttdkstt ttdkstt ttd	kstt tttd
kstt tttdkstt ttdkstt ttdks2tt ttdksHtt ttdks^tt tttdksvtt tttdkstt ttdkstt ttdkstt tttdkstt ttdkstt ttdkstt ttdkstt ttdks*tt t tdks@tt t!tdksVtt t"ttdksntt t#tdkstt t$tdkstt t%tdkstt t&ttdkstt t'ttd kstt t(td!kstt t)td"kstt t)ttd#ks$tt t*td$ks:tt t+td%ksPtt t+td&d'kshtt t+ttd(kstd S ))Nz
f[x, y, z]zSin[x]^Cos[x]zArcCsc[x]*Sec[x]zArcTan[x, y]zConjugate[x]zMax[x, y, z]*Min[y, z]zFresnelC[x]zFresnelS[x]zGamma[x]zGamma[x, y]zPolyGamma[x, y]zLogGamma[x]zErf[x]zErfc[x]zErfi[x]z	Erf[x, y]zExpIntegralE[x, y]zInverseErfc[x]zInverseErf[x]zInverseErf[x, y]zExpIntegralEi[x]zCosIntegral[x]zLogIntegral[x]zSinIntegral[x]zSinhIntegral[x]zCoshIntegral[x]z
Beta[x, y]zFactorial[x]zFactorial2[x]zSubfactorial[x]zFactorialPower[x, y]zPochhammer[x, y]zCatalanNumber[x]zHarmonicNumber[x]zHarmonicNumber[x, y]zLogIntegral[x] - LogIntegral[2]zProductLog[x]rF   zProductLog[-1, x]zProductLog[y, x]),rH   rD   rS   rU   zrI   r   r   r6   r7   r5   r   r   r   r   r   r   r+   r   r   r   r    r   r!   r"   r$   r#   r.   r%   r'   r(   r&   r)   r*   r,   r/   r0   r-   r3   r2   r1   r4   rA   rB   rJ   rJ   rJ   rK   test_Function,   sN    "rX   c                   C   s   t tttdkstt tttdks,tt ttttdksDtt ttttt	dks^tt t
tttdksvtt tttdkstt tttdkstt tttdkstt ttttd	kstd S )
NzHermiteH[x, y]zLaguerreL[x, y]zLaguerreL[x, y, z]zJacobiP[x, y, z, w]zGegenbauerC[x, y, z]zChebyshevT[x, y]zChebyshevU[x, y]zLegendreP[x, y]zLegendreP[x, y, z])rH   r8   rS   rU   rI   r9   r:   rW   r;   wr<   r=   r>   r?   r@   rJ   rJ   rJ   rK   test_special_polynomialsV   s    rZ   c                   C   s   t td dkstt ttd  dks,tt dttd ttt    td t  dks`tt td d	ksttt ttdd d
kstd S )NrM   zx^3zx^(y^3)   g      @   z(3.5*f[x])^(-x + y^x)/(x^2 + y)g      zx^(-1.0)zx^(2/3))rH   rS   rI   rU   rD   r   rJ   rJ   rJ   rK   test_Powb   s    *r]   c                  C   s   t ddd\} }}}ttt t dks,tttt |  dksDtttt |  | dks`tttt |  | | dksttt|  | ||  |  t dkstd S )	NzA B C DF)Zcommutativezx*y*zzx*y*Azx*y*A**Bzx*y*A**B**Czx*y*A**B**(C + D)**A)r   rH   rS   rU   rW   rI   )ABCDrJ   rJ   rK   test_Mulk   s     rb   c                   C   s(  t tjdkstt tjdks$tt tjdks6tt tjdksHtt tjdksZtt tdksjtt tj	dks|tt tj
dkstt tjd	kstt tjd
kstt tdkstt tjdkstt tjdkstt dtj dkstt tjdkstt tjdks$td S )N01rG   z1/2IInfinityz	-InfinityComplexInfinityZIndeterminateEPiGoldenRatiozE(1/3 + (1/3)*(19 - 3*33^(1/2))^(1/3) + (1/3)*(3*33^(1/2) + 19)^(1/3))r\   zG2*(1/3 + (1/3)*(19 - 3*33^(1/2))^(1/3) + (1/3)*(3*33^(1/2) + 19)^(1/3))
EulerGammaCatalan)rH   r   ZZerorI   ZOneZNegativeOneZHalfZImaginaryUnitr   NegativeInfinityrg   NaNZExp1r   rj   ZTribonacciConstantrk   rl   rJ   rJ   rJ   rK   test_constantst   s(    ro   c                   C   s|   t dddddddggdd	d
gdgdks,tt ddks<tt dgdksNtt ddks^tt tdddg dksxtd S )Nr[   r\   rM            rN      rP   
      z){1, 2, 3, {4, 5, {6, 7}}, 8, {9, 10}, 11})r[   r\   )rM   rp   z{1, 2, {3, 4}}z{1})r[   z	{1, 2, 3})rH   rI   r	   rJ   rJ   rJ   rK   test_containers   s    "rv   c                  C   s>  ddl m} m}m}m} | ddddgddddgddddgddddgg}||}||}||}t|t|  kr|dksn tt|t|  krdksn tt| ddg dkstt|ddg dkstt| dd	g dkstt|dd	g d
kstt| d	dg dks tt|d	dg dks:td S )Nr   )MutableDenseMatrixMutableSparseMatrixImmutableDenseMatrixImmutableSparseMatrixr[   rF   z;{{1, -1, 0, 0}, {0, 1, -1, 0}, {0, 0, 1, -1}, {0, 0, 0, 1}}zsSparseArray[{{1, 1} -> 1, {1, 2} -> -1, {2, 2} -> 1, {2, 3} -> -1, {3, 3} -> 1, {3, 4} -> -1, {4, 4} -> 1}, {4, 4}]z{}zSparseArray[{}, {0, 0}]rM   zSparseArray[{}, {0, 3}]z{{}, {}, {}}zSparseArray[{}, {3, 0}])Zsympy.matricesrw   rx   ry   rz   rH   rI   )rw   rx   ry   rz   r^   r_   r`   ra   rJ   rJ   rK   test_matrices   s.    



r{   c                  C   s   ddl m} m}m}m} | ddddgddd	d
gddddggddddgddddgddddggg}t|dkspt||}t|dkst||}t|dkst||}t|dkstd S )Nr   )MutableDenseNDimArrayImmutableDenseNDimArrayMutableSparseNDimArrayImmutableSparseNDimArrayr[   r\   rM   rp   rq   rr   rN   rs   rP   rt   ru                     rO                     zg{{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}}a  SparseArray[{{1, 1, 1} -> 1, {1, 1, 2} -> 2, {1, 1, 3} -> 3, {1, 1, 4} -> 4, {1, 2, 1} -> 5, {1, 2, 2} -> 6, {1, 2, 3} -> 7, {1, 2, 4} -> 8, {1, 3, 1} -> 9, {1, 3, 2} -> 10, {1, 3, 3} -> 11, {1, 3, 4} -> 12, {2, 1, 1} -> 13, {2, 1, 2} -> 14, {2, 1, 3} -> 15, {2, 1, 4} -> 16, {2, 2, 1} -> 17, {2, 2, 2} -> 18, {2, 2, 3} -> 19, {2, 2, 4} -> 20, {2, 3, 1} -> 21, {2, 3, 2} -> 22, {2, 3, 3} -> 23, {2, 3, 4} -> 24}, {2, 3, 4}])Zsympy.tensor.arrayr|   r}   r~   r   rH   rI   )r|   r}   r~   r   ZexamplerJ   rJ   rK   test_NDArray   s6    





	r   c                   C   s\   t tttttdkstt tttd  td  tt tftt tfdksXtd S )NzHold[Integrate[Sin[Sin[x]], x]]r\   zTHold[Integrate[Exp[-x^2 - y^2], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]])rH   r   r   rS   rI   r   rU   r   rJ   rJ   rJ   rK   test_Integral   s    

r   c                   C   s   t ttttdkstt tttdks0tt ttttd  tddksTtt ttttd  tttdksztt ttttd  ttdtdkstd S )	NzHold[D[Sin[x], x]]zHold[D[x, x]]rp   r\   zHold[D[y^4*Sin[x], {x, 2}]]zHold[D[y^4*Sin[x], x, y, x]]rM   z!Hold[D[y^4*Sin[x], x, {y, 3}, x]])rH   r
   r   rS   rI   rU   rJ   rJ   rJ   rK   test_Derivative   s
    $&r   c                   C   s^   t ttttddfdks tt tttd  td  tt tftt tfdksZtd S )Nr   rt   zHold[Sum[Sin[x], {x, 0, 10}]]r\   zNHold[Sum[Exp[-x^2 - y^2], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]])rH   r   r   rS   rI   r   rU   r   rJ   rJ   rJ   rK   test_Sum   s     

r   c                  C   s$   ddl m}  |  ddks td S )Nr   MCodePrinterzHello Worldz(* Hello World *))sympy.printing.mathematicar   Z_get_commentrI   r   rJ   rJ   rK   test_comment  s    
r   c                  C   sr   t dtd} ddi}t| t|ddks,tt| t|ddksDtddd dfgi}t| t|dd	ksntd S )
Nsome_function)clsZSomeFunction)Zuser_functionszSomeFunction[z]c                 S   s   dS )NTrJ   )rS   rJ   rJ   rK   <lambda>      z test_userfuncs.<locals>.<lambda>ZSomeOtherFunctionzSomeOtherFunction[z])r   r   rH   rW   rI   )r   Zmy_user_functionsrJ   rJ   rK   test_userfuncs  s,    r   N)]Z
sympy.corer   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Zsympy.integralsr   Zsympy.concreter   Zsympy.functionsr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   r   rC   rH   rS   rU   rW   rY   rD   rL   rT   rV   rX   rZ   r]   rb   ro   rv   r{   r   r   r   r   r   r   rJ   rJ   rJ   rK   <module>   s,   D
		*			!5		