
    \h;                    D	   S SK Jr  S SKrS SKrS SK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'J(r(  S SK)J*r*J+r+  S SK,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3J4r4J5r5  S SK6J7r7  S SK8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@  S SKAJBrBJCrCJDrD  S SKEJFrFJGrGJHrHJIrIJJrJJKrK  S SKLJMrMJNrNJOrO  S SKPJQrQ  S SKRJSrSJTrTJUrUJVrVJWrWJXrXJYrY  S SKZJ[r[J\r\J]r]J^r^  S SK_J`r`  S SKaJbrb  S SKcJdrdJereJfrfJgrgJhrhJiri  S SKjJkrk  S SKlJmrm  S SKnJoroJprp  S SKqJrrr  S S KsJtrtJuru  S S!KvJwrw  S S"KxJyry  S S#KzJ{r{  S S$K|J}r}  S S%K~JrJrJrJrJrJrJrJr  S S&KJrJrJrJrJrJr  S S'KJrJr  S S(K&JrJrJr  S S)KJrJrJrJrJrJrJrJrJr  S S*KJrJrJr  S S+KJr  S S,KJr  S S-KJr  S S.KvJrJr  S S/KJr  S S0KJr  S S1KJr  S S2KJr  S S3KZJrJr  S SKr\r\" S45      r\" S5S6S7/0S89r\" S95      r\" S:5      r\" S;5      r\" S<5      r\" S=5      r\(       a  S SKrS>\GRz                  S?'   \" S@5      u  rrrrSA rSB rSC rSD rSE rSF rSG rSH rSI rSJ r\SK 5       r\SL 5       r\SM 5       r\SN 5       r\SO 5       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 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 Gr)S Gr*S Gr+S Gr,S Gr-S Gr.S Gr/S Gr0S Gr1S Gr2S Gr3S Gr4S Gr5S Gr6S Gr7S Gr8S Gr9S Gr:S Gr;S Gr<S Gr=S Gr>S Gr?S Gr@S GrAS GrBS GrCS GrDS GrES GrFS GrGS GrHS GrIS GrJS GrKS GrLS GrMS GrNS GrOS GrPS GrQS GrRS GrSS GrTS GrUS GrVS GrW " S S5      GrXS GrYS GrZS 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sign)explog)asinhacoshatanh)floor)MaxMinsqrt)	Piecewise)asinacosatancoscotsinsinctan)sinhcoshtanh)besselibesseljbesselkbesselyjnyn)betabetaincbetainc_regularized)	Heaviside)EierferfcfresnelcfresnelsSiCi)digammagammaloggamma	polygamma)zeta)Integral)AndfalseITENotOrtrue)
