
    Цi                        S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
JrJrJr  S SKJrJrJrJrJrJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJrJr  S SK J!r!J"r"  S SK#J$r$  S SK%J&r&J'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3J4r4J5r5J6r6J7r7J8r8  S SK9J:r:J;r;J<r<J=r=J>r>J?r?  S SK@JArAJBrBJCrC  S SKDJErE  S SKFJGrGJHrHJIrIJJrJJKrKJLrLJMrM  S SKNJOrOJPrPJQrQJRrR  S SKSJTrT  S SKUJVrVJWrWJXrXJYrYJZrZJ[r[  S SK\J]r]  S SK^J_r_  S SK`JaraJbrb  S SKcJdrd  S SKeJfrf  S SKgJhrh  S S KiJjrj  S S!KkJlrl  S S"KmJnrnJoroJprpJqrqJrrrJsrs  S S#KtJuruJvrv  S S$KwJxrxJyry  S S%K#JzrzJ{r{J|r|  S S&K}J~r~JrJrJrJrJrJrJrJr  S S'KJrJrJr  S S(KJr  S S)KJr  S S*KeJrJr  S S+KJr  S S,KJr  S S-KJr  S S.KJr  S S/KNJrJr  S SKr\r\" S05      r\" S1S2S3/0S49r\" S55      r\" S65      r\" S75      r\" S85      r\" S95      r\(       a  S SKrS:\GRH                  S;'   \" S<5      u  rrrrS= rS> rS? rS@ rSA rSB rSC rSD rSE rSF r\SG 5       r\SH 5       r\SI 5       r\SJ 5       r\SK 5       rSL rSM rSN rSO rSP rSQ rSR rSS rST rSU rSV rSW rSX rSY rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq rSr rSs rSt rSu rSv rSw rSx rSy rSz rS{ rS| rS} rS~ rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS Gr S GrS GrS GrS GrS GrS GrS GrS GrS Gr	S Gr
S GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS GrS Gr S Gr!S Gr"S Gr#S Gr$S Gr%S Gr&S Gr'S Gr( " S S5      Gr)S Gr*S Gr+S Gr,S Gr-S Gr.g)    )productN)raiseswarns_deprecated_sympy)Sum)FunctionLambdadiff)EFloatIRational	all_closeoopi)Eq)S)Dummysymbols)RisingFactorial	factorial)	bernoulliharmonic)Abs)explog)acosh)floor)MaxMinsqrt)	Piecewise)acoscoscotsinsinctan)besselibesseljbesselkbesselyjnyn)betabetaincbetainc_regularized)	Heaviside)EierferfcfresnelcfresnelsSiCi)digammagammaloggamma	polygamma)Integral)AndfalseITENotOrtrue)
DotProductcse)derive_by_arrayArray)IndexedBaselambdify)numbered_symbols)
CoordSys3D)UnevaluatedExpr)expm1log1pexp2log2log10hypot)	logaddexp
logaddexp2)cosm1powm1)reimarg)	
chebyshevt
chebyshevulegendrehermitelaguerre
gegenbauerassoc_legendreassoc_laguerrejacobi)MatrixMatrixSymbolSparseMatrix)LambdaPrinter)NumPyPrinter)implemented_function	lambdastr)skip)conserve_mpmath_dps)ignore_warnings)import_module)
uppergamma
lowergammanumpyscipyfromlistsparse)import_kwargsnumexpr
tensorflowcupyjaxnumba2TF_CPP_MIN_LOG_LEVELzw,x,y,zc                  `   ^  [        / S5      m [        [        U 4S j5        T " 5       S:X  d   eg )N   c                     > T " S5      $ )N fs   b/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/sympy/utilities/tests/test_lambdify.py<lambda>test_no_args.<locals>.<lambda>S   s	    ae    rK   r   	TypeErrorr   s   @r   test_no_argsr   Q   s%    QA
9m$3!8O8r   c                  N    [        [        S[        -  5      n U " S5      S:X  d   eg N   r   rK   xr   s    r   test_single_argr   W   s"    AaCAQ4199r   c                  d    [        [        [        /[        [        -   5      n U " SS5      S:X  d   eg Nr   r      )rK   r   yr   s    r   test_list_argsr   \   s(    !QQAQ7a<<r   c                    ^^ [        [        [        //[        [        /5      mT" SS/5      SS/:X  d   e[        [        U4S j5        [        [        [        4[
        [        4/[        [        [
        [        /5      mT" SS5      / SQ:X  d   e[        [        U4S j5        [        [        [        //[
        /[        /[        [        [
        [        /5      n U " SS	//S
/S5      / SQ:X  d   eg )N[   r   c                     > T " SS5      $ Nr   r   r   )f1s   r   r   "test_nested_args.<locals>.<lambda>d       bAhr   )      )I      )r   r   r   r   c                     > T " SS5      $ )Nr   r   r   )f2s   r   r   r   h   r   r   
   4      ,   )r   r   r   r   )rK   wr   r   r   r   z)f3r   r   s    @@r   test_nested_argsr   a   s    	Aq6(QF	#Br1g;2q'!!!
9&'	Aq6Aq6"Q1aL	1Bh O333
9&'	1uaj!$q!Ql	3BbRD62,#'7777r   c                     ^  [        SS5      m T " SSS5      S:X  d   eT " SSS	5      S
:X  d   e[        [        U 4S j5        g )Nzx,y,zzz,y,xr   r   r   r   r   r         ?       @      @r   r   r   c                     > T " S5      $ Nr   r   r   s   r   r   test_str_args.<locals>.<lambda>s   	    adr   r   r   s   @r   test_str_argsr   n   sF    '"AQ1:"""S#s...
9l#r   c                      S n [        [        [        [        5      SU 05      nU" S5      S:X  d   eU" S5      S:X  d   eg )Nc                     gNr   r   r   s    r   r   &test_own_namespace_1.<locals>.<lambda>w   s    qr   r%   皙?r   d   rK   r   r%   myfuncr   s     r   test_own_namespace_1r   v   s=    FCFUFO,AS6Q;;S6Q;;r   c                      S n [        [        [        [        5      SU 05      nU" S5      S:X  d   eU" S5      S:X  d   eg )Nc                     gr   r   r   s    r   r   $test_own_namespace_2.<locals>.myfunc~   s    r   r%   r   r   r   r   r   s     r   test_own_namespace_2r   }   s=    CFUFO,AS6Q;;S6Q;;r   c            	         [        [        [        [        5      [        5      n U " S5      S:X  d   e[	        SSS9u  pn[        [        U[        X#-   5      -   5      5      n[        XU/XD/[        S9n U " SSS	5      n[        R                  " S5      /S
-  n[        XV5       H  u  px[        Xx-
  U-  5      S:  a  M   e   g )Nr           zp q rT)realmodulesr   g NgmCg Ngmr   V瞯<)	rK   r   r%   mathr   absr   rN   zip)	r   pqraeresultsrefvalsresrefs	            r   test_own_moduler      s    CFD!AQ43;;gD)GA!	S?13''(	)B!RHd3AT5!Gxx}oaG)CGS=!E))) *r   c                  H    [        [        S 5        [        [        S 5        g )Nc                      [        S5      $ r   rJ   r   r   r   r   test_bad_args.<locals>.<lambda>   s    hqkr   c                      [        SS/5      $ r   rJ   r   r   r   r   r      s    h1v.r   )r   r   r   r   r   test_bad_argsr      s    
9)*
9./r   c                      [        [        [        [        -   SS05      n U " S5      S:X  d   e[        [        [        [        -   SS05      n U " S5      S:X  d   eg )Nr   gQ	@r   r                 ?r   y      ?      ?)rK   r   r   r   r   s    r   
test_atomsr      sN    BFT4L)AQ44<<AEC9%AQ46>>r   c                  d   S[         R                  l        [         R                  " S5      n [	        [
        [        [
        5      S5      nU" [
        5      [        [
        5      :X  d   eSnU* U" [        SS5      5      R                  5       [        [        U 5      5      -
  s=:  a  U:  d   e   eg )N2   40.19866933079506121545941262711838975037020672954020sympyr   r      )mpmathmpdpsmpfrK   r   r%   r   evalfr   strsin02r   precs      r   test_sympy_lambdar      s    FIIMJJMNECFG$AQ43q6>>D51Xa^$**,uSZ/@@G4GGGGGr   c                     ^ S[         R                  l        [         R                  " S5      n [	        [
        [        [
        5      S5      mSnU* T" S5      U -
  s=:  a  U:  d   e   e[        [        U4S j5        g )Nr   r   r   r   皙?c                     > T " [         5      $ Nr   r   s   r   r   "test_math_lambda.<locals>.<lambda>   	    adr   )	r   r   r   r   rK   r   r%   r   r   )r   r   r   s     @r   test_math_lambdar      sa    FIIMJJMNECFF#AD51S6E>(D(((((
9l#r   c            	        ^	 S[         R                  l        [         R                  " S5      n [	        [
        [        [
        5      S5      m	SnU* T	" [         R                  " S5      5      U -
  s=:  a  U:  d   e   e[        [        U	4S j5        [         R                  " S5      [         R                  " S5      S	-  -
  S
[         R                  " S5      -  S-  -   S[         R                  " S5      -  S-  -
  S[         R                  " S5      -  S-  -   n[	        [
        [        4[
        [        -  S-
  S5      n[	        [
        [        4[        [
        [        5      S5      n[	        [
        4[        [
        [        [
        5      -  5      S5      nU" [         R                  " S5      [         R                  " S5      -   [         R                  " S5      5      nU" [         R                  " S5      [         R                  " S5      -   [         R                  " S5      5      nU" [         R                  " S5      5      n[        Xb-
  5      S:  d   e[        Xr-
  5      S:  d   e[        X-
  5      S:  d   eg )Nr   r   r   n5z0.2c                     > T " [         5      $ r   r   r   s   r   r   $test_mpmath_lambda.<locals>.<lambda>   r   r   z1e-30z1e-45r   r   z1e-60   r   z1e-75r   !   z1e-90(   r   1z1e-15gLoW5g[ݦe2g#aMR/)r   r   r   r   rK   r   r%   r   r   r   rX   rO   rP   r   )
r   r   ref2f2af2bf2cans2aans2bans2cr   s
            @r   test_mpmath_lambdar     s   FIIMJJMNECFH%AD51VZZ&'%/6$66666
9l# JJwjj!!#$

7##A%& 

7##A%& G$$R'	(D Aq61a4!8X
.C
Aq65A;
1C
A4qqz*H
5C

3

7 33VZZ5HIE

3

7 33VZZ5HIE

7#$Eu|u$$$u|u$$$u|u$$$r   c                      S[         R                  l        [         R                  " S5      n [	        [
        U S5      nSnU* U" S5      U -
  s=:  a  U:  d   e   eg )Nr   r   r   r   r   )r   r   r   r   rK   r   r   s      r   test_number_precisionr     sR    FIIMJJMNEE8$AD51Q4%<&$&&&&&r   c                      S[         R                  l        [        [	        S[
        R                  " S5      S5      " 5       5      [        [
        R                  " S5      5      :X  d   eg )Nr   r   r   )r   r   r   r   rK   r   r   r   r   r   test_mpmath_precisionr	     sA    FIIMxBHHSM84673rxx};MMMMr   c                      SSK Jn   U R                  5        H1  u  pU[        R                  ;   d   eU[
        R                  ;   a  M1   e   g )Nr   )MATH_TRANSLATIONS)sympy.utilities.lambdifyr  itemsr   __dict__r   )r  symmats      r   test_math_translr     s>    :%++-enn$$$dmm### .r   c                      SSK Jn   U R                  5        H7  u  pU[        R                  ;   d  US:X  d   eU[
        R                  ;   a  M7   e   g )Nr   )MPMATH_TRANSLATIONSre   )r  r  r  r   r  r   )r  r  r  s      r   test_mpmath_translr     sD    <'--/enn$x77foo%%% 0r   c                      [         (       d  [        S5        SSKJn   U R	                  5        H1  u  pU[
        R                  ;   d   eU[         R                  ;   a  M1   e   g )Nnumpy not installed.r   )NUMPY_TRANSLATIONS)rr   rl   r  r  r  r   r  )r  r  numps      r   test_numpy_translr     sL    5#$;'--/	enn$$$u~~%%% 0r   c                     [         (       d  [        S5        SSKJn   U R	                  5        HQ  u  pU[
        R                  ;   d   eU[         R                  ;   a  M1  U[         R                  R                  ;   a  MQ   e   g )Nscipy not installed.r   )SCIPY_TRANSLATIONS)rs   rl   r  r  r  r   r  special)r  r  scips      r   test_scipy_translr    s]    5#$;'--/	enn$$$u~~%1G1G)GGG 0r   c                      [         (       d  [        S5        [        [        [	        [        5      S5      n U " S5      S:X  d   eU " S5      S:X  d   eg )Nr  rr   r   r   )rr   rl   rK   r   r   r   s    r   test_numpy_translation_absr!    sB    5#$CFG$AR5A::Q4199r   c                  H   [         (       d  [        S5        SSKJn   Sn[        [
        [        4nU R                  R                  5        HU  nX1;   a  M
  [        U5      n[        US5      (       a  UR                  S   nOSnUS U n[        Xd" U6 SS9nU" S	U-  6 b  MU   e   g )
Nnumexpr not installed.r   )NumExprPrinter)wherecomplexcontains_nargsr   rw   r   r   )rw   rl   sympy.printing.lambdareprr$  r   r   r   _numexpr_functionskeysr   hasattrr(  rK   )r$  	blacklist	arg_tupler  ssymnargsargsr   s           r   test_numexpr_printerr3    s    7%& 90IAq	I00557v4""KKNEE% T4;	:%+*** 8r   c                     [         (       d  [        S5        [        (       d  [        S5        [        S5      n [	        U R
                  S S9u  p[        X4U [         /SS9n[        R                  R                  S5      u  pEU" XE5        g )	Nr#  r  zb*a - sqrt(a**2)c                     U R                   $ r   )name)ss    r   r   !test_issue_9334.<locals>.<lambda>2  s    166r   )keyF)r   dummifyr   r   )rw   rl   rr   r   sortedfree_symbolsrK   random)exprabfunc_numexprfoobars         r   test_issue_9334rE  ,  sp    7%&5#$ D$##)9:DAQE4'EJL||""6*HCr   c            	      ^   [         (       d  [        S5        [        [        [        [
        4[        [        [        S:  4[
        [        S:  45      [         5      n [        [        5         U " SSS5      S:X  d   e[        U " SSS5      5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr#  r   r   r      *   nan)
rw   rl   rK   r   r   r   r!   rn   RuntimeWarningr   )rB  s    r   test_issue_12984rK  8  s    7%&QqGY16{QBK%H'RL		(Ar2&",,,<B+,555 
)	(	(s   **B
B,c                      [        S5      u  pX-  * n[        X/U5      n[        X/U/ S9nU" SS5      U" SS5      :X  d   eU" SS5      S:X  d   eg )Nzx yr   r      r   rK   )r   r   r?  
no_modulesempty_moduless        r   test_empty_modulesrR  A  se    5>DAU8D1&$'JaVT26Ma}Q2222ar!!!r   c                      [        [        [        S-  5      n U " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eg )	Nr   r   r   r   r         @      @r   r   s    r   test_exponentiationrW  K  sr    AqDAR5A::Q4199Q4199R5A::Q4199S6T>>r   c                      [        [        [        [        5      5      n U " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   e[        U " S5      S-
  5      S	:  d   eU " S
5      S:X  d   eg )Nr   r   r   r   r   r   r   g9v?gMbP?rV  rU  )rK   r   r    r   r   s    r   	test_sqrtrY  U  sm    DGAQ43;;Q43;;Q43;;qte|u$$$T7c>>r   c                  L   [        [        /[        [        5      [        [        5      /S5      n U " [        5      nSnU* US   S-   s=:  a  U:  d   e   eU* US   s=:  a  U:  d   e   eU " S5      nSnU* US   S-   s=:  a  U:  d   e   eU* US   s=:  a  U:  d   e   eg )Nr   gdy=r   r   n!	@gh㈵>)rK   r   r#   r%   r   )r   dr   s      r   	test_trigr]  ^  s    !s1vs1v&/A	"AD51Q4!8"d"""""51Q4$	'
AD51Q4!8"d"""""51Q4$r   c            	      ,   [         (       a  [        (       d  [        S5        [        [        [        [        S-  * 5      5      n [        [        [        U " [        5      [        [        [        45      5      nU" [        * 5      nSUs=:  a  S:  d   e   eg )Nr  r   giv[?gm[?)
rr   rs   rl   r   r   r   rK   r   r=   r   )r   lr\  s      r   test_integralr`  j  sk    uUU#$q#q!te*AHQqTAq":./A	2#A'K'''''r   c                     [         (       a  [        (       d  [        S5        [        SS[        S-  [
        S-  -  -
  -  [        SS4[
        S[        45      n [        [        /U 5      nU" S5      nSUs=:  a  S:  d   e   eg )Nr  r   r   r   gX<?g<?)rr   rs   rl   r=   r   r   r   rK   )ir_  r\  s      r   test_double_integralrc  s  ss    uUU#$A1QT	M"Q1I1ay9A!aA	!A'K'''''r   c                     [         (       a  [        (       d  [        S5        Sn [        S5      n[	        SU5      n[        [        X5      " U 5      UR                  X5      R                  5       -
  5      S:  d   e[        SU5      n[        [        X5      " U 5      UR                  X5      R                  5       -
  5      S:  d   eg )Nr  g@r   r   g:0yE>)
rr   rs   rl   r   r,   r   rK   subsr   r-   )
test_pointr   jtestytests       r   test_spherical_besselri  |  s    uUU#$JAq!HEx ,JJq$**,- .045 5 5q!HEx ,JJq$**,- .045 5 5r   c                     ^  [        [        [        [        4[        [        [        45      m T " SSS5      S:X  d   eT " SSS5      S:X  d   e[	        [
        U 4S	 j5        g )
Nr   r   r   r   r   r   r   r   c                     > T " S5      $ r   r   r   s   r   r   $test_vector_simple.<locals>.<lambda>  r   r   )rK   r   r   r   r   r   r   s   @r   test_vector_simplerm    sR    !QQ1I&AQ1:"""S#s...
9l#r   c                     ^  [        [        S[        -  S[        -  45      m [        [        U 4S j5        T " S5      S:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eg )	Nr   r   c                     > T " S5      $ r   r   r   s   r   r   +test_vector_discontinuous.<locals>.<lambda>  s	    adr   )g      r   r   )            ?rT  )rr  rq  )rK   r   r   ZeroDivisionErrorr   s   @r   test_vector_discontinuousrt    s\    RT1Q3K A
l+Q4;Q4;R5Kr   c                      [        [        /[        [        5      [        [        5      /S5      n U " [        5      n[        US   S-   5      S:  d   e[        US   S-
  5      S:  d   eg )Nr   r   r   -C6?)rK   r   r#   r%   r   r   r   r\  s     r   test_trig_symbolicrx    s\    !s1vs1v&/A	"Aqtax=6!!!qtax=6!!!r   c                      [        [        /[        [        5      [        [        5      /5      n U " S5      n[	        US   S-   5      S:  d   e[	        US   S-
  5      S:  d   eg )Nr[  r   r   rv  )rK   r   r#   r%   r   rw  s     r   test_trig_floatrz    sZ    !s1vs1v&'A	'
Aqtax=6!!!qtax=6!!!r   c                     [        [        [        S-  5      n U " S5      S:X  d   e[        [        [        [        /[        [        [        /5      n U " SSS5      / SQ:X  d   e[        [        [	        [        5      5      n U " S5      S:X  d   e[        [        [        4[        [        [        -  5      S-  5      n U " SS5      S:X  d   eg )	Nr   r   r   r   r   r   r   r   r   r   )rK   r   r   r   r    r%   r   s    r   	test_docsr}    s    AqDAQ4199!QQ1I&AQ1:"""DGAQ43;;!QQqS1%AQ7a<<r   c                  f    [        [        [        4[        [        5      SS9n U " SS5      S:X  d   eg )Nr   r   r   r   )rK   r   r   r%   r   s    r   	test_mathr    s*    !QQ0AQ7a<<r   c                      [        [        [        [        5      S-  5      n [        U " S5      [        5      (       d   e[        [        [        [        5      S-  SS9n [        U " S5      [        5      (       d   eg )Nr   r   r   )rK   r   r%   
isinstancefloatr   s    r   test_sinr    sZ    CFAIAadE""""CFAIv.AadE""""r   c                     [        [        [        [        -  /[        [        5      S-   [        [        -  //5      n [        SS/[        S5      S-   S//5      n[        [        [        [        4U SS9nU" SSS5      U:X  d   e[        [        [        [        4X /4SS9nU" SSS5      X/4:X  d   e[        [        [        [        -   45      R                  [        [        45      n[        [        [        45      n[        SS/SS//5      n[        XCSS9" SS5      U:X  d   e[        UR                  USS9" SS5      U:X  d   eg )Nr   r   r   r   r   r   r   )re   r   r   r%   r   rK   jacobianT)Asolr   Jvs        r   test_matrixr    s(   AaC3q6A:q!t,-.A
1a&3q6A:q/*
+C!QAw/AQ1:!QQHg6AQ1:#u%%%1q5z##QF+A1vA
1a&1a&!
"CA'*1a0C777ACCG,Q2c999r   c                    ^^	^
 [         (       d  [        S5        [        [        [        [        -  /[        [        5      S-   [        [        -  //5      n [         R                  SS/[         R                  S5      S-   S//5      n[        [        [        [        4U S/5      n[         R                  R                  U" SSS5      U5        [        U" SSS5      [         R                  5      (       d   e " S S[        5      nU" [        [        S/S/S	//5      5      m
[        [        T
5      n[         R                  S
5      m[         R                  U" T5      S	:H  5      (       d   eSSSS.n[!        [#        SSSS00UD65      n[        [        T
US9n[         R                  U" T5      S	:H  5      (       d   e[!        U5      m	[%        [&        UU	U
4S j5        g )Nr  r   r   r   r   rr   c                       \ rS rSrSrg)test_numpy_matrix.<locals>.doti  r   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   dotr    s    r   r  r   )   r   FT)allow_unknown_functionsinlinefully_qualified_modulesuser_functionsprinterc                  .   > [        [        TTS9" T 5      $ )Nr  r   )inpp3	x_dot_mtxs   r   r   #test_numpy_matrix.<locals>.<lambda>  s    hq)R@Er   r   )rr   rl   re   r   r   r%   r   arrayrK   testingassert_allcloser  ndarrayr   zerosallri   dictr   	Exception)r  sol_arrr   r  f_dot1	strict_kwp2f_dot2r  r  r  s           @@@r   test_numpy_matrixr    s}   5#$AaC3q6A:q!t,-.AkkAq6EIIaL1$4a#89:G!QAy)A	MM!!!Aq!*g6a1aj%--0000h AvsQC!o./Ia#F
++g
C99VC[A%&&&&,1T^cdI	dF5%.FIF	GBaB/F99VC[A%&&&&	i	 B
9EFr   c                  
   [         (       d  [        S5        [        S[        /SS//5      n [	        [        U R
                  SS9n[         R                  R                  U" S5      [         R                  SS/SS//5      5        g )Nr  r   r   rr   r   r   )	rr   rl   re   r   rK   r  r  assert_array_equalr  r  r   s     r   test_numpy_transposer    sg    5#$AA A!acc7+A	MM$$QqT5;;AA7G+HIr   c                  b   [         (       d  [        S5        [        [        [        [
        /5      n [        [        [        [
        /[        X 5      SS9n[        [        [        [
        /[        X R                  5      SS9n[        [        [        [
        /[        U R                  U 5      SS9n[        [        [        [
        /[        X R                  5      SS9nU" SSS5      U" SSS5      s=:X  a9  U" SSS5      s=:X  a*  U" SSS5      s=:X  a  [         R                  S/5      :X  d   e   eg )Nnumpy not installedrr   r   r   r   r      )
rr   rl   re   r   r   r   rK   rD   r  r  r  r   r   r   f4s        r   test_numpy_dotproductr    s    5"#1ayA	1a)Z-w	?B	1a)Z33/	AB	1a)ZQ/	AB	1a)Z33/	ABaA;aA;aA; aA; ;;t	    r   c                      [         (       d  [        S5        [        S[        /SS//5      n [	        [        U S-  SS9n[         R
                  R                  U" S5      [         R                  SS/SS//5      5        g )	Nr  r   r   r   rr   r   r   rT  )rr   rl   re   r   rK   r  r  r  r  s     r   test_numpy_inverser    sg    5#$AA A!aeW-A	MM$$QqT5;;B!a7I+JKr   c                  Z   [         (       d  [        S5        [        [        [        [        -  /[        [        5      S-   [        [        -  //5      n [         R                  SS/[         R                  S5      S-   S//5      n[        [        [        [        4U S[         R                  0S/5      n[        [        5         [         R                  R                  U" SSS5      U5        [        U" SSS5      [         R                  5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr  r   r   r   r   ImmutableDenseMatrixrr   )rr   rl   re   r   r   r%   r   r  rK   matrixrn   PendingDeprecationWarningr  r  r  )r  r  r   s      r   test_numpy_old_matrixr    s    5#$AaC3q6A:q!t,-.AkkAq6EIIaL1$4a#89:G!QA!7 FPQA	2	3%%a1aj':!Aq!*ell3333 
4	3	3s    AD
D*c                      [         (       d  [        S5        [        [        S/S[        //5      n [        [        [        4U SS9nU" SS5      n[        U[         R                  R                  5      (       d   eg )Nr  r   rs   r   r   r   )	rs   rl   rg   r   r   rK   r  ru   
coo_matrix)r  r   Bs      r   test_scipy_sparse_matrixr    sa    5#$q!fq!f%&A!QG,A	!QAa001111r   c            	      &   [         (       d  [        S5        [        S[        -  [        S:  4[        [        S:  4S[        -  S45      n [        [        [        /U SS9n[         R                  SS9   [        U" [         R                  S	5      [         R                  S
5      5      5      S	:X  d   e[        U" [         R                  S	5      [         R                  S5      5      5      [        S5      :X  d   e S S S 5        g ! , (       d  f       g = f)Nr  r   r   Trr   r   ignore)divider   rr  inf)	rr   rl   r!   r   r   rK   errstater  r  )r   r   s     r    test_python_div_zero_issue_11306r     s    5#$1q5!b&/Aq1u:At}=A!QG,A	x	(Qu{{1~u{{3'789Q>>>Qu{{1~u{{1~675<GGG 
)	(	(s   2BD
Dc                  ,   S S/n [         (       a  U R                  S5        [        (       a  U R                  S5        U  Hp  n[        [        [
        R                  [        -  US9nU" S5      S:X  d   e[        [        [        [
        R                  [        -  5      US9nU" S5      S:X  a  Mp   e   [        [        [        /U 5       HH  u  p4[        [        U" [        5      US9nU" S5      S	:X  d   eU" S	5      S	:X  d   eU" S
5      S:X  a  MH   e   g )Nr   rr   r   r   r   rr  r   r   r   y      @      @r   )rr   appendr   rK   r   r   Oner   r   r   r   )modsmodr   absfuncr   s        r   test_issue9474r  *  s    &>DuGvHQa-ts{{QaeeAg4tqyy	  $S#J5Q
G4uzztqyyw!||	 6r   c                     [         (       d  [        S5        [        (       d  [        S5        [        [        S-  [
        S-  -   5      n [        SU -  [        5      n[        R                  SSS5      =p#[        R                  S5      S-  * US	-  -  n[        [        [
        4US
S9" X#5      n[        [        [
        4USS9" X#5      n[        R                  R                  XTSS9  [        R                  R                  XdSS9  g )Nr#  r  r   r   r      r   rN  rT  rr   r   rw   绽|=)rtol)rw   rl   rr   r    r   r   r	   linspacerK   r  r  )r   r?  xnr-   fv_exactfv_numpy
fv_numexprs          r   test_issue_9871r  =  s    7%&5#$QTAqD[A!Q<DnnQB''B

2""RV+HAg6r>H1a&$	:2BJ	MM!!(5!A	MM!!*U!Cr   c            	      f   [         (       d  [        S5        [        [        [        S:  4[        S-  [        S:  4S5      n [	        [        U SS9n[         R
                  R                  U" [         R                  S5      5      [         R                  / S	Q5      5        [	        [        [        [        [        S
:  4[        * [        S
:  45      5      n[         R
                  R                  U" [         R                  / SQ5      5      [         R                  S[         R                  S/5      5        g )Nr  r   r   r   )r   Trr   r   r   )
r   r   r   r   r   r   $   1   @   Q   r   r   r   r   r   )
rr   rl   r!   r   rK   r  r  aranger  rI  )piecesr   
nodef_funcs      r   test_numpy_piecewiser  P  s    5#$1q5zAqD!a%=)<FFG,A	MM$$Qu||B'7%8%*[[1S%TV !Y1q5zQBA;?@J	MM$$ZJ0G%H%*[[!UYY1B%CEr   c                     [         (       d  [        S5        [        [        [        4[        [        [        5      SS9n [        [        [        [        4[        [        [        [        5      SS9n[        [        [        4[        [        [        5      SS9n[        [        [        [        4[        [        [        [        5      SS9n[        [        [        [        5      SS9n[         R                  SS/5      n[         R                  SS/5      n[         R                  SS/5      n[         R                  R                  U " XV5      [         R                  SS/5      5        [         R                  R                  U" XVU5      [         R                  SS/5      5        [         R                  R                  U" XV5      [         R                  SS/5      5        [         R                  R                  U" XVU5      [         R                  SS/5      5        [         R                  R                  U" U5      [         R                  SS/5      5        g )Nr  rr   r   TF)rr   rl   rK   r   r   r>   r   rB   rA   r  r  r  )and_func
and_func_3or_func	or_func_3not_funcarr1arr2arr3s           r   test_numpy_logical_opsr  ]  s   5#$AAq	7;H1a)SAq\7CJ1vr!Qx9G!QBq!QKAISVW5H;;d|$D;;t}%D;;e}%D	MM$$Xd%95;;t};UV	MM$$ZD%A5;;PUW\~C^_	MM$$WT%8%++tTl:ST	MM$$Yt4%@%++tUYlB[\	MM$$Xd^U[[$5OPr   c                     [         (       d  [        S5        [        [        [        /[
        S[
        -   //5      n [        [        S-  /[        [        5      //5      n[        [        [        [
        4X-  SS9n[         R                  R                  U" SSS5      [         R                  S	/S
//5      5        [         R                  R                  U" SSS5      [         R                  S/S
//5      5        [        [        [        [
        4X -  U -  SS9n[         R                  R                  U" SSS5      [         R                  SS/SS//5      5        g )Nr  r   r   rr   r   rr  r   r   g      ?      @rq  g      ?g     R@g     ]@      )rr   rl   re   r   r   r   r   rK   r  r  r  )xmatymatmat_funcr   s       r   test_numpy_matmulr  o  s   5#$Aq6Aqs8$%DAqD6CF8$%DAq	49g>H	MM$$Xc1a%8%++wQTPUFV:WX	MM$$XdAq%95;;RUQVGW;XY!QDIdNG<A	MM$$QsAq\5;;@PADc
@L 4M Nr   c            	         [         (       d  [        S5        [        (       d  [        S5        [         R                  R	                  SSS5      u  pn[        [        5      [        [        5      -   [        [        5      S-  -   [        [        [        -
  5      [        [        [        [        -  5      5      -  -   [        [        [        -
  5      [        S[        [        [        -
  5      -   5      -  -   [        [        S-  [         [        S-  -  -   5      -
  n[#        [        [        [        4USS9n[#        [        [        [        4USS9n[         R%                  U" XU5      U" XU5      5      (       d   eg )	Nr  r#  r      r   rr   r   rw   )rr   rl   rw   r>  randnr%   r   r#   r   r'   r   r   r"   r   r   r    r   rK   allclose)r@  rA  cr?  npfuncnefuncs         r   test_numpy_numexprr  }  s   5#$7%&ll  C-GA!q6CF?SVQY&QqS$s1Q3x.)@@qs8E!C!H*%%&'+AqD1a4K'89Dq!Qiw7Fq!Qiy9F>>&q/6!?;;;;r   c                  .   [         (       d  [        S5        [        (       d  [        S5        [         R                  R	                  SS5      u  p[        S[        4S[        S 5      05      n[        [        SU" [        5      -
  S	S
9n[         R                  U" U 5      U S-  * 5      (       d   e[        [        S5      S 5      n[        [        [        4U" [        [        5      S	S
9n[         R                  U" X5      SU -  U-  S-   5      (       d   eg )Nr  r#  r   r   ufevalc                     US-  S-   $ r   r   r   r   s     r   r   ,test_numexpr_userfunctions.<locals>.<lambda>  s    !Q$q&r   r   rw   r   c                     SU -  U-  S-   $ r   r   r  s     r   r   r    s    AaCE!Gr   )rr   rl   rw   r>  r  typer   classmethodrK   r   r  rj   r   )r@  rA  r   funcs       r   test_numexpr_userfunctionsr	    s    5#$7%&<<a$DA	dXL$89:
<BAqAw	2D>>$q'QT7++++	htn.C	DBQFBq!Hi8D>>$q*ac!eAg....r   c                     [         (       d  [        S5        [        [        [        5      [        S[        S-   -  5      5      n [        [        U SS9n[         R                  R                  R                  5        n[         R                  S[         R                  S9nU" U5      R                  US9S	:X  d   e S S S 5        g ! , (       d  f       g = f)
Ntensorflow not installed.r   r   rx   r   r   dtypesessionrr  )rx   rl   r   r%   r   r   rK   compatv1Sessionconstantfloat32r  r?  r  r7  r@  s       r   test_tensorflow_basic_mathr    s    :()s1vs1ac7|$DAt\2D						%	%	'1););<Aw||A|&#--- 
(	'	's   :>C
Cc                     [         (       d  [        S5        [        [        [        5      [        S[        S-   -  5      5      n [        [        U SS9n[         R                  R                  R                  5        n[         R                  R                  R                  [         R                  S9nU" U5      R                  X#S0S9S	:X  d   e S S S 5        g ! , (       d  f       g = f)
Nr  r   r   rx   r   r  r   r  	feed_dictrr  )rx   rl   r   r%   r   r   rK   r  r  r  placeholderr  r  r  s       r   test_tensorflow_placeholdersr    s    :()s1vs1ac7|$DAt\2D						%	%	'1  ,,:3E3E,FAw||AQ|8C??? 
(	'	's   :AC
C%c                     [         (       d  [        S5        [        [        [        5      [        S[        S-   -  5      5      n [        [        U SS9n[         R                  R                  R                  5        n[         R                  S[         R                  S9nUR                  UR                  5        U" U5      R                  X#S0S9S	:X  d   e S S S 5        g ! , (       d  f       g = f)
Nr  r   r   rx   r   r   r  r  rr  )rx   rl   r   r%   r   r   rK   r  r  r  Variabler  runinitializerr  r  s       r   test_tensorflow_variablesr     s    :()s1vs1ac7|$DAt\2D						%	%	'1););<	ammAw||AQ|8C??? 
(	'	's   :AC
C-c                  n   [         (       d  [        S5        [        [        [	        [
        [        5      [        5      5      n [        [
        [        /U SS9n[         R                  R                  R                  5        nU" SS5      R                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  rx   r   FTr  )rx   rl   rA   r>   rB   r   r   rK   r  r  r  r  r?  r  r7  s      r   "test_tensorflow_logical_operationsr#    s    :()s2a8Q DQFD,7D						%	%	'1E4 %%a%0E999 
(	'	's   ?B&&
B4c                     [         (       d  [        S5        [        S[        [        S5      4S[        S:  4S[        S:  45      n [        [        U SS9n[         R                  R                  R                  5        nU" S5      R                  US9S:X  d   eU" S5      R                  US9S:X  d   eU" S5      R                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  r   r   r   rx   r   r  )
rx   rl   r!   r   r   rK   r  r  r  r  r"  s      r   test_tensorflow_piecewiser%    s    :()aAa\BA;AE
;DAt\2D						%	%	'1Bx}}Q}'2---Aw||A|&!+++Aw||A|&!+++ 
(	'	's   =AC
C'c                  D   [         (       d  [        S5        [        [        [        * [        S-  5      n [	        [        U SS9n[         R
                  R                  R                  5        nU" S5      R                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  r   rx   r   rT  r  r   )	rx   rl   r   r   rK   r  r  r  r  r"  s      r   test_tensorflow_multi_maxr'    su    :()q1"adDAt\2D						%	%	'1Bx}}Q}'1,,, 
(	'	'   +B
Bc                  D   [         (       d  [        S5        [        [        [        * [        S-  5      n [	        [        U SS9n[         R
                  R                  R                  5        nU" S5      R                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  r   rx   r   rT  r  )	rx   rl   r   r   rK   r  r  r  r  r"  s      r   test_tensorflow_multi_minr*    su    :()q1"adDAt\2D						%	%	'1Bx}}Q}'2--- 
(	'	'r(  c                     [         (       d  [        S5        [        S:  n [        [        U SS9n[         R                  R
                  R                  5        nU" S5      R                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  r   rx   r   r   r  T)rx   rl   r   rK   r  r  r  r  r"  s      r   test_tensorflow_relationalr,    sj    :()6DAt\2D						%	%	'1Aw||A|&$... 
(	'	's   A==
Bc                  0   [         (       d  [        S5        [        [        [	        [        5      SS9n [        [        [        [        5      SS9n[        [        [        [        5      SS9n[        [        [        [        5      SS9n[         R                  R                  R                  5        n[         R                  S5      nU " U5      R                  US9S:X  d   eU" U5      R                  US9S:X  d   eU" U5      R                  US9n[        S5      R                  5       n[        Xg-
  5      S:  d   eU" U5      R                  US9n[        S5      R                  5       n[        Xg-
  5      S:  d   e S S S 5        g ! , (       d  f       g = f)	Nztensorflow not installedrx   r   y      ?       @r  r   r   gư>)rx   rl   rK   r   rY   rZ   r   r[   r  r  r  r  r  r   r   )func1func2func3func4r7  r@  tensorflow_resultsympy_results           r   test_tensorflow_complexesr4    sF   :'(Q1|4EQ1|4EQA5EQA5E						%	%	'1 %Qx}}Q}'1,,,Qx}}Q}'1,,,!!HMM!M46{((*$12V;;;!!HMM!M46{((*$12V;;; 
(	'	's   /CF
Fc                  n   [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n [         R
                  R                  R                  5        nU " [         R                  SS/5      5      nUR                  US9S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr  rx   r   r   r  g      @)
rx   rl   rK   r   r   r  r  r  r  r  )r   r7  fcalls      r   test_tensorflow_array_argr7    s    :()1a&1Q37L1A						%	%	'1*%%sCj12zz!z$+++ 
(	'	's   )3B&&
B4c                  t    [        [        [        [        -  5      n U " [        5      [        [        -  :X  d   eg r   rK   r   r   r   r   s    r   test_sym_single_argr:    s&    AEAQ41q5==r   c                      [        [        [        /[        [        -   [        -   5      n U " SS5      S[        -   :X  d   eg r   r9  r   s    r   test_sym_list_argsr<    s2    !QQ#AQ7a!er   c            	         [        [        [        [        S-  * 5      5      n [        [        [	        U " [        5      [        [
        * [
        45      SS9nU" [        5      [	        [        [        S-  * 5      [        [
        * [
        45      :X  d   eU" [        5      R                  5       [        [        5      :X  d   eg )Nr   r   r   )
r   r   r   rK   r=   r   r   doitr    r   )r   r_  s     r   test_sym_integralr?  $  s    q#q!te*AHQqTAsB<0'BAQ48CAJRC5555Q499;$r("""r   c                  4   SS 0n S S S.n[         R                  " S5      n[         R                  " S5      n[        [        U" [        5      U S4S9nU" S	5      S
:X  d   e[        [        U" [        5      US4S9nU" S	5      S
:X  d   eU" S	5      S:X  d   eg )Nr   c                     g)Nfirst fr   r   s    r   r   &test_namespace_order.<locals>.<lambda>2  s    r   c                     g)Nzsecond fr   r   s    r   r   rC  3  s    r   c                     g)N
function gr   r   s    r   r   rC  4  s    r   )r   grG  r   r   r   rB  rF  )r   r   rK   r   )n1n2r   rG  if1if2s         r   test_namespace_orderrL  +  s     "	#B#%
'BsAsA
1adRM
2Cq6Y
1adRM
2Cq6Yq6\!!!r   c                  6  ^^ [        SS 5      m[        SS 5      n [        [        T" [        5      5      n[        [        U " [        5      5      n[        T" [        5      5      [        U " [        5      5      :X  d   eU" S5      S:X  d   eU" S5      [        R
                  " S5      :X  d   e[        R                  " S5      n[        US5      (       a   e[        US 5      n[        US5      (       d   e[        SS	 5      m[        [        UU4S
 j5        g )Nr   c                     SU -  $ Nr   r   r   s    r   r   test_imps.<locals>.<lambda>C  s    AaCr   c                 .    [         R                  " U 5      $ r   )r   r    r   s    r   r   rP  D  s    DIIaLr   r   r   r   _imp_c                     SU -  $ rO  r   r   s    r   r   rP  M  s    !r   c                     U S-   $ )Ne   r   r   s    r   r   rP  P  s    QWr   c                  D   > [        [        T " T" [        5      5      5      $ r   r   )r   r   s   r   r   rP  Q  s    x1RU84r   )rj   rK   r   r   r   r    r   r   r-  r   
ValueError)rG  l1l2r  my_fr   r   s        @@r   	test_impsr[  @  s     	S-0AS"89A	!QqT	B	!QqT	Bqt9AaD	!!!a5A::a5DIIaL   >>(#DtW%%%%m4D4!!!!	c#4	5B
:45r   c                     ^ [        S[        [        45       H-  u  n mU4S jn[        SU5      nU" U 5      nX2" U 5      :X  a  M-   e   g )N)r   r   r   r   c                    > U S:X  a  Teg)Nr   r   r   )r@  error_classs    r   r    test_imps_errors.<locals>.myfunc^  s    Av!!r   r   )r   r   rW  rj   )valr   r   r?  r^  s       @r   test_imps_errorsra  T  sM     $Oi5LM[	
 !f-vqv~~ Nr   c                  &    [        [        S 5        g )Nc                  $    [        [        S 5      $ )Nc                     U $ r   r   r   s    r   r   8test_imps_wrong_args.<locals>.<lambda>.<locals>.<lambda>i  s    1r   )rj   r%   r   r   r   r   &test_imps_wrong_args.<locals>.<lambda>i  s    3CEr   )r   rW  r   r   r   test_imps_wrong_argsrg  h  s    
:EFr   c                  J   [         R                  n [        [        U " [        5      5      " S5      S:X  d   e[        [        SU " [        5      -   5      " S5      S:X  d   e[        [        [        4[        U " [        5      -   5      " SS5      S:X  d   e[        SS 5      n [        [        U " [        5      5      " S5      S:X  d   e[        [        SU " [        5      -   5      " S5      S:X  d   e[        [        [        4[        U " [        5      -   5      " SS5      S:X  d   e[        [        U " [        5      [        45      nU" S5      S	:X  d   e[        [        U " [        5      [        /5      nU" S5      S
S/:X  d   e[        [        U " [        5      U " [        5      [        4/5      nU" S5      S
S	/:X  d   e[        [        U " [        5      [        05      nU" S5      S
S0:X  d   e[        [        U " [        5      [        05      nU" S5      S
S0:X  d   e[        [        [        U " [        5      05      nU" S5      SS
0:X  d   eSS 0n[        [        U " [        5      U5      nU" S5      S
:X  d   e[        [        U " [        5      USS9nU" S5      S:X  d   eg )Nr   r   r   r   c                     U S-   $ )Nr   r   r   s    r   r   $test_lambdify_imps.<locals>.<lambda>t  s    AGr   r   rU  r   )g   r   rk  c                     U S-   $ )Nc   r   r   s    r   r   rj    s    Br   F)use_impsf   )r   r#   rK   r   r   rj   )r   lamr\  s      r   test_lambdify_impsrq  l  s<    			AAqtQ1$$$Aq1Q4x #q(((QFA!H%a+q000S"34AAqtQ3&&&Aq1Q4x #s***QFA!H%a+s222
1qtQi
 Cq6X
1qtQi
 Cq6c1X
1qtadAY'
(Cq6c8_$$$
1qtQi
 Cq6c1X
1qtQi
 Cq6c1X
1q!A$i
 Cq6aX	A
1adA
Cq6S==
1adA
.Cq6S==r   c                  0  ^^^ [        S5      m[        S5      m[        S5      m[        S5      n ST" T5      S-  -  T" T5      -  n[        T" T5      T" T5      4U5      nU" SS5      S:X  d   e[        [        T5      S[        T5      S-  -  5      nU" T" T5      5      ST" T5      S-  -  :X  d   e[        U T4SU -  T-   5      nU" SS5      S	:X  d   e[	        [
        UUU4S
 j5        [	        [
        UU4S j5        [	        [
        UU4S j5        g )NtFGz\alphar   r   	   r   r   c                  ^   > [        T " T5      T" T5      -  T " T5      T" T5      -  S-   5      $ )Nr   rJ   )rt  ru  rs  s   r   r   $test_dummification.<locals>.<lambda>  s(    1!adQqTkAo Fr   c                  F   > [        ST " T5      -  ST " T5      -  S-   5      $ )Nr   r   rJ   rt  rs  s   r   r   rx         QqT1qt8a< @r   c                  F   > [        ST " T5      -  ST " T5      -  S-   5      $ )Nr   r   r   rJ   rz  s   r   r   rx    r{  r   )r   r   rK   r%   r   SyntaxError)alpha	some_exprrp  rt  ru  rs  s      @@@r   test_dummificationr    s    AAA IEAaD!Gad"I
AaD!A$<
+Cq!9>>
3q61s1vqy=
)Cqt9AaD!G###
E1:qw{
+Cq!9>>
;FG
;@A
;@Ar   c                      [        S5      n U R                  5       u  pnX-   n[        X/U5      nU" SS5      nSn[        Xg-
  5      S:  d   eg )NNr   333333?rr  r   )rM   base_scalarsrK   r   )r  r  r-   znr?  r   r   r   s           r   8test_lambdify__arguments_with_invalid_python_identifiersr    sT    3A!JBB7D"4 A
C+C
Csw<%r   c                      [         R                  " SSS5      n [        X 5      nU" S5      S:X  d   e[        X SS9nU" S5      S:X  d   eg )Nz{v}r   r   Tr:  )r   rf   rK   )curlyvrp  s     r   test_curly_matrix_symbolr    sL    q!,F
6
"Cq6199
64
0Cq6199r   c                  V    [        S5      n U S-  n[        X5      nU" S5      S:X  d   eg )Nifr         @r   rO  )	python_ifr?  r   s      r   test_python_keywordsr    s0     Iq=D!AS6S==r   c                     [        [        [        [        [        4[        [        -   [        -   [        -   5      n SR                  5       nU R                  R                  5       S [        U5       U:X  d   e[        S5      n[        U[        U5      5      n SR                  5       nU R                  R                  5       S [        U5       U:X  d   eg )NzOCreated with lambdify. Signature:

func(w, x, y, z)

Expression:

w + x + y + zza1:26a   Created with lambdify. Signature:

func(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
        a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)

Expression:

a1 + a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a2 + a20 +...)
rK   r   r   r   r   
splitlines__doc__lenr   sum)r  r   symss      r   test_lambdify_docstringr    s    Q1aL!a%!)a-0D	 jl  <<""$Yc#h/36667DD#d)$D	Y
 jl  <<""$Yc#h/3666r   c                    ^ SSK Jm  U4S jn [        [        S5      [        S5      -   5      [        R                  -   n[        SUSU S9n[        SUSTS9n[        SUST" 5       S9n[        [        R                  " S	S5      5      n[        U" 5       U5      (       d   e[        U" 5       U5      (       d   e[        U" 5       U5      (       d   e[        [        [        [        5      S5      " S
5      n[        [        [        [        5      S5      " S5      n[        [        [        [        5      S5      " S5      nXgU/n	[        R                  " S
5      n
[        R                  " S5      n[        R                  " S5      nXU/nX:X  d   eg )Nr   )IntervalPrinterc                 0   > T" 5       R                  U 5      $ r   )doprint)r?  r  s    r   intervalrepr+test_special_printers.<locals>.intervalrepr  s     ((..r   r   r   r   r   )r   r  r   r   g?   )r*  r  r    r   HalfrK   r  r   mpir  r   r;   )r  r?  func0r.  r/  r  exp1rQ   exp3exp_lssol1sol2sol3sol_lsr  s                 @r   test_special_printersr    sE   9/ Q$q'!"QVV+DRxFERxIERx9JKE
vzz!Q
 Cegs####egs####egs#### Ax{H-a0DAx{H-c2DAx{H-b1D$F??1D??3D??2D$Fr   c                  l    [        / [        5      " 5       SL d   e[        / [        5      " 5       SL d   eg )NTF)rK   rC   r?   r   r   r   test_true_falser    s2    B4'''B E)))r   c                  @   [        [        [        [        44[        [        -   5      " SS5      S:X  d   e[        [        [        [        [        444[        [        -   [        -   [        -   5      " SS5      S:X  d   e[        [        [        S-   SS9" S5      S:X  d   eg )	Nr   r;  r   )r   )r   r   r   Fr  r   )rK   r   r   r   r   r   r   r   test_issue_2790r    s    QAKQ'62a777QQF$a!eai!m4QDJJJAq1ue,Q/1444r   c                  t    [        SS 5      n U " U " S5      5      R                  5       [        S5      :X  d   eg )Nr   c                     U S-  $ rO  r   r   s    r   r   "test_issue_12092.<locals>.<lambda>  s    AqDr   r   r  )rj   r   r   r   s    r   test_issue_12092r    s.    S.1AQqT7==?eBi'''r   c                       " S S[         R                  5      n U " S5      nSU-  n[        5       R                  U5      nUR	                  SS5      S:X  d   eg )Nc                   "    \ rS rSrS r\r\rSrg)"test_issue_14911.<locals>.Variablei  c                 8    UR                  U R                  5      $ r   )r  r6  )selfr  s     r   	_sympystr,test_issue_14911.<locals>.Variable._sympystr  s    ??499--r   r   N)r  r  r  r  r  _lambdacode
_numpycoder  r   r   r   r  r    s    	.  
r   r  r   r     z2*x)r   Symbolrh   r  replace)r  r   r   codes       r   test_issue_14911r  
  sQ    5<<  	A	AA?""1%D<<R E)))r   c                     [        [        [        [        4[	        [        [        [        5      5      " SSS5      S:X  d   e[        [        [        [        4[	        [        [        [        5      5      " SSS5      S:X  d   eg )NTr   r   F)rK   r   r   r   r@   r   r   r   test_ITEr    sZ    Q1Is1a|,T1a8A===Q1Is1a|,UAq9Q>>>r   c                     [        [        [        [        4[	        [        [        [        5      5      " SSS5      S:X  d   e[        [        [        [        4[        [        [        [        5      5      " SSS5      S:X  d   eg r   )rK   r   r   r   r   r   r   r   r   test_Min_Maxr    sZ    Q1Is1a|,Q15:::Q1Is1a|,Q15:::r   c            
         [         (       d  [        S5        [        S5      n [        S5      u  p[         R	                  SS/SS//5      n[        U [        U [        [        4   [        SS4[        SS45      5      " U5      S	:X  d   eg )
Nr  r@  zi jr   r   r   r   r   r   )	rr   rl   rI   r   r  rK   r   r   r   )r@  rb  jrA  s       r   test_Indexedr  #  sw    5"#CA5>DAaVaV$%AAs1QT7Q1I1ay9:1=CCCr   c                  D   [        [        [        4[        [        [        5      S5      " SS5      n [        [        [        4[	        [        [        5      S5      " SS5      nU [        SS5      R                  5       :X  d   eU[	        SS5      R                  5       :X  d   eg )Nr   r   r   )rK   r   r   rp   rq   r   )expr1expr2s     r   test_issue_12173r  .  s~    aVZ1-h71=EaVZ1-h71=EJq!$**,,,,Jq!$**,,,,r   c                      [         (       d  [        S5        [        [        [	        [        5      5      n [        U " S5      [	        S5      -
  5      R                  5       S:  d   eg )Nr  r   r   )rr   rl   rK   r   r&   r   nr   s    r   test_issue_13642r  6  sH    5"#DGAqtd1g~  "U***r   c                      [        [        [        [        5      S5      n [        U " S5      [        S5      -
  5      R	                  5       S:  d   eg )Nr   r   r   )rK   r   r&   r   r  r   s    r   test_sinc_mpmathr  =  s<    DGX&Aqtd1g~  "U***r   c                     [        5       n [        X S-   SS9nU" S5      S:X  d   e[        X S-   5      nU" S5      S:X  d   e[        S5      n[        X3S-   5      nU" S5      S:X  d   e[        U//US-   5      nU" S/5      S:X  d   eg )Nr   Fr  r   r   r   r   rK   )d1r   f1bd2r   r   s         r   test_lambdify_dummy_argr  B  s    	B	"1fe	,Ba5A::
2Av
Cq6Q;;	sB	"1f	Ba5A::	B4&"q&	!Bqc7a<<r   c                  |    [        5       n [        [        U 5      5      n[        X/X-
  5      nU" SS5      S:X  d   eg )Nr   r   r   )r   r   r   rK   )r\  dsymr   s      r   %test_lambdify_mixed_symbol_dummy_argsr  O  s8    A3q6?D!AH%AQ7a<<r   c                      [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n U " [         R                  SS/5      5      S:X  d   eg )Nr  rr   r   r   r   )rr   rl   rK   r   r   r  r   s    r   test_numpy_array_argr  W  sL    5"#1a&1Q37G,AU[[#s$%***r   c            	      	   [         (       d  [        S5        [        [        [        [
        [        [        [        [        [        /	n [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R
                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  /	n[         R"                  R%                  S5        ['        X5       GHn  u  p#[)        [*        U" [*        5      SS9n[-        S5       GH?  n[         R"                  R/                  SS5      S[         R"                  R/                  S	S
5      -  -   nU[
        :X  a  [         R1                  U5      nU[        :X  a  [         R1                  U5      nU[        :X  a  [         R3                  U5      nU" U5      R5                  5       nU" U5      nU[        :X  a  U" U5      S   nU[        :X  a  U" U5      S   n[1        U" U5      U-
  5      SS[1        U5      -   -  :  d   e[1        U" U5      U-
  5      SS[1        U5      -   -  :  a  GM@   e   GMq     [6        [8        [:        [<        [>        [@        /n	[         R                  RB                  [         R                  RD                  [         R                  RF                  [         R                  RH                  [         R                  RJ                  [         R                  R@                  /n
['        X5       GHS  u  p#[)        [*        [L        4U" [*        [L        5      SS9n[-        S5       GH  n[         R"                  R/                  SS5      n[         R"                  R/                  SS5      S[         R"                  R/                  S	S
5      -  -   nU[6        [@        4;   a  [         R3                  U5      nU[@        :X  a  [1        [O        U5      5      nU" X5      R5                  5       n[1        U" X5      U-
  5      SS[1        U5      -   -  :  d   e[1        U" X5      U" X5      -
  5      SS[1        U5      -   -  :  a  GM   e   GMV     g )Nscipy not installedr   rs   r      r   r   r   r   gvIh%<=)(rs   rl   r2   r3   r4   r   r:   r;   r9   r7   r8   r  expigammalnpsisicirr   r>  seedr   rK   r   rangeuniformr   r   r   r   r)   r+   r(   r*   r<   pochjvyvivkvr   int)single_arg_sympy_fnssingle_arg_scipy_fnssympy_fnscipy_fnr   rb  tvr3  scipy_resultdouble_arg_sympy_fnsdouble_arg_scipy_fnstv1tv2s                r   test_scipy_fnsr  a  s   5"#T9eXwPRTVW!MM..0A0A5==CUCU!4!4emm6K6K!MM--u}}/A/A5==CUCUW 
LLa #$8 OQW5rA%%c2.ELL4H4HQ4O1OOB 9$YYr] 8#YYr] 7"ZZ^#B<--/L#B<L 2~'|A2~'|Aqu|+,ua#l:K6K/LLLLqu|+,ua#l:K6K/LLLL1  !P8 ,Wgw#Y0!MM..0@0@!MM,,emm.>.>@P@PRWR_R_RiRik #$8 OaVXa^W=rA,,&&sB/C,,&&sB/"U\\5I5I"a5P2PPCOY77jjo9$#c(m#C-335Lq{\12UAL@Q<Q5RRRRq{Xc%7785!c,FWBW;XXXX  !Pr   c                     [         (       d  [        S5        [        R                  R	                  S5        [        S5      n [        S4[        S4[        S4[        S4[        S4[        S4[        S4[        S4[        S4/	nSnU GH}  u  p4U S U [        4-   n[!        XS" U6 5      n[#        S5       GHL  n[        R                  R%                  SS5      n['        [        R                  R)                  SS	US-
  S
95      n	[        R                  R)                  SS5      S[        R                  R)                  SS	5      -  -   n
U[        :X  a  [        R+                  U
5      n
U[        :X  aH  [        R                  R)                  SS5      n
['        [        R                  R%                  SUSS
95      n	U4U	-   U
4-   nU" U6 nU" U6 R-                  5       nSS[/        U5      -   -  n[/        X-
  5      n X:  d   eGMO     GM     g ! [0         aB    [3        UR5                  [7        U5      [7        U5      [7        U5      [7        U5      UUS95      ef = f)Nr  r   zn k a br   r   r   zThe random test of the function {func} with the arguments {args} had failed because the SymPy result {sympy_result} and SciPy result {scipy_result} had failed to converge within the tolerance {tol} (Actual absolute difference : {diff})r   r   )sizer  r   r  r   &.>)r  r2  r3  r  r	   tol)rs   rl   rr   r>  r  r   r\   r]   r^   r_   r`   ra   rb   rc   rd   r   rK   r  randinttupler  r   r   r   r   AssertionErrorformatrepr)paramspolysmsgr  
num_paramsr2  r   _tntparamsr  valsr  r3  atolr	   s                   r   test_scipy_polysr
    s.   5"#	LLaYF 
Q	Q	1	!	1	Q			
E	0  !&kz"aT)T8T?+rA%%a,BELL00AJqL0IJG%%c2.ELL4H4HQ4O1OOB7"ZZ^>)\\))"a0 4 4Q 4 CD57?bU*Dd8L#T?002LS../D|23D{"{%  !&,  	$JJ!(^!$Z%),%7%),%7!   " 	s   7H		AIc                  j    [        [        [        S-  5      n S[        R                  " U 5      ;   d   eg )Nr   zx**2)rK   r   inspect	getsourcer   s    r   test_lambdify_inspectr    s-    AqDA W&&q))))r   c                      [        5       [        5       p[        X/U SUS0S5      nU" SS5      SSS.:X  d   e[        X/X4S5      nU" SS5      S:X  d   e[        / S5      nU" 5       S:X  d   e[        X/X/S5      nU" SS5      SS/:X  d   eg )Nr   r   r   )r   r   )r   r   r)  r  )r   r   r   r   r   r   s         r   test_issue_14941r    s    7EGq 
1&1aA,	0Ba81|### 
1&1&'	*Ba8v
2t
C5D== 
1&1&'	*Ba81vr   c                  H  ^ ^ [        S5      " [        5      m T R                  5       m[        T T4T T-   5      " SS5      S:X  d   e[	        [        T T4T T-  5      5      " SS5      S:X  d   e[        [        U U4S j5        [	        [        T T4T T-  SS95      " SS5      S:X  d   e[	        [        TT 4T T-  SS95      " [        S5      S5      [        R                  :X  d   e[        TS	T-   5      " S
5      S:X  d   e[	        [        TS	T-   SS95      " S
5      S:X  d   eg )Nr   r   r   r  r   c                  6   > [        [        T T4T T-  SS95      $ )NFr  )r  rk   r   fxs   r   r   :test_lambdify_Derivative_arg_issue_16468.<locals>.<lambda>  s    Y2w"e45r   Tr  r   )   rH  )
r   r   r	   rK   r  rk   r   r  r   r  r  s   @@r   (test_lambdify_Derivative_arg_issue_16468r    s   aA	
BQGQV$R+r111	1b'1R4()"a0A555
9 6 7	1b'1R467A>!CCC	2q'1R467"qAQVVKKKBB#r)))	"a"fd34R8B>>>r   c                     [        [        /[        R                  " [        5      5      n SnU " U5      UR                  :X  d   e[        [        /[        R
                  " [        5      5      nU" U5      UR                  :X  d   eg )Ny      @       @)rK   r   r   rY   r   rZ   imag)f_rer`  f_ims      r   test_imag_realr    s_    QC!%D
C9   QC!%D9   r   c                     [         (       d  [        S5        [        SSS5      n [         R                  SS/SS//5      n[	        X S-  5      n[         R                  U" U5      [         R                  SS	/S
S//5      5      (       d   e[	        X S-  5      n[         R                  U" U5      [         R                  SS/SS//5      5      (       d   eg )Nr  r  r   r   r   r   r   g       r         ?rq  %   6   r  v   )rr   rl   rf   r  rK   r  )r  A0r   rG  s       r   test_MatrixSymbol_issue_15578r#    s    5"#S!QA	q!fq!f%	&BGA>>!B%sBi#t-E!FGGGGqDA>>!B%r2hS	-B!CDDDDr   c            	         [         (       d  [        S5        SSKJn JnJnJn  SSKJn  Su  pVpxUR                  XVXx5      R                  5       n	[        XX#4UR                  XX#5      5      n
U
" XVXx5      n[        X-
  5      S:  d   eg )Nr  r   )r  r_  r   Z)hydrogen)r   r   r   r   r   )rs   rl   	sympy.abcr  r_  r   r%  sympy.physicsr&  R_nlr   rK   r   )r  r_  r   r%  r&  nvlvrvZvsympy_valuer   scipy_values               r   test_issue_15654r0    sx    5"#$$&NBB--/557K!x}}Q189ABB#K{()E111r   c                  0   [         (       d  [        S5        [        SSS5      n [        SSS5      n[        SSS5      n[        SSS	5      n[        S
5      n[	        U SU-  U -  5      n[	        U SU-   U -  5      n[	        U SU -  5      n[	        XU4SU-  U-  U-  5      n[         R                  U" [         R                  / SQ/ SQ/ SQ/5      5      [         R                  SU-  SU-  SU-  /SU-  SU-  SU-  /SU-  SU-  SU-  //[        S95      (       d   e[         R                  U" [         R                  / SQ/ SQ/ SQ/5      5      [         R                  US-   SU-  S-   SU-  S-   /US-   SU-  S-   SU-  S-   /US-   SU-  S-   SU-  S-   //[        S95      (       d   e[         R                  U" [         R                  / SQ/ SQ/ SQ/5      5      [         R                  / SQ/ SQ/ SQ/5      5      (       d   e[         R                  U" [         R                  / SQ/ SQ/5      [         R                  / SQ/ SQ/ SQ/5      [         R                  / SQ/ SQ/ SQ/ SQ/5      5      [         R                  / SQ/ SQ/5      5      (       d   eg )Nr  r  r   r  r   Cr   Dr   kr   r   r  )r   r   r   )r   r   r   r   )r   r   r   r   r   )x      ih  i  iX  )rr   rl   rf   r   rK   array_equalr  object)	r  r  r2  r3  r4  r   rG  hrb  s	            r   test_issue_15827r:    s   5"#S!QAS!QAS!QAS!QAclAQqS!GAQqS!GAAaCA!AaCE!G$AQu{{Iy)+LMN	KK!A#qsAaC1Q3!QqS/AaC1ac?C6KRT T T T Qu{{Iy)+LMN	KK!a%1q!A#'*QUAaC!GQqS1W,EUAaC!GQqS1W&,  ./ / / / Qu{{Iy)+LMN	KKIy124 4 4 4 Qu{{Iy+ABEKKQ]_kmyPzD{	KK/?OTUWX]XcXcee  Y!" " " "r   c                      [         (       d  [        S5        [        S5      n S n[        X" U 5      SS9nU" S5      [         R                  R
                  :X  d   eg )Nr  r   c                 .    [         R                  U S-  -  $ rO  )r   GoldenRatior   s    r   r   "test_issue_16930.<locals>.<lambda><  s    1==1a4'r   rs   r   r   )rs   rl   r   rK   	constantsgolden_ratio)r   r   f_s      r   test_issue_16930rB  7  sL    5"#A'A	!QqT7	+Ba5EOO00000r   c                      [         (       d  [        S5        [        S5      n [        U /[        R
                  " U S5      SS9nU" S5      [        R                  " SS5      :X  d   eg )Nr  r   r   rs   r   r   )rs   rl   r   rK   r   LambertWr   lambertw)r   rA  s     r   test_issue_17898rF  @  sQ    5"#A	1#u~~a+W	=Bc7fooc2....r   c                     [         (       d  [        S5        [        [        [        R
                  " [        5      5      n [        [        [        R
                  " [        S5      5      nU " / SQ5      nU" / SQ5      n[        US   5      R                  5       S:  d   e[        US   S-
  5      R                  5       S:  d   e[        US   S-
  5      R                  5       S:  d   e[        US   5      R                  5       S:  d   e[        US   S-
  5      R                  5       S:  d   e[        US   S-
  5      R                  5       S:  d   eg )Nr  r   r  r   r   rr  r   )rr   rl   rK   r   r   r1   r   r  )r   r   res1res2s       r   test_issue_13167_21411rJ  G  s   5"#	!U__Q'	(B	!U__Q*	+Bj>Dj>DtAw<>>e###tAw}!E)))tAw{%'''tAw<>>e###tAw{%'''tAw{%'''r   c                  Z    [        [        [        5      n U " S5      [        S5      :X  d   eg )N   r   )rK   r   r
   r   r   s    r   test_single_erM  U  s#    AAR5CHr   c                  ^   [         (       d  [        S5        [        S5      n [        U [        5      n[        U [        4USS9n[        [        SS5      U" SS5      -
  5      S::  d   e[        U [        5      n[        U [        4USS9n[        [        SS5      U" SS5      -
  5      S::  d   eg )Nr  r@  rs   r   r   r   r  )rs   rl   r   rq   r   rK   r   rp   )r@  r   rt  r   s       r   test_issue_16536rO  Y  s    5"#A	Aq	B!QW-Az!Q!Aq')*e333	Aq	B!QW-Az!Q!Aq')*e333r   c                  Z   [         (       d  [        S5        [        S5      u  p[        [        R
                  [        X5      5      n[        X U45      n[        X4USS9nU SUS0n[        UR                  U5      U" UR                  5       6 -
  5      S:*  R                  5       (       d   eg Nr  zx1 x2rr   r   r   r   r  )rr   rl   r   r   r   Zeror   rG   rK   r   re  valuesr  )x1x2r   rG  ru  points         r   test_issue_22726rW  g  s    5"#WFBAFFCK A8$A"1g.ABNEu5<<> 223u<AACCCCr   c                      [         (       d  [        S5        [        S5      u  p[        [	        X5      5      n[        X4USS9nU SUS0n[        UR                  U5      U" UR                  5       6 -
  5      S::  d   eg rQ  )	rr   rl   r   r1   r   rK   r   re  rS  )rT  rU  r   rt  rV  s        r   test_issue_22739rY  s  sr    5"#WFB#b+A"1g.ABNEqvve}q%,,.112e;;;r   c                     [         (       d  [        S5        [        S5      u  pU [        [	        US-  5      5      [        U5      -
  -  n[        X/US5      nU SUS0n[        UR                  U5      U" UR                  5       6 -
  5      S::  d   e[        X/U5      n[        UR                  U5      U" UR                  5       6 -
  5      S::  d   eg )Nr  za tr   rr   r   r  )
rr   rl   r   r   r$   r#   rK   r   re  rS  )r@  rs  r?  rt  rV  s        r   test_issue_22992r[  ~  s    5"#5>DAc#ac(mc!f$%D!w'AAqMEtyy!U\\^"445>>> 	!Atyy!U\\^"445>>>r   c                      [         (       d  [        S5        [        [        [        S-  /5      n [	        [        U S5      nU" S5      R
                  [         R                  :X  d   eg )Nr  r   rr   r   )rr   rl   rH   r   rK   	__class__r  )r?  r   s     r   test_issue_19764r^    sJ    5"#!QTDD'"AQ4>>U]]***r   c                      [         (       d  [        S5        [        [        [	        [        5      S5      n [         R                  U SS9" S5      S:X  d   eg )Nznumba not installedrr   T)nopythonr   g	T?)r{   rl   rK   r   r%   jitr   s    r   test_issue_20070rb    sC    5"#CFG$A99Q9&q)+====r   c                  4   [         (       d  [        S5        [        [        5      n [	        [        5      n[        [        U SS9n[        [        USS9n[        [        S5      U" S5      -
  5      S::  d   e[        [	        S5      U" S5      -
  5      S::  d   eg )Nr  rs   r   ?r  )rs   rl   r5   r   r6   rK   r   )r   r   F1F2s       r   test_fresnel_integrals_scipyrg    s~    5"#	!B	!B	!R	)B	!R	)Bx}r#w&'5000x}r#w&'5000r   c                      [         (       d  [        S5        [        [        [        5      n [        [        [        4U SS9n[        [        SS5      U" SS5      -
  5      S::  d   eg )Nr  rs   r   rd  ffffff@r  )rs   rl   r.   r   r   rK   r   r   rt  s     r   test_beta_scipyrk    sQ    5"#Q
A!QG,AtC~#s+,555r   c                      [        [        [        5      n [        [        [        4U SS9n[	        [        SS5      U" SS5      -
  5      S::  d   eg )Nr   r   rd  ri  r  )r.   r   r   rK   r   rj  s     r   test_beta_mathrm    sC    Q
A!QF+AtC~#s+,555r   c            	          [         (       d  [        S5        [        [        [        [
        [        5      n [        [        [        [
        [        4U SS9n[        [        SSSS5      U" SSSS5      -
  5      S::  d   eg )	Nr  rs   r   gffffff?g@r   rr  r  )	rs   rl   r/   r   r   r   r   rK   r   rj  s     r   test_betainc_scipyro    sd    5"#1aA!Q1q'2AwsCc*QsCc-BBCuLLLr   c            	          [         (       d  [        S5        [        [        [        [
        [        5      n [        [        [        [
        [        4U SS9n[        [        SSSS5      U" SSSS5      -
  5      S::  d   eg )	Nr  rs   r   r   r  r   r   r  )	rs   rl   r0   r   r   r   r   rK   r   rj  s     r   test_betainc_regularized_scipyrq    se    5"#Aq!Q'A!Q1q'2A"3S!4qc37JJKuTTTr   c            	         [         (       d  [        S5        [        [        [        [
        [        [        [        [        /n U  H  nSUR                  ;   a   U" [        [        5      n[        [        4nSnO1SUR                  ;   a  U" [        5      n[        4nSnO[        S5      e[        X25      nU" U6 nUR                  [!        [#        X45      5      5      R%                  5       n[         R'                  U[)        U5      5      (       a  M   e   [        [        [        4[        [        [        5      [        [        5      5      5      n[+        SU" SS	5      -  S
-
  5      S:  d   eg )Nr  r   )r  g?r   )r  z:Need to handle other than unary & binary functions in testr   gJz5gn5g!z05g"}t3)rr   rl   rO   rP   rQ   rR   rS   rT   rU   rV   r1  r   r   NotImplementedErrorrK   re  r  r   r   r  r  r   )	funcsr  r?  r2  num_argsr   result	referencelae2s	            r   test_numpy_special_mathry    s   5"#E4ueY
KE

?1:Dq6D!H$**_7D4DH%&bccT HIId3t#678>>@	~~feI&67777   QFJtAwQ89DsD((723e;;;r   c                     [         (       d  [        S5        [        [        4[	        [        5      SS9n [        U " S5      S-   5      S:  d   e[        [        [        [         R                  R                  R                  S5      S S 5      5      S	:  nU(       aC  [        [        [        4[        [        [        5      SS9n[        U" S
S5      S-
  5      S:  d   eg g )Nr  rs   r   g#B;gWw'&l7gN~h.r   )r   r   g333333?r  g-=gFFg<)rs   rl   rK   r   rW   r   r  mapr  versionsplitr   rX   )cm1have_scipy_1_10pluscm2s      r   test_scipy_special_mathr    s    5"#
A4q7
3Cs5zE!"V+++C)>)>)D)DS)I"1)M NOSZZ1vuQ{G<3sD>N23u<<< r   c                      [         (       d  [        S5        [        [        4[	        [        5      SS9n U " S5      S:X  d   eg )Nr  rs   r   r   rr  )rs   rl   rK   r   r   )berns    r   test_scipy_bernoullir    s4    5"#QD)A,8D7c>>r   c                      [         (       d  [        S5        [        [        4[	        [        5      SS9n U " S5      S:X  d   e[        [        [
        4[	        [        [
        5      SS9nU" SS5      S:X  d   eg )Nr  rs   r   r   r  g      ?)rs   rl   rK   r   r   r   )hnhnms     r   test_scipy_harmonicr    s`    5"#	1$W	5Ba5C<<
Aq68Aq>7
;Cq!9r   c                     [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n U " [         R                  SS/5      5      nUS:X  d   eS[        [        U5      5      ;   d   eg )NCuPy not installedry   r   r   r   ry   rl   rK   r   r   r  r   r  r   rv  s     r   test_cupy_array_argr    sf    4!"1a&1Q37F+Atzz3*%&FQ;;Sf&&&&r   c                     [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n U " [         R                  SS/5      5      nUS:X  d   eS[        [        U5      5      ;   d   eg )Nr  rr   r   r   r   ry   r  r  s     r   test_cupy_array_arg_using_numpyr    sh     4!"1a&1Q37G,Atzz3*%&FQ;;Sf&&&&r   c                  b   [         (       d  [        S5        [        [        [        [
        /5      n [        [        [        [
        /[        X 5      SS9n[        [        [        [
        /[        X R                  5      SS9n[        [        [        [
        /[        U R                  U 5      SS9n[        [        [        [
        /[        X R                  5      SS9nU" SSS5      U" SSS5      s=:X  a9  U" SSS5      s=:X  a*  U" SSS5      s=:X  a  [         R                  S/5      :X  d   e   eg )Nr  ry   r   r   r   r   r  )
ry   rl   re   r   r   r   rK   rD   r  r  r  s        r   test_cupy_dotproductr  "  s    4!"1ayA	1a)Z-v	>B	1a)Z33/	@B	1a)ZQ/	@B	1a)Z33/	@BaA;
1a
1a 	1a 	

B4	    r   c                     [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n U " [         R
                  R                  SS/5      5      nUS:X  d   eS[        [        U5      5      ;   d   eg )NJAX not installedrz   r   r   r   	rz   rl   rK   r   r   rr   r  r   r  r  s     r   test_jax_array_argr  3  sj    3 !1a&1Q37E*AsyySz*+FQ;;CV%%%%r   c                     [         (       d  [        S5        [        [        [        //[        [        -  [        -   S5      n U " [         R
                  R                  SS/5      5      nUS:X  d   eS[        [        U5      5      ;   d   eg )Nr  rr   r   r   r   rz   r  r  s     r   test_jax_array_arg_using_numpyr  =  sj    3 !1a&1Q37G,AsyySz*+FQ;;CV%%%%r   c                  v   [         (       d  [        S5        [        [        [        [
        /5      n [        [        [        [
        /[        X 5      SS9n[        [        [        [
        /[        X R                  5      SS9n[        [        [        [
        /[        U R                  U 5      SS9n[        [        [        [
        /[        X R                  5      SS9nU" SSS5      U" SSS5      s=:X  aC  U" SSS5      s=:X  a4  U" SSS5      s=:X  a%  [         R                  R                  S/5      :X  d   e   eg )Nr  rz   r   r   r   r   r  )rz   rl   re   r   r   r   rK   rD   r  rr   r  r  s        r   test_jax_dotproductr  G  s    3 !1ayA	1a)Z-u	=B	1a)Z33/	?B	1a)ZQ/	?B	1a)Z33/	?BaA;
1a
1a 	1a 				    r   c                     S n S nS n " S S5      nU" [         [        [        4[         [        -   [        -   [         [        -   [        -
  S[         -  S[        -  -   [        -
  [         [        -   S-  [        [        -   S-  -   /SS9U" [         [        [        4[         [        R                  " [         5      -   [        [        R                  " [         5      -   [        [        R                  " [         S	5      -   [        [        R                  " [         S	5      -  /S
S9U" [         [        [        4[         [        [        5      -   [        [        [        5      -   [        [        [        5      -
  /SS9U" [         [        [        4[        [         [         [        -  /[        [        5      S-   [         [        -  //5      [         [        -  [        [        5      -   [         [        -  -
  [        [         [         -  [        [        5      [         [        -  /5      /SSS9U" [         [        4[         [        -   S	-
  S-  [         [         [        -   [         [        -   S[         -  S	-   -  [         [        -   S	-
  S-  -   S[         -  S	-   [         [        -   -  /SS9/nU H]  n[        (       d  UR                  (       a  M!  SSX U4 H2  nUR                  US9nU" UR                  6 nUR                  U5        M4     M_     g )Nc                 
    SU 4$ )Nr   r   )exprss    r   	no_op_cse$test_lambdify_cse.<locals>.no_op_cseY  s    5yr   c                 2    SSK Jn  U" U [        [        S9S9$ )Nr   rE   clsr   )sympy.simplify.cse_mainrF   rL   r   )r  rF   s     r   	dummy_cse$test_lambdify_cse.<locals>.dummy_cse\  s    /5"2u"=>>r   c                     SSK JnJn  U" XS9$ )Nr   )cse_release_variablesrF   )postprocess)r  r  rF   )r  r  rF   s      r   minmem!test_lambdify_cse.<locals>.minmem`  s    F5<<r   c                   8    \ rS rSrSS.S jrS rSSS.S jrS	rg
)test_lambdify_cse.<locals>.Caseid  F)requires_numpyc                    Xl         X l        X0l        [        [	        U R                   U R                  5      5      nU Vs/ s H!  ofR                  U5      R                  5       PM#     snU l        X@l        g s  snf r   )	r2  r  ru  r  r   re  r   r   r  )r  r2  r  ru  r  	subs_dictes          r   __init__(test_lambdify_cse.<locals>.Case.__init__e  s\    IJ$MSDMM:;I;@A5ay)//15ADH"0 Bs    (A7c                @    [        U R                  U R                  US9$ )NrE   )rK   r2  r  )r  rF   s     r   rK   (test_lambdify_cse.<locals>.Case.lambdifym  s    DIItzzs;;r   r   )abstolreltolc                6  ^^^ U R                   (       a2  [        UUU4S j[        U R                  5       5       5      (       d   eg [        U R                  5       H:  u  pE[	        TU   U-
  5      nUS:X  a
  UT:  d   eM&  U[	        U5      -  T:  a  M:   e   g )Nc           	   3      >#    U  H6  u  p[         R                  TU   [         R                  U[        S 9TTS9v   M8     g7f)r  )r  r	  N)rr   r  asarrayr  ).0rb  r   r  r  rv  s      r   	<genexpr>Atest_lambdify_cse.<locals>.Case.assertAllClose.<locals>.<genexpr>r  sC      <':tq !>>&)U]]1E]5R/5F * D':s   >Ar   )r  r  	enumerater   r   )r  rv  r  r  rb  r   abs_errs    ```   r   assertAllClose.test_lambdify_cse.<locals>.Case.assertAllClosep  s    "" <'0':< < < < < !$((+fQi!m,6"V+++"3q6>F222 ,r   )r2  r  ru  r   r  N)r  r  r  r  r  rK   r  r  r   r   r   Caser  d  s     DI 	1	< 49 	3 	3r   r  r   )r   r   r  )r2  r  ru  r   )r   r   r  )r   r   r  r   )r   r   r   T)r2  r  ru  r  )r   r   FrE   )r   r   r   r   r1   r&   re   r%   rr   r  rK   ru  r  )	r  r  r  r  casescase_cser   rv  s	            r   test_lambdify_cser  X  sb   ?=3 36 	QUQYUQYqS1Q3Y]cAX1q 	 "		
 	Q""""1%%eooa##	 "		
 	QQKQKQK
 %	
 	QAaC3q6A:q!t"456!CF
1a4!SVQT*+
  		
 	QEAI>1a!eUQqS1WQQ.1qAE0BD		
Q.E^ u,,D&Y?D$'A&F' @ r   c                     ^ [        [        S9m[        [        [        S-  [	        [        S-  5      /U4S jS9" S5      n U (       d   eg )Nr  r   c                    > [        U TS9$ )Nr  rE   )r  r  s    r   r   "test_issue_25288.<locals>.<lambda>  s    c!T6Jr   rE   )rL   r   rK   r   r%   )okr  s    @r   test_issue_25288r    s9    &D	!adC1I&,J	KA	NBI2r   c                      [        5          [        [        [        1[        [        -   5        S S S 5        g ! , (       d  f       g = fr   )r   rK   r   r   r   r   r   test_deprecated_setr    s&    		!!QQ 
"	!	!s	   "6
Ac                     [         (       d  [        S5        [        SSS5      n [        X R                  U -  S5      nU" [         R                  / SQ5      5      S:X  d   eU" [         R                  / SQ5      5      S:X  d   e[        X U R                  -  S5      nU" [         R                  / SQ5      5      S:X  d   eU" [         R                  / SQ5      5      S:X  d   e[        X U R                  -  U -  S5      n[         R                  S/S	/S//5      n[         R                  S/S
/S//5      n[         R                  U" U5      U5      (       d   eg )Nr  Xr   r   rr   r   r  r|  r      rH  )rr   rl   rf   rK   r  r  r7  )r  r   r  r  s       r   test_issue_13881r    s    5#$S!QACCE7#AU[[#$***U[[#$***accE7#AU[[#$***U[[#$***qssUAIw'A;;aS1#'D;;bT2$'(DQtWd++++r   c                      [        S5      " [        5      n [        S5      " [        5      n[        U S-  US-  -   U S-  X-  S-  -   -  -   nUR                  5       n[	        X4[        4USS9nU" SS	5      nUS
:X  d   eg )Nr   r   r   r   r   TrE   )r   r   r   g     r@)r   r   r   expandrK   )r   rG  r?  	eval_expranss        r   test_23536_lambdify_cse_dummyr    s~    aAaA1q!tadacAXo..D;;=D1&!d5I
J
$C%<<r   c                   b    \ rS rSrSrSrSrS r\S 5       r	\S 5       r
\S 5       rS rS rS	rg)
LambdifyDocstringTestCasei  Nc                     Xl         X l        g r   docstring_limitexpected_redacted)r  r  r  s      r   r  "LambdifyDocstringTestCase.__init__  s    .!2r   c                 D    SnU R                   (       d  U R                  $ U$ )NzEEXPRESSION REDACTED DUE TO LENGTH, (see lambdify's `docstring_limit`))r  EXPR)r  expr_redacted_msgs     r   expected_expr'LambdifyDocstringTestCase.expected_expr  s     c $ 6 6tyyM<MMr   c                 D    SnU R                   (       d  U R                  $ U$ )NzFSOURCE CODE REDACTED DUE TO LENGTH, (see lambdify's `docstring_limit`))r  SRC)r  src_redacted_msgs     r   expected_src&LambdifyDocstringTestCase.expected_src  s     c#55txxK;KKr   c                 Z    SU R                    SU R                   SU R                   S3nU$ )Nz(Created with lambdify. Signature:

func(z)

Expression:

z

Source code:

z

Imported modules:

)	SIGNATUREr  r  )r  expected_docstrings     r   r  ,LambdifyDocstringTestCase.expected_docstring  sJ    NN# $!!" #  ! "$% 	 "!r   c                 ,    [        U R                  5      $ r   )r  r  r  s    r   __len__!LambdifyDocstringTestCase.__len__  s    4**++r   c                 h    U R                   R                   SU R                   SU R                   S3$ )Nz(docstring_limit=z, expected_redacted=))r]  r  r  r  r  s    r   __repr__"LambdifyDocstringTestCase.__repr__  s@    ~~&&' (#334 5!!%!7!7 8;	
r   r  )r  r  r  r  r  r  r  r  propertyr  r  r  r  r  r  r   r   r   r  r    s`    ID
C3 N N L L 
" 
",
r   r  c            	           " S S[         5      n [        S5      nU " S SS9U " SSS9U " SSS9U " SS	S9U " S
S	S94nU H6  n[        U/USUR                  S9nUR                  UR
                  :X  a  M6   e   g )Nc                        \ rS rSrSrSrSrSrg)Ntest_lambdify_docstring_size_limit_simple_symbol.<locals>.SimpleSymbolTestCasei  r   z(def _lambdifygenerated(x):
    return x
r   Nr  r  r  r  r  r  r  r  r   r   r   SimpleSymbolTestCaser    s    	 	r   r  r   Fr  r   r   r   Tr   r   r  )r  r   rK   r  r  r  )r  r   
test_cases	test_caselambdified_exprs        r   0test_lambdify_docstring_size_limit_simple_symbolr  
  s    
8 
 	A 	TUKSEJQ%HQ$GR4HJ  	"C%55	
 &&)*F*FFFF  r   c            	      0    " S S[         5      n [        S5      u  pnX/X1U-   U-   S-  R                  5       /nU " S SS9U " SSS9U " SS	S9U " S
S	S9U " SS	S94nU H7  n[        XU/USUR                  S9nUR
                  UR                  :X  a  M7   e   g )Nc                        \ rS rSrSrSrSrSrg)Htest_lambdify_docstring_size_limit_nested_expr.<locals>.ExprListTestCasei)  x, y, zzK[x, [y], z, x**3 + 3*x**2*y + 3*x**2*z + 3*x*y**2 + 6*x*y*z + 3*x*z**2 +...zdef _lambdifygenerated(x, y, z):
    return [x, [y], z, x**3 + 3*x**2*y + 3*x**2*z + 3*x*y**2 + 6*x*y*z + 3*x*z**2 + y**3 + 3*y**2*z + 3*y*z**2 + z**3]
r   Nr  r   r   r   ExprListTestCaser  )  s    	 	
J 	r   r  r  r   Fr     r   Tr   r   r   r  )r  r   r  rK   r  r  r  )r  r   r   r   r?  r  r  r  s           r   .test_lambdify_docstring_size_limit_nested_exprr  '  s    

4 

 i GA!sAQQ..01D 	GFtDdCtDJ  	"1I%55	
 &&)*F*FFFF  r   c            	      l    " S S[         5      n [        S5      u  pn[        [        R                  U/X-   U-   X-   U-   S-  R                  5       //5      nU " S SS9U " SSS9U " SS	S9U " S
S	S9U " SS	S94nU H7  n[        XU/USUR                  S9nUR                  UR                  :X  a  M7   e   g )Nc                        \ rS rSrSrSrSrSrg)Atest_lambdify_docstring_size_limit_matrix.<locals>.MatrixTestCaseiK  r  zNMatrix([[0, x], [x + y + z, x**3 + 3*x**2*y + 3*x**2*z + 3*x*y**2 + 6*x*y*z...zdef _lambdifygenerated(x, y, z):
    return ImmutableDenseMatrix([[0, x], [x + y + z, x**3 + 3*x**2*y + 3*x**2*z + 3*x*y**2 + 6*x*y*z + 3*x*z**2 + y**3 + 3*y**2*z + 3*y*z**2 + z**3]])
r   Nr  r   r   r   MatrixTestCaser  K  s    	 	
0 	r   r	  r  r   Fr  r  r   Tr   r   r   r  )
r  r   re   r   rR  r  rK   r  r  r  )r	  r   r   r   r?  r  r  r  s           r   )test_lambdify_docstring_size_limit_matrixr
  I  s    
2 
 i GA!AFFA;aeai!^,C,C,E FGHD 	tuEseDrTBqDArTBJ  	"1I%55	
 &&)*F*FFFF  r   c                  d    [        S5      n SU 44n[        X5      nU" S5      nUS:X  d   S5       eg )Nr@  r   r   )r   r)  z2Lambdify did not handle the empty tuple correctly.rO  )r@  r?  r   rv  s       r   test_lambdify_empty_tupler  l  s=    A:DAqTFZU!UUr   c                      Sn [        SSS5      R                  5       n[        SSS5      R                  5       nSnS[        -  n[        XU 5      (       d   e[        X$U 5      (       d   eg )	Nr  r   rr  r   r   r   gQ@te_޿gF#O3t9)rb   r   r   r   )r  sympy_result_integersympy_result_complexmpmath_result_integermpmath_result_complexs        r   (test_assoc_legendre_numerical_evaluationr  s  sp    
C)!S#6<<>)!Q288:..q0)#FFFF)#FFFFr   (/  	itertoolsr   r   r  r   sympy.testing.pytestr   r   sympy.concrete.summationsr   sympy.core.functionr   r   r	   sympy.core.numbersr
   r   r   r   r   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.combinatorial.factorialsr   r   %sympy.functions.combinatorial.numbersr   r   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   #sympy.functions.elementary.integersr   (sympy.functions.elementary.miscellaneousr   r   r    $sympy.functions.elementary.piecewiser!   (sympy.functions.elementary.trigonometricr"   r#   r$   r%   r&   r'   sympy.functions.special.besselr(   r)   r*   r+   r,   r-   &sympy.functions.special.beta_functionsr.   r/   r0   'sympy.functions.special.delta_functionsr1   'sympy.functions.special.error_functionsr2   r3   r4   r5   r6   r7   r8   'sympy.functions.special.gamma_functionsr9   r:   r;   r<   sympy.integrals.integralsr=   sympy.logic.boolalgr>   r?   r@   rA   rB   rC   %sympy.matrices.expressions.dotproductrD   r  rF   sympy.tensor.arrayrG   rH   sympy.tensor.indexedrI   r  rK   sympy.utilities.iterablesrL   sympy.vectorrM   sympy.core.exprrN   sympy.codegen.cfunctionsrO   rP   rQ   rR   rS   rT   sympy.codegen.numpy_nodesrU   rV   sympy.codegen.scipy_nodesrW   rX   rY   rZ   r[   #sympy.functions.special.polynomialsr\   r]   r^   r_   r`   ra   rb   rc   rd   sympy.matricesre   rf   rg   r*  rh   sympy.printing.numpyri   rj   rk   rl   sympy.utilities.decoratorrm   sympy.utilities.exceptionsrn   sympy.externalro   rp   rq   r   MutableDenseMatrixrr   rs   rw   rx   ry   rz   r{   osenvironr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r!  r3  rE  rK  rR  rW  rY  r]  r`  rc  ri  rm  rt  rx  rz  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,  r4  r7  r:  r<  r?  rL  r[  ra  rg  rq  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  r:  rB  rF  rJ  rM  rO  rW  rY  r[  r^  rb  rg  rk  rm  ro  rq  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r   r   r   <module>r=     sn       ? ) 8 8 I I I $ " . Q E 4 ; 7 5 E E :A A W W W W ? _ _ _ Y Y . @ @ < ' 5 , - 6 # + K K ; 2 < <+ + + > = 3 - D % 9 6 ( J   ggj8*-EF
	
"<(
VEg),BJJ%&Y
1a



8$
*0 H H $ $ % %4 ' ' N N$&&H+.	6"	((
5 $ ""
#:G:J L42H&D&
EQ$N</ .@	@:	,-./<4	,

#"*6((GDB* 70@*5(
*?
;D-++

+6Yr9x*$
?!E	2"61/(4	D<?$+>
166MU<2='
'"&&"[(z ,*(
 (
VG:GD GFV
Gr   