
    Pi[;                     6   d dl Z d dlZd dlmZ d dl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mZ d dlmZ  G d d          Z G d d	          Z G d
 d          Z G d d          Z G d d          Z G d d          Z G d de          Z G d de          Z G d de          Z G d de          Z G d d          Z ej!        "                    dddg          ej!        "                    deeeeg          d                          Z#dS )!    N)assert_allclose)	sincossinhcoshexpinfnanr_pi)spherical_jnspherical_ynspherical_inspherical_kn)quadc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestSphericalJnc                     t          j        g d          }t          t          d|          d|z  d|dz  z  z   t	          |          z  d|dz  z  t          |          z  z
             d S )NQ?Gz?Gz(@^@g     J@      )nparrayr   r   r   r   selfxs     }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/special/tests/test_spherical_bessel.pytest_spherical_jn_exactz'TestSphericalJn.test_spherical_jn_exact   s|     H88899Q**A!Q$A.1a4A>	@ 	@ 	@ 	@ 	@    c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z   d|z  dz   |z  t          ||          z             d S N   r   r         ?      ?r(   r   r   r   r   r   r    nr!   s      r"   $test_spherical_jn_recurrence_complexz4TestSphericalJn.test_spherical_jn_recurrence_complex   z    H%%%&&QUA..a!eQ1G1GG1q!LA$6$66	8 	8 	8 	8 	8r$   c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z   d|z  dz   |z  t          ||          z             d S Nr'   r   r(   r   r,   r-   s      r"   !test_spherical_jn_recurrence_realz1TestSphericalJn.test_spherical_jn_recurrence_real   z    H%%%&&QUA..a!eA1F1FF1q!LA$6$66	8 	8 	8 	8 	8r$   c                     d}t          j        t           t          g          }t          t	          ||          t          j        ddg                     d S N   r   )r   r   r	   r   r   r-   s      r"   test_spherical_jn_inf_realz*TestSphericalJn.test_spherical_jn_inf_real&   J    HsdC[!!Q**BHaV,<,<=====r$   c           
      n   d}t          j        t           dz   t          dz   t          dz  g          }t          j                    5  t          j        ddt                     t          t          ||          t          j        ddt          dz  g                     d d d            d S # 1 swxY w Y   d S Nr)                         ?      ?ignorez%invalid value encountered in multiplyr   )	r   r   r	   warningscatch_warningsfilterwarningsRuntimeWarningr   r   r-   s      r"   test_spherical_jn_inf_complexz-TestSphericalJn.test_spherical_jn_inf_complex,      HsdRir3:677$&& 	N 	N#A>S S SLA..!QT
