
    -iit                     J   d dl Z d dlZd dlZd dl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mZ d dlZd dlmZmZmZmZ d dlmZmZ d dlmZ d dlmZ d dlZd dlZd dl m!Z! d dl"m#c m$Z% dd
Z&d Z' ee           G d d                      Z( ee           G d d                      Z) ee           G d d                      Z* ee           G d d                      Z+ ee           G d d                      Z, ee           G d d                      Z-dS )    N)sqrtcossinarctanexplogpi)assert_assert_allcloseassert_array_lessassert_almost_equalassert_equal)quaddblquadtplquadnquad)erferfc)LowLevelCallable)make_xp_test_case)sine_ctypes+i)+P>c                 ^    | \  }}t          |||d           |t          ||           d S d S )Nr   )atolrtol)r   r   )value_and_errtabled_valueerror_tolerancevalueerrs        i/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/scipy/integrate/tests/test_quadpack.pyassert_quadr"      sF    JE3E<c::::"#///// #"    c                 v    t          t          |           }t          j        |t          j        |g|R            S N)getattr	clib_testctypescast	CFUNCTYPE)namerestypeargtypesptrs       r!   get_clib_test_routiner/      s6    
)T
"
"C;sF,W@x@@@AAAr#   c                   &    e Zd Zd Zd Zd Zd ZdS )TestCtypesQuadc                 h   t           j        dk    rdg}nt           j        dk    rdg}nddg}|D ]-}	 t          j        |          | _         n$# t
          $ r Y *w xY wt          j        d           t          j        }t          j        f}dD ]%}t          | j        |          }||_
        ||_        &d S )	Nwin32zapi-ms-win-crt-math-l1-1-0.dlldarwinz
libm.dylibzlibm.soz	libm.so.6zCtypes can't import libm.so)r   r   tan)sysplatformr(   CDLLlibOSErrorpytestskipc_doubler&   r,   r-   )selffilesfiler,   r-   r+   funcs          r!   setup_methodzTestCtypesQuad.setup_method#   s    <7""56EE\X%%!NEE,E 		7 		7D!;t,,   
 K5666/O%) 	% 	%D48T**D"DL$DMM	% 	%s   A
AAc                    t          t          | j        j        dd          t          t          j        dd          d                    t          t          | j        j        dd          t          t          j        dd          d                    t          t          | j        j        dd          t          t          j        dd          d                    d S )Nr         )r"   r   r9   r   mathr   r5   r>   s    r!   test_typicalzTestCtypesQuad.test_typical=   s    Dq!,,d48Q.B.B1.EFFFDq!,,d48Q.B.B1.EFFFDq!,,d48Q.B.B1.EFFFFFr#   c                 L    t          t          t                    dd           d S Nr   rE   )r   r   r   rG   s    r!   test_ctypes_sinezTestCtypesQuad.test_ctypes_sineB   s#    k**Aq11111r#   c                    t          dt          j        t          j        t          j                  }t          dt          j        t          j        t          j        t          j                  t          j                  }t          dt          j        t          j                  }t          dt          j        t          j        t          j        t          j                            }t          dt          j        t          j        t          j                  }|||||g}||g}|g}t          |          D ]j\  }	}
t          |
          }|