DotProductcse)derive_by_arrayArray)ArraySymbol)IndexedBaseIdxlambdify)numbered_symbols)
CoordSys3D)UnevaluatedExpr)expm1log1pexp2log2log10hypotisnanisinf)	logaddexp
logaddexp2aminamaxminimummaximum)cosm1powm1)reimarg)	
chebyshevt
chebyshevulegendrehermitelaguerre
gegenbauerassoc_legendreassoc_laguerrejacobi)MatrixMatrixSymbolSparseMatrix)PrintMethodNotImplementedError)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   [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/utilities/tests/test_lambdify.py<lambda>test_no_args.<locals>.<lambda>Y   s	    ae    rV   r   	TypeErrorr   s   @r   test_no_argsr   W   s%    QA
9m$3!8O8r   c                  N    [        [        S[        -  5      n U " S5      S:X  d   eg N   r   rV   xr   s    r   test_single_argr   ]   s"    AaCAQ4199r   c                  d    [        [        [        /[        [        -   5      n U " SS5      S:X  d   eg Nr   r      )rV   r   yr   s    r   test_list_argsr   b   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>j       bAhr   )      )I      )r   r   r   r   c                     > T " SS5      $ )Nr   r   r   )f2s   r   r   r   n   r   r   
   4      ,   )r   r   r   r   )rV   wr   r   r   r   z)f3r   r   s    @@r   test_nested_argsr   g   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>y   	    adr   r   r   s   @r   test_str_argsr   t   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>}   s    qr   r*   皙?r   d   rV   r   r*   myfuncr   s     r   test_own_namespace_1r   |   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瞯<)	rV   r   r*   mathr   absr   rY   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   rU   r   r   r   r   test_bad_args.<locals>.<lambda>   s    hqkr   c                      [        SS/5      $ r   rU   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      ?      ?)rV   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mpfrV   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   rV   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   rV   r   r*   r   r   r   ri   rZ   r[   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   rV   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   rV   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_TRANSLATIONSrv   )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)r   r~   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)r   r~   r  r.  r  r   r   special)r.  r!  scips      r   test_scipy_translr1    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(  r   r   r   )r   r~   rV   r   r   r   s    r   test_numpy_translation_absr3    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   r   r   r   )r   r~   sympy.printing.lambdareprr6  r   r   r   _numexpr_functionskeysr   hasattrr:  rV   )r6  	blacklist	arg_tupler!  ssymnargsargsr   s           r   test_numexpr_printerrE    s    7%& 90IAq	I00557v4""KKNEE% T4;	:%+*** 8r   c                      [        [        [        [        5      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-
  5      S:  d   eU " S5      S	:X  d   eU " S
5      S:X  d   eg )Ncmathr   r   r   r   9v?MbP?r   r                  @rV   r   r#   r   r   s    r   test_cmath_sqrtrM  2  s    DGW%AQ4199Q4199Q4199qte|u$$$R5B;;R5B;;r   c                      [        [        [        [        5      S5      n [        U " S5      S-
  5      S:  d   e[        U " [        R
                  5      S-
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg )NrG  r   r   r   r   )rV   r   r   r   rG  er   s    r   test_cmath_logrP  <  sq    CFG$Aqtax=5   qzA~&&&quuyy}$%---r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " [
        5      [        R                  " [
        5      -
  5      S:  d   e[        U " [
        * 5      [        R                  " [
        * 5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg NrG  r   r   r   )rV   r   r-   r   rG  r   r   s    r   test_cmath_sinhrS  C      DGW%Aqtejjm#$u,,,quuzz"~%&...q"v

B3'(5000quuzz"~%&...r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " [
        5      [        R                  " [
        5      -
  5      S:  d   e[        U " [
        * 5      [        R                  " [
        * 5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rR  )rV   r   r.   r   rG  r   r   s    r   test_cmath_coshrV  K  rT  r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " [
        5      [        R                  " [
        5      -
  5      S:  d   e[        U " [
        * 5      [        R                  " [
        * 5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rR  )rV   r   r/   r   rG  r   r   s    r   test_cmath_tanhrX  S  rT  r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " [
        5      [        R                  " [
        5      -
  5      S:  d   e[        U " [
        * 5      [        R                  " [
        * 5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rR  )rV   r   r*   r   rG  r   r   s    r   test_cmath_sinrZ  [      CFG$Aqteiil"#e+++quuyy}$%---q"v		2#&'%///quuyy}$%---r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " [
        5      [        R                  " [
        5      -
  5      S:  d   e[        U " [
        * 5      [        R                  " [
        * 5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rR  )rV   r   r(   r   rG  r   r   s    r   test_cmath_cosr]  c  r[  r   c                      [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rR  )rV   r   r,   r   rG  r   s    r   test_cmath_tanr_  k  s\    CFG$Aqteiil"#e+++quuyy}$%---r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg )NrG  r   r   r   r   r   r   )rV   r   r%   r   rG  r   s    r   test_cmath_asinra  q      DGW%Aqtejjm#$u,,,qtejjm#$u,,,quuzz"~%&...qtejjm#$u,,,quuzz"~%&...r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg )NrG  r   r   r   r   r   )rV   r   r&   r   rG  r   s    r   test_cmath_acosrd  z  s    DGW%Aqtejjm#$u,,,quuzz"~%&...qtejjm#$u,,,quuzz"~%&...r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg NrG  r   r   r   r   r   rK  )rV   r   r'   r   rG  r   s    r   test_cmath_atanrg    rb  r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg rf  )rV   r   r   r   rG  r   s    r   test_cmath_asinhri    s    E!Hg&Aqtekk!n$%---qtekk!n$%---quu{{2&'%///qtekk!n$%---quu{{2&'%///r   c                     [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg )NrG  r   r   r   r   rK  )rV   r   r   r   rG  r   s    r   test_cmath_acoshrk    s    E!Hg&Aqtekk!n$%---qtekk!n$%---quu{{2&'%///quu{{2&'%///r   c                  h   [        [        [        [        5      S5      n [        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   e[        U " S5      [        R                  " S5      -
  5      S:  d   eg )	NrG  r   r         ?      r   rK  )rV   r   r   r   rG  r   s    r   test_cmath_atanhrp    s    E!Hg&Aqtekk!n$%---qvC(()E111qwT**+e333qtekk!n$%---quu{{2&'%///quu{{2&'%///r   c                  ~   [        S5      n [        U 5      [        [        U 5      5      [        [	        U 5      5      -  -
  [
        [        [        U 5      5      -  [        [	        U 5      5      -  -   n[        U /USS/S9n[        R                  S-  n[        U" USU-  -   5      5      S:  d   e[        U /[        [
        U -  5      [        U 5      [
        [        U 5      -  -   -
  SS/S9n[        U" U5      5      S:  d   e[        U /[        U 5      [        [        U 5      5      [        [	        U 5      5      [
        [        [	        U 5      5      -  -   -  -
  SS/S9n[        U" USU-  -   5      5      S:  d   e[        U /[        U 5      [        [        U 5      5      [        [	        U 5      5      -  [
        [        [        U 5      5      -  [        [	        U 5      5      -  -
  -
  SS/S9n[        U" USU-  -   5      5      S:  d   e[        U /[        U 5      [        [        U 5      5      [        [	        U 5      5      -  [
        [        [        U 5      5      -  [        [	        U 5      5      -  -   -
  SS/S9n[        U" USU-  -   5      5      S:  d   e[        U /[        U 5      [        [        U 5      5      [        [	        U 5      5      -  [
        [        [        U 5      5      -  [        [	        U 5      5      -  -   -
  SS/S9n[        U" USU-  -   5      5      S:  d   e[        U /[        U 5      [        [        U 5      5      [        [	        U 5      5      -  [
        [        [        U 5      5      -  [        [	        U 5      5      -  -   -
  SS/S9n[        U" USU-  -   5      5      S:  d   e[        U /[        U 5      [        U 5      [        U * 5      -   S-  -
  SS/S9n	[        U	" U5      5      S:  d   e[        [        U 5      5      [        [	        U 5      5      -   [        [        U 5      [	        U 5      -  5      -
  n
[        [        U 5      5      [        [	        U 5      [
        -  5      -  [        U 5      -
  n[        [        [        U 5      5      5      [        U 5      -
  n[        [        [        U 5      5      5      [        U 5      -
  n[        [        [        U 5      [	        U 5      -   5      5      [        U 5      [	        U 5      -   -
  n[        [        [        U 5      [	        U 5      -   5      5      [        U 5      [	        U 5      -   -
  n[        U /U
SS/S9n[        U /USS/S9n[        U /USS/S9n[        U /USS/S9n[        U /USS/S9n[        U /USS/S9nSn[        U" U5      5      S:  d   e[        U" U5      5      S:  d   e[        U" U5      5      S:  d   e[        U" U5      5      S:  d   e[        U" U5      5      S:  d   e[        U" U5      5      S:  d   eg )	Nr   rG  r   r   r   r   gؗҼ<      @      @)r   r(   rj   r.   rk   r   r*   r-   rV   r   r   r   r   r   )r   exprfunchpifunc_expfunc_cosfunc_sinfunc_cosh_1	func_sinhfunc_cosh_2expr1expr2expr3expr4expr5expr6func1func2func3func4func5func6
test_values                          r   test_cmath_complex_identitiesr    sw   A q6C1Jbe,,q3r!u:~RU/KKDQC'89D
''A+CtC"s(N#$u,,, QCQUs1vCF
':;gvEVWDtCy>E!!! SVc"Q%jC1JSAZ4O&PP!(& 13Hxb3h'(5000 SVs2a5zDAK'?!c"Q%j.SWXZ[\X]S^B^'^_!(& 13Hxb3h'(5000 SVs2a5zDAK'?!c"Q%j.SWXZ[\X]S^B^'^_!(& 13Hxb3h'(5000 A3Q41;RU+Ca$rRSu+oX[\^_`\aXbFb+b c")6!24K{3c>*+e333 !d1gbes2a5z)AARPQUOVYZ\]^Z_V`D`)`a")6!24IyrCx()E111 A3Q3q6CG+;q*@ @7TZJ[\K{3 5((( 1JRU#c"Q%"Q%-&88E1JRUQY'#a&0EBqE
Obe#EBqE
Obe#EBqEBqEM"#r!ur!u}5EBqEBqEM"#r!ur!u}5EaS%'6):;EaS%'6):;EaS%'6):;EaS%'6):;EaS%'6):;EaS%'6):;EJuZ !E)))uZ !E)))uZ !E)))uZ !E)))uZ !E)))uZ !E)))r   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 )	Nr5  r(  zb*a - sqrt(a**2)c                     U R                   $ r  )name)ss    r   r   !test_issue_9334.<locals>.<lambda>  s    166r   )keyF)r   dummifyr   r   )r   r~   r   r   sortedfree_symbolsrV   random)rs  abfunc_numexprfoobars         r   test_issue_9334r    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)Nr5  r   r   r      *   nan)
r   r~   rV   r   r   r   r$   r   RuntimeWarningr   )r  s    r   test_issue_12984r    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   rV   )r   r   rs  
no_modulesempty_moduless        r   test_empty_modulesr    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   ro  r         @      @r   r   s    r   test_exponentiationr    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   rH  rI  r  r  rL  r   s    r   	test_sqrtr    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㈵>)rV   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[?)
r   r   r~   r   r   r   rV   r   rF   r   )r   lr  s      r   test_integralr  %  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<?)r   r   r~   rF   r   r   r   rV   )ir  r  s      r   test_double_integralr  .  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   :0yE>)
r   r   r~   r   r4   r   rV   subsr   r5   )
test_pointr   jtestytests       r   test_spherical_besselr  7  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>L  r   r   )rV   r   r   r   r   r   r   s   @r   test_vector_simpler  G  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>Q  s	    adr   )g      r   r   )rn  rm  ro  )rm  rn  )rV   r   r   ZeroDivisionErrorr   s   @r   test_vector_discontinuousr  O  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?)rV   r   r(   r*   r   r   r   r  s     r   test_trig_symbolicr  W  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   r  )rV   r   r(   r*   r   r  s     r   test_trig_floatr  ^  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   )rV   r   r   r   r#   r*   r   s    r   	test_docsr  e  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   )rV   r   r   r*   r   s    r   	test_mathr  p  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   )rV   r   r*   
isinstancefloatr   s    r   test_sinr  u  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   )rv   r   r   r*   r   rV   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   r   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   )r   r~   rv   r   r   r*   r   arrayrV   testingassert_allcloser  ndarrayr   zerosallr{   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   r   r   r   )	r   r~   rv   r   rV   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 installedr   r   r   r   r      )
r   r~   rv   r   r   r   rV   rM   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   r   r   r   ro  )r   r~   rv   r   rV   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   ImmutableDenseMatrixr   )r   r~   rv   r   r   r*   r   r  rV   matrixr   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   r   r   r   r   )	r   r~   rx   r   r   rV   r  r   
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   Tr   r   ignore)divider   rm  inf)	r   r~   r$   r   r   rV   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   r   r   r   r   rm  r   r   r   rr  r   )r   appendr   rV   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 )Nr5  r(  r   r   r      r   r  ro  r   r   r   绽|=)rtol)r   r~   r   r#   r   r   r	   linspacerV   r  r  )r   rs  xnr5   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   Tr   r   r   )
r   r   r   r   r   r   $   1   @   Q   r   r   r   r   r   )
r   r~   r$   r   rV   r  r  aranger  r  )piecesr   
nodef_funcs      r   test_numpy_piecewiser8    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(  r   r   TF)r   r~   rV   r   r   rG   r   rK   rJ   r  r  r  )and_func
and_func_3or_func	or_func_3not_funcarr1arr2arr3s           r   test_numpy_logical_opsrB    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   r   r   rm  r   r   g      ?      @rn  g      ?g     R@g     ]@      )r   r~   rv   r   r   r   r   rV   r  r  r  )xmatymatmat_funcr   s       r   test_numpy_matmulrJ  *  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(  r5  r      r   r   r   r   )r   r~   r   r  randnr*   r   r(   r   r,   r   r   r&   r   r   r#   r   rV   allclose)r  r  crs  npfuncnefuncs         r   test_numpy_numexprrR  8  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(  r5  r   r   ufevalc                     US-  S-   $ r   r   r   r   s     r   r   ,test_numexpr_userfunctions.<locals>.<lambda>M  s    !Q$q&r   r   r   r   c                     SU -  U-  S-   $ r   r   rW  s     r   r   rX  Q  s    AaCE!Gr   )r   r~   r   r  rM  typer   classmethodrV   r   rN  r|   r   )r  r  rT  rt  s       r   test_numexpr_userfunctionsr\  F  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   r   r   r   dtypesessionrm  )r   r~   r!   r*   r   r   rV   compatv1Sessionconstantfloat32rU  rs  rt  r  r  s       r   test_tensorflow_basic_mathri  V  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   r   r   r_  r   rb  	feed_dictrm  )r   r~   r!   r*   r   r   rV   rc  rd  re  placeholderrg  rU  rh  s       r   test_tensorflow_placeholdersrn  a  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   r   r   r   r_  rk  rm  )r   r~   r!   r*   r   r   rV   rc  rd  re  Variablerg  runinitializerrU  rh  s       r   test_tensorflow_variablesrs  l  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^  r   r   FTra  )r   r~   rJ   rG   rK   r   r   rV   rc  rd  re  rU  rs  rt  r  s      r   "test_tensorflow_logical_operationsrv  x  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   r   r   ra  )
r   r~   r$   r   r   rV   rc  rd  re  rU  ru  s      r   test_tensorflow_piecewiserx    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   r   r   ro  ra  r   )	r   r~   r!   r   rV   rc  rd  re  rU  ru  s      r   test_tensorflow_multi_maxrz    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   r   r   ro  ra  )	r   r~   r"   r   rV   rc  rd  re  rU  ru  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   r   r   r   ra  T)r   r~   r   rV   rc  rd  re  rU  ru  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 installedr   r   y      ?       @ra  r   r   gư>)r   r~   rV   r   rj   rk   r   rl   rc  rd  re  rf  rU  r   r   )r  r  r  r  r  r  tensorflow_resultsympy_results           r   test_tensorflow_complexesr    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^  r   r   r   ra        @)
r   r~   rV   r   r   rc  rd  re  rf  rU  )r   r  fcalls      r   test_tensorflow_array_argr    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  rV   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   r  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   rV   rF   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>  s    r   c                     g)Nzsecond fr   r   s    r   r   r    s    r   c                     g)N
function gr   r   s    r   r   r    s    r   )r   gr  r   r   r   r  r  )r   r   rV   r   )n1n2r   r  if1if2s         r   test_namespace_orderr    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>  s    AaCr   c                 .    [         R                  " U 5      $ r  )r   r#   r   s    r   r   r    s    DIIaLr   r   r  r   _imp_c                     SU -  $ r  r   r   s    r   r   r    s    !r   c                     U S-   $ )Ne   r   r   s    r   r   r    s    QWr   c                  D   > [        [        T " T" [        5      5      5      $ r  r   )r   r   s   r   r   r    s    x1RU84r   )r|   rV   r   r   r   r#   r   r   r?  r   
ValueError)r  l1l2rt  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   r  r|   )valr   r   rs  r  s       @r   test_imps_errorsr    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>$  s    1r   )r|   r*   r   r   r   r   &test_imps_wrong_args.<locals>.<lambda>$  s    3CEr   )r   r  r   r   r   test_imps_wrong_argsr  #  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>/  s    AGr   r   r  r   )g   r   r  c                     U S-   $ )Nc   r   r   s    r   r   r  A  s    Br   F)use_impsf   )r   r(   rV   r   r   r|   )r   lamr  s      r   test_lambdify_impsr  '  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   rU   )r  r  r  s   r   r   $test_dummification.<locals>.<lambda>Y  s(    1!adQqTkAo Fr   c                  F   > [        ST " T5      -  ST " T5      -  S-   5      $ )Nr   r   rU   r  r  s   r   r   r  Z       QqT1qt8a< @r   c                  F   > [        ST " T5      -  ST " T5      -  S-   5      $ )Nr   r   r   rU   r  s   r   r   r  [  r  r   )r   r   rV   r*   r   SyntaxError)alpha	some_exprr  r  r  r  s      @@@r   test_dummificationr  I  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?rm  r   )rX   base_scalarsrV   r   )r  r*  r5   znrs  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   rw   rV   )curlyvr  s     r   test_curly_matrix_symbolr  i  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   r  )	python_ifrs  r   s      r   test_python_keywordsr  r  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 +...)
rV   r   r   r   r   
splitlines__doc__lenr   sum)rt  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-   5      n Sn[        R                  " U 5      U:X  d   e[        R                  " U 5      nUR                  S5      (       d   eU[        R                  ;   d   e[        R                  U   [        U5      S UR                  S5      U4:X  d   eA [        R                  " 5         U[        R                  ;  d   eg )Nr   z,def _lambdifygenerated(x):
    return x + 1
z<lambdifygenerated-T)rV   r   inspect	getsourcegetsourcefile
startswith	linecachecacher  r  gccollect)rt  sourcefilenames      r   test_lambdify_linecacher    s    Aq1uD=FT"f,,,$$T*H45555y&&&??8$VdF<M<Md<SU](^^^^JJL9??***r   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)rs  r  s    r   intervalrepr+test_special_printers.<locals>.intervalrepr  s     ((..r   r   r   r   r   )r   r  r   r   g?   )r<  r  r#   r   HalfrV   rZ  r   mpir  r   rC   )r  rs  func0r  r  r  exp1r\   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)rV   rL   rH   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   )rV   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-  $ r  r   r   s    r   r   "test_issue_12092.<locals>.<lambda>  s    AqDr   r   r&  )r|   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  r  )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   rp  r    s    	.  
r   rp  r   r     z2*x)r   Symbolrz   r  replace)rp  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)rV   r   r   r   rI   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   )rV   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        [         R                  / SQ5      n [         R                  / SQ5      n[         R                  / SQ5      n[         R                  / SQ5      n[         R                  [	        [
        [        4[        [
        [        5      5      " X5      U:H  5      (       d   e[         R                  [	        [
        [        4[        [
        [        5      5      " X5      U:H  5      (       d   e[         R                  [	        [
        [        [        4[        [
        [        [        5      5      " XU 5      U:H  5      (       d   e[         R                  [	        [
        [        [        4[        [
        [        [        5      5      " XU 5      U:H  5      (       d   e[         R                  [	        [
        4[        [
        5      5      " U 5      U :H  5      (       d   e[         R                  [	        [
        4[        [
        5      5      " U 5      U :H  5      (       d   e[         R                  [	        [
        [        [        [        4[        [
        [        [        [        5      5      " XU S5      / SQ:H  5      (       d   e[         R                  [	        [
        [        [        [        4[        [
        [        [        [        5      5      " XU S5      / S	Q:H  5      (       d   e[	        [
        [        4[        [
        5      [        [        5      /5      " X5      SS
/:X  d   e[         R                  / SQ/ SQ/ SQ/5      n[	        [
        4[        [
        SS9[        [
        SS9/5      " U5      u  pV[         R                  U[         R                  USS9:H  5      (       d   e[         R                  U[         R                  USS9:H  5      (       d   e[         R                  [	        [
        [        4[        [
        [        5      5      " / SQ/ SQ5      / SQ:H  5      (       d   e[         R                  [	        [
        [        S[
        5      5      " / SQ5      / S	Q:H  5      (       d   eg )Nr  )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r      )r   r   r  )r   r  r   r   )axisr   r   r  )r   r   r   )r   r~   r  r  rV   r   r   rg   rf   r   r   rd   re   r!   r"   )a234a152a254a132r  min_max_s          r   test_amin_amax_minimum_maximumr)    s   5"#;;y!D;;y!D;;y!D;;y!D99Xq!fgam4T@DHIIII99Xq!fgam4T@DHIIII 99Xq!QiAq)9:4tLPTTUUUU99Xq!QiAq)9:4tLPTTUUUU 99XqdGAJ/5=>>>>99XqdGAJ/5=>>>> 99Xq!QlGAq!Q,?@TSTUYbbcccc99Xq!QlGAq!Q,?@TSTUYbbcccc QFT!Wd1g./;1vEEE 	A
 1$aa$qq/ BCAFJD99TUZZZ22333399TUZZZ223333 99Xq!fc!Qi0IF)STTTT99Xq3q!9-i8IEFFFFr   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   )	r   r~   rS   r   r  rV   r   r   r   )r  r  jr  s       r   test_Indexedr,    sw    5"#CA5>DAaVaV$%AAs1QT7Q1I1ay9:1=CCCr   c                      [        [        [        S[        4[        SS45      n S[        -  nU R	                  5       U:X  d   e[        [        /U 5      " S5      UR                  [        S5      :X  d   eg )Nr   r   B   r  )r   r   r   r   r  rV   r  )rO  r   s     r   test_Sumr/    s]    A1ay1a*%A
Q$C668s??QCA#((1a.000r   c                  p    [        S5      n [        S5      n/ SQn[        X/X   5      " US5      S:X  d   eg )Nr  r  r   r   r   )rS   rT   rV   )r  r  r  s      r   test_Idxr1  $  s:    CACAAQFAD!!Q'1,,,r   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   )rV   r   r   r   r   r   )r|  r}  s     r   test_issue_12173r3  ,  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   )r   r~   rV   r   r+   r   nr   s    r   test_issue_13642r6  4  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   )rV   r   r+   r   r5  r   s    r   test_sinc_mpmathr8  ;  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   rV   )d1r   f1bd2r   r   s         r   test_lambdify_dummy_argr>  @  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   rV   )r  dsymr   s      r   %test_lambdify_mixed_symbol_dummy_argsrA  M  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  r   r   r   r   )r   r~   rV   r   r   r  r   s    r   test_numpy_array_argrC  U  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   r   r      r   r   r   r   gvIh%<=)(r   r~   r:   r;   r<   r   rB   rC   rA   r?   r@   r/  expigammalnpsisicir   r  seedr   rV   r   rangeuniformr   r   r   r   r1   r3   r0   r2   rD   pochjvyvivkvr   int)single_arg_sympy_fnssingle_arg_scipy_fnssympy_fnscipy_fnr   r  tvr  scipy_resultdouble_arg_sympy_fnsdouble_arg_scipy_fnstv1tv2s                r   test_scipy_fnsr`  _  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)NrE  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   )sizerG  r   rH  r   &.>)rt  rD  r  r[  r	   tol)r   r~   r   r  rM  r   rm   rn   ro   rp   rq   rr   rs   rt   ru   r   rV   rN  randinttuplerO  r   r   r   r   AssertionErrorformatrepr)paramspolysmsgrX  
num_paramsrD  r   _tntparamsrZ  valsr[  r  atolr	   s                   r   test_scipy_polysrs    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)rV   r   r  r  r   s    r   test_lambdify_inspectru    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_14941rw    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  )rU  r}   r   fxs   r   r   :test_lambdify_Derivative_arg_issue_16468.<locals>.<lambda>  s    Y2w"e45r   Tr  r   )   r  )
r   r   r	   rV   rU  r}   r   r  r   r  rz  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                     [        [        5      R                  [        SS9n [        [        U S/S9nU" S5      n[        S5      R	                  5       [        S5      R	                  5       -
  S-  n[        X#-
  5      [        U5      -  S:  d   e[        [        S-  5      R                  [        5      n[        [        US/S9nU" S	5      nS
U-  n[        Xg-
  5      [        U5      -  S:  d   eg )NF)evaluater   r   r   gW   @r  gHz>g;f?g;f@)rE   r   r	   rV   r   r   )r|  r   ans1ref1r}  r   ans2r  s           r   test_lambdify_Derivative_zetar    s    GLLUL+E	!UXJ	/Ba5DL a0$6Dt{CI%,,,AJOOAE	!UXJ	/Bf:DD=Dty>#d)#d***r   c                  ^  ^^^ [        S5      n [        S5      n " S S[        5      mU " [        5      R                  [        5      m[	        [
        U4S j5        [        [        /TTS9nU" S5      S:X  d   eU" [        5      R                  [        5      m[	        [
        UU4S	 j5        g )
Nr  r  c                       \ rS rSrS rSrg):test_lambdify_Derivative_custom_printer.<locals>.MyPrinteri  c                     Uu  nUu  ng)N42r   )r  rD  
seq_ordersrl   orders        r   _print_Derivative_func1Rtest_lambdify_Derivative_custom_printer.<locals>.MyPrinter._print_Derivative_func1  s    DCFEr   r   N)r  r  r  r  r  r  r   r   r   	MyPrinterr    s    	r   r  c                  &   > [        [        /T 5      $ r  r   )r|  s   r   r   9test_lambdify_Derivative_custom_printer.<locals>.<lambda>  s    8QC3Gr   r  r  r  c                  $   > [        [        /TT S9$ r  r   )r  r}  s   r   r   r    s    8QCPY3Zr   )r   r{   r   r	   r   ry   rV   )r  r  r   r  r|  r}  s      @@@r   'test_lambdify_Derivative_custom_printerr  	  s    WEWEL  !HMM!E
)+GH	1#ui	0Ba5B;;!HMM!E
)+Z[r   c                     [        S5      u  pn[        S5      " U 5      nUR                  U S5      UR                  U 5      X1U4nXR                  U S5      -  X#R                  U 5      -  -   X-  U-  -   US-  -   nSnSnXR                  U S5      -  X#R                  U 5      -  -   X-  U-  -
  US-  -   US-  -
  nSn	[        / SQSS	/5       Hw  u  p[	        XEXS
9nU" U6 n[        X-
  5      S:  d   e[	        XEU/XS
9nU" U6 n[        U5      S:X  d   e[        US   U-
  5      S:  d   e[        US   U	-
  5      S:  a  Mw   e   g )Nzt, a, br   r   )r   r   r  r  g      @   i)FNTFT)rO   r  g-q=r   r   )r   r   r	   r   rV   r   r  )r  r  r  r   rD  r|  num_argsr  r}  r  r  _cser  res1func12res12s                   r   3test_lambdify_derivative_and_functions_as_argumentsr    sb   i GA!aA66!Q<A!+DffQlNQvvay[(13q501a47E&H#DffQlNQvvay[(13q501a47!Q$>E*D !4udmD$@h4;%'''$DJ!5zQ58d?#e+++58d?#e+++ E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      @       @)rV   r   r   rj   r   rk   imag)f_rer  f_ims      r   test_imag_realr  5  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         ?rn  %   6   r3  v   )r   r~   rw   r  rV   rN  )r  A0r   r  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 )NrE  r   )r5  r  r   Z)hydrogen)r   r   r   r   r   )r   r~   	sympy.abcr5  r  r   r  sympy.physicsr  R_nlr   rV   r   )r5  r  r   r  r  nvlvrvZvsympy_valuer   scipy_values               r   test_issue_15654r  I  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  )r   r~   rw   r   rV   array_equalr  object)	r  r  r  r  r  r   r  hr  s	            r   test_issue_15827r  U  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 )NrE  r   c                 .    [         R                  U S-  -  $ r  )r   GoldenRatior   s    r   r   "test_issue_16930.<locals>.<lambda>u  s    1==1a4'r   r   r   r   )r   r~   r   rV   	constantsgolden_ratio)r   r   f_s      r   test_issue_16930r  p  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 )NrE  r   r   r   r   r   )r   r~   r   rV   r   LambertWr   lambertw)r   r  s     r   test_issue_17898r  y  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   r4  r   r   rm  r   )r   r~   rV   r   r   r9   r   r5  )r   r   r  res2s       r   test_issue_13167_21411r    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   )rV   r   r
   r   r   s    r   test_single_er    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 )NrE  r  r   r   r   r   r'  )r   r~   r   r   r   rV   r   r   )r  r   r  r   s       r   test_issue_16536r    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 x2r   r   r   r   r'  )r   r~   r   r!   r   Zeror"   rP   rV   r   r  valuesr  )x1x2r   r  r  points         r   test_issue_22726r    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 r  )	r   r~   r   r9   r"   rV   r   r  r  )r  r  r   r  r  s        r   test_issue_22739r    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   r   r   r'  )
r   r~   r   r   r)   r(   rV   r   r  r  )r  r  rs  r  r  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   r   r   )r   r~   rQ   r   rV   	__class__r  )rs  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 installedr   T)nopythonr   g	T?)r   r~   rV   r   r*   jitr   s    r   test_issue_20070r    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 )NrE  r   r   ?r'  )r   r~   r=   r   r>   rV   r   )r   r   F1F2s       r   test_fresnel_integrals_scipyr    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 )NrE  r   r   r  ffffff@r'  )r   r~   r6   r   r   rV   r   r   r  s     r   test_beta_scipyr    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   r  r  r'  )r6   r   r   rV   r   r  s     r   test_beta_mathr    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 )	NrE  r   r   gffffff?g@r   rm  r'  )	r   r~   r7   r   r   r   r   rV   r   r  s     r   test_betainc_scipyr    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 )	NrE  r   r   r  rD  r   r   r'  )	r   r~   r8   r   r   r   r   rV   r   r  s     r   test_betainc_regularized_scipyr    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)r   r~   rZ   r[   r\   r]   r^   r_   rb   rc   rC  r   r   NotImplementedErrorrV   r  r  r   r   rN  r  r   )	funcsrt  rs  rD  r  r   result	referencelae2s	            r   test_numpy_special_mathr    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 )NrE  r   r   g#B;gWw'&l7gN~h.r   )r   r   g333333?rc  g-=gFFg<)r   r~   rV   r   rh   r   rf  maprU  versionsplitr   ri   )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 )NrE  r   r   r   rm  )r   r~   rV   r   r   )berns    r   test_scipy_bernoullir  3  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 )NrE  r   r   r   r  g      ?)r   r~   rV   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 installedr   r   r   r   r   r~   rV   r   r   r  r   rZ  r   r  s     r   test_cupy_array_argr  E  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  r   r   r   r   r   r  r  s     r   test_cupy_array_arg_using_numpyr  O  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  r   r   r   r   r   r	  )
r   r~   rv   r   r   r   rV   rM   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 installedr   r   r   r   	r   r~   rV   r   r   r   r  r   rZ  r  s     r   test_jax_array_argr  l  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  r   r   r   r   r   r  r  s     r   test_jax_array_arg_using_numpyr  v  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  r   r   r   r   r   r	  )r   r~   rv   r   r   r   rV   rM   r  r   r  r
  s        r   test_jax_dotproductr    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_cse  s    5yr   c                 2    SSK Jn  U" U [        [        S9S9$ )Nr   rN   clsr   )sympy.simplify.cse_mainrO   rW   r   )r  rO   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_variablesrO   )postprocess)r%  r)  rO   )r  r)  rO   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>.Casei  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  )	rD  r  r  r  r   r  r   r   r/  )r  rD  r  r  r/  	subs_dictrO  s          r   __init__(test_lambdify_cse.<locals>.Case.__init__  s\    IJ$MSDMM:;I;@A5ay)//15ADH"0 Bs    (A7c                @    [        U R                  U R                  US9$ )NrN   )rV   rD  r  )r  rO   s     r   rV   (test_lambdify_cse.<locals>.Case.lambdify  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(  rr  N)r   rN  asarrayr  ).0r  r   r6  r7  r  s      r   	<genexpr>Atest_lambdify_cse.<locals>.Case.assertAllClose.<locals>.<genexpr>  sC      <':tq !>>&)U]]1E]5R/5F * D':s   >Ar   )r/  r  	enumerater   r   )r  r  r6  r7  r  r   abs_errs    ```   r   assertAllClose.test_lambdify_cse.<locals>.Case.assertAllClose  s    "" <'0':< < < < < !$((+fQi!m,6"V+++"3q6>F222 ,r   )rD  r  r  r   r/  N)r  r  r  r  r2  rV   r@  r  r   r   r   Caser.    s     DI 	1	< 49 	3 	3r   rB  r   )r   r   r  )rD  r  r  r   )r   r   r  )r   r  r  r   )r   r   r   T)rD  r  r  r/  )r   r   FrN   )r   r   r   r   r9   r+   rv   r*   r   r/  rV   r  r@  )	r  r&  r+  rB  casescaser  r   r  s	            r   test_lambdify_cserE    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$  rN   )rO  r  s    r   r   "test_issue_25288.<locals>.<lambda>  s    c!T6Jr   rN   )rW   r   rV   r   r*   )okr  s    @r   test_issue_25288rJ    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   rV   r   r   r   r   r   test_deprecated_setrL    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   r   r   r	  r  r      r  )r   r~   rw   rV   r  r  r  )rN  r   r?  r@  s       r   test_issue_13881rP    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   TrN   )r   r   r   g     r@)r   r   r   expandrV   )r   r  rs  	eval_expranss        r   test_23536_lambdify_cse_dummyrU    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  rZ  r[  s      r   r2  "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`  re  )r  expected_docstrings     r   ri  ,LambdifyDocstringTestCase.expected_docstring+  sJ    NN# $!!" #  ! "$% 	 "!r   c                 ,    [        U R                  5      $ r  )r  ri  r  s    r   __len__!LambdifyDocstringTestCase.__len__8  s    4**++r   c                 h    U R                   R                   SU R                   SU R                   S3$ )Nz(docstring_limit=z, expected_redacted=))r  r  rZ  r[  rl  s    r   __repr__"LambdifyDocstringTestCase.__repr__;  s@    ~~&&' (#334 5!!%!7!7 8;	
r   rY  )r  r  r  r  rh  r^  rc  r2  propertyr`  re  ri  rm  rq  r  r   r   r   rW  rW    s`    ID
C3 N N L L 
" 
",
r   rW  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>.SimpleSymbolTestCaseiE  r   z(def _lambdifygenerated(x):
    return x
r   Nr  r  r  r  rh  r^  rc  r  r   r   r   SimpleSymbolTestCaserv  E  s    	 	r   rx  r   FrY  r   r   r   Tr   r   rZ  )rW  r   rV   rZ  r  ri  )rx  r   
test_cases	test_caselambdified_exprs        r   0test_lambdify_docstring_size_limit_simple_symbolr}  C  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>.ExprListTestCaseib  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   Nrw  r   r   r   ExprListTestCaser  b  s    	 	
J 	r   r  r  r   FrY     r   Tr   r   r   ry  )rW  r   rR  rV   rZ  r  ri  )r  r   r   r   rs  rz  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>.MatrixTestCasei  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   Nrw  r   r   r   MatrixTestCaser    s    	 	
0 	r   r  r  r   FrY  r  r   Tr   r   r   ry  )
rW  r   rv   r   r  rR  rV   rZ  r  ri  )r  r   r   r   rs  rz  r{  r|  s           r   )test_lambdify_docstring_size_limit_matrixr    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.r  )r  rs  r   r  s       r   test_lambdify_empty_tupler    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   rm  r   r   r   gQ@te_޿gF#O3t9)rs   r   r   r   )rd  sympy_result_integersympy_result_complexmpmath_result_integermpmath_result_complexs        r   (test_assoc_legendre_numerical_evaluationr    sp    
C)!S#6<<>)!Q288:..q0)#FFFF)#FFFFr   c            
         [         /n [        (       a  U R                  S5        U  GH3  n[        [        [        S[        [        5      4S5      U5      nU" [        S5      75      S:X  d   eU" [        S5      * 5      S:X  d   eU" S5      S:X  d   e[        [        [        S[        [        5      -  [        [        5      4S5      U5      nU" [        S5      75      S:X  d   eU" [        S5      * 5      S:X  d   eU" S5      S:X  d   e[        [        [        S[        [        5      4S5      U5      nU" [        S5      5      S:X  d   eU" S5      S:X  a  GM4   e   g )	Nr   g      @)r   Tr  g      E@r   g      r  )
r   r   r  rV   r   r$   ra   r  r   r`   )r   r"  r   r   r  s        r   test_Piecewiser    s0   fGuwQ	3a/;?E%,4'''%,4'''v}}aCQKq#:KH#N5<- D(((5<- D(((#w#~~ Q	3a/;?Eu#%%%v}} r   c                      [         (       d  [        S5        [        SS5      n [        X 5      n[         R	                  U" [         R                  / SQ5      5      [         R                  / SQ5      :H  5      (       d   eg )Nr(  r  )r   r   )r   r~   rR   rV   r  r  )r  r   s     r   test_array_symbolr    sW    5#$CA!A99Qu{{7+,G0DDEEEEr   (`  	itertoolsr   r   r  r  r  r   rG  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   r   &sympy.functions.elementary.exponentialr   r   %sympy.functions.elementary.hyperbolicr   r   r   #sympy.functions.elementary.integersr    (sympy.functions.elementary.miscellaneousr!   r"   r#   $sympy.functions.elementary.piecewiser$   (sympy.functions.elementary.trigonometricr%   r&   r'   r(   r)   r*   r+   r,   sympy.functionsr-   r.   r/   sympy.functions.special.besselr0   r1   r2   r3   r4   r5   &sympy.functions.special.beta_functionsr6   r7   r8   'sympy.functions.special.delta_functionsr9   'sympy.functions.special.error_functionsr:   r;   r<   r=   r>   r?   r@   'sympy.functions.special.gamma_functionsrA   rB   rC   rD   &sympy.functions.special.zeta_functionsrE   sympy.integrals.integralsrF   sympy.logic.boolalgrG   rH   rI   rJ   rK   rL   %sympy.matrices.expressions.dotproductrM   r%  rO   sympy.tensor.arrayrP   rQ   sympy.tensor.array.expressionsrR   sympy.tensor.indexedrS   rT   r  rV   sympy.utilities.iterablesrW   sympy.vectorrX   sympy.core.exprrY   sympy.codegen.cfunctionsrZ   r[   r\   r]   r^   r_   r`   ra   sympy.codegen.numpy_nodesrb   rc   rd   re   rf   rg   sympy.codegen.scipy_nodesrh   ri   rj   rk   rl   #sympy.functions.special.polynomialsrm   rn   ro   rp   rq   rr   rs   rt   ru   sympy.matricesrv   rw   rx   sympy.printing.codeprinterry   r<  rz   sympy.printing.numpyr{   r|   r}   r~   sympy.utilities.decoratorr   sympy.utilities.exceptionsr   sympy.externalr   r   r   r   MutableDenseMatrixr   r   r   r   r   r   r   osenvironr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r#  r&  r+  r1  r3  rE  rM  rP  rS  rV  rX  rZ  r]  r_  ra  rd  rg  ri  rk  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r.  r8  rB  rJ  rR  r\  ri  rn  rs  rv  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)  r,  r/  r1  r3  r6  r8  r>  rA  rC  r`  rs  ru  rw  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  rE  rJ  rL  rP  rU  rW  r}  r  r  r  r  r  r  r   r   r   <module>r     s       	   ? ) 8 8 I I I $ " . Q E : ; C C 5 E E :A A A * * W W W W ? _ _ _ Y Y 7 . @ @ < ' 5 6 1 - 6 # + Y Y Y Y Y 2 < <+ + + > = E 3 - D % 9 6 ( J   ggj8*-EF
	
"<(
VEg),BJJ%&Y
1a



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

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