9K0L0LMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N   AB**B.1B.c                 B    t          t          dd          d           d S )Nr   g%-@g<]3r   r   r    s    r"   test_spherical_jn_large_arg_1z-TestSphericalJn.test_spherical_jn_large_arg_15   s%     	Q113JKKKKKr$   c                 B    t          t          dd          d           d S )Nr   i'  g|	 ?rG   rH   s    r"   test_spherical_jn_large_arg_2z-TestSphericalJn.test_spherical_jn_large_arg_2;   s%     	Q..0FGGGGGr$   c                     t          j        g d          }d}t          t          ||          t          j        g d                     d S Nr   r(   r      
   d   r   )r(   r   r   r   r   r   r,   r-   s      r"   test_spherical_jn_at_zeroz)TestSphericalJn.test_spherical_jn_at_zeroA   P     H***++Q**BH5G5G5G,H,HIIIIIr$   N)__name__
__module____qualname__r#   r/   r3   r8   rC   rI   rK   rR    r$   r"   r   r      s        @ @ @8 8 88 8 8> > >N N NL L LH H HJ J J J Jr$   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestSphericalYnc                     t          j        g d          }t          t          d|          d|z  d|dz  z  z
  t	          |          z  d|dz  z  t          |          z  z
             d S )Nr   r   r(   r   )r   r   r   r   r   r   r   s     r"   test_spherical_yn_exactz'TestSphericalYn.test_spherical_yn_exactJ   sw     H88899Q**1qAvs1vv-!Q$s1vv=	? 	? 	? 	? 	?r$   c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z   d|z  dz   |z  t          ||          z             d S r2   r   r   r   r   r-   s      r"   !test_spherical_yn_recurrence_realz1TestSphericalYn.test_spherical_yn_recurrence_realR   r4   r$   c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z   d|z  dz   |z  t          ||          z             d S r&   r]   r-   s      r"   $test_spherical_yn_recurrence_complexz4TestSphericalYn.test_spherical_yn_recurrence_complexY   r0   r$   c                     d}t          j        t           t          g          }t          t	          ||          t          j        ddg                     d S r6   )r   r   r	   r   r   r-   s      r"   test_spherical_yn_inf_realz*TestSphericalYn.test_spherical_yn_inf_real`   r9   r$   c           
      n   d}t          j        t           dz   t          dz   t          dz  g          }t          j                    5  t          j        ddt                     t          t          ||          t          j        ddt          dz  g                     d d d            d S # 1 swxY w Y   d S r;   )	r   r   r	   r?   r@   rA   rB   r   r   r-   s      r"   test_spherical_yn_inf_complexz-TestSphericalYn.test_spherical_yn_inf_complexf   rD   rE   c                     t          j        g d          }d}t          t          ||          t          j        |j        t                                d S NrN   r   )r   r   r   r   fullshaper	   r-   s      r"   test_spherical_yn_at_zeroz)TestSphericalYn.test_spherical_yn_at_zeroo   sM    H***++Q**BGAGcT,B,BCCCCCr$   c                     t          j        g d          }d}t          t          ||          t          j        |j        t                               d S NrN   r<   )r   r   r   r   rg   rh   r
   r-   s      r"   !test_spherical_yn_at_zero_complexz1TestSphericalYn.test_spherical_yn_at_zero_complexu   sM     H***++Q**BGAGS,A,ABBBBBr$   N)
rT   rU   rV   r[   r^   r`   rb   rd   ri   rl   rW   r$   r"   rY   rY   I   s        ? ? ?8 8 88 8 8> > >N N ND D DC C C C Cr$   rY   c                       e Zd Zd Zd ZdS )TestSphericalJnYnCrossProductc                     t          j        g d          }t          j        g d          }t          |dz   |          t          ||          z  t          ||          t          |dz   |          z  z
  }d|dz  z  }t	          ||           d S )Nr(   rO      g?r(   rP   r(   r   r   r   r   r   r   r    r.   r!   leftrights        r"   $test_spherical_jn_yn_cross_product_1zBTestSphericalJnYnCrossProduct.test_spherical_jn_yn_cross_product_1   s    HYYYH\\\""QUA&&a););;Q""\!a%%;%;;<!Q$e$$$$$r$   c                 ,   t          j        g d          }t          j        g d          }t          |dz   |          t          ||          z  t          ||          t          |dz   |          z  z
  }d|z  dz   |dz  z  }t	          ||           d S )Nrp   rr   r   r   rs   rt   s        r"   $test_spherical_jn_yn_cross_product_2zBTestSphericalJnYnCrossProduct.test_spherical_jn_yn_cross_product_2   s    HYYYH\\\""QUA&&a););;Q""\!a%%;%;;<1q!Q$e$$$$$r$   N)rT   rU   rV   rw   ry   rW   r$   r"   rn   rn      s2        % % %% % % % %r$   rn   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestSphericalInc                     t          j        g d          }t          t          d|          d|z  d|dz  z  z   t	          |          z  d|dz  z  t          |          z  z
             d S N)r   r   r   r   r   r(   r   )r   r   r   r   r   r   r   s     r"   test_spherical_in_exactz'TestSphericalIn.test_spherical_in_exact   sz    H00011Q**1qAvtAww.1a4Q?	A 	A 	A 	A 	Ar$   c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z
  d|z  dz   |z  t          ||          z             d S r2   r   r   r   r   r-   s      r"   !test_spherical_in_recurrence_realz1TestSphericalIn.test_spherical_in_recurrence_real   r4   r$   c                     t          j        g d          }d}t          t          |dz
  |          t          |dz   |          z
  d|z  dz   |z  t          ||          z             d S r&   r   r-   s      r"   $test_spherical_in_recurrence_complexz4TestSphericalIn.test_spherical_in_recurrence_complex   sz    H%%%&&QUA..a!eA1F1FF1q!LA$6$66	8 	8 	8 	8 	8r$   c                     d}t          j        t           t          g          }t          t	          ||          t          j        t           t          g                     d S )NrO   )r   r   r	   r   r   r-   s      r"   test_spherical_in_inf_realz*TestSphericalIn.test_spherical_in_inf_real   sL    HsdC[!!Q**BHsdC[,A,ABBBBBr$   c                     d}t          j        t           dz   t          dz   t          dz  g          }t          t	          ||          t          j        t           t          t
          g                     d S )Nr)   r<   r=   )r   r   r	   r   r   r
   r-   s      r"   test_spherical_in_inf_complexz-TestSphericalIn.test_spherical_in_inf_complex   s`     HsdRir3:677Q**BHsdC5E,F,FGGGGGr$   c                     t          j        g d          }d}t          t          ||          t          j        g d                     d S rM   r   r-   s      r"   test_spherical_in_at_zeroz)TestSphericalIn.test_spherical_in_at_zero   rS   r$   N)	rT   rU   rV   r~   r   r   r   r   r   rW   r$   r"   r{   r{      s|        A A A8 8 88 8 8C C C	H 	H 	HJ J J J Jr$   r{   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestSphericalKnc                     t          j        g d          }t          t          d|          t          dz  t          |           z  d|z  d|dz  z  z   d|dz  z  z   z             d S r}   )r   r   r   r   r   r   r   s     r"   test_spherical_kn_exactz'TestSphericalKn.test_spherical_kn_exact   su    H00011Q**1S!WWacAadFlQq!tV&;<	> 	> 	> 	> 	>r$   c                    t          j        g d          }d}t          d|dz
  z  t          |dz
  |          z  d|dz   z  t          |dz   |          z  z
  d|z  d|z  dz   z  |z  t          ||          z             d S )Nr'   r   r   r(   r   r   r   r   r   r-   s      r"   !test_spherical_kn_recurrence_realz1TestSphericalKn.test_spherical_kn_recurrence_real   s    H%%%&&1q5M,q1ua000B!a%=aRSeTUAVAV3VV!GQqS1WaQ 2 22	
 	
 	
 	
 	