|v r(t          j	        t          t          |dt                     @t          t          |dt                    d         d           kt          |          D ][\  }	}
|
|v r+t          t          |
dt                    d         d           4t          j	        t          t          |
dt                     \d S )N_sin_0_sin_1_sin_2_sin_3r          @)r/   r(   r=   c_void_pc_intPOINTER	enumerater   r;   raises
ValueErrorr   r	   r   )r>   sin_0sin_1sin_2sin_3sin_4all_sigslegacy_sigslegacy_only_sigsjrA   callbacks               r!   test_ctypes_variantsz#TestCtypesQuad.test_ctypes_variantsE   s   %h&,ovH H &h&,lFN6?4S4S&,o7 7 &h&,o7 7 &h&,lFN6?4S4SU U &h&,lFOE E 5%6en!7 !** 	? 	?GAt'--H'''j$!R@@@@Xq" 5 5a 8#>>>> !-- 	= 	=GAt{""T1b 1 1! 4c::::j$a<<<<		= 	=r#   N)__name__
__module____qualname__rB   rH   rK   rb    r#   r!   r1   r1   !   sS        % % %4G G G
2 2 2"= "= "= "= "=r#   r1   c                   &    e Zd Zd Zd Zd Zd ZdS )TestMultivariateCtypesQuadc                     t           j        }t           j        t           j        f}dD ]!}t          ||g|R  }t	          | ||           "d S )N)_multivariate_typical_multivariate_indefinite_multivariate_sin)r(   r=   rS   r/   setattr)r>   r,   r-   r+   rA   s        r!   rB   z'TestMultivariateCtypesQuad.setup_methodl   s^    /L&/2* 	& 	&D(wBBBBDD$%%%%	& 	&r#   c                 Z    t          t          | j        dt          d          d           d S )Nr      g?ۗ?)r"   r   rj   r	   rG   s    r!   rH   z'TestMultivariateCtypesQuad.test_typicalt   s4    D3QHEE*	, 	, 	, 	, 	,r#   c                 b    t          t          | j        dt          j                  d           d S )Nr   ox?)r"   r   rk   npinfrG   s    r!   test_indefinitez*TestMultivariateCtypesQuad.test_indefinitey   s4    D626BB.	0 	0 	0 	0 	0r#   c                 P      fd}t          t          |dd          d           d S )Nc                 B    | t          j        dd          d         z   S rJ   )r   rl   )yr>   s    r!   threadsafetyzBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafety   s"    tD2Aq99!<<<r#   r   rE   gtJ׵?)r"   r   )r>   rz   s   ` r!   test_threadsafetyz,TestMultivariateCtypesQuad.test_threadsafety~   s?    	= 	= 	= 	= 	=Dq!,,.@AAAAAr#   N)rc   rd   re   rB   rH   rv   r{   rf   r#   r!   rh   rh   j   sU        & & &, , ,
0 0 0
B B B B Br#   rh   c                       e 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ej                            dddg          d             Zd ZdS )TestQuadc                 V    d }t          t          |dt          d          d           d S )Nc                 \    t          || z  |t          |           z  z
            t          z  S r%   )r   r   r	   )xnzs      r!   myfuncz%TestQuad.test_typical.<locals>.myfunc   s'    qs1SVV8|$$R''r#   r   ro   rq   )r"   r   r	   r>   r   s     r!   rH   zTestQuad.test_typical   s6    	( 	( 	(DB113IJJJJJr#   c                 ^    d }t          t          |dt          j                  d           d S )Nc                 D    t          |             t          |           z  S r%   )r   r   r   s    r!   r   z(TestQuad.test_indefinite.<locals>.myfunc   s    GG8CFF?"r#   r   rs   r"   r   rt   ru   r   s     r!   rv   zTestQuad.test_indefinite   s6    	# 	# 	#DBF++-GHHHHHr#   c           	          d }t          t          |ddddg          dt          d          z
  t          d          z   t          d	          z
             d S )
Nc                     d| cxk     rdk     rn nt          |           S d| cxk    rdk    rn nt          |            S dS )Nr         @      @        )r   r   r   s    r!   r   z&TestQuad.test_singular.<locals>.myfunc   sQ    1{{{{s{{{{{1vvSA2wwsr#   r   
   r   r   )pointsrE   g      g      )r"   r   r   r   r   s     r!   test_singularzTestQuad.test_singular   si    	 	 	 	DBSz:::CL3t99,s4yy8	: 	: 	: 	: 	:r#   c           
          d }d}t          t          |dddd|          dt          |          z  |t          |          z  z
  |t	          d          z  z   d	|d
z  z   z             d S )Nc                 ,    t          || dz
  z            S NrE   r   r   as     r!   r   z2TestQuad.test_sine_weighted_finite.<locals>.myfunc   s    q!A#w<<r#   glSS%@r   rE      r   argsweightwvarii  rp   )r"   r   r   r   r   )r>   r   omes      r!   test_sine_weighted_finitez"TestQuad.test_sine_weighted_finite   s    	  	  	  DABu3GGGC[SXX-c#c((l:US!V^L	N 	N 	N 	N 	Nr#   c           
          d }d}d}t          t          |dt          j        |d|          ||dz  |dz  z   z             d S )Nc                 (    t          |  |z            S r%   r   r   s     r!   r   z4TestQuad.test_sine_weighted_infinite.<locals>.myfunc   s    r!t99r#         @      @r   r   r   rp   r   r>   r   r   r   s       r!   test_sine_weighted_infinitez$TestQuad.test_sine_weighted_infinite   sf    	 	 	 DBF5sKKKAQ'	) 	) 	) 	) 	)r#   c           
          d }d}d}t          t          |t          j         d|d|          ||dz  |dz  z   z             d S )Nc                 &    t          | |z            S r%   r   r   s     r!   r   z6TestQuad.test_cosine_weighted_infinite.<locals>.myfunc   s    qs88Or#   r   gffffff@r   r   r   rp   r   r   s       r!   test_cosine_weighted_infinitez&TestQuad.test_cosine_weighted_infinite   sh    	 	 	 D"&!!ELLLq!tc1f}%	' 	' 	' 	' 	'r#   c           
          d }d}t          t          |dd|dd          t          t          dd| z  z   dz  dz
            z             d S )	Nc                      dd| z   d| z  z   z  S NrE   rp   rf   r   s     r!   r   z2TestQuad.test_algebraic_log_weight.<locals>.myfunc   s    ac!qb'k?"r#         ?rE   alg)      r   r   rp   )r"   r   r	   r   )r>   r   r   s      r!   test_algebraic_log_weightz"TestQuad.test_algebraic_log_weight   su    	# 	# 	# DQQu*, , ,tQqA2wYNQ.///	1 	1 	1 	1 	1r#   c           
      ,   d }d}dt          d          z  dt          d| z  dz   d| z  dz   z            z  z
  t          d	|d
