
    Pi                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 e j                            dg d          Zd Zd	 Z ee           G d
 d                      ZdS )    N)assert_allclose)quad_vec)make_xp_test_case)Pool
quadrature)Ngk15gk21	trapezoidc                     dd| dz  z   z  S N       xs    x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/integrate/tests/test__quad_vec.py
_lorenzianr      s    AqD>    c                 <    | | |z   z  t          j        d          z  S N   nparanger   as     r   _func_with_argsr      s    A;1%%r   c                   l   e Zd Zed             Zed             Zd Zej        	                    d          d             Z
ej        	                    d          ej                            dddg          ej                            d	d
 ej        dej                            d                    g          d                                     Zed             Zd Zd Zej                            dddej        fej        dfej         ej        fej        ej         fg          d             ZdS )TestQuadVecc           	        	 t          j        d          		fd}dD ]}|dk    r|dk     rt          ||          }d	dz   z  	dz   z  }t          |d	dfd
di|\  }}t	          ||d	|           t          |d	dfd
di|\  }}t           j                            ||z
            |k     sJ t          |d	dfddd|\  }}t	          ||d	|           t          |d	dfddddd|^}}}t	          ||d	|           d S )N
   c                     | z  S Nr   )r   ns    r   fz+TestQuadVec.test_quad_vec_simple.<locals>.f   s    6Mr   皙?gMbP?gư>r
   -C6?)epsabsr   r   r   r   normmaxrtolatol2)      ?      ?)r*   pointsg:0yE>Ti'  )r*   epsrelfull_outputlimit)r   r   dictr   r   linalgr*   )
selfr   r%   r)   kwargsexactreserrrestr$   s
            @r   test_quad_vec_simplez TestQuadVec.test_quad_vec_simple   s   IbMM	 	 	 	 	' 	= 	=F[((Vd]]J???F!Ha!e$E1a>>e>v>>HCCQV<<<<1a<<c<V<<HC9>>#+..77771aQeJQQ&QQHCCQV<<<<&q!Q .U+/04*/. . '-	. .OCt
 CQV<<<<</	= 	=r   c           
         d }dD ]}|dk    r|dk     rt          d||          }t          |dt          j        fi |\  }}t	          |t          j        dz  dt          ||          	           t          |dt          j         fi |\  }}t	          |t          j         dz  dt          ||          	           t          |t          j         dfi |\  }}t	          |t          j        dz  dt          ||          	           t          |t          j        dfi |\  }}t	          |t          j         dz  dt          ||          	           t          |t          j         t          j        fi |\  }}t	          |t          j        dt          ||          	           t          |t          j        t          j         fi |\  }}t	          |t          j         dt          ||          	           t          |t          j        t          j        fi |\  }}t	          |ddt          ||          	           t          |t          j         t          j         fi |\  }}t	          |ddt          ||          	           t          |dt          j        fd
di|\  }}t	          |t          j        dz  dt          ||          	           d }t          j        t          j        z  t          j        d          z  }d}t          |t          j         t          j        dd||d          \  }}}|j	        dk    sJ t	          ||dt          |d|z            	           d S )Nc                 <    ddt          j        |           dz  z   z  S r   )r   float64r   s    r   r%   z/TestQuadVec.test_quad_vec_simple_inf.<locals>.f9   s    BJqMMQ..//r   r&   r
   r(   r+   )r*   r)   r   r   r   r,   r2   )r1   g       @c                 B    t          j        | dz             d| dz  z   z  S )Nr   r   )r   sinr   s    r   r%   z/TestQuadVec.test_quad_vec_simple_inf.<locals>.f^   s!    6!a%==AQJ//r   gh㈵>i  T)r5   r*   r)   r   r4   r   g      ?)
