
    ^Mhm                     :   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(dS )    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_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        c/var/www/html/test/jupyter/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   r7   r   mathr   r3   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   rC   )r   r   r   rE   s    r   test_ctypes_sinezTestCtypesQuad.test_ctypes_sine@   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   r9   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&,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__r@   rF   rI   r`    r!   r   r/   r/       sS        % % %4G G G
2 2 2"= "= "= "= "=r!   r/   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;   rQ   r-   setattr)r<   r*   r+   r)   r?   s        r   r@   z'TestMultivariateCtypesQuad.setup_methodi   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   rh   r	   rE   s    r   rF   z'TestMultivariateCtypesQuad.test_typicalq   s4    D3QHEE*	, 	, 	, 	, 	,r!   c                 b    t          t          | j        dt          j                  d           d S )Nr   ox?)r    r   ri   npinfrE   s    r   test_indefinitez*TestMultivariateCtypesQuad.test_indefinitev   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 rH   )r   rj   )yr<   s    r   threadsafetyzBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafety}   s"    tD2Aq99!<<<r!   r   rC   gtJ׵?)r    r   )r<   rx   s   ` r   test_threadsafetyz,TestMultivariateCtypesQuad.test_threadsafety{   s?    	= 	= 	= 	= 	=Dq!,,.@AAAAAr!   N)ra   rb   rc   r@   rF   rt   ry   rd   r!   r   rf   rf   h   sU        & & &, , ,
0 0 0
B B B B Br!   rf   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                            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        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                         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   rm   ro   )r    r   r	   r<   r   s     r   rF   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   rq   r    r   rr   rs   r   s     r   rt   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         @      @g        )r   r   r   s    r   r   z&TestQuad.test_singular.<locals>.myfunc   sQ    1{{{{s{{{{{1vvSA2wwsr!   r   
   r   r   )pointsrC   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 NrC   r   r~   as     r   r   z2TestQuad.test_sine_weighted_finite.<locals>.myfunc   s    q!A#w<<r!   glSS%@r   rC      r   argsweightwvarii  rn   )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   rn   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   rn   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 NrC   rn   rd   r   s     r   r   z2TestQuad.test_algebraic_log_weight.<locals>.myfunc   s    ac!qb'k?"r!         ?rC   alg)      r   r   rn   )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 )NrO   rC   rn   r   rd   r   s     r   r   z-TestQuad.test_cauchypv_weight.<locals>.myfunc   s&    !9qsQhsaRy011r!   g?g\`@?r   g]`@?r      rC   rO   rn   r   rB   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#   rr   r   )r~   pqs      r   fz&TestQuad.test_b_less_than_a.<locals>.f   s    rvqbd||##r!   r   rn      r   r   r   rr   rs   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 )Nrn   rO   )rr   r   r   )r~   ss     r   r   z(TestQuad.test_b_less_than_a_2.<locals>.f   s1    61a4%!)a-((272a4==88r!   )rn   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      ?rd   r   s    r   r   z(TestQuad.test_b_less_than_a_3.<locals>.f       3r!   r   rC   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   rd   r   s    r   r   z2TestQuad.test_b_less_than_a_full_output.<locals>.f   r   r!   r   rC   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!   c           	      t    d }d\  }}t          t          |||d d           d|dz  |dz  z
  z             d S )Nc                     || z   S r#   rd   rw   r~   s     r   simpfuncz/TestQuad.test_double_integral.<locals>.simpfunc   s    Q3Jr!   r   rO   c                     | S r#   rd   r   s    r   <lambda>z/TestQuad.test_double_integral.<locals>.<lambda>   s    a r!   c                     d| z  S Nrn   rd   r   s    r   r   z/TestQuad.test_double_integral.<locals>.<lambda>   s
    1Q3 r!   g?r   r    r   r<   r   r   bs       r   test_double_integralzTestQuad.test_double_integral   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#   rd   )x0x1t0t1s       r   r?   z,TestQuad.test_double_integral2.<locals>.func   s    7R<"$$r!   c                     | S r#   rd   r   s    r   gz)TestQuad.test_double_integral2.<locals>.g   s    Hr!   c                     d| z  S r   rd   r   s    r   hz)TestQuad.test_double_integral2.<locals>.h   s    q5Lr!   )rC   rn   rC   rn   r   g$@r   )r<   r?   r   r   r   s        r   test_double_integral2zTestQuad.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   rd   r   r   s     r   r?   z,TestQuad.test_double_integral3.<locals>.func  s    7Q;?"r!   rC   rn   g      @r   )r<   r?   s     r   test_double_integral3zTestQuad.test_double_integral3  s7    	# 	# 	#GD!Q1--b11111r!   z,x_lower, x_upper, y_lower, y_upper, expectedr      r   rC   rn   c           	      R    d }t          t          |||||          |d           d S )Nc                 >    t          j        | dz   |dz  z
            S r   r   r~   rw   s     r   r   z1TestQuad.test_double_integral_improper.<locals>.fD  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&TestQuad.test_double_integral_improper
  sN    t	, 	, 	, 	Aw':: 	
 	
 	
 	
 	
 	
r!   c                 ~    d }d\  }}t          t          |||d d d d d          d|d	z  |d	z  z
  z             d S )
Nc                     ||z   | z   |z  S r#   rd   )r   rw   r~   ts       r   r   z/TestQuad.test_triple_integral.<locals>.simpfuncO  s    aCE19r!   r   c                     | S r#   rd   r   s    r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>T  s    a r!   c                     d| z  S r   rd   r   s    r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>T  s
    1Q3 r!   c                     | |z
  S r#   rd   r   s     r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>U  s
    Q r!   c                     | |z   S r#   rd   r   s     r   r   z/TestQuad.test_triple_integral.<locals>.<lambda>U  s
    QU r!   )rO   gUUUUUU@r   r    r   r   s       r   test_triple_integralzTestQuad.test_triple_integralM  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   c                 V    d }t          t          |||||||          |d           d S )Nc                 J    t          j        | dz   |dz  z
  |dz  z
            S r   r   )r~   rw   r   s      r   r   z1TestQuad.test_triple_integral_improper.<locals>.f  s*    616'AF*Q!V34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  sR    v	5 	5 	5 	Aw'7GL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                            |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   rn   T)complex_funcy      ?      ?r   rC   )r   r   r   r   r   r  c                 T    t          j        t          j        d| z                      S r  )rr   realr   r   s    r   r   z'TestQuad.test_complex.<locals>.<lambda>      rwrvbd||44 r!   Fc                 T    t          j        t          j        d| z                      S r  )rr   imagr   r   s    r   r   z'TestQuad.test_complex.<locals>.<lambda>  r  r!   r  r  r   r   lstr  )rr   allcloser   r	   rs   testingassert_equal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)ra   rb   rc   rF   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   markparametrizerr   rs   r	   r   r   r   r  xslowr
  r  rd   r!   r   r{   r{      s3       K K KI I I: : :N N N) ) )' ' '1 1 19 9 9? ? ?? ? ?? ? ?7 7 7- - -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5c2	
