
    bit                        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-y)    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_ctypesc                 J    | \  }}t        |||d       |t        ||       y y )Nr   )atolrtol)r   r   )value_and_errtabled_valueerror_tolerancevalueerrs        ^/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/integrate/tests/test_quadpack.pyassert_quadr!      s.    JE3E<c:"#/ #    c                 v    t        t        |       }t        j                  |t        j                  |g|       S N)getattr	clib_testctypescast	CFUNCTYPE)namerestypeargtypesptrs       r    get_clib_test_routiner.      s/    
)T
"C;;sF,,W@x@AAr"   c                   $    e Zd Zd Zd Zd Zd Zy)TestCtypesQuadc                    t         j                  dk(  rdg}nt         j                  dk(  rdg}nddg}|D ]  }	 t        j                  |      | _         n t        j                  d       t        j                  }t        j                  f}dD ]&  }t        | j                  |      }||_
        ||_        ( y # t
        $ r Y w xY w)	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6E\\X%!NE,E 		7D!;;t,		7 KK56//OO%) 	%D488T*D"DL$DM	%  s   B88	CC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          y )Nr         )r!   r   r8   r   mathr   r4   r=   s    r    test_typicalzTestCtypesQuad.test_typical=   s    Dq!,d488Q.B1.EFDq!,d488Q.B1.EFDq!,d488Q.B1.EFr"   c                 8    t        t        t              dd       y Nr   rD   )r   r   r   rF   s    r    test_ctypes_sinezTestCtypesQuad.test_ctypes_sineB   s    k*Aq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 ]X  \  }	}
t        |
      }|
|v r&t        j                  t        t        |dt               ;t        t        |dt              d   d       Z t        |      D ]M  \  }	}
|
|v rt        t        |
dt              d   d       )t        j                  t        t        |
dt               O y )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jr@   callbacks               r    test_ctypes_variantsz#TestCtypesQuad.test_ctypes_variantsE   s   %h&,oovH &h&,llFNN6??4S&,oo7 &h&,oo7 &h&,llFNN6??4SU &h&,llFOOE 5%6en!7 !* 	?GAt'-H''j$!R@Xq" 5a 8#>	? !- 	=GAt{"T1b 1! 4c:j$a<		=r"   N)__name__
__module____qualname__rA   rG   rJ   ra    r"   r    r0   r0   !   s    %4G
2"=r"   r0   c                   $    e Zd Zd Zd Zd Zd Zy)TestMultivariateCtypesQuadc                     t         j                  }t         j                  t         j                  f}dD ]  }t        ||g| }t	        | ||        y )N)_multivariate_typical_multivariate_indefinite_multivariate_sin)r'   r<   rR   r.   setattr)r=   r+   r,   r*   r@   s        r    rA   z'TestMultivariateCtypesQuad.setup_methodl   sK    //LL&//2* 	&D(wBBDD$%	&r"   c                 P    t        t        | j                  dt        d      d       y )Nr      g?ۗ?)r!   r   ri   r	   rF   s    r    rG   z'TestMultivariateCtypesQuad.test_typicalt   s     D33QHE*	,r"   c                 b    t        t        | j                  dt        j                        d       y )Nr   ox?)r!   r   rj   npinfrF   s    r    test_indefinitez*TestMultivariateCtypesQuad.test_indefinitey   s"    D66266B.	0r"   c                 >      fd}t        t        |dd      d       y )Nc                 >    | t        j                  dd      d   z   S rI   )r   rk   )yr=   s    r    threadsafetyzBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafety   s"    tD22Aq9!<<<r"   r   rD   gtJ׵?)r!   r   )r=   ry   s   ` r    test_threadsafetyz,TestMultivariateCtypesQuad.test_threadsafety~   s    	=Dq!,.@Ar"   N)rb   rc   rd   rA   rG   ru   rz   re   r"   r    rg   rg   j   s    &,
0
Br"   rg   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                   j#                  dddg      d        Zd Zy)TestQuadc                 B    d }t        t        |dt        d      d       y )Nc                 J    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V8|$R''r"   r   rn   rp   )r!   r   r	   r=   r   s     r    rG   zTestQuad.test_typical   s    	(DB13IJr"   c                 T    d }t        t        |dt        j                        d       y )Nc                 4    t        |         t        |       z  S r$   )r   r   r   s    r    r   z(TestQuad.test_indefinite.<locals>.myfunc   s    G8CF?"r"   r   rr   r!   r   rs   rt   r   s     r    ru   zTestQuad.test_indefinite   s    	#DBFF+-GHr"   c           	          d }t        t        |ddddg      dt        d      z
  t        d      z   t        d	      z
         y )