z   z            z
  t          d	|z            z
  d| z  dz   z  }t          t          |ddddd	          |d           d S )Nc                 .    d| z  | dz
  dz  d| z  z   z  S )NrQ   rE   rp   r   rf   r   s     r!   r   z-TestQuad.test_cauchypv_weight.<locals>.myfunc   s&    !9qsQhsaRy011r#   g?g\`@?r   g]`@?r      rE   rQ   rp   r   rD   cauchyr   g#fT>r   )r   r   r"   r   )r>   r   r   tabledValues       r!   test_cauchypv_weightzTestQuad.test_cauchypv_weight   s    	2 	2 	2 #CHH,#Cr2#)A+(F$G$GGHsQqSz**+ sAv' qb	A	'
 	DACsKKK	9 	9 	9 	9 	9 	9r#   c                     d }t          |dt          j        d          \  }}t          |t          j        dd          \  }}t          || t	          ||                     d S )Nc                 8    |t          j        | | z            z  S r%   rt   r   )r   pqs      r!   fz&TestQuad.test_b_less_than_a.<locals>.f   s    rvqbd||##r#   r   rp      r   r   r   rt   ru   r   maxr>   r   val_1err_1val_2err_2s         r!   test_b_less_than_azTestQuad.test_b_less_than_a   sr    	$ 	$ 	$ Aq"&v666uArvqv666uvCu,=,=>>>>>>r#   c                     d }t          |t          j         t          j        d          \  }}t          |t          j        t          j         d          \  }}t          || t	          ||                     d S )Nc                 n    t          j        | dz   dz  |z            t          j        d|z            z  S )Nrp   rQ   )rt   r   r   )r   ss     r!   r   z(TestQuad.test_b_less_than_a_2.<locals>.f   s1    61a4%!)a-((272a4==88r#   )rp   r   r   r   r   s         r!   test_b_less_than_a_2zTestQuad.test_b_less_than_a_2   sz    	9 	9 	9 AwT:::uArvwT:::uvCu,=,=>>>>>>r#   c                     d }t          |dddd          \  }}t          |dddd          \  }}t          || t          ||                     d S )Nc                     dS N      ?rf   r   s    r!   r   z(TestQuad.test_b_less_than_a_3.<locals>.f       3r#   r   rE   r   r   r   )r   r   r   )r   r   r   r   s         r!   test_b_less_than_a_3zTestQuad.test_b_less_than_a_3   sr    	 	 	 Aq!E???uAq!E???uvCu,=,=>>>>>>r#   c                     d }t          |ddddd          }t          |ddddd          }t          |d         |d                   }t          |d         |d          |           d S )	Nc                     dS r   rf   r   s    r!   r   z2TestQuad.test_b_less_than_a_full_output.<locals>.f   r   r#   r   rE   r   r   T)r   r   full_outputr   )r   r   r   )r>   r   res_1res_2r    s        r!   test_b_less_than_a_full_outputz'TestQuad.test_b_less_than_a_full_output   s    	 	 	 Q1UTJJJQ1UTJJJ%(E!H%%a58)#666666r#   complex_funcTFc           
         d }dx}}d}ddt          j        |t           j        t           j                  t          j        |t           j        t           j                  t          j        |t           j                  t          j        |t           j                  t          j        |t           j                  d}t          |||d|          \  }}}	||fd	k    sJ |rt          |	||d
           d S t          |	|           d S )Nc                     d| z  S r   rf   r   s    r!   r   z#TestQuad.test_b_equals_a.<locals>.f       Q3Jr#   r   2   r   )dtype)nevallastalistblistrlistelistiordrE   )r   r   )r   r   )realimag)rt   fullnanfloat64zerosint32r   r   )
