o
    Ö­jt  ã                	   @   s2  d dl Z d dlZd dlmZ d dlmZ d dlmZ e j	 
dg d¢¡Zedd„ ƒZed	d
„ ƒZdd„ Zdd„ Ze j	 d¡dd„ ƒZdd„ Ze j	 d¡e j	 
dddg¡e j	 
dddg¡dd„ ƒƒƒZedd„ ƒZdd„ Zdd „ Ze j	 
d!d"d ejfejd fej ejfejej fg¡d#d$„ ƒZe j	jd%d&„ ƒZdS )'é    N)Úassert_allclose)Úquad_vec)ÚPoolÚ
quadrature)NÚgk15Úgk21Ú	trapezoidc                    s  t  d¡‰ ‡ fdd„}dD ]|}| dkr|dk rqt|| d�}dˆ d	  ˆ d	  }t|d
dfddi|¤Ž\}}t||d
|d� t|d
dfddi|¤Ž\}}t j || ¡|k sXJ ‚t|d
dfdddœ|¤Ž\}}t||d
|d� t|d
dfdddddœ|¤Ž^}}}t||d
|d� qd S )Né
   c                    s   | ˆ  S ©N© ©Úx©Únr   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/integrate/tests/test__quad_vec.pyÚf   s   ztest_quad_vec_simple.<locals>.f©çš™™™™™¹?gü©ñÒMbP?g�íµ ÷Æ°>r   ç-Cëâ6?)Úepsabsr   é   é   r   ÚnormÚmax©ÚrtolÚatolÚ2)ç      à?ç      ð?)r   Úpointsg:Œ0âŽyE>Ti'  )r   ÚepsrelÚfull_outputÚlimit)ÚnpÚarangeÚdictr   r   Úlinalgr   )r   r   r   ÚkwargsÚexactÚresÚerrÚrestr   r   r   Útest_quad_vec_simple   s,   
ýüér-   c              
   C   s˜  dd„ }dD �]
}| dkr|dk rqt d|| d�}t|dtjfi |¤Ž\}}t|tjd	 dt||ƒd
� t|dtj fi |¤Ž\}}t|tj d	 dt||ƒd
� t|tj dfi |¤Ž\}}t|tjd	 dt||ƒd
� t|tjdfi |¤Ž\}}t|tj d	 dt||ƒd
� t|tj tjfi |¤Ž\}}t|tjdt||ƒd
� t|tjtj fi |¤Ž\}}t|tj dt||ƒd
� t|tjtjfi |¤Ž\}}t|ddt||ƒd
� t|tj tj fi |¤Ž\}}t|ddt||ƒd
� t|dtjfddi|¤Ž\}}t|tjd	 dt||ƒd
� qdd„ }tjtj t d	¡ }d}t|tj tjdd|| dd�\}}}|j	dk�s=J ‚t||dt|d| ƒd
� d S )Nc                 S   s   ddt  | ¡d   S ©Nr   r   )r$   Úfloat64r   r   r   r   r   0   ó   z#test_quad_vec_simple_inf.<locals>.fr   r   r   r   )r   r   r   r   r   r   r    )r   g       @c                 S   s   t  | d ¡d| d   S )Nr   r   )r$   Úsinr   r   r   r   r   U   s   gñhãˆµøä>iè  T)r#   r   r   r   r"   r   g      ø?)
r&   r   r$   Úinfr   Úpir   Úer1   Ústatus)r   r   r   r(   r*   r+   r)   Úinfor   r   r   Útest_quad_vec_simple_inf.   s>   
 ÿr7   c                  C   sD   dd„ } d}t  g d¢¡}t| dd|fd�\}}t||ddd	� d S )