Nc                 f    d| cxk  rdk  rt        |       S  d| cxk  rdk  rn yt        |        S y)Nr         @      @        )r   r   r   s    r    r   z&TestQuad.test_singular.<locals>.myfunc   s;    1{s{1v S  A2wr"   r   
   r   r   )pointsrD   g      g      )r!   r   r   r   r   s     r    test_singularzTestQuad.test_singular   s?    	 	DBSz:CL3t9,s4y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         y )Nc                 $    t        || dz
  z        S NrD   r   r   as     r    r   z2TestQuad.test_sine_weighted_finite.<locals>.myfunc   s    q!A#w<r"   glSS%@r   rD      r   argsweightwvarii  ro   )r!   r   r   r   r   )r=   r   omes      r    test_sine_weighted_finitez"TestQuad.test_sine_weighted_finite   sZ    	  DABu3GC[SX-c#c(l:US!V^L	Nr"   c           
      |    d }d}d}t        t        |dt        j                  |d|      ||dz  |dz  z   z         y )Nc                      t        |  |z        S r$   r   r   s     r    r   z4TestQuad.test_sine_weighted_infinite.<locals>.myfunc   s    r!t9r"         @      @r   r   r   ro   r   r=   r   r   r   s       r    test_sine_weighted_infinitez$TestQuad.test_sine_weighted_infinite   sD    	 DBFF5sKAQ'	)r"   c           
      ~    d }d}d}t        t        |t        j                   d|d|      ||dz  |dz  z   z         y )Nc                     t        | |z        S r$   r   r   s     r    r   z6TestQuad.test_cosine_weighted_infinite.<locals>.myfunc   s    qs8Or"   r   gffffff@r   r   r   ro   r   r   s       r    test_cosine_weighted_infinitez&TestQuad.test_cosine_weighted_infinite   sF    	 D"&&!!ELq!tc1f}%	'r"   c           
      ~    d }d}t        t        |dd|dd      t        t        dd| z  z   dz  dz
        z         y )	Nc                      dd| z   d| z  z   z  S NrD   ro   re   r   s     r    r   z2TestQuad.test_algebraic_log_weight.<locals>.myfunc   s    ac!qb'k?"r"         ?rD   alg)      r   r   ro   )r!   r   r	   r   )r=   r   r   s      r    test_algebraic_log_weightz"TestQuad.test_algebraic_log_weight   sJ    	# DQQu*,tQqA2wYNQ.//	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       y )Nc                 .    d| z  | dz
  dz  d| z  z   z  S )NrP   rD   ro   r   re   r   s     r    r   z-TestQuad.test_cauchypv_weight.<locals>.myfunc   s&    !9qsQhsaRy011r"   g?g\`@?r   g]`@?r      rD   rP   ro   r   rC   cauchyr   g#fT>r   )r   r   r!   r   )r=   r   r   tabledValues       r    test_cauchypv_weightzTestQuad.test_cauchypv_weight   s    	2 #CH,#Cr2#)A+(F$GGHsQqSz*+ sAv' qb	A	'
 	DACsK	9r"   c                     d }t        |dt        j                  d      \  }}t        |t        j                  dd      \  }}t        || t	        ||             y )Nc                 :    |t        j                  | | z        z  S r$   rs   r   )r   pqs      r    fz&TestQuad.test_b_less_than_a.<locals>.f   s    rvvqbd|##r"   r   ro      r   r   r   rs   rt   r   maxr=   r   val_1err_1val_2err_2s         r    test_b_less_than_azTestQuad.test_b_less_than_a   sN    	$ Aq"&&v6uArvvqv6uvCu,=>r"   c                     d }t        |t        j                   t        j                  d      \  }}t        |t        j                  t        j                   d      \  }}t        || t	        ||             y )Nc                 r    t        j                  | dz   dz  |z        t        j                  d|z        z  S )Nro   rP   )rs   r   r   )r   ss     r    r   z(TestQuad.test_b_less_than_a_2.<locals>.f   s0    661a4%!)a-(2772a4=88r"   )ro   r   r   r   r   s         r    test_b_less_than_a_2zTestQuad.test_b_less_than_a_2   sZ    	9 AwT:uArvvwT:uvCu,=>r"   c                     d }t        |dddd      \  }}t        |dddd      \  }}t        || t        ||             y )Nc                      yN      ?re   r   s    r    r   z(TestQuad.test_b_less_than_a_3.<locals>.f       r"   r   rD   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   sJ    	 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    |       y )	Nc                      yr   re   r   s    r    r   z2TestQuad.test_b_less_than_a_full_output.<locals>.f   r   r"   r   rD   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Q1UTJ%(E!H%a58)#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
       y t        |	|       y )Nc                     d| z  S r   re   r   s    r    r   z#TestQuad.test_b_equals_a.<locals>.f       Q3Jr"   r   2   r   )dtype)nevallastalistblistrlistelistiordrD   )r   r   )r   r   )realimag)rs   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   s    	 &'&(ggeRVV2::&N&(ggeRVV2::&N&(hhuBJJ&G&(hhuBJJ&G&(hhuBHH&EG #1eU0<>c8c{h&&&,=,=$? @ #4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
                  j                  |d   |d   d|d   z  z          t         j
                  j                  |d   |d   d|d   z  z          t        |d   d         t        |dd        cxk(  rdk(  sJ  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J  J |d   d   d   d   |d   d   k(  sJ y )Nc                 2    t        j                  d| z        S N              ?r   r   s    r    tfuncz$TestQuad.test_complex.<locals>.tfunc  s    66"Q$<r"   r   ro   T)r   y      ?      ?r   rD   )r   br   r   r   r   c                 X    t        j                  t        j                  d| z              S r   )rs   r   r   r   s    r    <lambda>z'TestQuad.test_complex.<locals>.<lambda>      rwwrvvbd|4 r"   Fc                 X    t        j                  t        j                  d| z              S r   )rs   r   r   r   s    r    r   z'TestQuad.test_complex.<locals>.<lambda>  r   r"   r   r   r      lstr   )rs   allcloser   r	   rt   testingr   len)r=   r   kwargsres_cres_rres_is         r    test_complexzTestQuad.test_complex  s   	  {{2557>qA 	  rvvd!1.U8884 "' 4 "' 	

