o
    Ö­j¢m  ã                   @   s  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   m!Z" dd	d
„Z#dd„ Z$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G d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                 C   s2   | \}}t |||dd� |d urt||ƒ d S d S )Nr   )ÚatolÚrtol)r
   r   )Úvalue_and_errÚtabled_valueÚerror_toleranceÚvalueÚerr© r   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadpack.pyÚassert_quad   s
   ÿr   c                 G   s$   t t| ƒ}t |tj|g|¢R Ž ¡S ©N)ÚgetattrÚ	clib_testÚctypesÚcastÚ	CFUNCTYPE)ÚnameÚrestypeÚargtypesÚptrr   r   r   Úget_clib_test_routine   s   
r*   c                   @   ó,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestCtypesQuadc              	   C   s˜   t jdkr	dg}nt jdkrdg}nddg}|D ]}z	t |¡| _W  n ty,   Y qw t d¡ tj}tjf}dD ]}t	| j|ƒ}||_
||_q;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&   Úfuncr   r   r   Úsetup_method!   s(   

ÿ
ýzTestCtypesQuad.setup_methodc                 C   sp   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   r3   r   Úmathr   r/   ©r8   r   r   r   Útest_typical;   s   $$(zTestCtypesQuad.test_typicalc                 C   s   t ttƒddƒ d S ©Nr   r>   )r   r   r   r@   r   r   r   Útest_ctypes_sine@   ó   zTestCtypesQuad.test_ctypes_sinec                 C   s   t dtjtjtjƒ}t dtjtjt tj¡tjƒ}t dtjtjƒ}t dtjtjt tj¡ƒ}t dtjtjtjƒ}|||||g}||g}|g}t|ƒD ]!\}	}
t|
ƒ}|
|v r`t 	t
t|dt¡ qJtt|dtƒd dƒ qJt|ƒD ]\}	}
|
|v r„tt|
dtƒd dƒ qpt 	t
t|
dt¡ qpd S )NÚ_sin_0Ú_sin_1Ú_sin_2Ú_sin_3r   ç       @)r*   r#   r7   Úc_void_pÚc_intÚPOINTERÚ	enumerater   r5   ÚraisesÚ
ValueErrorr   r   r
   )r8   Úsin_0Úsin_1Úsin_2Úsin_3Úsin_4Úall_sigsÚlegacy_sigsÚlegacy_only_sigsÚjr;   Úcallbackr   r   r   Útest_ctypes_variantsC   s:   ÿþÿÿÿüz#TestCtypesQuad.test_ctypes_variantsN)Ú__name__Ú
__module__Ú__qualname__r<   rA   rC   rZ   r   r   r   r   r,       s
    r,   c                   @   r+   )
ÚTestMultivariateCtypesQuadc                 C   s>   t j}t jt jf}dD ]}t||g|¢R Ž }t| ||ƒ qd S )N)Ú_multivariate_typicalÚ_multivariate_indefiniteÚ_multivariate_sin)r#   r7   rK   r*   Úsetattr)r8   r'   r(   r&   r;   r   r   r   r<   i   s   ýz'TestMultivariateCtypesQuad.setup_methodc                 C   s   t t| jdtdƒdƒ d S )Nr   ©é   gÍÌÌÌÌÌü?çì®Û—Ó?)r   r   r_   r   r@   r   r   r   rA   q   ó   ÿz'TestMultivariateCtypesQuad.test_typicalc                 C   s   t t| jdtjƒdƒ d S )Nr   ç¶oüŒxâ?)r   r   r`   ÚnpÚinfr@   r   r   r   Útest_indefinitev   rf   z*TestMultivariateCtypesQuad.test_indefinitec                    s"   ‡ fdd„}t t|ddƒdƒ d S )Nc                    s   | t ˆ jddƒd  S rB   )r   ra   )Úyr@   r   r   Úthreadsafety}   ó   zBTestMultivariateCtypesQuad.test_threadsafety.<locals>.threadsafetyr   r>   gtùJð×µî?)r   r   )r8   rl   r   r@   r   Útest_threadsafety{   s   z,TestMultivariateCtypesQuad.test_threadsafetyN)r[   r\   r]   r<   rA   rj   rn   r   r   r   r   r^   h   s
    r^   c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dej d ej d ejd! fej d"ej d ejd! ed#ƒ fej d ej d"ejd! ed#ƒ fej d"ej d"ejd! ed#ƒd$  fej d#ej d ejd! ed#ƒd#  fej d ej d#ejd! ed#ƒd#  fej d#ej d#ejd! ed#ƒd# d$  fej d"ej d#ejd! ed#ƒd# ed#ƒ  fej d#ej d"ejd! ed#ƒd# ed#ƒ  fd ejd ejejd! fd#ejd ejejd! ed#ƒ fd ejd#ejejd! ed#ƒ fd#ejd#ejejd! ed#ƒd$  fd"ejd ejejd! ed#ƒd#  fd ejd"ejejd! ed#ƒd#  fd"ejd"ejejd! ed#ƒd# d$  fd"ejd#ejejd! ed#ƒd# ed#ƒ  fd#ejd"ejejd! ed#ƒd# ed#ƒ  fej ejej ejejfg¡d%d&„ ƒZd'd(„ Zejjej d)g ej d ej d ej d ejd* d+ f‘ej d"ej d ej d ejd* d+ ed#ƒ f‘ej d ej d"ej d ejd* d+ ed#ƒ f‘ej d ej d ej d"ejd* d+ ed#ƒ f‘ej d"ej d"ej d ejd* d+ ed#ƒd$  f‘ej d"ej d ej d"ejd* d+ ed#ƒd$  f‘ej d ej d"ej d"ejd* d+ ed#ƒd$  f‘ej d"ej d"ej d"ejd* d+ ed#ƒd,  f‘ej d"ej d#ej d#ejd* d+ ed#ƒd# d$ ed#ƒ  f‘ej d"ej d"ej d#ejd* d+ ed#ƒd# ed#ƒd$   f‘ej d"ej d#ej d"ejd* d+ ed#ƒd# ed#ƒd$   f‘ej d#ej d"ej d"ejd* d+ ed#ƒd# ed#ƒd$   f‘ej d#ej d#ej d"ejd* d+ ed#ƒd# d$ ed#ƒ  f‘ej d#ej d"ej d#ejd* d+ ed#ƒd# d$ ed#ƒ  f‘ej d#ej d ej d ejd* d+ ed#ƒd#  f‘ej d ej d#ej d ejd* d+ ed#ƒd#  f‘ej d ej d ej d#ejd* d+ ed#ƒd#  f‘ej d#ej d#ej d ejd* d+ ed#ƒd# d$  f‘ej d#ej d ej d#ejd* d+ ed#ƒd# d$  f‘ej d ej d#ej d#ejd* d+ ed#ƒd# d$  f‘ej d#ej d#ej d#ejd* d+ ed#ƒd# d,  f‘d ejd ejd ejejd* d+ f‘d#ejd ejd ejejd* d+ ed#ƒ f‘d ejd#ejd ejejd* d+ ed#ƒ f‘d ejd ejd#ejejd* d+ ed#ƒ f‘d#ejd#ejd ejejd* d+ ed#ƒd$  f‘d#ejd ejd#ejejd* d+ ed#ƒd$  f‘d ejd#ejd#ejejd* d+ ed#ƒd$  f‘d#ejd#ejd#ejejd* d+ ed#ƒd,  f‘d"ejd ejd ejejd* d+ ed#ƒd#  f‘d ejd"ejd ejejd* d+ ed#ƒd#  f‘d ejd ejd"ejejd* d+ ed#ƒd#  f‘d"ejd"ejd ejejd* d+ ed#ƒd# d$  f‘d"ejd ejd"ejejd* d+ ed#ƒd# d$  f‘d ejd"ejd"ejejd* d+ ed#ƒd# d$  f‘d"ejd"ejd"ejejd* d+ ed#ƒd# d,  f‘d#ejd"ejd"ejejd* d+ ed#ƒd# d$ ed#ƒ  f‘d#ejd#ejd"ejejd* d+ ed#ƒd# ed#ƒd$   f‘d#ejd"ejd#ejejd* d+ ed#ƒd# ed#ƒd$   f‘d"ejd#ejd#ejejd* d+ ed#ƒd# ed#ƒd$   f‘d"ejd"ejd#ejejd* d+ ed#ƒd# d$ ed#ƒ  f‘d"ejd#ejd"ejejd* d+ ed#ƒd# d$ ed#ƒ  f‘ej ejej ejej ejejd* f‘¡d-d.„ ƒƒZd/d0„ Zd1S )2ÚTestQuadc                 C   s    dd„ }t t|dtdƒdƒ d S )Nc                 S   s   t ||  |t| ƒ  ƒt S r    )r   r   r   )ÚxÚnÚzr   r   r   Úmyfunc…   ó   z%TestQuad.test_typical.<locals>.myfuncr   rc   re   )r   r   r   ©r8   rs   r   r   r   rA   ƒ   ó   zTestQuad.test_typicalc                 C   s    dd„ }t t|dtjƒdƒ d S )Nc                 S   s   t |  ƒ t| ƒ S r    )r   r   ©rp   r   r   r   rs   ‹   rD   z(TestQuad.test_indefinite.<locals>.myfuncr   rg   ©r   r   rh   ri   ru   r   r   r   rj   ‰   rv   zTestQuad.test_indefinitec                 C   s>   dd„ }t t|ddddgd�dtdƒ td	ƒ td