r6   r   r   infr   pir+   erC   status)	r8   r   r%   r)   r9   r;   r<   r:   infos	            r   test_quad_vec_simple_infz$TestQuadVec.test_quad_vec_simple_inf7   sr   	0 	0 	0 (  	I  	IF[((Vd]]uV
KKKF1bf7777HCCqqs637G7GHHHH1rvg8888HCC"%FC8H8HIIIIBF7A8888HCCqqs637G7GHHHH2617777HCC"%FC8H8HIIIIBF7BF==f==HCCQS5E5EFFFF26BF7==f==HCC"%ac&#6F6FGGGG2626<<V<<HCCVS1A1ABBBBBF7RVG>>v>>HCCVS1A1ABBBB1bfJJZJ6JJHCCqqs637G7GHHHHH	0 	0 	0rvayy(!!bfWbfDu)/J.24 4 4S$ {aUVS3Y1G1GHHHHHHr   c                     d }d}t          j        g d          }t          |dd|f          \  }}t          ||dd           d S )	Nc                 <    | | |z   z  t          j        d          z  S r   r   r   s     r   r%   z)TestQuadVec.test_quad_vec_args.<locals>.fk   s    A;1--r   r   r   gUUUUUU?gUUUUUU@r   r   )argsr(   r,   )r   arrayr   r   )r8   r%   r   r:   r;   r<   s         r   test_quad_vec_argszTestQuadVec.test_quad_vec_argsj   sb    	. 	. 	.''Aq!1$///SU666666r   r!   c           	         t           }t          |t          j         t          j        ddd          \  }}t	          |t          j        dd           t          d          5 }d }t          |t          j         t          j        dd|j                  \  }}t	          |t          j        dd           d d d            d S # 1 swxY w Y   d S )	Nr+   r(      )r*   r)   workersr   r,   r!   c                     dd| dz  z   z  S r   r   r   s    r   r%   z)TestQuadVec.test_quad_vec_pool.<locals>.fz   s    AQJ''r   )r   r   r   rD   r   rE   r   map)r8   r%   r;   r<   pool_s         r   test_quad_vec_poolzTestQuadVec.test_quad_vec_pools   s   AwU4QRSSSSRU6666"XX 	;( ( (a"&"&uT&*h0 0 0FCCQT::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   !ACCC
extra_argsr   )r   rR   r   rQ   )marksc                 B   t           }t          j        g d          }t          |dd||          \  }}t	          ||dd           t          |          5 }t          |dd||j                  \  }}t	          ||dd           d d d            d S # 1 swxY w Y   d S )NrL   r   r   )rM   rR   r(   r,   )r   r   rN   r   r   r   rT   )r8   rX   rR   r%   r:   r;   r<   rU   s           r   test_quad_vec_pool_argsz#TestQuadVec.test_quad_vec_pool_args   s     ''Aq!*gFFFSU6666']] 	;d1aj$(KKKHCCQT::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   0BBBc                 t    fd}dgt          |dddd|          }|d         j        d         k    sJ d S )Nc                 .    dxx         dz  cc<   | dz  S )Nr   r      r   )r   counts    r   r%   z$TestQuadVec.test_num_eval.<locals>.f   s!    !HHHMHHHa4Kr   r   r   r+   T)r*   r4   r   r   )r   neval)r8   r   r%   r;   r_   s       @r   test_num_evalzTestQuadVec.test_num_eval   s`    	 	 	 	 	 q!QUTTT1v|uQx''''''r   c                 b   d }t          |dddd          \  }}}|j        du sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        j        d         dk    sJ |j        j        |j        j        d         d	ddfk    sJ |j        j        |j        j        d         fk    sJ d S )
Nc                 *    t          j        d          S )N)r   r   r   )r   onesr   s    r   r%   z TestQuadVec.test_info.<locals>.f   s    79%%%r   r   r   r+   T)r*   r4   zTarget precision reached.r   r   )	r   successrG   messager`   	intervalsshape	integralserrors)r8   r%   r;   r<   rH   s        r   	test_infozTestQuadVec.test_info   s    	& 	& 	& "!Q4HHHS$|t####{a|:::::zA~~~~~#A&!++++~#(<Q(?Aq'IIIII{ T^%9!%<$>>>>>>>r   c                     d }d }t          |ddd          \  }}}|j        dk    sJ t          |ddd          \  }}}|j        dk    sJ d S )Nc                     t           j        S r#   )r   nanr   s    r   f_nanz'TestQuadVec.test_nan_inf.<locals>.f_nan   s	    6Mr   c                 0    | dk     rt           j        nd| z  S )Nr'   r   )r   rD   r   s    r   f_infz'TestQuadVec.test_nan_inf.<locals>.f_inf   s    WW266!A#-r   r   r   T)r4   r   )r   rG   )r8   ro   rq   r;   r<   rH   s         r   test_nan_infzTestQuadVec.test_nan_inf   s    	 	 		. 	. 	. "%A4@@@S${a!%A4@@@S${ar   za,b)r   r   r   c                 4  	 d}|t          d |D                       z  }d	g d	fd}t          ||||dd           D ]Q}t          j        t	          |          t          |                    }t          j        ||d         k              sJ Rd S )N)r   g      ?r0   g      ?r1   c              3      K   | ]}| V  d S r#   r   ).0r   s     r   	<genexpr>z*TestQuadVec.test_points.<locals>.<genexpr>   s$      ++q++++++r      r   c                     z  dk    r!                     t                                 dz  d                             t          |                      dS )Nr   r   g        )appendsetaddfloat)r   r_   interval_setsquadrature_pointss    r   r%   z"TestQuadVec.test_points.<locals>.f   s[     ((A--$$SUU+++QJE"!!%((+++3r   r   )r2   r   r5   )tupler   r   searchsortedsortedall)
r8   r   br2   r%   pjr_   r~   r   s
          @@@r   test_pointszTestQuadVec.test_points   s     +%++F++++++	 	 	 	 	 	 	 	AqF!DDDD  	% 	%Ava99A6!qt)$$$$$$	% 	%r   N)__name__
__module____qualname__quadrature_paramsr>   rI   rO   pytestmark	fail_slowrW   parametrizeparamparallel_threads_limitr[   ra   rk   rr   r   rD   r   r   r   r   r   r      s       = = =< /I /I /Id7 7 7 [2
; 
; 
; [2[\At955[	
LFL6;#E#Ea#H#HIIIJ 	; 	;	  65 	; ( ( (? ? ?      [UVa[261+&(fWbf$57H%J K K% %K K% % %r   r   )r   numpyr   numpy.testingr   scipy.integrater   scipy._lib._array_apir   multiprocessing.dummyr   r   r   r   r   r   r   r   r   r   <module>r      s         ) ) ) ) ) ) $ $ $ $ $ $ 3 3 3 3 3 3 & & & & & & K++5557 7   & & & 8}% }% }% }% }% }% }% }% }% }%r   