a%(Ra[*@A


a%(Ra[*@A58F#$E!"I;!;;;;;Qx"eAh...Qx"eAh...Qx"5)U1Xe_<<<58F#$E!"I;!;;;;;Qx"5)U1Xe_<<<r"   N)rb   rc   rd   rG   ru   r   r   r   r   r   r   r   r   r   r   r:   markparametrizer   r  re   r"   r    r|   r|      so    KI:N)'19???7 [[^dE];6 <6,=r"   r|   c                   r   e Zd Zd Zd Zd Zej                  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y)TestDblquadc           	      b    d }d\  }}t        t        |||d d       d|dz  |dz  z
  z         y )Nc                     || z   S r$   re   rx   r   s     r    simpfuncz2TestDblquad.test_double_integral.<locals>.simpfunc3  r   r"   r   rP   c                     | S r$   re   r   s    r    r   z2TestDblquad.test_double_integral.<locals>.<lambda>7  s    a r"   c                     d| z  S Nro   re   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  s=    	 1GHaKGQVAsF]+	-r"   c           
      P    d }d }d }d}t        t        |dd|||      d       y )	Nc                     | |z   |z   |z   S r$   re   )x0x1t0t1s       r    r@   z/TestDblquad.test_double_integral2.<locals>.func;  s    7R<"$$r"   c                     | S r$   re   r   s    r    gz,TestDblquad.test_double_integral2.<locals>.g=  s    Hr"   c                     d| z  S r  re   r   s    r    hz,TestDblquad.test_double_integral2.<locals>.h?  s    q5Lr"   )rD   ro   rD   ro   r   g$@r  )r=   r@   r  r  r   s        r    test_double_integral2z!TestDblquad.test_double_integral2:  s/    	%		GD!Q148Fr"   c           	      <    d }t        t        |dddd      d       y )Nc                     | |z   dz   dz   S r   re   r  r  s     r    r@   z/TestDblquad.test_double_integral3.<locals>.funcE  s    7Q;?"r"   rD   ro   g      @r  )r=   r@   s     r    test_double_integral3z!TestDblquad.test_double_integral3D  s    	#GD!Q1-b1r"   z,x_lower, x_upper, y_lower, y_upper, expectedr   r   r   rD   ro   r   c           	      @    d }t        t        |||||      |d       y )Nc                 @    t        j                  | dz   |dz  z
        S r  r   r   rx   s     r    r   z4TestDblquad.test_double_integral_improper.<locals>.f  s     661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  s(    |	, 	Aw': 	
r"   N)rb   rc   rd   r  r   r$  r:   r  r  rs   rt   r	   r   r   r-  re   r"   r    r
  r
  /  s   -G2
 [[6 ffWa"&&!RUUQY/ ffWb266'1beeai$q'&9:ffWa"&&"beeai$q'&9: ffWb266'2ruuqyDGqL'AB ffWa"&&!RUUQY#a&1*%=>ffWa"&&!RUUQY#a&1*%=> ffWa"&&!RUUQY3q6A:!2C%DE ffWb266'1beeaiCFQJ$q'3I&JK ffWa"&&"beeaiCFQJ$q'3I&JK 26625519- 26625519tAw#6726625519tAw#67 26625519Q1#=> BFFBEEAIQ!$<=BFFBEEAIQ!$<= RVVRUUQY3q6A:!2C%DE BFFBEEAI#a&1*Q1G$HI BFFBEEAI#a&1*Q1G$HI ffWbffrvvgrvvruu5 1bffb!1b!k6	
9t
u9t
r"   r
  c                   V   e Zd Zd Zej
                  j                  ej
                  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y)TestTplquadc                 l    d }d\  }}t        t        |||d d d d d      d|d	z  |d	z  z
  z         y )
