
    Pih%                        d dl Zd dlmZmZ d dlZd dlmZ d dlm	c m
Z d dlmZ d Zd Zd Zd Z G d	 d
          Z G d d          Zd Zej                            dg d          ej                            dd dej        g          d                         Zej                            dg d          ej                            ddej        g          ej                            ddej        g          d                                     Zej                            dg d          ej                            dddej        g          ej                            dddej        g          d                                     ZdS )    N)assert_assert_allclose)_ufuncs)FuncDatac                  f   t          j        dddt          j        d                    } dt           j                                        z  dz
  }t          j        | t          j        |          z            }t          j        | |          }t          t          j
        ||d	                     d S )
Nr   i'     long)dtype      gV瞯<rtol)nparanger
   randomrandcosarccosr   eval_chebytr   allclose)nxv1v2s       |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/special/tests/test_orthogonal_eval.pytest_eval_chebytr   
   s    
	!UARXf%5%5666A	")..

QA	")A,,		B		Q	"	"BBKBU+++,,,,,    c                  <    t          j        dd          dk    sJ d S )Nr   y       @        g     @)r   r    r   r   test_eval_chebyt_gh20129r       s&    q&))V333333r   c            	          t          t          j        t          j        ddd                               t          t          j        t          j        ddd                               d S )Nr   g?)r   r   isnanr   eval_genlaguerrer   r   r   !test_eval_genlaguerre_restrictionr%      sV    BHW-aQ7788999BHW-c2q99::;;;;;r   c                      t          j        d          5  t          j        dd           t          j        dd           t          j        ddd           d d d            d S # 1 swxY w Y   d S )Nraiseallr   r   )r   errstater   eval_legendreeval_laguerreeval_gegenbauerr   r   r   test_warningsr.      s    		!	!	! ) )a###a###1a(((	) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   AA$$A(+A(c                   x    e Zd ZdZ	 	 ddZd Zd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd ZdS )	TestPolyszQ
    Check that the eval_* functions agree with the constructed polynomials

    r   
   :0yE>c	                    t           j                            d          g }	t          j        |          D ]}
fd|D             }t          j        |          j        }|sdg}|D ]}|r|
ft          |          z   }n|
f}|d         |d         |d         z
                      |          z  z   }|d         |d<   |d         |d<   t          j         || j	                  }t           j
        t          j        ||df          | ||          f         }|	                    |           ƌt          j        |	d          }	fd}t          j        d          5  t          ||	t!          t#          t%          |          d	z                       d
|          }|                                 d d d            d S # 1 swxY w Y   d S )N  c                 R    g | ]#\  }}|||z
                                 z  z   $S r   )r   .0abnparamrngs      r   
<listcomp>z(TestPolys.check_poly.<locals>.<listcomp>2   s7    IIISQqa1Q3 0 000IIIr   r   r   axisc                      | d                              t          j        d                    f| dd          z   }  |  S )Nr   r	   r   )astyper   r
   )pfuncs    r   polyfuncz&TestPolys.check_poly.<locals>.polyfuncD   s=    1RXf--..01QRR58A48Or   r'   r(   r   r"   r   )r   r   RandomStater   asarrayTtupler   poly1dcoefc_tileappendconcatenater*   r   listrangelencheck)selfrB   clsparam_rangesx_rangennr:   nxr   datasetr   paramsrA   r   polyzrC   dsr;   s    `    `           @r   