r>   r   r   upperlowerlimitexpected_infodictzeror    infodicts
             r!   test_b_equals_azTestQuad.test_b_equals_a   s3   	 	 	 &'&(geRV2:&N&N&N&(geRV2:&N&N&N&(huBJ&G&G&G&(huBJ&G&G&G&(huBH&E&E&EG G #1eU0<> > >c8c{h&&&& 	6,=,=$? $? @ @ @ @ @ #455555r#   c                    d }t          j        t          |dt           j        dz  d          d         d          sJ dt           j        dddd	}t          |fd
di|}t          d fd
di|}t          d fd
di|}t           j                            |d         |d         d|d         z  z              t           j                            |d         |d         d|d         z  z              t          |d         d                   t          |dd                    cxk    rdk    sn J |d         d         d         |d         k    sJ |d         d         d         |d         k    sJ |d         d         d         d         |d         d         k    sJ t          |d         d                   t          |dd                    cxk    rdk    sn J |d         d         d         d         |d         d         k    sJ d S )Nc                 0    t          j        d| z            S N              ?r   r   s    r!   tfuncz$TestQuad.test_complex.<locals>.tfunc  s    6"Q$<<r#   r   rp   T)r   y      ?      ?r   rE   )r   br   r   r   r   c                 T    t          j        t          j        d| z                      S r   )rt   r   r   r   s    r!   <lambda>z'TestQuad.test_complex.<locals>.<lambda>      rwrvbd||44 r#   Fc                 T    t          j        t          j        d| z                      S r   )rt   r   r   r   s    r!   r   z'TestQuad.test_complex.<locals>.<lambda>  r   r#   r   r   r      lstr   )rt   allcloser   r	   ru   testingr   len)r>   r   kwargsres_cres_rres_is         r!   test_complexzTestQuad.test_complex  sg   	  	  	  {257>>>qA  	 	 	 rvd!1. .U8888844  "'  44  "'  	
a%(Ra[*@AAA

a%(Ra[*@AAA58F#$$E!""I;;;;!;;;;;;Qx"eAh....Qx"eAh....Qx"5)U1Xe_<<<<58F#$$E!""I;;;;!;;;;;;Qx"5)U1Xe_<<<<<<r#   N)rc   rd   re   rH   rv   r   r   r   r   r   r   r   r   r   r   r;   markparametrizer   r  rf   r#   r!   r}   r}      s       K K KI I I: : :N N N) ) )' ' '1 1 19 9 9? ? ?? ? ?? ? ?7 7 7 [^dE];;6 6 <;6,= = = = =r#   r}   c                      e Zd Zd Zd Zd Zej                            de	j
         de	j
         de	j        dz  fe	j
         de	j
         de	j        dz   ed          z  fe	j
         de	j
         de	j        dz   ed          z  fe	j
         de	j
         de	j        dz   ed          d	z  z  fe	j
         de	j
         de	j        dz   ed          dz   z  fe	j
         de	j
         de	j        dz   ed          dz   z  fe	j
         de	j
         de	j        dz   ed          dz   d	z  z  fe	j
         de	j
         de	j        dz   ed          dz    ed          z  z  fe	j
         de	j
         de	j        dz   ed          dz    ed          z  z  fde	j
        de	j
        e	j        dz  fde	j
        de	j
        e	j        dz   ed          z  fde	j
        de	j
        e	j        dz   ed          z  fde	j
        de	j
        e	j        dz   ed          d	z  z  fde	j
        de	j
        e	j        dz   ed          dz   z  fde	j
        de	j
        e	j        dz   ed          dz   z  fde	j
        de	j
        e	j        dz   ed          dz   d	z  z  fde	j
        de	j
        e	j        dz   ed          dz    ed          z  z  fde	j
        de	j
        e	j        dz   ed          dz    ed          z  z  fe	j
         e	j
        e	j
         e	j
        e	j        fddde	j
        d
fde	j
        ddd
fg          d             ZdS )TestDblquadc           	      t    d }d\  }}t          t          |||d d           d|dz  |dz  z
  z             d S )Nc                     || z   S r%   rf   ry   r   s     r!   simpfuncz2TestDblquad.test_double_integral.<locals>.simpfunc3  r   r#   r   rQ   c                     | S r%   rf   r   s    r!   r   z2TestDblquad.test_double_integral.<locals>.<lambda>7  s    a r#   c                     d| z  S Nrp   rf   r   s    r!   r   z2TestDblquad.test_double_integral.<locals>.<lambda>7  s
    1Q3 r#   g?r   r"   r   r>   r  r   r   s       r!   test_double_integralz TestDblquad.test_double_integral1  sb    	 	 	 1GHaKKGGQVAsF]+	- 	- 	- 	- 	-r#   c           
      b    d }d }d }d}t          t          |dd|||          d           d S )	Nc                     | |z   |z   |z   S r%   rf   )x0x1t0t1s       r!   rA   z/TestDblquad.test_double_integral2.<locals>.func;  s    7R<"$$r#   c                     | S r%   rf   r   s    r!   gz,TestDblquad.test_double_integral2.<locals>.g=  s    Hr#   c                     d| z  S r  rf   r   s    r!   hz,TestDblquad.test_double_integral2.<locals>.h?  s    q5Lr#   )rE   rp   rE   rp   r   g$@r  )r>   rA   r  r   r   s        r!   test_double_integral2z!TestDblquad.test_double_integral2:  s_    	% 	% 	%	 	 		 	 	GD!Q14888FFFFFr#   c           	      N    d }t          t          |dddd          d           d S )Nc                     | |z   dz   dz   S r   rf   r  r  s     r!   rA   z/TestDblquad.test_double_integral3.<locals>.funcE  s    7Q;?"r#   rE   rp   g      @r  )r>   rA   s     r!   test_double_integral3z!TestDblquad.test_double_integral3D  s7    	# 	# 	#GD!Q1--b11111r#   z,x_lower, x_upper, y_lower, y_upper, expectedr   r   r   rE   rp   r   c           	      R    d }t          t          |||||          |d           d S )Nc                 >    t          j        | dz   |dz  z
            S r  r   r   ry   s     r!   r   z4TestDblquad.test_double_integral_improper.<locals>.f  s!    616'AF*+++r#   g+i)+`>r   r  )r>   x_lowerx_uppery_lowery_upperexpectedr   s          r!   test_double_integral_improperz)TestDblquad.test_double_integral_improperI  sN    |	, 	, 	, 	Aw':: 	
 	
 	
 	
 	
 	
