
    g                         d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZmZmZmZ ddlmZmZmZ d	 Zd
 Zd Zd Zd Zd Zd Z d Z!d Z"dS )zETests for efficient functions for generating orthogonal polynomials.     )Rational)S)symbols)Poly)raises)	jacobi_polygegenbauer_polychebyshevt_polychebyshevu_polyhermite_polyhermite_prob_polylegendre_polylaguerre_polyspherical_bessel_fn)xabc            	         t          t          d            t          dt          t          t
          d          t          t          dz  t          dz  z   dz   t
          z  t          dz  z   t          dz  z
  t
          d          k    sJ t          dt          t          t
                    dk    sJ t          dt          t          t
                    t          dz  t          dz  z
  t
          t          dz  t          dz  z   dz   z  z   k    sJ t          dt          t          t
                    t          dz  d	z  t          t          z  d
z  z
  t          d	z  z
  t          dz  d	z  z   t          d	z  z
  t
          dz  t          dz  d	z  t          t          z  d
z  z   t          t          dd	          z  z   t          dz  d	z  z   t          t          dd	          z  z   t          dd          z   z  z   t
          t          dz  d
z  t          t          dd
          z  z   t          dz  d
z  z
  t          t          dd
          z  z
  z  z   t          j	        z
  k    sJ t          dt          t          d          t          t          dz  t          dz  z   dz   t
          z  t          dz  z   t          dz  z
  t
          d          k    sJ d S )Nc                  D    t          dt          t          t                    S N)r   r   r   r        ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_orthopolys.py<lambda>z"test_jacobi_poly.<locals>.<lambda>   s    {2q!Q77 r      Tpolys   zZZ(a,b)domainr               )
r   
ValueErrorr   r   r   r   r   Qr   Halfr   r   r   test_jacobi_polyr)      s   
:77888q!Q...$	
1qsQAaC!A#%q3< 3< 3< < < < < q!Q""a''''q!Q""acAaCi!QqS1Q3Y]2C&CCCCCq!Q""q!tAv!A~!';ad1f'Dqs'J'(!tQT!Vac!e^a!Qi-G!Q$q&-P-.qAwwY.79:1a.A (B(BDEq!tAv,-a1ggIH6891QH?AB1Q77HK EL(L OPf(U V V V V
 q!Qd+++t	
1qsQAaC!A#%q0< 0< 0< < < < < < <r   c                     t          t          d            t          dt          t          d          t          dt          z  t          z  t          d          k    sJ t          dt          t                    dk    sJ t          dt          t                    dt          z  t          z  k    sJ t          dt          t                    t           t          dz  dt          dz  z  dt          z  z   z  z   k    sJ t          d	t          t                    t          d	z  d
t          d	z  z  d	z  d
t          dz  z  z   t          t          dd	          z  z   z  t          dt          dz  z  dt          z  z
  z  z   k    sJ t          dt          j                  	                    t                    sJ t          dt          d          t          dt          z  t          z  t          d          k    sJ d S )Nc                  8    t          dt          t                    S r   )r	   r   r   r   r   r   r   z&test_gegenbauer_poly.<locals>.<lambda>*   s    r1a88 r   r   Tr   r   zZZ(a)r    r   r%   r#   r"   )
r   r&   r	   r   r   r   r'   r   r(   dummy_eqr   r   r   test_gegenbauer_polyr.   )   s   
:88999	1at   $QqSUAg > > >? ? ? ? 1a##q((((1a##qs1u,,,,1a##rAqD!AqD&1Q3,,?'?????	1a qD!AqD&(Qq!tV+a!Qi781bAg!m;LLM M M M 1af%%..q111111at,,,QqSUAg0N0N0NNNNNNNr   c                  (   t          t          d            t          dt          d          t	          t                    k    sJ t          dt                    dk    sJ t          dt                    t          k    sJ t          dt                    dt          dz  z  dz
  k    sJ t          dt                    dt          dz  z  dt          z  z
  k    sJ t          dt                    d	t          dz  z  d	t          dz  z  z
  dz   k    sJ t          d
t                    dt          d
z  z  dt          dz  z  z
  d
t          z  z   k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dt          dz  z  z   dz
  k    sJ t          dt                    dt          dt                    z  t          dt                    z  t          z
                                  k    sJ t          dt                    dt          dt                    dz  z  dz
                                  k    sJ t          d                              t                    sJ t          dd          t	          t                    k    sJ d S )Nc                  ,    t          dt                    S r   )r
   r   r   r   r   r   z&test_chebyshevt_poly.<locals>.<lambda>:       r155 r   r   Tr   r   r   r%   r#   r"                   0      K   %   &   d   2   )r   r&   r
   r   r   expandr-   r   r   r   test_chebyshevt_polyr?   9   sK   