check_polyzTestPolys.check_poly,   s5   i##D))2 	" 	"AIIIIILIIIFZ'')F  
" 
" uQxxAAAAJ'!*wqz"9388B<<!GGqz!qz!ya..E"'!bV,,aa89q!!!!
" .q111	 	 	 	 	 [W%%% 	 	(GT%L8I8I!8K2L2L-M-Mr#% % %BHHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !AGGGc                 j    |                      t          j        t          j        ddgddgd           d S )NgGzr1   r"   r   h㈵>rT   rU   r   )r]   r   eval_jacobiorthjacobirR   s    r   test_jacobizTestPolys.test_jacobiM   sA    +T[&1;%?!#Qd 	 	4 	4 	4 	4 	4r   c                 j    |                      t          j        t          j        ddgddgd           d S )Nr   r1   r   r   r   r   r`   ra   )r]   r   eval_sh_jacobirc   	sh_jacobire   s    r   test_sh_jacobizTestPolys.test_sh_jacobiR   sA    .&-v%6A! 	 	# 	# 	# 	# 	#r   c                 h    |                      t          j        t          j        dgddgd           d S )NgV-߿r1   r"   r   gHz>ra   )r]   r   r-   rc   
gegenbauerre   s    r   test_gegenbauerzTestPolys.test_gegenbauerW   s>    /&2^b!W! 	 	# 	# 	# 	# 	#r   c                 d    |                      t          j        t          j        g ddg           d S Nr"   r   rT   rU   )r]   r   r   rc   chebytre   s    r   test_chebytzTestPolys.test_chebyt\   9    +T[%'"a 	 	: 	: 	: 	: 	:r   c                 d    |                      t          j        t          j        g ddg           d S rr   )r]   r   eval_chebyurc   chebyure   s    r   test_chebyuzTestPolys.test_chebyu`   rv   r   c                 d    |                      t          j        t          j        g ddg           d S Nr   rs   )r]   r   eval_chebysrc   chebysre   s    r   test_chebyszTestPolys.test_chebysd   rv   r   c                 d    |                      t          j        t          j        g ddg           d S r|   )r]   r   eval_chebycrc   chebycre   s    r   test_chebyczTestPolys.test_chebych   rv   r   c                     t          j        d          5  |                     t          j        t
          j        g ddg           d d d            d S # 1 swxY w Y   d S Nignorer(   r   r   rs   )r   r*   r]   r   eval_sh_chebytrc   	sh_chebytre   s    r   test_sh_chebytzTestPolys.test_sh_chebytl   s    [X&&& 	= 	=OOG2DN)+aV  = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=   0AAAc                 d    |                      t          j        t          j        g ddg           d S Nr   r   rs   )r]   r   eval_sh_chebyurc   	sh_chebyure   s    r   test_sh_chebyuzTestPolys.test_sh_chebyuq   s9    .%'!Q 	 	9 	9 	9 	9 	9r   c                 d    |                      t          j        t          j        g ddg           d S rr   )r]   r   r+   rc   legendrere   s    r   test_legendrezTestPolys.test_legendreu   s9    -t}%'"a 	 	: 	: 	: 	: 	:r   c                     t          j        d          5  |                     t          j        t
          j        g ddg           d d d            d S # 1 swxY w Y   d S r   )r   r*   r]   r   eval_sh_legendrerc   sh_legendrere   s    r   test_sh_legendrezTestPolys.test_sh_legendrey   s    [X&&& 	= 	=OOG4d6F)+aV  = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=r   c                 f    |                      t          j        t          j        dgddg           d S Nr_   r   d   rs   )r]   r   r$   rc   genlaguerrere   s    r   test_genlaguerrezTestPolys.test_genlaguerre~   sA    0$2B&1]QH 	 	F 	F 	F 	F 	Fr   c                 d    |                      t          j        t          j        g ddg           d S Nr   r   rs   )r]   r   r,   rc   laguerrere   s    r   test_laguerrezTestPolys.test_laguerre   s9    -t}%'!S 	 	; 	; 	; 	; 	;r   c                 d    |                      t          j        t          j        g ddg           d S Nir   rs   )r]   r   eval_hermiterc   hermitere   s    r   test_hermitezTestPolys.test_hermite   s9    ,dl%'$ 	 	> 	> 	> 	> 	>r   c                 d    |                      t          j        t          j        g ddg           d S r   )r]   r   eval_hermitenormrc   hermitenormre   s    r   test_hermitenormzTestPolys.test_hermitenorm   s:    0$2B%'$ 	 	> 	> 	> 	> 	>r   Nr   r   r1   r1   r1   r2   )__name__
__module____qualname____doc__r]   rf   rl   rp   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r0   &   s!        
 EG*.   B4 4 4