r#   N)rc   rd   re   r  r!  r%  r;   r  r	  rt   ru   r	   r   r   r.  rf   r#   r!   r  r  /  s       - - -G G G2 2 2
 [6 fWa"&!RUQY/ fWb26'1beai$$q''&9:fWa"&"beai$$q''&9: fWb26'2ruqyDDGGqL'AB fWa"&!RUQY##a&&1*%=>fWa"&!RUQY##a&&1*%=> fWa"&!RUQY33q66A:!2C%DE fWb26'1beaiCCFFQJ$$q''3I&JK fWa"&"beaiCCFFQJ$$q''3I&JK 262519- 262519ttAww#67262519ttAww#67 262519Q1#=> BFBEAIQ!$<=BFBEAIQ!$<= RVRUQY33q66A:!2C%DE BFBEAI##a&&1*Q1G$HI BFBEAI##a&&1*Q1G$HI fWbfrvgrvru5 1bfb!1b!k6	
9 9t
 
u9 9t
 
 
r#   r  c                   t   e Zd Zd Zej        j        ej                            dg ej	         dej	         dej	         dej
        dz  dz  fej	         dej	         dej	         dej
        dz  dz   ed          z  fej	         dej	         dej	         dej
        dz  dz   ed          z  fej	         dej	         dej	         dej
        dz  dz   ed          z  fej	         dej	         dej	         dej
        dz  dz   ed          dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          d	z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz   ed          z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz    ed          dz  z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz    ed          dz  z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz    ed          dz  z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz   ed          z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz   ed          z  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   dz  z  fej	         dej	         dej	         dej
        dz  dz   ed          dz   d	z  z  fdej	        dej	        dej	        ej
        dz  dz  fdej	        dej	        dej	        ej
        dz  dz   ed          z  fdej	        dej	        dej	        ej
        dz  dz   ed          z  fdej	        dej	        dej	        ej
        dz  dz   ed          z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          d	z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   d	z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz   ed          z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz    ed          dz  z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz    ed          dz  z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz    ed          dz  z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz   ed          z  z  fdej	        dej	        dej	        ej
        dz  dz   ed          dz   dz   ed          z  z  fej	         ej	        ej	         ej	        ej	         ej	        ej
        dz  fdddej	        dej	        dfdej	        dddej	        dfdej	        dej	        dddf          d
                         ZdS )TestTplquadc                 ~    d }d\  }}t          t          |||d d d d d          d|d	z  |d	z  z
  z             d S )