ƒ ƒ d S )Nc                 S   sD   d|   k rdk rt | ƒS  d|   krdkr n dS t|  ƒS dS )Nr   ç      @ç      @g        )r   r   rw   r   r   r   rs   ‘   s   ÿ
þz&TestQuad.test_singular.<locals>.myfuncr   é
   ry   rz   )Úpointsr>   g      Àg      À)r   r   r   r   ru   r   r   r   Útest_singular�   s   ÿzTestQuad.test_singularc              	   C   sV   dd„ }d}t t|dddd|d�dt|ƒ |t|ƒ  |td	ƒ  d
|d   ƒ d S )Nc                 S   s   t || d  ƒS ©Nr>   ©r   ©rp   Úar   r   r   rs   ž   ó   z2TestQuad.test_sine_weighted_finite.<locals>.myfuncglS¹S´%@r   r>   é   r   ©ÚargsÚweightÚwvariìÿÿÿi�  rd   )r   r   r   r   r   )r8   rs   Úomer   r   r   Útest_sine_weighted_finiteœ   s
   .ÿz"TestQuad.test_sine_weighted_finitec              	   C   s@   dd„ }d}d}t t|dtj|d|d�||d |d   ƒ d S )	Nc                 S   s   t |  | ƒS r    r   r€   r   r   r   rs   §   ó   z4TestQuad.test_sine_weighted_infinite.<locals>.myfuncç      @ç      @r   r   r„   rd   rx   ©r8   rs   r�   rˆ   r   r   r   Útest_sine_weighted_infinite¥   s   ÿz$TestQuad.test_sine_weighted_infinitec              	   C   sB   dd„ }d}d}t t|tj d|d|d�||d |d   ƒ d S )	Nc                 S   s   t | | ƒS r    r   r€   r   r   r   rs   ±   ó   z6TestQuad.test_cosine_weighted_infinite.<locals>.myfuncry   gffffff@r   r   r„   rd   rx   r�   r   r   r   Útest_cosine_weighted_infinite¯   s   ÿz&TestQuad.test_cosine_weighted_infinitec              	   C   sD   dd„ }d}t t|dd|ddd�ttdd	|   d	 d ƒ ƒ d S )