r$   c                    t          j        g d          }d}t          d|dz
  z  t          |dz
  |          z  d|dz   z  t          |dz   |          z  z
  d|z  d|z  dz   z  |z  t          ||          z             d S )Nr'   r+   r   r(   r   r   r-   s      r"   $test_spherical_kn_recurrence_complexz4TestSphericalKn.test_spherical_kn_recurrence_complex   s    H%%%&&1q5M,q1ua000B!a%=aRSeTUAVAV3VV!GQqS1WaQ 2 22	
 	
 	
 	
 	
r$   c                     d}t          j        t           t          g          }t          t	          ||          t          j        t           dg                     d S )NrO   r   )r   r   r	   r   r   r-   s      r"   test_spherical_kn_inf_realz*TestSphericalKn.test_spherical_kn_inf_real   sL    HsdC[!!Q**BHsdAY,?,?@@@@@r$   c                     d}t          j        t           dz   t          dz   t          dz  g          }t          t	          ||          t          j        t           dt
          g                     d S )Nr)   r<   r=   r   )r   r   r	   r   r   r
   r-   s      r"   test_spherical_kn_inf_complexz-TestSphericalKn.test_spherical_kn_inf_complex   s_    
 HsdRir3:677Q**BHsdAs^,D,DEEEEEr$   c                     t          j        g d          }d}t          t          ||          t          j        |j        t                               d S rf   )r   r   r   r   rg   rh   r	   r-   s      r"   test_spherical_kn_at_zeroz)TestSphericalKn.test_spherical_kn_at_zero   sK    H***++Q**BGAGS,A,ABBBBBr$   c                     t          j        g d          }d}t          t          ||          t          j        |j        t                               d S rk   )r   r   r   r   rg   rh   r
   r-   s      r"   !test_spherical_kn_at_zero_complexz1TestSphericalKn.test_spherical_kn_at_zero_complex   sK    H***++Q**BGAGS,A,ABBBBBr$   N)
rT   rU   rV   r   r   r   r   r   r   r   rW   r$   r"   r   r      s        > > >
 
 

 
 
