
    doit                        S SK r S SKrS SKrS SKJrJrJrJrJrJ	r	J
r
  S SKJrJrJrJrJr  S SKrS SKJrJrJrJr  S SKJrJr  S SKJr  S SKJr  S SKrS SKrS SK J!r!  S SK"J#s  J$r%  SS	 jr&S
 r'\" \5       " S S5      5       r(\" \5       " S S5      5       r)\" \5       " S S5      5       r*\" \5       " S S5      5       r+\" \5       " S S5      5       r,\" \5       " S S5      5       r-g)    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                 @    U u  p4[        X1USS9  Ub  [        XB5        g g )Nr   )atolrtol)r   r   )value_and_errtabled_valueerror_tolerancevalueerrs        _/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/integrate/tests/test_quadpack.pyassert_quadr!      s(    JEEc:"#/ #    c                 z    [        [        U 5      n[        R                  " U[        R                  " U/UQ76 5      $ 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                   ,    \ rS rSrS rS rS rS rSrg)TestCtypesQuad!   c                    [         R                  S:X  a  S/nO[         R                  S:X  a  S/nOSS/nU H  n [        R                  " U5      U l          O   [        R                  " S5        [        R                  n[        R                  4nS H%  n[        U R                  U5      nX6l
        XFl        M'     g ! [
         a     M  f = f)	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_methodTestCtypesQuad.setup_method#   s    <<7"56E\\X%!NE,ED!;;t,  KK56//OO%)D488T*D"L$M *  s   B==