Nc                 S   s   dd|  d|    S ©Nr>   rd   r   r€   r   r   r   rs   »   rm   z2TestQuad.test_algebraic_log_weight.<locals>.myfuncç      ø?éÿÿÿÿr>   Úalg)ç      à¿r•   r„   rd   )r   r   r   r   )r8   rs   r�   r   r   r   Útest_algebraic_log_weight¹   s   ÿþz"TestQuad.test_algebraic_log_weightc              	   C   sˆ   dd„ }d}dt dƒ dt d|  d d|  d	  ƒ  td
|d  ƒ td
| ƒ d|  d	  }tt|ddddd
d�|dd� d S )Nc                 S   s    d|  | d d d|    S )NrI   r>   rd   r‹   r   r€   r   r   r   rs   Å   ó    z-TestQuad.test_cauchypv_weight.<locals>.myfuncgš™™™™™Ù?g\®²`@è?r’   g]®²`@Ø?r‹   é   r>   rI   rd   r   r=   Úcauchyr„   gÑ®#®fT>©r   )r   r   r   r   )r8   rs   r�   ÚtabledValuer   r   r   Útest_cauchypv_weightÃ   s   
"ÿþ
ýü
ÿzTestQuad.test_cauchypv_weightc                 C   sN   dd„ }t |dtjdd�\}}t |tjddd�\}}t|| t||ƒd� d S )Nc                 S   s   |t  | |  ¡ S r    ©rh   r   )rp   ÚpÚqr   r   r   ÚfÒ   rD   z&TestQuad.test_b_less_than_a.<locals>.fr   ©rd   é   ©r…   ©r   ©r   rh   ri   r
   Úmax©r8   r    Úval_1Úerr_1Úval_2Úerr_2r   r   r   Útest_b_less_than_aÑ   ó   zTestQuad.test_b_less_than_ac                 C   sV   dd„ }t |tj tjdd�\}}t |tjtj dd�\}}t|| t||ƒd� d S )Nc                 S   s&   t  | d  d | ¡t  d| ¡ S )Nrd   rI   )rh   r   r   )rp   Úsr   r   r   r    Ú   s   &z(TestQuad.test_b_less_than_a_2.<locals>.f)rd   r£   r¤   r¥   r§   r   r   r   Útest_b_less_than_a_2Ù   s   zTestQuad.test_b_less_than_a_2c                 C   sN   dd„ }t |ddddd�\}}t |ddddd�\}}t|| t||ƒd� d S )	Nc                 S   ó   dS ©Nç      ð?r   rw   r   r   r   r    â   ó   z(TestQuad.test_b_less_than_a_3.<locals>.fr   r>   r”   ©r   r   )r†   r‡   r¤   )r   r
   r¦   r§   r   r   r   Útest_b_less_than_a_3á   r­   zTestQuad.test_b_less_than_a_3c                 C   s^   dd„ }t |dddddd�}t |dddddd�}t|d |d ƒ}t|d |d  |d	� d S )
