o
    &?e                  	   @   s
  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dd Zdd Z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dS )%    N)assert_allclose)quad_vec)Pool
quadrature)Ngk15Z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
   e/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/scipy/integrate/tests/test__quad_vec.pyf   s   ztest_quad_vec_simple.<locals>.f皙?gMbP?gư>r   -C6?)epsabsr         r   normmaxZrtolZatol2)      ?      ?)r   pointsg:0yE>Ti'  )r   Zepsrelfull_outputlimit)nparangedictr   r   Z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    Z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   gh㈵>i  T)r   r   r   r   r   r   g      ?)
r"   r   r    infr   pir   er+   status)r   r   r   r#   r%   r&   r$   infor
   r
   r   test_quad_vec_simple_inf.   s>   
 r1   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   r*   ztest_quad_vec_args.<locals>.fr   r   gUUUUUU?gUUUUUU@r   r   )argsr   r   )r    arrayr   r   )r   r7   r$   r%   r&   r
   r
   r   test_quad_vec_args`   s
   r;   c                 C      dd| d   S r)   r
   r   r
   r
   r   
_lorenzianj      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   r<   r)   r
   r   r
   r
   r   r   t   r>   ztest_quad_vec_pool.<locals>.f)r=   r   r    r,   r   r-   r   map)r   r%   r&   poolr
   r
   r   test_quad_vec_pooln   s   
 "rC   c                 C   r2   r3   r5   r6   r
   r
   r   _func_with_argsz   r*   rD   
extra_argsr   )r   r@   r   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 )Nr8   r   r   )r9   r@   r   r   )rD   r    r:   r   r   r   rA   )rE   r@   r   r$   r%   r&   rB   r
   r
   r   test_quad_vec_pool_args~   s   
"rF   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
   rH   r   test_num_eval   s   rK   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)r4   r   r   )r    Zonesr   r
   r
   r   r      s   
ztest_info.<locals>.fr   r   r   T)r   r   zTarget precision reached.r   r4   )	r   successr/   messagerJ   Z	intervalsshapeZ	integralserrors)r   r%   r&   r0   r
   r
   r   	test_info   s    rP   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    r,   r   r
   r
   r   f_inf   r*   ztest_nan_inf.<locals>.f_infr   r   T)r   r4   )r   r/   )rR   rS   r%   r&   r0   r
   r
   r   test_nan_inf   s   rT   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   rI   Zinterval_setsZquadrature_pointsr
   r   r      s
   ztest_points.<locals>.fr   )r   r   r   )tupler   r    Zsearchsortedsortedall)r7   br   r   pjr
   r]   r   test_points   s   
rd   )Zpytestnumpyr    Znumpy.testingr   Zscipy.integrater   Zmultiprocessing.dummyr   markZparametrizeZquadrature_paramsr(   r1   r;   r=   rC   rD   rF   rK   rP   rT   r,   rd   r
   r
   r
   r   <module>   s6    

1