A A AF F FC C CC C C C Cr$   r   c                   h    e Zd Zd Zej        j        d             Zej        j        d             ZdS )SphericalDerivativesTestCasec                      t           fd||          \  }}t          |                     |                               |          z
  |           d S )Nc                 0                         |           S N)df)zr.   r    s    r"   <lambda>zBSphericalDerivativesTestCase.fundamental_theorem.<locals>.<lambda>   s    TWWQ]] r$   )atol)r   r   f)r    r.   abintegral	tolerances   ``    r"   fundamental_theoremz0SphericalDerivativesTestCase.fundamental_theorem   sm    "#:#:#:#:#:AqAA)q!tvva||3&	( 	( 	( 	( 	( 	(r$   c                 4    |                      ddd           d S )Nr   g      @      .@r   rH   s    r"   test_fundamental_theorem_0z7SphericalDerivativesTestCase.test_fundamental_theorem_0   s       C.....r$   c                 4    |                      ddd           d S )Nr)         ?g333333?r   rH   s    r"   test_fundamental_theorem_7z7SphericalDerivativesTestCase.test_fundamental_theorem_7  s       C-----r$   N)	rT   rU   rV   r   pytestmarkslowr   r   rW   r$   r"   r   r      se        ( ( ( [/ / / [. . . . .r$   r   c                        e Zd Zd Zd Zd ZdS )TestSphericalJnDerivativesc                 "    t          ||          S r   r   r    r.   r   s      r"   r   zTestSphericalJnDerivatives.f      Aq!!!r$   c                 &    t          ||d          S NT
derivativer   r   s      r"   r   zTestSphericalJnDerivatives.df      AqT2222r$   c                     t          j        g d          }t          t          |dd          t          j        g d                     d S )Nr   r(   r   r   r)      r   Tr   r   gUUUUUU?r   r   r   r   r,   r    r.   s     r"   test_spherical_jn_d_zeroz3TestSphericalJnDerivatives.test_spherical_jn_d_zero  sY    H((())Qd;;;!5!5!566	8 	8 	8 	8 	8r$   N)rT   rU   rV   r   r   r   rW   r$   r"   r   r     sA        " " "3 3 38 8 8 8 8r$   r   c                       e Zd Zd Zd ZdS )TestSphericalYnDerivativesc                 "    t          ||          S r   r   r   s      r"   r   zTestSphericalYnDerivatives.f  r   r$   c                 &    t          ||d          S r   r   r   s      r"   r   zTestSphericalYnDerivatives.df  r   r$   NrT   rU   rV   r   r   rW   r$   r"   r   r     2        " " "3 3 3 3 3r$   r   c                        e Zd Zd Zd Zd ZdS )TestSphericalInDerivativesc                 "    t          ||          S r   r   r   s      r"   r   zTestSphericalInDerivatives.f  r   r$   c                 &    t          ||d          S r   r   r   s      r"   r   zTestSphericalInDerivatives.df   r   r$   c                     t          j        g d          }t          |dd           t          t          |dd          t          j        g d                     d S )Nr   r   Fr   Tr   )r   r   r   r   r   s     r"   test_spherical_in_d_zeroz3TestSphericalInDerivatives.test_spherical_in_d_zero#  sn    H((())Qe,,,,Qd;;;!5!5!566	8 	8 	8 	8 	8r$   N)rT   rU   rV   r   r   r   rW   r$   r"   r   r     sA        " " "3 3 38 8 8 8 8r$   r   c                       e Zd Zd Zd ZdS )TestSphericalKnDerivativesc                 "    t          ||          S r   r   r   s      r"   r   zTestSphericalKnDerivatives.f+  r   r$   c                 &    t          ||d          S r   r   r   s      r"   r   zTestSphericalKnDerivatives.df.  r   r$   Nr   rW   r$   r"   r   r   *  r   r$   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSphericalOldc                    t          j        d          }d}t          d|          |d         d<   t          d|          |d         d<   t          d|d          |d         d<   t          d|d          |d         d<   |d         d         }|d         d         d|d         d         z  z
  }t          |d         t          j        dd	g          d
d           t          |d         ||gd
d           d S )N)r   r   皙?r   r(   Tr         $@gA\?gc"?Afcz=g        r   rtol)r   emptyr   r   r   )r    i1nr!   inp0inp1s        r"   test_sph_inzTestSphericalOld.test_sph_in6  s   huoo A&&Aq	 A&&Aq	 A$777Aq	 A$777Aq	Aq	Aq	Gc!fQi//A*?*A*C !D !D$3	0 	0 	0 	0 	At7CCCCCCr$   c                    d}t          j        d          }t          d|          |d<   t          d|d          |d<   t          j        t          j        |          |z  t          j        |          |z  t          j        |          |dz  z  z
  g          }t          t          |         |dd	           t          j        d          }t          d|          |d<   t          d|d          |d<   t          j        d