# # #
# # #
: : :: : :: : :: : := = =
9 9 9: : := = =
F F F; ; ;> > >> > > > >r   r0   c                   r    e Zd ZdZ	 	 ddZd Zd Zd Zd	 Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd ZdS )TestRecurrencezI
    Check that the eval_* functions sig='ld->d' and 'dd->d' agree.

    r   r1   r2   c                    t           j                            d          g }t          j        |          D ]}	fd|D             }
t          j        |
          j        }
|sdg}
|
D ]}|r|	ft          |          z   }n|	f}|d         |d         |d         z
                      |          z  z   }|d         |d<   |d         |d<   t          t          |          dz   dz  dz             }t           j	        t          j
        ||df          | ||fz   i |f         }|                    |           ѐt          j        |d          }fd	}t          j        d
          5  t          ||t          t!          t          |          dz                       d|          }|                                 d d d            d S # 1 swxY w Y   d S )Nr4   c                 R    g | ]#\  }}|||z
                                 z  z   $S r   )r   r6   s      r   r<   z-TestRecurrence.check_poly.<locals>.<listcomp>   s7    KKKsqa1Q3

6 2 222KKKr   r   r   d->dsigr=   c                      | d                              t          j                  }|f| dd          z   } |j        j        }t          |t          |           dz
  dz  z   dz             } | i |S )Nr   r   r   r   r   )r@   r   intpr
   chardictrP   )rA   p0p0_type_charkwrB   s       r   rC   z+TestRecurrence.check_poly.<locals>.polyfunc   sp    1RW%%B!""A8=L,#a&&(C7%?@@@B4>b>>!r   r'   r(   r   r"   r   )r   r   default_rngr   rE   rF   rG   r   rP   rJ   rK   rL   rM   r*   r   rN   rO   rQ   )rR   rB   rT   rU   rV   r:   rW   r   rX   r   rY   rA   r   r   r[   rC   r\   r;   s    `   `           @r   r]   zTestRecurrence.check_poly   sN   i##D))2 	" 	"AKKKKKlKKKFZ'')F  