Nc                     ||z   | z   |z  S r%   rf   )r   ry   r   ts       r!   r  z2TestTplquad.test_triple_integral.<locals>.simpfunc  s    aCE19r#   r  c                     | S r%   rf   r   s    r!   r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s    a r#   c                     d| z  S r  rf   r   s    r!   r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    1Q3 r#   c                     | |z
  S r%   rf   r(  s     r!   r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    Q r#   c                     | |z   S r%   rf   r(  s     r!   r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    QU r#   )rQ   gUUUUUU@r   r"   r   r  s       r!   test_triple_integralz TestTplquad.test_triple_integral  sx    	 	 	 1GHa'K..0B0B!# # 3C0		2 	2 	2 	2 	2r#   z>x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expectedr   r      r   rE   rp   r   c                 V    d }t          t          |||||||          |d           d S )Nc                 J    t          j        | dz   |dz  z
  |dz  z
            S r  r   )r   ry   r   s      r!   r   z4TestTplquad.test_triple_integral_improper.<locals>.f?  s*    616'AF*Q!V3444r#   g+i)+p>r   r8  )	r>   r)  r*  r+  r,  z_lowerz_upperr-  r   s	            r!   test_triple_integral_improperz)TestTplquad.test_triple_integral_improper  sR    @	5 	5 	5 	Aw'7GLL 	
 	
 	
 	
 	
 	
r#   N)rc   rd   re   r9  r;   r  xslowr	  rt   ru   r	   r   r   r?  rf   r#   r!   r0  r0    s       
2 
2 
2 [[HP	
 fWa"&!bfWa"%E2Ba1GHP	
 fWb26'1rvgqe!#dd1gg-/P	
 fWa"&"rvgqe!#dd1gg-/P	
 fWa"&!bfWbe!#dd1gg-/P	
 fWb26'2we!#ttAww!|46P	
  fWb26'1rvgre!#ttAww!|46!P	
$ fWa"&"rvgre!#ttAww!|46%P	
, fWb26'2we!#ttAww!|46-P	
4 fWb26'1rvgqe!#Q!(9TT!WW'DEG5P	
< fWb26'2we!#A
ttAww!|'DEG=P	
D fWb26'1rvgre!#A
ttAww!|'DEGEP	
L fWa"&"rvgre!#A
ttAww!|'DEGMP	
T fWa"&!bfWbe!#Q!(9TT!WW'DEGUP	
\ fWa"&"rvgqe!#Q!(9TT!WW'DEG]P	
d fWa"&!bfWae!#ss1vvz24eP	
h fWa"&!bfWae!#ss1vvz24iP	
l fWa"&!bfWae!#ss1vvz24mP	
t fWa"&!bfWae!#A
q'89;uP	
x fWa"&!bfWae!#A
q'89;yP	
| fWa"&!bfWae!#A
q'89;}P	
D fWa"&!bfWae!#A
q'89;EP	
L 261bfru/?1.DEMP	
R 261bfe!#dd1gg-/SP	
V 261bfe!#dd1gg-/WP	
Z 261bfe!#dd1gg-/[P	
b 261bfe!#ttAww!|46cP	
f 261bfe!#ttAww!|46gP	
j 261bfe!#ttAww!|46kP	
r 261bfe!#ttAww!|46sP	
z BFArve!#ss1vvz24{P	
~ BFArve!#ss1vvz24P	
B 262rve!#ss1vvz24CP	
J RVQe!#A
q'89;KP	
N BFBe!#A
q'89;OP	
R BFBe!#A
q'89;SP	
Z RVRe!#A
q'89;[P	
b BFBe!#Q!(9TT!WW'DEGcP	
j 262rve!#A
ttAww!|'DEGkP	
r BFArve!#A
ttAww!|'DEGsP	
z BFArve!#A
ttAww!|'DEG{P	
B RVQe!#Q!(9TT!WW'DEGCP	
J BFBe!#Q!(9TT!WW'DEGKP	
R fWbfrvgrvwUuSP	
Z 1bfa+[P	
\ 1a+]P	
^ 261a+_P	
S Sh
 
iS S j
 
 
r#   r0  c                       e Zd Zej                            d          d             Zej                            d          d             Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd ZdS )	TestNQuadrD   c                     d }d }t          |ddgddgddgddgg|i i i gd	
          }t          |d d         d           t          |d         d         dk    o|d         d         dk                d S )Nc                     | dz  ||z  z   |dz  z
  t          j        |           z   | d|z  z
  dz
  d|z  z
  dk    rdndz   }|S )Nrp   r   皙?      ?      ?r   rE   rt   r   )r  r  x2x3vals        r!   func1z*TestNQuad.test_fixed_limits.<locals>.func1M  s[    q52b5=2q5(26"::5s2v++d2g599AACCJr#   c                  <    dd| d         z  dz   d| d         z  z   giS )Nr   rE  rp   rF  rG  r   rf   r   s    r!   
opts_basicz/TestNQuad.test_fixed_limits.<locals>.opts_basicR  s*    s47{S04Q<?@AAr#   r   rE   r   gp=
ף?g?g333333ÿT)optsr   g5m?r   g     jA)r   r"   r
   )r>   rL  rN  ress       r!   test_fixed_limitszTestNQuad.test_fixed_limitsK  s    	 	 	
	B 	B 	B EQFRGc2Yq	B$b"b1tE E ECH0111B 1$?R)9C)?@@@@@r#   c           	          dd }fd}fd}fd}fd}d }d }d	 }d
 }	t          |||||gd||||	g          }