5 5l
 
m5 5l

2 
2 
2 [[HK	
 fWa"&!bfWa"%E2Ba1GHK	
 fWb26'1rvgqe!#dd1gg-/K	
 fWa"&"rvgqe!#dd1gg-/K	
 fWa"&!bfWbe!#dd1gg-/K	
 fWb26'2we!#ttAww!|46K	
  fWb26'1rvgre!#ttAww!|46!K	
$ fWa"&"rvgre!#ttAww!|46%K	
, fWb26'2we!#ttAww!|46-K	
4 fWb26'1rvgqe!#Q!(9TT!WW'DEG5K	
< fWb26'2we!#A
ttAww!|'DEG=K	
D fWb26'1rvgre!#A
ttAww!|'DEGEK	
L fWa"&"rvgre!#A
ttAww!|'DEGMK	
T fWa"&!bfWbe!#Q!(9TT!WW'DEGUK	
\ fWa"&"rvgqe!#Q!(9TT!WW'DEG]K	
d fWa"&!bfWae!#ss1vvz24eK	
h fWa"&!bfWae!#ss1vvz24iK	
l fWa"&!bfWae!#ss1vvz24mK	
t fWa"&!bfWae!#A
q'89;uK	
x fWa"&!bfWae!#A
q'89;yK	
| fWa"&!bfWae!#A
q'89;}K	
D fWa"&!bfWae!#A
q'89;EK	
L 261bfru/?1.DEMK	
R 261bfe!#dd1gg-/SK	
V 261bfe!#dd1gg-/WK	
Z 261bfe!#dd1gg-/[K	
b 261bfe!#ttAww!|46cK	
f 261bfe!#ttAww!|46gK	
j 261bfe!#ttAww!|46kK	
r 261bfe!#ttAww!|46sK	
z BFArve!#ss1vvz24{K	
~ BFArve!#ss1vvz24K	
B 262rve!#ss1vvz24CK	
J RVQe!#A
q'89;KK	
N BFBe!#A
q'89;OK	
R BFBe!#A
q'89;SK	
Z RVRe!#A
q'89;[K	
b BFBe!#Q!(9TT!WW'DEGcK	
j 262rve!#A
ttAww!|'DEGkK	
r BFArve!#A
ttAww!|'DEGsK	
z BFArve!#A
ttAww!|'DEG{K	
B RVQe!#Q!(9TT!WW'DEGCK	
J BFBe!#Q!(9TT!WW'DEGKK	
R fWbfrvgrvwUuSK	
N N^
 
_N N `
(= = = = =r!   r{   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 )	TestNQuadrB   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 )Nrn   r   皙?      ?      ?r   rC   rr   r   )r   r   x2x3vals        r   func1z*TestNQuad.test_fixed_limits.<locals>.func1"  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   r'  rn   r(  r)  r   rd   r   s    r   
opts_basicz/TestNQuad.test_fixed_limits.<locals>.opts_basic'  s*    s47{S04Q<?@AAr!   r   rC   r   gp=
ף?g?g333333ÿT)optsr   g5m?nevalg     jA)r   r    r
   )r<   r.  r0  ress       r   test_fixed_limitszTestNQuad.test_fixed_limits   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 )Nrn   rC   r   r*  )r   r   r+  r,  r   r   r-  s          r   func2z-TestNQuad.test_variable_limits.<locals>.func23  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 Nrn   rC   )rr   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   rd   )r+  r,  r   r   r:  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 Nrn   r   rC   rd   )r,  r   r   r:  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   rd   )r   r   r:  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   rd   )r   r+  r,  r   r   s        r   opts0z-TestNQuad.test_variable_limits.<locals>.opts0G  s    rBrEzl++r!   c                     i S r#   rd   )r+  r,  r   r   s       r   opts1z-TestNQuad.test_variable_limits.<locals>.opts1J      Ir!   c                     i S r#   rd   )r,  r   r   s      r   opts2z-TestNQuad.test_variable_limits.<locals>.opts2M  rG  r!   c                     i S r#   rd   )r   r   s     r   opts3z-TestNQuad.test_variable_limits.<locals>.opts3P  rG  r!   r   )r   r1  g9@)r   r    )r<   r7  r;  r=  r@  rB  rD  rF  rI  rK  r3  r:  s              @r   test_variable_limitszTestNQuad.test_variable_limits/  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   rd   r   s     r   r   z9TestNQuad.test_square_separate_ranges_and_opts.<locals>.fX  r   r!   r   rC   r1  r   r    r   )r<   r   s     r   $test_square_separate_ranges_and_optsz.TestNQuad.test_square_separate_ranges_and_optsW  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   rd   r   s     r   r   z8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.f^  r   r!   r   rC   rO  r   rP  )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   rd   r   s     r   r   z<TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.ff  r   r!   c                      dS N)r   rC   rd   r   s    r   	fn_range0zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0i      7r!   c                      dS rZ  rd   r   s    r   	fn_range1zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1l  r\  r!   c                      i S r#   rd   r   s    r   fn_opt0zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0o  rG  r!   c                      i S r#   rd   r   s    r   fn_opt1zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1r  rG  r!   rO  r   rP  )r<   r   r[  r^  r`  rb  rangesr1  s           r   'test_square_separate_fn_ranges_and_optsz1TestNQuad.test_square_separate_fn_ranges_and_optse  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   rd   r   s     r   r   z;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fz  r   r!   c                      dS rZ  rd   r   s    r   fn_rangezBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_range}  r\  r!   c                      i S r#   rd   r   s    r   fn_optz@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_opt  rG  r!   rO  r   rP  )r<   r   rh  rj  rc  r1  s         r   &test_square_aliased_fn_ranges_and_optsz0TestNQuad.test_square_aliased_fn_ranges_and_optsy  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 r9  rd   r   s    r   r?   z*TestNQuad.test_matching_quad.<locals>.func  s    a4!8Or!   r   r   )rc  )r   r   r   )r<   r?   r3  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?  rd   r   s     r   func2dz/TestNQuad.test_matching_dblquad.<locals>.func2d  s"    q52q5=27*Q..r!   rn   c                     dS )Nrd   r   s    r   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    r r!   c                     dS )Nr   rd   r   s    r   r   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    Q r!   rw  r   )ru  rn   )r   r   r   )r<   rt  r3  rn  ro  rp  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?  r*  )r   r   r+  c0c1s        r   func3dz/TestNQuad.test_matching_tplquad.<locals>.func3d  s8    q52A:%R/!3b26"::oEEr!   r   rn   c                     dS )Nru  rd   r   s    r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    r r!   c                     dS r   rd   r   s    r   r   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    Q r!   c                     t           j         S r#   rr   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   ru  )r   rn   )r   r   rr   r	   r   )r<   r~  r3  ro  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#   rd   r   s     r   r   z-TestNQuad.test_dict_as_opts.<locals>.<lambda>  s
    q1u r!   r   rC   epsrelg-C6?rO  )r   	TypeErrorrE   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)ra   rb   rc   r9   r   	fail_slowr4  rL  rQ  rV  rd  rk  rq  ry  r  r  rd   r!   r   r$  r$    s        [1A A A [1%- %- %-NF F F< < <6 6 6(6 6 6- - -- - -' ' '    r!   r$  )r   ))r4   rD   numpyrr   r   r   r   r   r   r   r	   numpy.testingr
   r   r   r   r9   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/   rf   r{   r$  rd   r!   r   <module>r     s.   



      6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6A A A A A A A A A A A A  9 9 9 9 9 9 9 9 9 9 9 9 # # # # # # # # 2 2 2 2 2 2      / / / / / / 6 6 6 6 6 6 6 6 60 0 0 0B B B
E= E= E= E= E= E= E= E=PB B B B B B B B4Z= Z= Z= Z= Z= Z= Z= Z=zH H H H H H H H H Hr!   