
    tKgm                         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 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Zd dlZd dlmZ d dlm c m!Z" ddZ#d	 Z$ G d
 d      Z% G d d      Z& G d d      Z' G d d      Z(y)    N)sqrtcossinarctanexplogpi)assert_assert_allcloseassert_array_lessassert_almost_equal)quaddblquadtplquadnquad)erferfc)LowLevelCallable)sine_ctypesc                 J    | \  }}t        |||d       |t        ||       y y )Nr   )atolrtol)r   r   )value_and_errtabled_valueerror_tolerancevalueerrs        g/home/alanp/www/video.onchill/myenv/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D!;;t,  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   r6   r   mathr   r2   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   rB   )r   r   r   rD   s    r   test_ctypes_sinezTestCtypesQuad.test_ctypes_sine@   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   r8   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_variantsC   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__r?   rE   rH   r_    r    r   r.   r.       s    %4G
2"=r    r.   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:   rP   r,   setattr)r;   r)   r*   r(   r>   s        r   r?   z'TestMultivariateCtypesQuad.setup_methodi   sF    //LL&//2*D(wBBDD$%*r    c                 P    t        t        | j                  dt        d      d       y )Nr      g?ۗ?)r   r   rg   r	   rD   s    r   rE   z'TestMultivariateCtypesQuad.test_typicalq   s     D33QHE*	,r    c                 b    t        t        | j                  dt        j                        d       y )Nr   ox?)r   r   rh   npinfrD   s    r   test_indefinitez*TestMultivariateCtypesQuad.test_indefinitev   s"    D66266B.	0r    c                 >      fd}t        t        |dd      d       y )Nc                 >    | t        j                  dd      d   z   S rG   )r   ri   )yr;   s    r   threadsafetyzBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafety}   s"    tD22Aq9!<<<r    r   rB   gtJ׵?)r   r   )r;   rw   s   ` r   test_threadsafetyz,TestMultivariateCtypesQuad.test_threadsafety{   s    	=Dq!,.@Ar    N)r`   ra   rb   r?   rE   rs   rx   rc   r    r   re   re   h   s    &,
0
Br    re   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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g      d        Zd Zej&                  j8                  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               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   rl   rn   )r   r   r	   r;   r   s     r   rE   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   rp   r   r   rq   rr   r   s     r   rs   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         @      @g        )r   r   r   s    r   r   z&TestQuad.test_singular.<locals>.myfunc   s;    1{s{1v S  A2wr    r   
   r   r   )pointsrB   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 NrB   r   r}   as     r   r   z2TestQuad.test_sine_weighted_finite.<locals>.myfunc   s    q!A#w<r    glSS%@r   rB      r   argsweightwvarii  rm   )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   rm   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   rm   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 NrB   rm   rc   r   s     r   r   z2TestQuad.test_algebraic_log_weight.<locals>.myfunc   s    ac!qb'k?"r          ?rB   alg)      r   r   rm   )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 )NrN   rB   rm   r   rc   r   s     r   r   z-TestQuad.test_cauchypv_weight.<locals>.myfunc   s&    !9qsQhsaRy011r    g?g\`@?r   g]`@?r      rB   rN   rm   r   rA   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"   rq   r   )r}   pqs      r   fz&TestQuad.test_b_less_than_a.<locals>.f   s    rvvqbd|##r    r   rm      r   r   r   rq   rr   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 )Nrm   rN   )rq   r   r   )r}   ss     r   r   z(TestQuad.test_b_less_than_a_2.<locals>.f   s0    661a4%!)a-(2772a4=88r    )rm   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      ?rc   r   s    r   r   z(TestQuad.test_b_less_than_a_3.<locals>.f       r    r   rB   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   rc   r   s    r   r   z2TestQuad.test_b_less_than_a_full_output.<locals>.f   r   r    r   rB   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    c           	      b    d }d\  }}t        t        |||d d       d|dz  |dz  z
  z         y )Nc                     || z   S r"   rc   rv   r}   s     r   simpfuncz/TestQuad.test_double_integral.<locals>.simpfunc   s    Q3Jr    r   rN   c                     | S r"   rc   r   s    r   <lambda>z/TestQuad.test_double_integral.<locals>.<lambda>   s    ar    c                     d| z  S Nrm   rc   r   s    r   r   z/TestQuad.test_double_integral.<locals>.<lambda>   s    1Q3r    g?r   r   r   r;   r   r   bs       r   test_double_integralzTestQuad.test_double_integral   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"   rc   )x0x1t0t1s       r   r>   z,TestQuad.test_double_integral2.<locals>.func   s    7R<"$$r    c                     | S r"   rc   r   s    r   gz)TestQuad.test_double_integral2.<locals>.g   s    Hr    c                     d| z  S r   rc   r   s    r   hz)TestQuad.test_double_integral2.<locals>.h   s    q5Lr    )rB   rm   rB   rm   r   g$@r   )r;   r>   r   r   r   s        r   test_double_integral2zTestQuad.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   rc   r   r   s     r   r>   z,TestQuad.test_double_integral3.<locals>.func  s    7Q;?"r    rB   rm   g      @r   )r;   r>   s     r   test_double_integral3zTestQuad.test_double_integral3  s    	#GD!Q1-b1r    z,x_lower, x_upper, y_lower, y_upper, expectedr      r   rB   rm   c           	      @    d }t        t        |||||      |d       y )Nc                 @    t        j                  | dz   |dz  z
        S r   r   r}   rv   s     r   r   z1TestQuad.test_double_integral_improper.<locals>.fD  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&TestQuad.test_double_integral_improper
  s(    t	, 	Aw': 	
r    c                 l    d }d\  }}t        t        |||d d d d d      d|d	z  |d	z  z
  z         y )