Nc                     ||z   | z   |z  S r$   re   )r   rx   r   ts       r    r  z2TestTplquad.test_triple_integral.<locals>.simpfunc  s    aCE19r"   r  c                     | S r$   re   r   s    r    r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s    a r"   c                     d| z  S r  re   r   s    r    r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    1Q3 r"   c                     | |z
  S r$   re   r'  s     r    r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    Q r"   c                     | |z   S r$   re   r'  s     r    r   z2TestTplquad.test_triple_integral.<locals>.<lambda>  s
    QU r"   )rP   gUUUUUU@r   r!   r   r  s       r    test_triple_integralz TestTplquad.test_triple_integral  sK    	 1GHa'.0B!# 3C0		2r"   z>x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expectedr   r      r   rD   ro   r   c                 D    d }t        t        |||||||      |d       y )Nc                 L    t        j                  | dz   |dz  z
  |dz  z
        S r  r   )r   rx   r   s      r    r   z4TestTplquad.test_triple_integral_improper.<locals>.f?  s)    6616'AF*Q!V344r"   g+i)+p>r   r7  )	r=   r(  r)  r*  r+  z_lowerz_upperr,  r   s	            r    test_triple_integral_improperz)TestTplquad.test_triple_integral_improper  s,    @	5 	Aw'7GL 	