t          |
d           d S )Ng?c                 t    | |z  |dz  z  t          j        |          z   dz   | ||z  z   |z
  dk    rdndz   }|S )Nrp   rE   r   rH  )r  r  rI  rJ  r  r  rK  s          r!   func2z-TestNQuad.test_variable_limits.<locals>.func2^  sL    b5Q;+a/beb1,,AA!5CJr#   c                     | dz  |z   t          j        |          |z  |z  z   dz   z  dz
  | dz  |z   t          j        |          |z  |z  z   dz   z  dz   gS Nrp   rE   )rt   r   )r  rI  rJ  r  r  scales        r!   lim0z,TestNQuad.test_variable_limits.<locals>.lim0c  so    RURZ"&**R-*::Q>?!CRURZ"&**R-*::Q>?!CE Er#   c                 H    || z  ||z  z   z  dz
  || z  ||z  z   z  dz   gS r   rf   )rI  rJ  r  r  rW  s       r!   lim1z,TestNQuad.test_variable_limits.<locals>.lim1g  s?    RURU]+a/RURU]+a/1 1r#   c                 T    | |dz  |dz  z  z   z  dz
  | |dz  |dz  z  z   z  dz   gS Nrp   r   rE   rf   )rJ  r  r  rW  s      r!   lim2z,TestNQuad.test_variable_limits.<locals>.lim2k  sI    R"a%A+-.2R"a%A+-.24 4r#   c                 0    | |z   z  dz
  | |z   z  dz   gS r   rf   )r  r  rW  s     r!   lim3z,TestNQuad.test_variable_limits.<locals>.lim3o  s*    R"W%)5BG+<q+@AAr#   c                     d||| z  z
  giS )Nr   rf   )r  rI  rJ  r  r  s        r!   opts0z-TestNQuad.test_variable_limits.<locals>.opts0r  s    rBrEzl++r#   c                     i S r%   rf   )rI  rJ  r  r  s       r!   opts1z-TestNQuad.test_variable_limits.<locals>.opts1u      Ir#   c                     i S r%   rf   )rJ  r  r  s      r!   opts2z-TestNQuad.test_variable_limits.<locals>.opts2x  rd  r#   c                     i S r%   rf   )r  r  s     r!   opts3z-TestNQuad.test_variable_limits.<locals>.opts3{  rd  r#   r   )r   rO  g9@)r   r"   )r>   rT  rX  rZ  r]  r_  ra  rc  rf  rh  rP  rW  s              @r!   test_variable_limitszTestNQuad.test_variable_limitsZ  s	   	 	 	
	E 	E 	E 	E 	E	1 	1 	1 	1 	1	4 	4 	4 	4 	4	B 	B 	B 	B 	B	, 	, 	,	 	 		 	 		 	 	 ED$d3&u57 7 7C+,,,,,r#   c                 \    d }t          t          |ddgddggi i g          d           d S )Nc                     dS r   rf   r  s     r!   r   z9TestNQuad.test_square_separate_ranges_and_opts.<locals>.f  r   r#   r   rE   rO  r   r"   r   )r>   r   s     r!   $test_square_separate_ranges_and_optsz.TestNQuad.test_square_separate_ranges_and_opts  sI    	 	 	 	E!r1gAw/r2h???EEEEEr#   c                 `    d }ddg}i }t          t          |||g||g          d           d S )Nc                     dS r   rf   r  s     r!   r   z8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.f  r   r#   r   rE   rl  r   rm  )r>   r   ropts       r!   #test_square_aliased_ranges_and_optsz-TestNQuad.test_square_aliased_ranges_and_opts  sN    	 	 	 GE!aV3*555s;;;;;r#   c                 t    d }d }d }d }d }||g}||g}t          t          |||          d           d S )Nc                     dS r   rf   r  s     r!   r   z<TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.f  r   r#   c                      dS N)r   rE   rf   r   s    r!   	fn_range0zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0      7r#   c                      dS rw  rf   r   s    r!   	fn_range1zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1  ry  r#   c                      i S r%   rf   r   s    r!   fn_opt0zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0  rd  r#   c                      i S r%   rf   r   s    r!   fn_opt1zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1  rd  r#   rl  r   rm  )r>   r   rx  r{  r}  r  rangesrO  s           r!   'test_square_separate_fn_ranges_and_optsz1TestNQuad.test_square_separate_fn_ranges_and_opts  s    	 	 		 	 		 	 		 	 		 	 	 Y'!E!V$///55555r#   c                 h    d }d }d }||g}||g}t          t          |||          d           d S )Nc                     dS r   rf   r  s     r!   r   z;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.f  r   r#   c                      dS rw  rf   r   s    r!   fn_rangezBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_range  ry  r#   c                      i S r%   rf   r   s    r!   fn_optz@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_opt  rd  r#   rl  r   rm  )r>   r   r  r  r  rO  s         r!   &test_square_aliased_fn_ranges_and_optsz0TestNQuad.test_square_aliased_fn_ranges_and_opts  sj    	 	 		 	 		 	 	 H%E!V$///55555r#   c                     d }t          |dd          \  }}t          |ddgg          \  }}t          ||           t          ||           d S )Nc                     | dz  dz   S rV  rf   r   s    r!   rA   z*TestNQuad.test_matching_quad.<locals>.func  s    a4!8Or#   r   r   )r  )r   r   r   )r>   rA   rP  reserrres2reserr2s         r!   test_matching_quadzTestNQuad.test_matching_quad  sj    	 	 	 4A&&VdQF8444gC&&&FG,,,,,r#   c                     d }t          |ddd d           \  }}t          |ddgdg          \  }}t          ||           t          ||           d S )	Nc                 *    | dz  |dz  z   | |z  z
  dz   S r\  rf   r$  s     r!   func2dz/TestNQuad.test_matching_dblquad.<locals>.func2d  s"    q52q5=27*Q..r#   rp   c                     dS )Nrf   r   s    r!   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    r r#   c                     dS )Nr   rf   r   s    r!   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    Q r#   r  r   )r  rp   )r   r   r   )r>   r  rP  r  r  r  s         r!   test_matching_dblquadzTestNQuad.test_matching_dblquad  sr    	/ 	/ 	/ fb!\\;;GGVfAw&899gC&&&FG,,,,,r#   c           
          d }t          |ddd d d d d	          }t          |t          j         t          j        gd