:556661at,,,Q77771a  A%%%%1a  A%%%%1a  AadFQJ....1a  AadFQqSL00001a  AadFQq!tVOa$777771a  Bq!tGbAg$5!$;;;;;1a  Bq!tGbAg$51a4$?!$CCCCC2q!!aA(>(>&>rST?U?U&UXY&Y%a%a%c%ccccc3""qQ)?)?)B'BQ'F&N&N&P&PPPPP1&&q)))))1D)))T!WW444444r   c                     t          t          d            t          dt          d          t	          dt          z            k    sJ t          dt                    dk    sJ t          dt                    dt          z  k    sJ t          dt                    dt          dz  z  dz
  k    sJ t          dt                    d	t          dz  z  dt          z  z
  k    sJ t          dt                    d
t          dz  z  dt          dz  z  z
  dz   k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dt          z  z   k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dt          dz  z  z   dz
  k    sJ t          d                              dt          z            sJ t          dd          t	          dt          z            k    sJ d S )Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z&test_chebyshevu_poly.<locals>.<lambda>M   r1   r   r   Tr   r   r   r#   r%   r"   r3      r2   r6   r5   @   P      )r   r&   r   r   r   r-   r   r   r   test_chebyshevu_polyrF   L   s   
:556661at,,,QqS		99991a  A%%%%1a  AaC''''1a  AadFQJ....1a  AadFQqSL00001a  Bq!tGbAg$5$999991a  Bq!tGbAg$5!$;;;;;1a  Bq!tGbAg$51a4$?!$CCCCC1&&qs+++++1D)))T!A#YY666666r   c                     t          t          d            t          dt          d          t	          dt          z            k    sJ t          dt                    dk    sJ t          dt                    dt          z  k    sJ t          dt                    dt          dz  z  dz
  k    sJ t          dt                    d	t          dz  z  d
t          z  z
  k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  d
z   k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dt          z  z   k    sJ t          dt                    dt          dz  z  dt          dz  z  z
  dt          dz  z  z   dz
  k    sJ t          d                              dt          z            sJ t          dd          t	          dt          z            k    sJ d S )Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z#test_hermite_poly.<locals>.<lambda>^   s    |B22 r   r   Tr   r   r   r#   r%   r"   rB   r3   r7   r2   r6      x   r5   rC   i    )r   r&   r   r   r   r-   r   r   r   test_hermite_polyrL   ]   s   
:223331D)))T!A#YY66661""""11$$$$11a4!++++11a4"Q$....1AqD2ad7!2R!777771AqD3q!t8!3c!e!;;;;;1AqD3q!t8!3c!Q$h!>!DDDDD??##AaC(((((&&&$qs))333333r   c                     t          t          d            t          dt          d          t	          t                    k    sJ t          dt                    dk    sJ t          dt                    t          k    sJ t          dt                    t          dz  dz
  k    sJ t          dt                    t          dz  dt          z  z
  k    sJ t          dt                    t          dz  d	t          dz  z  z
  dz   k    sJ t          d
t                    t          d
z  dt          dz  z  z
  dt          z  z   k    sJ t          d	t                    t          d	z  dt          dz  z  z
  dt          dz  z  z   dz
  k    sJ t          d                              t                    sJ t          dd          t	          t                    k    sJ d S )Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z(test_hermite_prob_poly.<locals>.<lambda>o   s    0Q77 r   r   Tr   r   r   r%   r#   r5   r2   
      -   )r   r&   r   r   r   r-   r   r   r   test_hermite_prob_polyrR   n   s   
:77888Q...$q''9999Q""a''''Q""a''''Q""adQh....Q""adQqSj0000Q""adQq!tVma&77777Q""adR1Wnr!t&;;;;;Q""adR1Wnr!Q$w&>&CCCCCQ((+++++Qd+++tAww666666r   c                  `   t          t          d            t          dt          d          t	          t          d          k    sJ t          dt                    dk    sJ t          dt                    t          k    sJ t          dt                    t          d	d          t          dz  z  t          dd          z
  k    sJ t          d	t                    t          d
d          t          d	z  z  t          d	d          t          z  z
  k    sJ t          dt                    t          dd          t          dz  z  t          dd          t          dz  z  z
  t          d	d          z   k    sJ t          d
t                    t          dd          t          d
z  z  t          dd          t          d	z  z  z
  t          dd          t          z  z   k    sJ t          dt                    t          dd          t          dz  z  t          dd          t          dz  z  z
  t          dd          t          dz  z  z   t          d
d          z
  k    sJ t          d                              t                    sJ t          dd          t	          t                    k    sJ d S )Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z$test_legendre_poly.<locals>.<lambda>       }R33 r   r   Tr   QQr    r   r   r%   r2   r#   #   r"      ?   F   rP   r5      r3   i;  i   )r   r&   r   r   r   r'   r-   r   r   r   test_legendre_polyr]      s\   
:33444AT***d1T.B.B.BBBBBA!####A!####A!Aq''!Q$,1a"88888A!Aq''!Q$,1a":::::A!B((1a4-!B((1a4-"?!Aq''"IIIIIA!B((1a4-!B((1a4-"?!B((1*"LLLLLA!R# #A##r

1a4#(*+C**QT/#:<=aHH#E E E E E $$Q'''''$'''477222222r   c                  
   t          t          d            t          dt          d          t	          t           dz   d          k    sJ t          dt                    dk    sJ t          dt                    t           dz   k    sJ t          dt                    t          dd          t          dz  z  t          d	d          t          z  z
  dz   k    sJ t          d
t                    t          dd           t          d
z  z  t          dd          t          dz  z  z   t          dd          t          z  z
  dz   k    sJ t          d	t                    t          dd          t          d	z  z  t          dd          t          d
z  z  z
  t          dd          t          dz  z  z   t          dd          t          z  z
  dz   k    sJ t          dt                    t          dd           t          dz  z  t          dd          t          d	z  z  z   t          dd          t          d
z  z  z
  t          dd          t          dz  z  z   t          dd          t          z  z
  dz   k    sJ t          dt                    t          dd          t          dz  z  t          dd          t          dz  z  z
  t          dd          t          d	z  z  z   t          dd          t          d
z  z  z
  t          dd          t          dz  z  z   t          dd          t          z  z
  dz   k    sJ t          dt          t                    dk    sJ t          dt          t                    t           t          z   dz   k    sJ t          dt          t                    t          dz  dz  t           dz
  t          z  z   t          dz  dz  z   t          t          d
d          z  z   dz   k    sJ t          d
t          t                    t          d
z   dz  t          dz  t          d
          dz  z   t          dz  z  z   t          dz   dz  t          t          dd          z  z
  d
z
  t          z  z   t          d
z  dz  z   t          dz  z   t          t          dd          z  z   dz   k    sJ t          d                              t           dz             sJ t          dd          t	          t           dz             k    sJ d S )Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z$test_laguerre_poly.<locals>.<lambda>   rU   r   r   Tr   rV   r    r   r   r#   r%   r5   	   r8   rE   r3   H   `   r2   rJ         iX  rK   $   i  i`	  i  i     )r   r&   r   r   r   r'   r   r-   r   r   r   test_laguerre_polyrg      s   
:33444AT***dA26$.G.G.GGGGGA!####A1"q&((((A!Aq''!Q$,1a":Q">>>>>A1Q77(1a4-!Aq''!Q$,">2q!"Ka"OOOOOA!	2# #!t#Bii1n#%'(RyyA~#689"b		!#DFG#H H H H HA1Q99*QT/Ab#JJq!tO"CaSG GQ$G #3QT)#*,-c3KKM#:<=#> > > > >A!As))AqD.1R::ad?"BQsC[[QRTUQUEU"UXYZ^`cXdXdefhieiXi"ilmnrtwlxlxyz|}y}l}"}  AB  CG  IL  AM  AM  NO  AO  #O  RS  #S  S  S  S  SAq!!Q&&&&Aq!!aR!VaZ////Aq!!QT!VrAvqj%81a46%AAa1ggI%MPQ%QQQQQAq!!adU1W!a	7 77 1d0 &!teAg!Aq''	)A-q0&134a46&:<=qD&ACDQr1XX:&NPQ&R R R R R $$aR!V,,,,,$'''4Q<<777777r   c                  F   t          d          \  } }t          d|          d|dz  z  k    sJ t          d|          d|z  d|dz  z  z   k    sJ t          d|          d|dz  z  d|dz  z  z   k    sJ t          d|          d|z  d	|dz  z  z
  d
|dz  z  z   k    sJ d S )Nzx zr   r   r   r%   irP   r#   rQ   r\   r2   )r   r   )r   zs     r   test_spherical_bessel_fnrj      s    5>>DAqq!$$!Q$....q!$$1qAv5555q!$$1a4"QT'(99999q!$$!bAgAqD(@@@@@@@r   N)#__doc__sympy.core.numbersr   r'   sympy.core.singletonr   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.testing.pytestr   sympy.polys.orthopolysr   r	   r
   r   r   r   r   r   r   	sympy.abcr   r   r   r)   r.   r?   rF   rL   rR   r]   rg   rj   r   r   r   <module>rs      s   K K , , , , , , " " " " " " % % % % % % & & & & & & ' ' ' ' ' '
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
          < < <"O O O 5 5 5&7 7 7"4 4 4"7 7 7"3 3 3$8 8 82A A A A Ar   