Nc                 S   r°   r±   r   rw   r   r   r   r    ê   r³   z2TestQuad.test_b_less_than_a_full_output.<locals>.fr   r>   r”   r´   T)r†   r‡   Úfull_outputr¤   )r   r¦   r
   )r8   r    Úres_1Úres_2r   r   r   r   Útest_b_less_than_a_full_outputé   s
   z'TestQuad.test_b_less_than_a_full_outputc                 C   sB   dd„ }d\}}t t|||dd„ dd„ ƒd|d |d   ƒ d S )	Nc                 S   s   ||  S r    r   ©rk   rp   r   r   r   Úsimpfuncô   ó   z/TestQuad.test_double_integral.<locals>.simpfunc©r²   rI   c                 S   ó   | S r    r   rw   r   r   r   Ú<lambda>ø   ó    z/TestQuad.test_double_integral.<locals>.<lambda>c                 S   ó   d|  S ©Nrd   r   rw   r   r   r   r¿   ø   ó    g«ªªªªªê?rŒ   ©r   r   ©r8   r»   r�   Úbr   r   r   Útest_double_integralò   s
   ÿzTestQuad.test_double_integralc              	   C   s:   dd„ }dd„ }dd„ }d}t t|dd	|||d
�dƒ d S )Nc                 S   s   | | | | S r    r   )Úx0Úx1Út0Út1r   r   r   r;   ü   r‚   z,TestQuad.test_double_integral2.<locals>.funcc                 S   r¾   r    r   rw   r   r   r   Úgþ   r³   z)TestQuad.test_double_integral2.<locals>.gc                 S   rÁ   rÂ   r   rw   r   r   r   Úh   r¼   z)TestQuad.test_double_integral2.<locals>.h)r>   rd   r>   rd   r£   gªªªªªª$@rÄ   )r8   r;   rÌ   rÍ   r…   r   r   r   Útest_double_integral2û   s
   zTestQuad.test_double_integral2c                 C   s"   dd„ }t t|ddddƒdƒ d S )Nc                 S   s   | | d d S r‘   r   ©rÈ   rÉ   r   r   r   r;     r‚   z,TestQuad.test_double_integral3.<locals>.funcr>   rd   g      @rÄ   )r8   r;   r   r   r   Útest_double_integral3  s   zTestQuad.test_double_integral3z,x_lower, x_upper, y_lower, y_upper, expectedr   é   r“   r>   rd   c                 C   s&   dd„ }t t|||||ƒ|dd� d S )Nc                 S   s   t  | d  |d  ¡S rÂ   r�   ©rp   rk   r   r   r   r    D  s   z1TestQuad.test_double_integral_improper.<locals>.fg+i¤)+`>rš   rÄ   )r8   Úx_lowerÚx_upperÚy_lowerÚy_upperÚexpectedr    r   r   r   Útest_double_integral_improper
  s   :