C
Cc                    [        [        U R                  R                  SS5      [        [        R                  SS5      S   5        [        [        U R                  R
                  SS5      [        [        R
                  SS5      S   5        [        [        U R                  R                  SS5      [        [        R                  SS5      S   5        g )Nr         )r!   r   r9   r   mathr   r5   r>   s    r    test_typicalTestCtypesQuad.test_typical=   s    Dq!,d488Q.B1.EFDq!,d488Q.B1.EFDq!,d488Q.B1.EFr"   c                 8    [        [        [        5      SS5        g Nr   rF   )r   r   r   rH   s    r    test_ctypes_sineTestCtypesQuad.test_ctypes_sineB   s    k*Aq1r"   c                 ,   [        S[        R                  [        R                  [        R                  5      n[        S[        R                  [        R                  [        R
                  " [        R                  5      [        R                  5      n[        S[        R                  [        R                  5      n[        S[        R                  [        R                  [        R
                  " [        R                  5      5      n[        S[        R                  [        R                  [        R                  5      nXX4U/nX5/nU/n[        U5       H[  u  p[        U
5      nX;   a(  [        R                  " [        [        US[        5        M=  [        [        US[        5      S   S5        M]     [        U5       HP  u  pX;   a   [        [        U
S[        5      S   S5        M*  [        R                  " [        [        U
S[        5        MR     g )N_sin_0_sin_1_sin_2_sin_3r          @)r.   r'   r=   c_void_pc_intPOINTER	enumerater   r;   raises
ValueErrorr   r	   r   )r>   sin_0sin_1sin_2sin_3sin_4all_sigslegacy_sigslegacy_only_sigsjrA   callbacks               r    test_ctypes_variants#TestCtypesQuad.test_ctypes_variantsE   sl   %h&,oovH &h&,llFNN6??4S&,oo7 &h&,oo7 &h&,llFNN6??4SU &h&,llFOOE %6n!7 !*GA'-H'j$!R@Xq" 5a 8#> + !-GA"T1b 1! 4c:j$a<	 .r"   )r9   N)	__name__
__module____qualname____firstlineno__rB   rI   rM   re   __static_attributes__ r"   r    r0   r0   !   s    %4G
2"=r"   r0   c                   ,    \ rS rSrS rS rS rS rSrg)TestMultivariateCtypesQuadj   c                     [         R                  n[         R                  [         R                  4nS H  n[        X1/UQ76 n[	        XU5        M     g )N)_multivariate_typical_multivariate_indefinite_multivariate_sin)r'   r=   rV   r.   setattr)r>   r+   r,   r*   rA   s        r    rB   'TestMultivariateCtypesQuad.setup_methodl   sB    //LL&//2*D(BBDD%*r"   c                 P    [        [        U R                  S[        S5      S5        g )Nr      g?ۗ?)r!   r   rq   r	   rH   s    r    rI   'TestMultivariateCtypesQuad.test_typicalt   s     D33QHE*	,r"   c                 b    [        [        U R                  S[        R                  5      S5        g )Nr   ox?)r!   r   rr   npinfrH   s    r    test_indefinite*TestMultivariateCtypesQuad.test_indefinitey   s"    D66266B.	0r"   c                 @   ^  U 4S jn[        [        USS5      S5        g )Nc                 >   > U [        TR                  SS5      S   -   $ rL   )r   rs   )yr>   s    r    threadsafetyBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafety   s"    tD22Aq9!<<<r"   r   rF   gtJ׵?)r!   r   )r>   r   s   ` r    test_threadsafety,TestMultivariateCtypesQuad.test_threadsafety~   s    	=Dq!,.@Ar"   rl   N)	rg   rh   ri   rj   rB   rI   r   r   rk   rl   r"   r    rn   rn   j   s    &,
0
Br"   rn   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS r\R"                  R%                  SSS/5      S 5       rS rSrg)TestQuad   c                 B    S n[        [        US[        S5      S5        g )Nc                 H    [        X-  U[        U 5      -  -
  5      [        -  $ r$   )r   r   r	   )xnzs      r    myfunc%TestQuad.test_typical.<locals>.myfunc   s     qs1SV8|$R''r"   r   rw   ry   )r!   r   r	   r>   r   s     r    rI   TestQuad.test_typical   s    	(DB13IJr"   c                 T    S n[        [        US[        R                  5      S5        g )Nc                 4    [        U * 5      * [        U 5      -  $ r$   )r   r   r   s    r    r   (TestQuad.test_indefinite.<locals>.myfunc   s    G8CF?"r"   r   r|   r!   r   r}   r~   r   s     r    r   TestQuad.test_indefinite   s    	#DBFF+-GHr"   c           	          S n[        [        USSSS/S9S[        S5      -
  [        S5      -   [        S	5      -
  5        g )
Nc                 r    SU s=:  a  S:  a  O  O[        U 5      $ SU s=::  a  S::  a  O  g[        U * 5      $ g)Nr         @      @        )r   r   r   s    r    r   &TestQuad.test_singular.<locals>.myfunc   s6    1{s{1vS  A2wr"   r   
   r   r   )pointsrF   g      g      )r!   r   r   r   r   s     r    test_singularTestQuad.test_singular   s?    	 	DBSz:CL3t9,s4y8	:r"   c                     S nSn[        [        USSSSUS9S[        U5      -  U[        U5      -  -
  U[	        S5      -  -   S	US
-  -   -  5        g )Nc                 "    [        XS-
  -  5      $ NrF   r   r   as     r    r   2TestQuad.test_sine_weighted_finite.<locals>.myfunc   s    qA#w<r"   glSS%@r   rF      r   argsweightwvarii  rx   )r!   r   r   r   r   )r>   r   omes      r    test_sine_weighted_finite"TestQuad.test_sine_weighted_finite   sZ    	  DABu3GC[SX-c#c(l:US!V^L	Nr"   c                 t    S nSnSn[        [        US[        R                  USUS9X2S-  US-  -   -  5        g )Nc                      [        U * U-  5      $ r$   r   r   s     r    r   4TestQuad.test_sine_weighted_infinite.<locals>.myfunc   s    r!t9r"         @      @r   r   r   rx   r   r>   r   r   r   s       r    test_sine_weighted_infinite$TestQuad.test_sine_weighted_infinite   sB    	 DBFF5sKAQ'	)r"   c                 v    S nSnSn[        [        U[        R                  * SUSUS9X"S-  US-  -   -  5        g )Nc                     [        X-  5      $ r$   r   r   s     r    r   6TestQuad.test_cosine_weighted_infinite.<locals>.myfunc   s    qs8Or"   r   gffffff@r   r   r   rx   r   r   s       r    test_cosine_weighted_infinite&TestQuad.test_cosine_weighted_infinite   sD    	 D"&&!!EL!tc1f}%	'r"   c                 x    S nSn[        [        USSUSSS9[        [        SSU* -  -   S-  S-
  5      -  5        g )	Nc                      SSU -   SU* -  -   -  $ NrF   rx   rl   r   s     r    r   2TestQuad.test_algebraic_log_weight.<locals>.myfunc   s    ac!qb'k?"r"         ?rF   alg)      r   r   rx   )r!   r   r	   r   )r>   r   r   s      r    test_algebraic_log_weight"TestQuad.test_algebraic_log_weight   sJ    	# DQQu*,tQqA2wYNQ.//	1r"   c                     S nSnS[        S5      -  S[        SU* -  S-   SU* -  S-   -  5      -  -
  [        S	US
-   -  5      -
  [        S	U-  5      -
  SU* -  S-   -  n[        [        USSSSS	S9USS9  g )Nc                 .    SU* -  U S-
  S-  SU* -  -   -  $ )NrT   rF   rx   r   rl   r   s     r    r   -TestQuad.test_cauchypv_weight.<locals>.myfunc   s&    !9qsQhsaRy011r"   g?g\`@?r   g]`@?r      rF   rT   rx   r   rE   cauchyr   g#fT>r   )r   r   r!   r   )r>   r   r   tabledValues       r    test_cauchypv_weight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                     S n[        US[        R                  SS9u  p#[        U[        R                  SSS9u  pE[        X$* [	        X55      S9  g )Nc                 <    U[         R                  " U* U -  5      -  $ r$   r}   r   )r   pqs      r    f&TestQuad.test_b_less_than_a.<locals>.f   s    rvvqbd|##r"   r   rx      r   r   r   r}   r~   r   maxr>   r   val_1err_1val_2err_2s         r    test_b_less_than_aTestQuad.test_b_less_than_a   sF    	$ Aq"&&v6Arvvqv6vC,=>r"   c                     S n[        U[        R                  * [        R                  SS9u  p#[        U[        R                  [        R                  * SS9u  pE[        X$* [	        X55      S9  g )Nc                 v    [         R                  " U S-  * S-  U-  5      [         R                  " SU-  5      -  $ )Nrx   rT   )r}   r   r   )r   ss     r    r   (TestQuad.test_b_less_than_a_2.<locals>.f   s0    661a4%!)a-(2772a4=88r"   )rx   r   r   r   r   s         r    test_b_less_than_a_2TestQuad.test_b_less_than_a_2   sR    	9 AwT:ArvvwT:vC,=>r"   c                 n    S n[        USSSSS9u  p#[        USSSSS9u  pE[        X$* [        X55      S9  g )Nc                     gN      ?rl   r   s    r    r   (TestQuad.test_b_less_than_a_3.<locals>.f       r"   r   rF   r   r   r   )r   r   r   )r   r   r   r   s         r    test_b_less_than_a_3TestQuad.test_b_less_than_a_3   sB    	 Aq!E?Aq!E?vC,=>r"   c           	          S n[        USSSSSS9n[        USSSSSS9n[        US   US   5      n[        US   US   * US9  g )	Nc                     gr   rl   r   s    r    r   2TestQuad.test_b_less_than_a_full_output.<locals>.f   r   r"   r   rF   r   r   T)r   r   full_outputr   )r   r   r   )r>   r   res_1res_2r   s        r    test_b_less_than_a_full_output'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                     S nS=p4SnSS[         R                  " U[         R                  [         R                  S9[         R                  " U[         R                  [         R                  S9[         R                  " U[         R                  S9[         R                  " U[         R                  S9[         R                  " U[         R
                  S9S.n[        X$USUS9u  pxn	Xx4S	:X  d   eU(       a  [        XUS
.5        g [        X5        g )Nc                     SU -  $ r   rl   r   s    r    r   #TestQuad.test_b_equals_a.<locals>.f   s    Q3Jr"   r   2   r   )dtype)nevallastalistblistrlistelistiordrF   )r   r   )r   r   )realimag)r}   fullnanfloat64zerosint32r   r   )
r>   r   r   upperlowerlimitexpected_infodictzeror   infodicts
             r    test_b_equals_aTestQuad.test_b_equals_a   s    	 &'&(ggeRVV2::&N&(ggeRVV2::&N&(hhuBJJ&G&(hhuBJJ&G&(hhuBHH&EG #1U0<>8{h&&&,=$? @ 5r"   c           	      .   S n[         R                  " [        US[         R                  S-  SS9S   S5      (       d   eS[         R                  SSSS	.n[        U4S
S0UD6n[        S 4S
S0UD6n[        S 4S
S0UD6n[         R
                  R                  US   US   SUS   -  -   5        [         R
                  R                  US   US   SUS   -  -   5        [        US   S   5      [        USS  5      s=:X  a  S:X  d   e   eUS   S   S   US   :X  d   eUS   S   S   US   :X  d   eUS   S   S   S   US   S   :X  d   e[        US   S   5      [        USS  5      s=:X  a  S:X  d   e   eUS   S   S   S   US   S   :X  d   eg )Nc                 4    [         R                  " SU -  5      $ N              ?r   r   s    r    tfunc$TestQuad.test_complex.<locals>.tfunc  s    66"Q$<r"   r   rx   T)r   y      ?      ?r   rF   )r   br   r   r   r   c                 \    [         R                  " [         R                  " SU -  5      5      $ r  )r}   r  r   r   s    r    <lambda>'TestQuad.test_complex.<locals>.<lambda>      rwwrvvbd|4r"   Fc                 \    [         R                  " [         R                  " SU -  5      5      $ r  )r}   r  r   r   s    r    r"  r#    r$  r"   r  r  r      lstr  )r}   allcloser   r	   r~   testingr   len)r>   r  kwargsres_cres_rres_is         r    test_complex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"   rl   N)rg   rh   ri   rj   rI   r   r   r   r   r   r   r   r   r   r   r   r;   markparametrizer  r/  rk   rl   r"   r    r   r      so    KI:N)'19???7 [[^dE];6 <6,=r"   r   c                   z   \ rS rSrS rS rS r\R                  R                  S\
R                  * S\
R                  * S\
R                  S-  4\
R                  * S\
R                  * S\
R                  S-  \" S	5      -  4\
R                  * S\
R                  * S\
R                  S-  \" S	5      -  4\
R                  * S\
R                  * S\
R                  S-  \" S	5      S
-  -  4\
R                  * S	\
R                  * S\
R                  S-  \" S	5      S	-   -  4\
R                  * S\
R                  * S	\
R                  S-  \" S	5      S	-   -  4\
R                  * S	\
R                  * S	\
R                  S-  \" S	5      S	-   S
-  -  4\
R                  * S\
R                  * S	\
R                  S-  \" S	5      S	-   \" S	5      -  -  4\
R                  * S	\
R                  * S\
R                  S-  \" S	5      S	-   \" S	5      -  -  4S\
R                  S\
R                  \
R                  S-  4S	\
R                  S\
R                  \
R                  S-  \" S	5      -  4S\
R                  S	\
R                  \
R                  S-  \" S	5      -  4S	\
R                  S	\
R                  \
R                  S-  \" S	5      S
-  -  4S\
R                  S\
R                  \
R                  S-  \" S	5      S	-   -  4S\
R                  S\
R                  \
R                  S-  \" S	5      S	-   -  4S\
R                  S\
R                  \
R                  S-  \" S	5      S	-   S
-  -  4S\
R                  S	\
R                  \
R                  S-  \" S	5      S	-   \" S	5      -  -  4S	\
R                  S\
R                  \
R                  S-  \" S	5      S	-   \" S	5      -  -  4\
R                  * \
R                  \
R                  * \
R                  \
R                  4SSS\
R                  S4S\
R                  SSS4/5      S 5       rSrg)TestDblquadi/  c           	      ^    S nSu  p#[        [        XUS S 5      SUS-  US-  -
  -  5        g )Nc                 
    X-   $ r$   rl   r   r   s     r    simpfunc2TestDblquad.test_double_integral.<locals>.simpfunc3  s	    3Jr"   r   rT   c                     U $ r$   rl   r   s    r    r"  2TestDblquad.test_double_integral.<locals>.<lambda>7  s    ar"   c                     SU -  $ Nrx   rl   r   s    r    r"  r<  7  s    1Q3r"   g?r   r!   r   r>   r8  r   r   s       r    test_double_integral TestDblquad.test_double_integral1  s9    	 GHKGQVAsF]+	-r"   c                 H    S nS nS nSn[        [        USSX#US9S5        g )	Nc                     X-   U-   U-   $ r$   rl   )x0x1t0t1s       r    rA   /TestDblquad.test_double_integral2.<locals>.func;  s    7R<"$$r"   c                     U $ r$   rl   r   s    r    g,TestDblquad.test_double_integral2.<locals>.g=  s    Hr"   c                     SU -  $ r>  rl   r   s    r    h,TestDblquad.test_double_integral2.<locals>.h?  s    q5Lr"   )rF   rx   rF   rx   r   g$@r?  )r>   rA   rK  rN  r   s        r    test_double_integral2!TestDblquad.test_double_integral2:  s-    	%		GD!Q48Fr"   c           	      <    S n[        [        USSSS5      S5        g )Nc                     X-   S-   S-   $ r   rl   rE  rF  s     r    rA   /TestDblquad.test_double_integral3.<locals>.funcE  s    7Q;?"r"   rF   rx   g      @r?  )r>   rA   s     r    test_double_integral3!TestDblquad.test_double_integral3D  s    	#GD!Q1-b1r"   z,x_lower, x_upper, y_lower, y_upper, expectedr   r&  r   rF   rx   r   c           	      6    S n[        [        XaX#U5      USS9  g )Nc                 B    [         R                  " U S-  * US-  -
  5      $ r>  r   r   r   s     r    r   4TestDblquad.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_improper)TestDblquad.test_double_integral_improperI  s$    |	, 	A': 	
r"   rl   N)rg   rh   ri   rj   rA  rP  rV  r;   r1  r2  r}   r~   r	   r   r   ra  rk   rl   r"   r    r4  r4  /  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"   r4  c                   ^   \ rS rSrS r\R                  R                  \R                  R                  S/ \	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S
-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S	-  -  4P\	R                  * S\	R                  * S\	R                  * S\	R                  S-  S-  \" S5      S-   S
-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S
-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S
-  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   \" S5      S	-  -  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4PS\	R                  S\	R                  S\	R                  \	R                  S-  S-  \" S5      S-   S	-  \" S5      -  -  4P\	R                  * \	R                  \	R                  * \	R                  \	R                  * \	R                  \	R                  S-  4PSSS\	R                  S\	R                  S4PS\	R                  SSS\	R                  S4PS\	R                  S\	R                  SSS4P5      S 5       5       rSrg)TestTplquadi  c                 h    S nSu  p#[        [        XUS S S S S5      SUS	-  US	-  -
  -  5        g )
Nc                     X!-   U -   U-  $ r$   rl   )r   r   r   ts       r    r8  2TestTplquad.test_triple_integral.<locals>.simpfunc  s    CE19r"   r:  c                     U $ r$   rl   r   s    r    r"  2TestTplquad.test_triple_integral.<locals>.<lambda>  s    ar"   c                     SU -  $ r>  rl   r   s    r    r"  rj    s    1Q3r"   c                 
    X-
  $ r$   rl   rZ  s     r    r"  rj    s    r"   c                 
    X-   $ r$   rl   rZ  s     r    r"  rj    s    QUr"   )rT   gUUUUUU@r   r!   r   r@  s       r    test_triple_integral TestTplquad.test_triple_integral  sG    	 GH'.0B!# 3C0		2r"   z>x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expectedr   r      r   rF   rx   r   c                 8    S n[        [        XX#XEU5      USS9  g )Nc                 N    [         R                  " U S-  * US-  -
  US-  -
  5      $ r>  r   )r   r   r   s      r    r   4TestTplquad.test_triple_integral_improper.<locals>.f?  s)    6616'AF*Q!V344r"   g+i)+p>r   rn  )	r>   r\  r]  r^  r_  z_lowerz_upperr`  r   s	            r    test_triple_integral_improper)TestTplquad.test_triple_integral_improper  s&    @	5 	A'GL 	
r"   rl   N)rg   rh   ri   rj   ro  r;   r1  xslowr2  r}   r~   r	   r   r   rw  rk   rl   r"   r    rd  rd    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"   rd  c                       \ rS rSr\R
                  R                  S5      S 5       r\R
                  R                  S5      S 5       rS r	S r
S rS rS	 rS
 rS rS rSrg)	TestNQuadiI  rE   c                     S nS n[        USS/SS/SS/SS//U0 0 0 /S	S
9n[        US S S5        [        US   S   S:  =(       a    US   S   S:  5        g )Nc                     U S-  X-  -   US-  -
  [         R                  " U 5      -   U SU-  -
  S-
  SU-  -
  S:  a  S-   nU$ S-   nU$ )Nrx   r   皙?      ?      ?r   rF   r}   r   )rE  rF  x2x3vals        r    func1*TestNQuad.test_fixed_limits.<locals>.func1M  sf    q525=2q5(266":5s2v++d2g59ACCJ ABCCJr"   c                  0    SSU S   -  S-   SU S   -  -   /0$ )Nr   r~  rx   r  r  r   rl   r   s    r    
opts_basic/TestNQuad.test_fixed_limits.<locals>.opts_basicR  s*    s47{S04Q<?@AAr"   r   rF   r   gp=
ף?g?g333333ÿT)optsr   g5m?r  g     jA)r   r!   r
   )r>   r  r  ress       r    test_fixed_limits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           	         ^ SmS nU4S jnU4S jnU4S jnU4S jnS nS nS	 nS
 n	[        XX4U/SXgX/S9n
[        U
S5        g )Ng?c                 |    X-  US-  -  [         R                  " U5      -   S-   XU-  -   U-
  S:  a  S-   nU$ S-   nU$ )Nrx   rF   r   r  )rE  rF  r  r  rG  rH  r  s          r    func2-TestNQuad.test_variable_limits.<locals>.func2^  sR    5Q;+a/eb1,A5CJ 345CJr"   c                    > TU S-  U-   [         R                  " U5      U-  U-  -   S-   -  S-
  TU S-  U-   [         R                  " U5      U-  U-  -   S-   -  S-   /$ Nrx   rF   )r}   r   )rF  r  r  rG  rH  scales        r    lim0,TestNQuad.test_variable_limits.<locals>.lim0c  so    RURZ"&&*R-*::Q>?!CRURZ"&&*R-*::Q>?!CE Er"   c                 @   > TX -  X1-  -   -  S-
  TX -  X1-  -   -  S-   /$ r   rl   )r  r  rG  rH  r  s       r    lim1,TestNQuad.test_variable_limits.<locals>.lim1g  s7    RURU]+a/RURU]+a/1 1r"   c                 P   > TXS-  US-  -  -   -  S-
  TXS-  US-  -  -   -  S-   /$ Nrx   r   rF   rl   )r  rG  rH  r  s      r    lim2,TestNQuad.test_variable_limits.<locals>.lim2k  sE    Ra%A+-.2Ra%A+-.24 4r"   c                 ,   > TX-   -  S-
  TX-   -  S-   /$ r   rl   )rG  rH  r  s     r    lim3,TestNQuad.test_variable_limits.<locals>.lim3o  s&    RW%)5BG+<q+@AAr"   c                     SX4U -  -
  /0$ )Nr   rl   )rF  r  r  rG  rH  s        r    opts0-TestNQuad.test_variable_limits.<locals>.opts0r  s    rrEzl++r"   c                     0 $ r$   rl   )r  r  rG  rH  s       r    opts1-TestNQuad.test_variable_limits.<locals>.opts1u      Ir"   c                     0 $ r$   rl   )r  rG  rH  s      r    opts2-TestNQuad.test_variable_limits.<locals>.opts2x  r  r"   c                     0 $ r$   rl   )rG  rH  s     r    opts3-TestNQuad.test_variable_limits.<locals>.opts3{  r  r"   r   )r   r  g9@)r   r!   )r>   r  r  r  r  r  r  r  r  r  r  r  s              @r    test_variable_limitsTestNQuad.test_variable_limitsZ  sa    	
	E	1	4	B	,			 E$d3&57C+,r"   c                 D    S n[        [        USS/SS//0 0 /S9S5        g )Nc                     gr   rl   r7  s     r    r   9TestNQuad.test_square_separate_ranges_and_opts.<locals>.f  r   r"   r   rF   r  r   r!   r   )r>   r   s     r    $test_square_separate_ranges_and_opts.TestNQuad.test_square_separate_ranges_and_opts  s-    	 	E!r1gAw/r2h?Er"   c                 D    S nSS/n0 n[        [        XU/X3/S9S5        g )Nc                     gr   rl   r7  s     r    r   8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.f  r   r"   r   rF   r  r   r  )r>   r   ropts       r    #test_square_aliased_ranges_and_opts-TestNQuad.test_square_aliased_ranges_and_opts  s.    	 GE!V3*5s;r"   c                 V    S nS nS nS nS nX#/nXE/n[        [        XUS9S5        g )Nc                     gr   rl   r7  s     r    r   <TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.f  r   r"   c                      gN)r   rF   rl   r   s    r    	fn_range0DTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0      r"   c                      gr  rl   r   s    r    	fn_range1DTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1  r  r"   c                      0 $ r$   rl   r   s    r    fn_opt0BTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0  r  r"   c                      0 $ r$   rl   r   s    r    fn_opt1BTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1  r  r"   r  r   r  )r>   r   r  r  r  r  rangesr  s           r    'test_square_separate_fn_ranges_and_opts1TestNQuad.test_square_separate_fn_ranges_and_opts  s>    					 '!E!$/5r"   c                 J    S nS nS nX"/nX3/n[        [        XUS9S5        g )Nc                     gr   rl   r7  s     r    r   ;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.f  r   r"   c                      gr  rl   r   s    r    fn_rangeBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_range  r  r"   c                      0 $ r$   rl   r   s    r    fn_opt@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_opt  r  r"   r  r   r  )r>   r   r  r  r  r  s         r    &test_square_aliased_fn_ranges_and_opts0TestNQuad.test_square_aliased_fn_ranges_and_opts  s4    			 %E!$/5r"   c                 r    S n[        USS5      u  p#[        USS//S9u  pE[        X$5        [        X55        g )Nc                     U S-  S-   $ r  rl   r   s    r    rA   *TestNQuad.test_matching_quad.<locals>.func  s    a4!8Or"   r   r&  )r  )r   r   r   )r>   rA   r  reserrres2reserr2s         r    test_matching_quadTestNQuad.test_matching_quad  s=    	 4A&dQF84C&F,r"   c                     S n[        USSS S 5      u  p#[        USS/S/5      u  pE[        X$5        [        X55        g )	Nc                 (    U S-  US-  -   X-  -
  S-   $ r  rl   rT  s     r    func2d/TestNQuad.test_matching_dblquad.<locals>.func2d  s     q52q5=27*Q..r"   rx   c                     g)Nrl   r   s    r    r"  1TestNQuad.test_matching_dblquad.<locals>.<lambda>  s    rr"   c                     g)Nr   rl   r   s    r    r"  r    s    Qr"   r  r   )r  rx   )r   r   r   )r>   r  r  r  r  r  s         r    test_matching_dblquadTestNQuad.test_matching_dblquad  sD    	/ fb!\;GfAw&89C&F,r"   c                     S n[        USSS S S S SS	9n[        U[        R                  * [        R                  /S
S/S/SS	9n[	        X#5        g )Nc                 `    U S-  X1S-  -  -   X-  -
  S-   U[         R                  " U5      -  -   $ r  r  )rE  rF  r  c0c1s        r    func3d/TestNQuad.test_matching_tplquad.<locals>.func3d  s4    q52A:%/!3b266":oEEr"   r   rx   c                     g)Nr  rl   r   s    r    r"  1TestNQuad.test_matching_tplquad.<locals>.<lambda>  s    rr"   c                     gr>  rl   r   s    r    r"  r    s    Qr"   c                 $    [         R                  * $ r$   r}   r	   rZ  s     r    r"  r    s
    BEE6r"   c                 "    [         R                  $ r$   r  rZ  s     r    r"  r    s    r"   r   r   r  )r   rx   )r   r   r}   r	   r   )r>   r  r  r  s       r    test_matching_tplquadTestNQuad.test_matching_tplquad  sX    	F fb!\;)+=!# VvruuoAw@vNC&r"   c                 N     [        S SS/SS//SS0S9  g ! [         a     ef = f)Nc                 
    X-  $ r$   rl   rZ  s     r    r"  -TestNQuad.test_dict_as_opts.<locals>.<lambda>  s    qur"   r   rF   epsrelg-C6?r  )r   	TypeErrorrH   s    r    test_dict_as_optsTestNQuad.test_dict_as_opts  s:    	$1v1v&6h=OP 	5	s    $rl   N)rg   rh   ri   rj   r;   r1  	fail_slowr  r  r  r  r  r  r  r  r  r  rk   rl   r"   r    r{  r{  I  sr    [[1A A [[1%- %-NF<6(6--'r"   r{  )g+i)+P>).r6   rG   numpyr}   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   rn   r   r4  rd  r{  rl   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"   