r"   N)rb   rc   rd   r8  r:   r  xslowr  rs   rt   r	   r   r   r>  re   r"   r    r/  r/    s   
2 [[[[HP	
 ffWa"&&!bffWa"%%E2Ba1GHP	
 ffWb266'1rvvgqee!#d1g-/P	
 ffWa"&&"rvvgqee!#d1g-/P	
 ffWa"&&!bffWbee!#d1g-/P	
 ffWb266'2wee!#tAw!|46P	
  ffWb266'1rvvgree!#tAw!|46!P	
$ ffWa"&&"rvvgree!#tAw!|46%P	
, ffWb266'2wee!#tAw!|46-P	
4 ffWb266'1rvvgqee!#Q!(9T!W'DEG5P	
< ffWb266'2wee!#A
tAw!|'DEG=P	
D ffWb266'1rvvgree!#A
tAw!|'DEGEP	
L ffWa"&&"rvvgree!#A
tAw!|'DEGMP	
T ffWa"&&!bffWbee!#Q!(9T!W'DEGUP	
\ ffWa"&&"rvvgqee!#Q!(9T!W'DEG]P	
d ffWa"&&!bffWaee!#s1vz24eP	
h ffWa"&&!bffWaee!#s1vz24iP	
l ffWa"&&!bffWaee!#s1vz24mP	
t ffWa"&&!bffWaee!#A
q'89;uP	
x ffWa"&&!bffWaee!#A
q'89;yP	
| ffWa"&&!bffWaee!#A
q'89;}P	
D ffWa"&&!bffWaee!#A
q'89;EP	
L 2661bffruu/?1.DEMP	
R 2661bffee!#d1g-/SP	
V 2661bffee!#d1g-/WP	
Z 2661bffee!#d1g-/[P	
b 2661bffee!#tAw!|46cP	
f 2661bffee!#tAw!|46gP	
j 2661bffee!#tAw!|46kP	
r 2661bffee!#tAw!|46sP	
z BFFArvvee!#s1vz24{P	
~ BFFArvvee!#s1vz24P	
B 2662rvvee!#s1vz24CP	
J RVVQee!#A
q'89;KP	
N BFFBee!#A
q'89;OP	
R BFFBee!#A
q'89;SP	
Z RVVRee!#A
q'89;[P	
b BFFBee!#Q!(9T!W'DEGcP	
j 2662rvvee!#A
tAw!|'DEGkP	
r BFFArvvee!#A
tAw!|'DEGsP	
z BFFArvvee!#A
tAw!|'DEG{P	
B RVVQee!#Q!(9T!W'DEGCP	
J BFFBee!#Q!(9T!W'DEGKP	
R ffWbffrvvgrvvwUUuSP	
Z 1bffa+[P	
\ 1a+]P	
^ 2661a+_P	
Sh
iS j
r"   r/  c                       e Zd Zej                  j                  d      d        Zej                  j                  d      d        Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zy)	TestNQuadrC   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kD  xr |d   d   dk         y )Nc                     | dz  ||z  z   |dz  z
  t        j                  |       z   | d|z  z
  dz
  d|z  z
  dkD  rdz   }|S dz   }|S )Nro   r   皙?      ?      ?r   rD   rs   r   )r  r  x2x3vals        r    func1z*TestNQuad.test_fixed_limits.<locals>.func1M  sh    q52b5=2q5(266":5s2v++d2g59ACCJ ABCCJr"   c                  0    dd| d   z  dz   d| d   z  z   giS )Nr   rD  ro   rE  rF  r   re   r   s    r    