Nc                 S   ó   | | |  t  d¡ S ©Né   ©r$   r%   ©r   Úar   r   r   r   a   r0   ztest_quad_vec_args.<locals>.fr   ©r   gUUUUUUõ?gUUUUUU@r   r   )Úargsr   r   )r$   Úarrayr   r   )r   r=   r)   r*   r+   r   r   r   Útest_quad_vec_args`   s
   rA   c                 C   ó   dd| d   S r.   r   r   r   r   r   Ú
_lorenzianj   ó   rC   r	   c               	   C   sœ   t } t| tj tjdddd�\}}t|tjddd� tdƒ�&}dd	„ } t| tj tjdd|jd�\}}t|tjddd� W d   ƒ d S 1 sGw   Y  d S )
Nr   r   é   )r   r   Úworkersr   r   r	   c                 S   rB   r.   r   r   r   r   r   r   u   rD   ztest_quad_vec_pool.<locals>.f)rC   r   r$   r2   r   r3   r   Úmap)r   r*   r+   ÚpoolÚ_r   r   r   Útest_quad_vec_pooln   s   
 "ürJ   c                 C   r8   r9   r;   r<   r   r   r   Ú_func_with_args{   r0   rK   Ú
extra_argsr   )r   rF   r   c                 C   sŽ   t }t g d¢¡}t|dd| |d�\}}t||ddd� t|ƒ�}t|dd| |jd�\}}t||ddd� W d   ƒ d S 1 s@w   Y  d S )Nr>   r   r   )r?   rF   r   r   )rK   r$   r@   r   r   r   rG   )rL   rF   r   r)   r*   r+   rH   r   r   r   Útest_quad_vec_pool_args   s   
"þrM   c                    s@   ‡ fdd„}dg‰ t |dddd| d�}|d jˆ d ksJ ‚d S )	Nc                    s   ˆ d  d7  < | d S )Nr   r   é   r   r   ©Úcountr   r   r   �   s   ztest_num_eval.<locals>.fr   r   r   T)r   r"   r   r   )r   Úneval)r   r   r*   r   rO   r   Útest_num_evalŽ   s   rR   c                  C   sª   dd„ } t | ddddd�\}}}|jdu sJ ‚|jdksJ ‚|jdks%J ‚|jdks,J ‚|jjd d	ks6J ‚|jj|jjd d
d	dfksFJ ‚|jj|jjd fksSJ ‚d S )Nc                 S   s
   t  d¡S )N)r:   r   r   )r$   Úonesr   r   r   r   r   š   s   
ztest_info.<locals>.fr   r   r   T)r   r"   zTarget precision reached.r   r:   )	r   Úsuccessr5   ÚmessagerQ   Ú	intervalsÚshapeÚ	integralsÚerrors)r   r*   r+   r6   r   r   r   Ú	test_info™   s    rZ   c                  C   s\   dd„ } dd„ }t | dddd�\}}}|jd	ksJ ‚t |dddd�\}}}|jd	ks,J ‚d S )
Nc                 S   s   t jS r
   )r$   Únanr   r   r   r   Úf_nan©   s   ztest_nan_inf.<locals>.f_nanc                 S   s   | dk rt jS d|  S )Nr   r   )r$   r2   r   r   r   r   Úf_inf¬   r0   ztest_nan_inf.<locals>.f_infr   r   T)r"   r:   )r   r5   )r\   r]   r*   r+   r6   r   r   r   Útest_nan_inf¨   s   r^   za,b)r   r   c                    s‚   d}|t dd„ |D ƒƒ7 }d‰g ‰d‰ ‡ ‡‡fdd„}t|| ||ddd	� ˆD ]}t t|ƒt |ƒ¡}t ||d k¡s>J ‚q'd S )
N)r   g      Ð?r   g      è?r   c                 s   s   � | ]}| V  qd S r
   r   )Ú.0r   r   r   r   Ú	<genexpr>¾   s   € ztest_points.<locals>.<genexpr>é   r   c                    s6   ˆ ˆ dkrˆ  tƒ ¡ ˆ d7 ‰ ˆd  t| ƒ¡ dS )Nr   r   éÿÿÿÿg        )ÚappendÚsetÚaddÚfloatr   ©rP   Úinterval_setsÚquadrature_pointsr   r   r   Ä   s
   ztest_points.<locals>.fr   )r    r   r#   )Útupler   r$   ÚsearchsortedÚsortedÚall)r=   Úbr    r   ÚpÚjr   rg   r   Útest_points¶   s   
þrq   c                   C   sF   t jdd�� tdd„ dddd� W d   ƒ d S 1 sw   Y  d S )	Nz`quadrature='trapz'`)Úmatchc                 S   s   | S r
   r   r   r   r   r   Ú<lambda>Ù   s    z(test_trapz_deprecation.<locals>.<lambda>r   r   Útrapz)r   )ÚpytestÚdeprecated_callr   r   r   r   r   Útest_trapz_deprecationÖ   s   "ÿrw   )ru   Únumpyr$   Únumpy.testingr   Úscipy.integrater   Úmultiprocessing.dummyr   ÚmarkÚparametrizeÚquadrature_paramsr-   r7   rA   rC   Ú	fail_slowrJ   rK   rM   rR   rZ   r^   r2   rq   Úthread_unsaferw   r   r   r   r   Ú<module>   s>    ÿ

1





ÿ