" 
" uQxxAAAAJ'!*wqz"93::b>>!IIqz!qz!s1vvaxnU2333E"'!bV,,aQD1HR1H1HHIq!!!!
" .q111	" 	" 	" 	" 	" [W%%% 	 	(GT%L8I8I!8K2L2L-M-Mr#% % %BHHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .AGGGc                 R    |                      t          j        ddgddg           d S )Nr_   r"   r   rs   )r]   r   rb   re   s    r   rf   zTestRecurrence.test_jacobi   s;    +&1;%?!#Q 	 	) 	) 	) 	) 	)r   c                 R    |                      t          j        ddgddg           d S )Nrh   ri   r   r   rs   )r]   r   rj   re   s    r   rl   zTestRecurrence.test_sh_jacobi   s?    .&-v%6A 	 	H 	H 	H 	H 	Hr   c                 P    |                      t          j        dgddg           d S )Nrn   r"   r   rs   )r]   r   r-   re   s    r   rp   zTestRecurrence.test_gegenbauer   s<    /&2^b!W 	 	F 	F 	F 	F 	Fr   c                 N    |                      t          j        g ddg           d S rr   )r]   r   r   re   s    r   ru   zTestRecurrence.test_chebyt   5    +%'"a 	 	: 	: 	: 	: 	:r   c                 N    |                      t          j        g ddg           d S rr   )r]   r   rx   re   s    r   rz   zTestRecurrence.test_chebyu   r   r   c                 N    |                      t          j        g ddg           d S r|   )r]   r   r~   re   s    r   r   zTestRecurrence.test_chebys   r   r   c                 N    |                      t          j        g ddg           d S r|   )r]   r   r   re   s    r   r   zTestRecurrence.test_chebyc   r   r   c                 N    |                      t          j        g ddg           d S r   )r]   r   r   re   s    r   r   zTestRecurrence.test_sh_chebyt   5    .%'!Q 	 	9 	9 	9 	9 	9r   c                 N    |                      t          j        g ddg           d S r   )r]   r   r   re   s    r   r   zTestRecurrence.test_sh_chebyu   r   r   c                 N    |                      t          j        g ddg           d S rr   )r]   r   r+   re   s    r   r   zTestRecurrence.test_legendre   s5    -%'"a 	 	: 	: 	: 	: 	:r   c                 N    |                      t          j        g ddg           d S r   )r]   r   r   re   s    r   r   zTestRecurrence.test_sh_legendre   s5    0%'!Q 	 	9 	9 	9 	9 	9r   c                 P    |                      t          j        dgddg           d S r   )r]   r   r$   re   s    r   r   zTestRecurrence.test_genlaguerre   s<    0&1]QH 	 	F 	F 	F 	F 	Fr   c                 N    |                      t          j        g ddg           d S r   )r]   r   r,   re   s    r   r   zTestRecurrence.test_laguerre   s5    -%'!S 	 	; 	; 	; 	; 	;r   c                 T    t          j        dd          }d}t          ||           d S )NF         ?gi\m)r   r   r   )rR   vr8   s      r   r   zTestRecurrence.test_hermite   s/     S))!1r   Nr   )r   r   r   r   r]   rf   rl   rp   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s        
 @B*." " " "H) ) )
H H HF F F: : :: : :: : :: : :9 9 99 9 9: : :9 9 9F F F; ; ;    r   r   c                      t          j        t          j        dd                    sJ t          j        t          j        dd                    sJ d S )Nr"   r   )r   r#   r   r   r   r   r   r   test_hermite_domainr      sN    8G(S11222228G,R556666666r   r   )r   r   r   r   r   c                 R   t          j        t          j        | |                    t          j        t          j        | |g                    k    sJ t          j        t          j        | |                    t          j        t          j        | |g                    k    sJ d S N)r   r#   r   r   anyr   )r   r   s     r   test_hermite_nanr      s     8G(A..//26"(Aq6:J:J3K3KKKKK8G,Q2233rvbh1v>N>N7O7OOOOOOOr   )r   r   r   g	@alphar   c                     t          j        t          j        | ||                    }t          j        t          j        | ||g                    }||k    sJ d S r   )r   r#   r   r$   r   )r   r   r   nan_laguerrenan_args        r   test_genlaguerre_nanr     sX    
 8G4QqAABBLfRXq%m,,--G7""""""r   g        gư>c                     t          j        t          j        | ||                    }t          j        t          j        | ||g                    }||k    sJ d S r   )r   r#   r   r-   r   )r   r   r   nan_gegenbauerr   s        r   test_gegenbauer_nanr     sX    
 Xg5aBBCCNfRXq%m,,--GW$$$$$$r   )numpyr   numpy.testingr   r   pytestscipy.specialr   scipy.special._orthogonalspecial_orthogonalrc   scipy.special._testutilsr   r   r    r%   r.   r0   r   r   markparametrizenanr   r   r   r   r   r   <module>r      sx       2 2 2 2 2 2 2 2  ! ! ! ! ! ! ( ( ( ( ( ( ( ( ( - - - - - -- - -4 4 4
< < <) ) )f> f> f> f> f> f> f> f>Rb b b b b b b bJ7 7 7 iii((q!RVn--P P .- )(P nnn--1bf+..q"&k**# # +* /. .-# nnn--326"233tQ/00% % 10 43 .-% % %r   