Nc                     ||z   | z   |z  S r"   rc   )r   rv   r}   ts       r   r   z/TestQuad.test_triple_integral.<locals>.simpfuncO  s    aCE19r    r   c                     | S r"   rc   r   s    r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>T  s    ar    c                     d| z  S r   rc   r   s    r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>T  s    1Q3r    c                     | |z
  S r"   rc   r   s     r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>U  s    Qr    c                     | |z   S r"   rc   r   s     r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>U  s    QUr    )rN   gUUUUUU@r   r   r   r   s       r   test_triple_integralzTestQuad.test_triple_integralM  sK    	 1GHa'.0B!# 3C0		2r    z>x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expectedr      r   c                 D    d }t        t        |||||||      |d       y )Nc                 L    t        j                  | dz   |dz  z
  |dz  z
        S r   r   )r}   rv   r   s      r   r   z1TestQuad.test_triple_integral_improper.<locals>.f  s)    6616'AF*Q!V344r    g+i)+p>r   r  )	r;   r   r   r   r   z_lowerz_upperr   r   s	            r   test_triple_integral_improperz&TestQuad.test_triple_integral_improperY  s,    v	5 	Aw'7GL 	
r    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   rm   T)complex_funcy      ?      ?r   rB   )r   r   r   r   r   r  c                 X    t        j                  t        j                  d| z              S r  )rq   realr   r   s    r   r   z'TestQuad.test_complex.<locals>.<lambda>      rwwrvvbd|4r    Fc                 X    t        j                  t        j                  d| z              S r  )rq   imagr   r   s    r   r   z'TestQuad.test_complex.<locals>.<lambda>  r  r    r  r  r   r   lstr  )rq   allcloser   r	   rr   testingassert_equal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)r`   ra   rb   rE   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   markparametrizerq   rr   r	   r   r   r   r  xslowr	  r  rc   r    r   rz   rz      s	   KI:N)'19???7-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5c2	
5l
m5l

2 [[[[HK	
 ffWa"&&!bffWa"%%E2Ba1GHK	
 ffWb266'1rvvgqee!#d1g-/K	
 ffWa"&&"rvvgqee!#d1g-/K	
 ffWa"&&!bffWbee!#d1g-/K	
 ffWb266'2wee!#tAw!|46K	
  ffWb266'1rvvgree!#tAw!|46!K	
$ ffWa"&&"rvvgree!#tAw!|46%K	
, ffWb266'2wee!#tAw!|46-K	
4 ffWb266'1rvvgqee!#Q!(9T!W'DEG5K	
< ffWb266'2wee!#A
tAw!|'DEG=K	
D ffWb266'1rvvgree!#A
tAw!|'DEGEK	
L ffWa"&&"rvvgree!#A
tAw!|'DEGMK	
T ffWa"&&!bffWbee!#Q!(9T!W'DEGUK	
\ ffWa"&&"rvvgqee!#Q!(9T!W'DEG]K	
d ffWa"&&!bffWaee!#s1vz24eK	
h ffWa"&&!bffWaee!#s1vz24iK	
l ffWa"&&!bffWaee!#s1vz24mK	
t ffWa"&&!bffWaee!#A
q'89;uK	
x ffWa"&&!bffWaee!#A
q'89;yK	
| ffWa"&&!bffWaee!#A
q'89;}K	
D ffWa"&&!bffWaee!#A
q'89;EK	
L 2661bffruu/?1.DEMK	
R 2661bffee!#d1g-/SK	
V 2661bffee!#d1g-/WK	
Z 2661bffee!#d1g-/[K	
b 2661bffee!#tAw!|46cK	
f 2661bffee!#tAw!|46gK	
j 2661bffee!#tAw!|46kK	
r 2661bffee!#tAw!|46sK	
z BFFArvvee!#s1vz24{K	
~ BFFArvvee!#s1vz24K	
B 2662rvvee!#s1vz24CK	
J RVVQee!#A
q'89;KK	
N BFFBee!#A
q'89;OK	
R BFFBee!#A
q'89;SK	
Z RVVRee!#A
q'89;[K	
b BFFBee!#Q!(9T!W'DEGcK	
j 2662rvvee!#A
tAw!|'DEGkK	
r BFFArvvee!#A
tAw!|'DEGsK	
z BFFArvvee!#A
tAw!|'DEG{K	
B RVVQee!#Q!(9T!W'DEGCK	
J BFFBee!#Q!(9T!W'DEGKK	
R ffWbffrvvgrvvwUUuSK	
N^
_N `
(=r    rz   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)	TestNQuadrm   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 )Nrm   r   皙?      ?      ?r   rB   rq   r   )r   r   x2x3vals        r   func1z*TestNQuad.test_fixed_limits.<locals>.func1"  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   r&  rm   r'  r(  r   rc   r   s    r   
opts_basicz/TestNQuad.test_fixed_limits.<locals>.opts_basic'  s*    s47{S04Q<?@AAr    r   rB   r   gp=
ף?g?g333333ÿT)optsr   g5m?nevalg     jA)r   r   r
   )r;   r-  r/  ress       r   test_fixed_limitszTestNQuad.test_fixed_limits   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 )Nrm   rB   r   r)  )r   r   r*  r+  r   r   r,  s          r   func2z-TestNQuad.test_variable_limits.<locals>.func23  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 Nrm   rB   )rq   r   )r   r*  r+  r   r   scales        r   lim0z,TestNQuad.test_variable_limits.<locals>.lim08  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   rc   )r*  r+  r   r   r9  s       r   lim1z,TestNQuad.test_variable_limits.<locals>.lim1<  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 Nrm   r   rB   rc   )r+  r   r   r9  s      r   lim2z,TestNQuad.test_variable_limits.<locals>.lim2@  sI    R"a%A+-.2R"a%A+-.24 4r    c                 0    | |z   z  dz
  | |z   z  dz   gS r   rc   )r   r   r9  s     r   lim3z,TestNQuad.test_variable_limits.<locals>.lim3D  s*    R"W%)5BG+<q+@AAr    c                     d||| z  z
  giS )Nr   rc   )r   r*  r+  r   r   s        r   opts0z-TestNQuad.test_variable_limits.<locals>.opts0G  s    rBrEzl++r    c                     i S r"   rc   )r*  r+  r   r   s       r   opts1z-TestNQuad.test_variable_limits.<locals>.opts1J      Ir    c                     i S r"   rc   )r+  r   r   s      r   opts2z-TestNQuad.test_variable_limits.<locals>.opts2M  rF  r    c                     i S r"   rc   )r   r   s     r   opts3z-TestNQuad.test_variable_limits.<locals>.opts3P  rF  r    r   )r   r0  g9@)r   r   )r;   r6  r:  r<  r?  rA  rC  rE  rH  rJ  r2  r9  s              @r   test_variable_limitszTestNQuad.test_variable_limits/  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   rc   r   s     r   r   z9TestNQuad.test_square_separate_ranges_and_opts.<locals>.fX  r   r    r   rB   r0  r   r   r   )r;   r   s     r   $test_square_separate_ranges_and_optsz.TestNQuad.test_square_separate_ranges_and_optsW  s-    	 	E!r1gAw/r2h?Er    c                 N    d }ddg}i }t        t        |||g||g      d       y )Nc                      yr   rc   r   s     r   r   z8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.f^  r   r    r   rB   rN  r   rO  )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   rc   r   s     r   r   z<TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.ff  r   r    c                       yN)r   rB   rc   r   s    r   	fn_range0zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0i      r    c                       yrY  rc   r   s    r   	fn_range1zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1l  r[  r    c                      i S r"   rc   r   s    r   fn_opt0zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0o  rF  r    c                      i S r"   rc   r   s    r   fn_opt1zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1r  rF  r    rN  r   rO  )r;   r   rZ  r]  r_  ra  rangesr0  s           r   'test_square_separate_fn_ranges_and_optsz1TestNQuad.test_square_separate_fn_ranges_and_optse  sD    					 Y'!E!V$/5r    c                 V    d }d }d }||g}||g}t        t        |||      d       y )Nc                      yr   rc   r   s     r   r   z;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fz  r   r    c                       yrY  rc   r   s    r   fn_rangezBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_range}  r[  r    c                      i S r"   rc   r   s    r   fn_optz@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_opt  rF  r    rN  r   rO  )r;   r   rg  ri  rb  r0  s         r   &test_square_aliased_fn_ranges_and_optsz0TestNQuad.test_square_aliased_fn_ranges_and_optsy  s:    			 H%E!V$/5r    c                     d }t        |dd      \  }}t        |ddgg      \  }}t        ||       t        ||       y )Nc                     | dz  dz   S r8  rc   r   s    r   r>   z*TestNQuad.test_matching_quad.<locals>.func  s    a4!8Or    r   r   )rb  )r   r   r   )r;   r>   r2  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>  rc   r   s     r   func2dz/TestNQuad.test_matching_dblquad.<locals>.func2d  s"    q52q5=27*Q..r    rm   c                      y)Nrc   r   s    r   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    rr    c                      y)Nr   rc   r   s    r   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    Qr    rv  r   )rt  rm   )r   r   r   )r;   rs  r2  rm  rn  ro  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>  r)  )r   r   r*  c0c1s        r   func3dz/TestNQuad.test_matching_tplquad.<locals>.func3d  s8    q52A:%R/!3b266":oEEr    r   rm   c                      y)Nrt  rc   r   s    r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    rr    c                      yr   rc   r   s    r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    Qr    c                 $    t         j                   S r"   rq   r	   r   s     r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s
    BEE6r    c                 "    t         j                  S r"   r  r   s     r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    r    r   r   rt  )r   rm   )r   r   rq   r	   r   )r;   r}  r2  rn  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"   rc   r   s     r   r   z-TestNQuad.test_dict_as_opts.<locals>.<lambda>  s    q1ur    r   rB   epsrelg-C6?rN  )r   	TypeErrorrD   s    r   test_dict_as_optszTestNQuad.test_dict_as_opts  s:    	$1v1v&6h=OP 	5	s    &N)r`   ra   rb   r8   r  	fail_slowr3  rK  rP  rU  rc  rj  rp  rx  r  r  rc   r    r   r#  r#    sr    [[1A A [[1%- %-NF<6(6--'r    r#  )g+i)+P>))r3   rC   numpyrq   r   r   r   r   r   r   r	   numpy.testingr
   r   r   r   r8   scipy.integrater   r   r   r   scipy.specialr   r   scipy._lib._ccallbackr   r%   ctypes.utilscipy._lib._ccallback_cr   "scipy.integrate._test_multivariate	integrate_test_multivariater$   r   r,   r.   re   rz   r#  rc   r    r   <module>r     s~    
   6 6 6A A  9 9 # 2   / 6 60B
E= E=PB B4Z= Z=zH Hr    