dgdgd	          }t	          ||           d S )Nc                 `    | dz  ||dz  z  z   | |z  z
  dz   |t          j        |          z  z   S r\  rH  )r  r  rI  c0c1s        r!   func3dz/TestNQuad.test_matching_tplquad.<locals>.func3d  s8    q52A:%R/!3b26"::oEEr#   r   rp   c                     dS )Nr  rf   r   s    r!   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    r r#   c                     dS r  rf   r   s    r!   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    Q r#   c                     t           j         S r%   rt   r	   r(  s     r!   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s
    BE6 r#   c                     t           j        S r%   r  r(  s     r!   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s     r#   r   r   r  )r   rp   )r   r   rt   r	   r   )r>   r  rP  r  s       r!   test_matching_tplquadzTestNQuad.test_matching_tplquad  s    	F 	F 	F fb!\\;;))+=+=!# # # VvruoAw@vNNNC&&&&&r#   c                 ^    	 t          d ddgddggddi           d S # t          $ r J w xY w)Nc                     | |z  S r%   rf   r(  s     r!   r   z-TestNQuad.test_dict_as_opts.<locals>.<lambda>  s
    q1u r#   r   rE   epsrelg-C6?rl  )r   	TypeErrorrG   s    r!   test_dict_as_optszTestNQuad.test_dict_as_opts  sX    	$$1v1v&6h=OPPPPPP 	 	 	L	s    ,N)rc   rd   re   r;   r  	fail_slowrQ  ri  rn  rs  r  r  r  r  r  r  rf   r#   r!   rB  rB  I  s        [1A A A [1%- %- %-NF F F< < <6 6 6(6 6 6- - -- - -' ' '    r#   rB  )r   ).r6   rF   numpyrt   r   r   r   r   r   r   r	   numpy.testingr
   r   r   r   r   r;   scipy.integrater   r   r   r   scipy.specialr   r   scipy._lib._ccallbackr   scipy._lib._array_apir   r(   ctypes.utilscipy._lib._ccallback_cr   "scipy.integrate._test_multivariate	integrate_test_multivariater'   r"   r/   r1   rh   r}   r  r0  rB  rf   r#   r!   <module>r     s>   



      6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6O O O O O O O O O O O O O O  9 9 9 9 9 9 9 9 9 9 9 9 # # # # # # # # 2 2 2 2 2 2 3 3 3 3 3 3      / / / / / / 6 6 6 6 6 6 6 6 60 0 0 0B B B
 4E= E= E= E= E= E= E= E=P 4B B B B B B B B4 4f= f= f= f= f= f= f= f=R 7^
 ^
 ^
 ^
 ^
 ^
 ^
 ^
B 7t
 t
 t
 t
 t
 t
 t
 t
n 5H H H H H H H H H Hr#   