opts_basicz/TestNQuad.test_fixed_limits.<locals>.opts_basicR  s*    s47{S04Q<?@AAr"   r   rD   r   gp=
ף?g?g333333ÿT)optsr   g5m?r   g     jA)r   r!   r
   )r=   rK  rM  ress       r    test_fixed_limitszTestNQuad.test_fixed_limitsK  s    	
	B EQFRGc2Yq	B$b"b1tECH0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       y )Ng?c                 |    | |z  |dz  z  t        j                  |      z   dz   | ||z  z   |z
  dkD  rdz   }|S dz   }|S )Nro   rD   r   rG  )r  r  rH  rI  r  r  rJ  s          r    func2z-TestNQuad.test_variable_limits.<locals>.func2^  sV    b5Q;+a/beb1,A5CJ 34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 Nro   rD   )rs   r   )r  rH  rI  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   re   )rH  rI  r  r  rV  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 Nro   r   rD   re   )rI  r  r  rV  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   re   )r  r  rV  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   re   )r  rH  rI  r  r  s        r    opts0z-TestNQuad.test_variable_limits.<locals>.opts0r  s    rBrEzl++r"   c                     i S r$   re   )rH  rI  r  r  s       r    opts1z-TestNQuad.test_variable_limits.<locals>.opts1u      Ir"   c                     i S r$   re   )rI  r  r  s      r    opts2z-TestNQuad.test_variable_limits.<locals>.opts2x  rc  r"   c                     i S r$   re   )r  r  s     r    opts3z-TestNQuad.test_variable_limits.<locals>.opts3{  rc  r"   r   )r   rN  g9@)r   r!   )r=   rS  rW  rY  r\  r^  r`  rb  re  rg  rO  rV  s              @r    test_variable_limitszTestNQuad.test_variable_limitsZ  si    	
	E	1	4	B	,			 ED$d3&u57C+,r"   c                 J    d }t        t        |ddgddggi i g      d       y )Nc                      yr   re   r  s     r    r   z9TestNQuad.test_square_separate_ranges_and_opts.<locals>.f  r   r"   r   rD   rN  r   r!   r   )r=   r   s     r    $test_square_separate_ranges_and_optsz.TestNQuad.test_square_separate_ranges_and_opts  s-    	 	E!r1gAw/r2h?Er"   c                 N    d }ddg}i }t        t        |||g||g      d       y )Nc                      yr   re   r  s     r    r   z8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.f  r   r"   r   rD   rk  r   rl  )r=   r   ropts       r    #test_square_aliased_ranges_and_optsz-TestNQuad.test_square_aliased_ranges_and_opts  s2    	 GE!aV3*5s;r"   c                 b    d }d }d }d }d }||g}||g}t        t        |||      d       y )Nc                      yr   re   r  s     r    r   z<TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.f  r   r"   c                       yN)r   rD   re   r   s    r    	fn_range0zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0      r"   c                       yrv  re   r   s    r    	fn_range1zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1  rx  r"   c                      i S r$   re   r   s    r    fn_opt0zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0  rc  r"   c                      i S r$   re   r   s    r    fn_opt1zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1  rc  r"   rk  r   rl  )r=   r   rw  rz  r|  r~  rangesrN  s           r    'test_square_separate_fn_ranges_and_optsz1TestNQuad.test_square_separate_fn_ranges_and_opts  sD    					 Y'!E!V$/5r"   c                 V    d }d }d }||g}||g}t        t        |||      d       y )Nc                      yr   re   r  s     r    r   z;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.f  r   r"   c                       yrv  re   r   s    r    fn_rangezBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_range  rx  r"   c                      i S r$   re   r   s    r    fn_optz@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_opt  rc  r"   rk  r   rl  )r=   r   r  r  r  rN  s         r    &test_square_aliased_fn_ranges_and_optsz0TestNQuad.test_square_aliased_fn_ranges_and_opts  s:    			 H%E!V$/5r"   c                     d }t        |dd      \  }}t        |ddgg      \  }}t        ||       t        ||       y )Nc                     | dz  dz   S rU  re   r   s    r    r@   z*TestNQuad.test_matching_quad.<locals>.func  s    a4!8Or"   r   r   )r  )r   r   r   )r=   r@   rO  reserrres2reserr2s         r    test_matching_quadzTestNQuad.test_matching_quad  sE    	 4A&VdQF84gC&FG,r"   c                     d }t        |ddd d       \  }}t        |ddgdg      \  }}t        ||       t        ||       y )	Nc                 *    | dz  |dz  z   | |z  z
  dz   S r[  re   r#  s     r    func2dz/TestNQuad.test_matching_dblquad.<locals>.func2d  s"    q52q5=27*Q..r"   ro   c                      y)Nre   r   s    r    r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>      r"   c                      y)Nr   re   r   s    r    r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  r  r"   r  r   )r  ro   )r   r   r   )r=   r  rO  r  r  r  s         r    test_matching_dblquadzTestNQuad.test_matching_dblquad  sL    	/ fb!\;GVfAw&8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	        ||       y )Nc                 b    | dz  ||dz  z  z   | |z  z
  dz   |t        j                  |      z  z   S r[  rG  )r  r  rH  c0c1s        r    func3dz/TestNQuad.test_matching_tplquad.<locals>.func3d  s8    q52A:%R/!3b266":oEEr"   r   ro   c                      y)Nr  re   r   s    r    r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  r  r"   c                      yr  re   r   s    r    r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  r  r"   c                 $    t         j                   S r$   rs   r	   r'  s     r    r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    BEE6 r"   c                 "    t         j                  S r$   r  r'  s     r    r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s
     r"   r   r   r  )r   ro   )r   r   rs   r	   r   )r=   r  rO  r  s       r    test_matching_tplquadzTestNQuad.test_matching_tplquad  sZ    	F fb!\;)+=!# VvruuoAw@vNC&r"   c                 R    	 t        d ddgddggddi       y # t        $ r J w xY w)Nc                     | |z  S r$   re   r'  s     r    r   z-TestNQuad.test_dict_as_opts.<locals>.<lambda>  s
    q1u r"   r   rD   epsrelg-C6?rk  )r   	TypeErrorrF   s    r    test_dict_as_optszTestNQuad.test_dict_as_opts  s:    	$1v1v&6h=OP 	5	s    &N)rb   rc   rd   r:   r  	fail_slowrP  rh  rm  rr  r  r  r  r  r  r  re   r"   r    rA  rA  I  sr    [[1A A [[1%- %-NF<6(6--'r"   rA  )g+i)+P>).r5   rE   numpyrs   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.   r0   rg   r|   r
  r/  rA  re   r"   r    <module>r     s   
   6 6 6O O  9 9 # 2 3   / 6 60B
 4E= E= E=P 4B B B4 4f= f= f=R 7^
 ^
 ^
B 7t
 t
 t
n 5H H Hr"   