ýz&TestQuad.test_double_integral_improperc              
   C   sP   dd„ }d\}}t t|||dd„ dd„ dd„ dd„ d	ƒd
|d |d   ƒ d S )Nc                 S   s   || |  | S r    r   )rr   rk   rp   Útr   r   r   r»   O  r‚   z/TestQuad.test_triple_integral.<locals>.simpfuncr½   c                 S   r¾   r    r   rw   r   r   r   r¿   T  rÀ   z/TestQuad.test_triple_integral.<locals>.<lambda>c                 S   rÁ   rÂ   r   rw   r   r   r   r¿   T  rÃ   c                 S   s   | | S r    r   rÒ   r   r   r   r¿   U  rÃ   c                 S   s   | | S r    r   rÒ   r   r   r   r¿   U  rÃ   )rI   gUUUUUU@r‹   ©r   r   rÅ   r   r   r   Útest_triple_integralM  s   
ýüzTestQuad.test_triple_integralz>x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expectedr’   é   r¢   c           	   	   C   s*   dd„ }t t|||||||ƒ|dd� d S )Nc                 S   s    t  | d  |d  |d  ¡S rÂ   r�   )rp   rk   rr   r   r   r   r    ô  r—   z1TestQuad.test_triple_integral_improper.<locals>.fg+i¤)+p>rš   rÚ   )	r8   rÓ   rÔ   rÕ   rÖ   Úz_lowerÚz_upperr×   r    r   r   r   Útest_triple_integral_improperY  s    
ýz&TestQuad.test_triple_integral_improperc                 C   s´  dd„ }t  t|dt jd dd�d d¡sJ ‚dt jddd	d
œ}t|fddi|¤Ž}tdd„ fddi|¤Ž}tdd„ fddi|¤Ž}t j |d |d d|d   ¡ t j |d	 |d	 d|d	   ¡ t|d d ƒt|dd … ƒ  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 … ƒ  krÃd	ksÆJ ‚ J ‚|d d d d |d d ksØJ ‚d S )Nc                 S   s   t  d|  ¡S ©Nù              ð?r�   rw   r   r   r   Útfuncþ  rŠ   z$TestQuad.test_complex.<locals>.tfuncr   rd   T)Úcomplex_funcy      ð?      ð?r   r>   )r�   rÆ   r¶   r†   r‡   rã   c                 S   ó   t  t  d|  ¡¡S rà   )rh   Úrealr   rw   r   r   r   r¿     ó    z'TestQuad.test_complex.<locals>.<lambda>Fc                 S   rä   rà   )rh   Úimagr   rw   r   r   r   r¿     ræ   rá   rå   r¢   rÑ   Úlstrç   )rh   Úallcloser   r   ri   ÚtestingÚassert_equalÚlen)r8   râ   ÚkwargsÚres_cÚres_rÚres_ir   r   r   Útest_complexý  s6   þÿÿþÿþ""4$4(zTestQuad.test_complexN)r[   r\   r]   rA   rj   r}   r‰   rŽ   r�   r–   rœ   r¬   r¯   rµ   r¹   rÇ   rÎ   rÐ   r5   ÚmarkÚparametrizerh   ri   r   r   r   rØ   rÛ   Úxslowrß   rñ   r   r   r   r   ro   ‚   s¾   	


		
""&&&*.."""&**Ïþ
6&ýÿúÿø
ÿöÿòÿðÿîÿê$ÿæ$ÿâ"$ÿÞ&$ÿÚ*$ÿÖ.$ÿÒ2ÿÎ4ÿÌ6ÿÊ:ÿÆ<ÿÄ>ÿÂBÿ¾ FºIÿ·KÿµMÿ³Qÿ¯Sÿ­Uÿ«Yÿ§]ÿ£_ÿ¡aÿŸeÿ›gÿ™iÿ—mÿ“q$ÿ�u$ÿ‹y$ÿ‡}$ÿƒ $ÿ �þ $ÿ �ú 
ÿ �öþ ro   c                   @   st   e Zd Zej d¡dd„ ƒZej d¡dd„ ƒZdd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú	TestNQuadr=   c                 C   sz   dd„ }dd„ }t |ddgddgdd	gd
dgg|i i i gdd�}t|d d… dƒ t|d d dko9|d d dk ƒ d S )Nc                 S   sP   | d ||  |d  t  | ¡ | d|  d d|  dkr#d }|S d }|S )Nrd   r¢   çš™™™™™É?ç      à?ç      Ð?r   r>   ©rh   r   )rÈ   rÉ   Úx2Úx3Úvalr   r   r   Úfunc1"  s    ÿÿÿz*TestNQuad.test_fixed_limits.<locals>.func1c                  W   s"   dd| d  d d| d   giS )Nr|   rö   rd   r÷   rø   r   r   r£   r   r   r   Ú
opts_basic'  s   "z/TestNQuad.test_fixed_limits.<locals>.opts_basicr   r>   r“   g¤p=
×£À?gš™™™™™é?g333333Ã¿T)Úoptsr¶   g5‹—Œmø?Únevalg     jA)r   r   r	   )r8   rý   rþ   Úresr   r   r   Útest_fixed_limits   s   ÿ(zTestNQuad.test_fixed_limitsc                    sŠ   d‰ dd„ }‡ fdd„}‡ fdd„}‡ fdd	„}‡ fd
d„}dd„ }dd„ }dd„ }dd„ }	t |||||gd||||	gd�}
t|
dƒ d S )Ngš™™™™™¹?c                 S   sD   | | |d  t  |¡ d | ||  | dkrd }|S d }|S )Nrd   r>   r   rù   )rÈ   rÉ   rú   rû   rÊ   rË   rü   r   r   r   Úfunc23  s   ÿÿÿz-TestNQuad.test_variable_limits.<locals>.func2c                    sT   ˆ | d | t  |¡| |  d  d ˆ | d | t  |¡| |  d  d gS ©Nrd   r>   )rh   r   ©rÉ   rú   rû   rÊ   rË   ©Úscaler   r   Úlim08  s   ((ÿz,TestNQuad.test_variable_limits.<locals>.lim0c                    s0   ˆ ||  ||   d ˆ ||  ||   d gS r~   r   ©rú   rû   rÊ   rË   r  r   r   Úlim1<  s   ÿz,TestNQuad.test_variable_limits.<locals>.lim1c                    s8   ˆ | |d |d    d ˆ | |d |d    d gS ©Nrd   r¢   r>   r   ©rû   rÊ   rË   r  r   r   Úlim2@  s   ÿz,TestNQuad.test_variable_limits.<locals>.lim2c                    s    ˆ | |  d ˆ | |  d gS r~   r   ©rÊ   rË   r  r   r   Úlim3D  r—   z,TestNQuad.test_variable_limits.<locals>.lim3c                 S   s   d|||   giS )Nr|   r   r  r   r   r   Úopts0G  s   z-TestNQuad.test_variable_limits.<locals>.opts0c                 S   ó   i S r    r   r	  r   r   r   Úopts1J  r³   z-TestNQuad.test_variable_limits.<locals>.opts1c                 S   r  r    r   r  r   r   r   Úopts2M  r³   z-TestNQuad.test_variable_limits.<locals>.opts2c                 S   r  r    r   r  r   r   r   Úopts3P  r³   z-TestNQuad.test_variable_limits.<locals>.opts3r´   )r…   rÿ   g9@)r   r   )r8   r  r  r
  r  r  r  r  r  r  r  r   r  r   Útest_variable_limits/  s   
ÿzTestNQuad.test_variable_limitsc                 C   s0   dd„ }t t|ddgddggi i gd�dƒ d S )Nc                 S   r°   r±   r   rº   r   r   r   r    X  r³   z9TestNQuad.test_square_separate_ranges_and_opts.<locals>.fr“   r>   ©rÿ   r‹   ©r   r   )r8   r    r   r   r   Ú$test_square_separate_ranges_and_optsW  s   (z.TestNQuad.test_square_separate_ranges_and_optsc                 C   s4   dd„ }ddg}i }t t|||g||gd�dƒ d S )Nc                 S   r°   r±   r   rº   r   r   r   r    ^  r³   z8TestNQuad.test_square_aliased_ranges_and_opts.<locals>.fr“   r>   r  r‹   r  )r8   r    ÚrÚoptr   r   r   Ú#test_square_aliased_ranges_and_opts]  s    z-TestNQuad.test_square_aliased_ranges_and_optsc                 C   sP   dd„ }dd„ }dd„ }dd„ }d	d
„ }||g}||g}t t|||d�dƒ d S )Nc                 S   r°   r±   r   rº   r   r   r   r    f  r³   z<TestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fc                  W   r°   ©N)r“   r>   r   r£   r   r   r   Ú	fn_range0i  r³   zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range0c                  W   r°   r  r   r£   r   r   r   Ú	fn_range1l  r³   zDTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_range1c                  W   r  r    r   r£   r   r   r   Úfn_opt0o  r³   zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt0c                  W   r  r    r   r£   r   r   r   Úfn_opt1r  r³   zBTestNQuad.test_square_separate_fn_ranges_and_opts.<locals>.fn_opt1r  r‹   r  )r8   r    r  r  r  r   Úrangesrÿ   r   r   r   Ú'test_square_separate_fn_ranges_and_optse  s   z1TestNQuad.test_square_separate_fn_ranges_and_optsc                 C   s@   dd„ }dd„ }dd„ }||g}||g}t t|||d�dƒ d S )	Nc                 S   r°   r±   r   rº   r   r   r   r    z  r³   z;TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fc                  W   r°   r  r   r£   r   r   r   Úfn_range}  r³   zBTestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_rangec                  W   r  r    r   r£   r   r   r   Úfn_opt€  r³   z@TestNQuad.test_square_aliased_fn_ranges_and_opts.<locals>.fn_optr  r‹   r  )r8   r    r#  r$  r!  rÿ   r   r   r   Ú&test_square_aliased_fn_ranges_and_optsy  s   z0TestNQuad.test_square_aliased_fn_ranges_and_optsc                 C   sF   dd„ }t |ddƒ\}}t|ddggd�\}}t||ƒ t||ƒ d S )Nc                 S   s   | d d S r  r   rw   r   r   r   r;   ˆ  r�   z*TestNQuad.test_matching_quad.<locals>.funcr   rÑ   )r!  )r   r   r   )r8   r;   r  ÚreserrÚres2Úreserr2r   r   r   Útest_matching_quad‡  s
   
zTestNQuad.test_matching_quadc                 C   sR   dd„ }t |dddd„ dd„ ƒ\}}t|dd	gd
gƒ\}}t||ƒ t||ƒ d S )Nc                 S   s   | d |d  | |  d S r  r   rÏ   r   r   r   Úfunc2d‘  rt   z/TestNQuad.test_matching_dblquad.<locals>.func2déþÿÿÿrd   c                 S   r°   )Néýÿÿÿr   rw   r   r   r   r¿   ”  rÀ   z1TestNQuad.test_matching_dblquad.<locals>.<lambda>c                 S   r°   )Nr¢   r   rw   r   r   r   r¿   ”  rÀ   r,  r¢   )r+  rd   )r   r   r   )r8   r*  r  r&  r'  r(  r   r   r   Útest_matching_dblquad�  s
   
zTestNQuad.test_matching_dblquadc              
   C   s`   dd„ }t |dddd„ dd„ dd„ d	d„ d
d�}t|tj tjgddgdgd
d�}t||ƒ d S )Nc                 S   s.   | d ||d   | |  d |t  |¡  S r  rù   )rÈ   rÉ   rú   Úc0Úc1r   r   r   Úfunc3dš  s   .z/TestNQuad.test_matching_tplquad.<locals>.func3dr“   rd   c                 S   r°   )Nr+  r   rw   r   r   r   r¿   �  rÀ   z1TestNQuad.test_matching_tplquad.<locals>.<lambda>c                 S   r°   rÂ   r   rw   r   r   r   r¿   �  rÀ   c                 S   s   t j S r    ©rh   r   rÒ   r   r   r   r¿   ž  rÃ   c                 S   s   t jS r    r1  rÒ   r   r   r   r¿   ž  s    r¡   r£   r+  )r“   rd   )r   r   rh   r   r   )r8   r0  r  r'  r   r   r   Útest_matching_tplquad™  s   þ"zTestNQuad.test_matching_tplquadc                 C   s<   zt dd„ ddgddggddid� W d S  ty   J ‚w )Nc                 S   s   | | S r    r   rÒ   r   r   r   r¿   ¥  rÃ   z-TestNQuad.test_dict_as_opts.<locals>.<lambda>r   r>   Úepsrelg-Cëâ6?r  )r   Ú	TypeErrorr@   r   r   r   Útest_dict_as_opts£  s
   (ÿzTestNQuad.test_dict_as_optsN)r[   r\   r]   r5   rò   Ú	fail_slowr  r  r  r  r"  r%  r)  r-  r2  r5  r   r   r   r   rõ     s    



'		
rõ   )r   ))r0   r?   Únumpyrh   r   r   r   r   r   r   r   Únumpy.testingr	   r
   r   r   r5   Ú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,   r^   ro   rõ   r   r   r   r   Ú<module>   s,    $
H    