t          z  t          |           z  |z  dt          z  t          |           z  d|z  d|dz  z  z   z  g          }t          t          |         |dd	           d S )Ng      ?)r   r   Tr   r(   r   gv!>r   r   g      )r   r   r   r   r   r   r   r   r   r   r   )r    r!   sph_i0sph_i0_expectedsph_k0sph_k0_expecteds         r"   test_sph_in_kn_order0z&TestSphericalOld.test_sph_in_kn_order0G  sV   $ A&&q	 A$777q	(BGAJJqL$&GAJJqLAqD$@$B C C6
O&qIIII$ A&&q	 A$777q	(CF3r77N1$4$(GCGGOQqS1a4Z$@$B C C6
O&qIIIIIIr$   c                 v   t          j        d          }d}t          d|          |d         d<   t          d|          |d         d<   t          d|          |d         d<   t          d|d          |d         d<   t          d|d          |d         d<   t          d|d          |d         d<   |d         d          }|d         d         d|d         d         z  z
  }|d         d         d	|d         d         z  z
  }t          |d         g d
dd           t          |d         |||gdd           d S )Nr   r   r   r   r(   r   Tr   r   r   )gkG~?gk?g)qe?r   r   )r   r   r   r   )r    s1r!   s10s11s12s         r"   test_sph_jnzTestSphericalOld.test_sph_jnW  sV   Xe__1%%1a1%%1a1%%1a16661a16661a16661a!uQxieAhwr!uQx''eAhwr!uQx''1  :  :  : %1	. 	. 	. 	. 	1S#W1EEEEEEr$   c                 z   t          j        d          }d}t          d|          |d         d<   t          d|          |d         d<   t          d|          |d         d<   t          d|d          |d         d<   t          d|d          |d         d<   t          d|d          |d         d<   |d         d          }|d         d          d|d         d         z  z
  }|d         d          d	|d         d         z  z
  }t          |d         g d
dd           t          |d         |||gdd           d S )Nr   r   r   r(   r   Tr   r   r   )gDT@g3̱wJC@g-uAI@r   r   gA:>)r   r   r   r   )r    knr!   kn0kn1kn2s         r"   test_sph_knzTestSphericalOld.test_sph_knk  sZ   Xe__1%%1a1%%1a1%%1a16661a16661a16661a!uQxi!uQxi1a((!uQxi1a((1  7  7  7 %1	. 	. 	. 	. 	1S#V!DDDDDDr$   c                 *   t          dd          }t          dd          }t          |ddd           t          |ddd           t          dd          dt          dd          z  z
  dz  }t          d	dd
          }t          ||dd           d S )Nr   r   r   g[_$ewgiUMu>r   g&$r   r(   Tr   ga2U0*#?)r   r   )r    sy1sy2sphpysy3s        r"   test_sph_ynzTestSphericalOld.test_sph_yn  s    1c""1c""Zf1====Zf1====a%%,q#*>*>(>>A1cd333Ua888888r$   N)rT   rU   rV   r   r   r   r   r   rW   r$   r"   r   r   2  sk        D D D"J J J F F F(E E E(	9 	9 	9 	9 	9r$   r   r   FTfunc                    t           j                            d          }d}|                    dd|          }|                    |          } ||||           } |||dz   |           }t          ||j                   d S )Nl   dnUY    r   rP   )sizer   r<   )r   randomdefault_rngintegersstandard_normalr   real)r   r   rngr  r.   r   resrefs           r"   test_negative_real_gh14582r
    s     )

 3
4
4CDQ&&A&&A
#az
*
*
*C
#a2*
-
-
-CC"""""r$   )$r?   numpyr   numpy.testingr   r   r   r   r   r   r   r	   r
   r   r   scipy.specialr   r   r   r   scipy.integrater   r   rY   rn   r{   r   r   r   r   r   r   r   r   parametrizer
  rW   r$   r"   <module>r     s        ) ) ) ) ) )  = = = = = = = = = = = = = = = = = = = = = = P P P P P P P P P P P P            7J 7J 7J 7J 7J 7J 7J 7Jt4C 4C 4C 4C 4C 4C 4C 4Cn% % % % % % % %(+J +J +J +J +J +J +J +J\2C 2C 2C 2C 2C 2C 2C 2Cj. . . . . . . . 
8 
8 
8 
8 
8!= 
8 
8 
83 3 3 3 3!= 3 3 38 8 8 8 8!= 8 8 83 3 3 3 3!= 3 3 3V9 V9 V9 V9 V9 V9 V9 V9r t}55|!-|!= > >	# 	#> > 65	# 	# 	#r$   