U
    -e4                     @   s$  d dl mZ d dlmZ d dlZd dlZd dlZd dlmZ d dl	Z
d dlmZmZ d dlZd dlmZmZ d dlZd dlmZmZmZmZmZmZmZmZmZ dd Zd	d
 Zdd Zdd Z dd Z!dd Z"ej#$dddd Z%dd Z&dd Z'G dd dZ(G dd dZ)G dd  d Z*dS )!    )PoolN)Fraction)assert_equalassert_)raisesdeprecated_call)	_aligned_zeroscheck_random_state
MapWrappergetfullargspec_no_selfFullArgSpecrng_integers_validate_int_rename_parameter_contains_nanc                  C   sr   d} dd }dD ]\}dD ]R}dD ]H}t jt jfD ]6}|ddd	|ffD ] }t| D ]}||||| qPqDq0q qqd S )
N
   c                 S   s   t | |||f}t| |||d}|d kr4t|j}t|jd d | d t| drft|j| | nt|j| f| t|j| |dkrt	|j
j| n@|dkr|jdkrt	|j
j| n|d krt	|j
j| nt d S )N)aligndatar   __len__CF)reprr   npdtypeZ	alignmentr   Z__array_interface__hasattrshaper   flagsc_contiguoussizef_contiguous
ValueError)r   r   orderr   err_msgx r$   \/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/scipy/_lib/tests/test__util.pycheck   s"    

z"test__aligned_zeros.<locals>.check)	                      @   N)r   r'   r)      )r   r   Nr'   r(   r)   )r   uint8float64range)Zniterr&   r   nr!   r   r   jr$   r$   r%   test__aligned_zeros   s    r5   c                  C   s   t d} tt| tjj t | } tt| tjj t d } tt| tjj ttt d ttjdrtj	tj
 }t |} tt| tjj	 d S )Nr'   a	Generator)r	   r   typer   randomRandomStateassert_raisesr    r   r7   ZPCG64)ZrsiZrgr$   r$   r%   test_check_random_state7   s    r<   c               
   C   s   t d} t| j}t|tdgd d dg d i  t| j}t|tddgd d d g d i  G dd d}| }t|j}t|tdd	d
gddddgdd ii  d S )Nr'   pool)r'   funciterablec                   @   s   e Zd ZdddddZdS )z0test_getfullargspec_no_self.<locals>._rv_genericr(   r)   N)r   c                _   s   d S Nr$   )selfr6   bcr   argskwargsr$   r$   r%   _rvsT   s    z5test_getfullargspec_no_self.<locals>._rv_generic._rvs)r(   r)   )__name__
__module____qualname__rF   r$   r$   r$   r%   _rv_genericS   s   rJ   r6   rB   rC   rD   rE   )r(   r)   r   )r
   r   __init__r   r   __call__rF   )pZargspecrJ   Zrv_objr$   r$   r%   test_getfullargspec_no_selfJ   s*    
 
  
   rN   c               	   C   s   t d} t | }td}t|jtk t|jd k t|jdk t	|t j| }t
|| tt td}W 5 Q R X d S )N      $@r'   Fr   )r   arangesinr
   r   _mapfuncmapr=   	_own_poollistr   r;   RuntimeError)in_argout_argrM   outr$   r$   r%   test_mapwrapper_serial]   s    



rZ   c               	   C   s.   t d} | tjddddg W 5 Q R X d S )Nr(   r'   r)   r*   )r   rS   mathrQ   )rM   r$   r$   r%   	test_pooll   s    
r\   c               	   C   s   t d} t | }tdL}|t j| }tt|| t|jdk tt|j	t
 t|jd k	 W 5 Q R X tt}|t j|  W 5 Q R X t|jtk tdB}t|j}t|jdk |  |t j| }tt|| W 5 Q R X d S )NrO   r(   TF)r   rP   rQ   r
   r   rU   r   rT   
isinstancer=   PWLrR   r;   	Exceptionr8   r    r   rS   close)rW   rX   rM   rY   excinfoqr$   r$   r%   test_mapwrapper_parallelq   s"    





rc   key)ifftdiagarccosrandnrandarrayc           	   	   C   s   | dkrddg}n| dkr t }nd}tt| }d|  }t|d}|| W 5 Q R X dd	 |jD }d
d	 |D }d|ks~t| dkrtj}n| dkrtj}nt}t|| }|| ||k	stt	|t
rt	|t
stdS )z9Test that 'from numpy import *' functions are deprecated.)re   rf   rg   g      ?g        finfor(   z scipy\.%s is deprecated.*2\.0\.0matchc                 S   s   g | ]}t j|jd  qS )r   )ospathsplitextfilename).0dr$   r$   r%   
<listcomp>   s     z*test_numpy_deprecation.<locals>.<listcomp>c                 S   s   g | ]}t j|qS r$   )rn   ro   basename)rr   fnamer$   r$   r%   rt      s     Z
test__util)ri   rh   re   N)floatgetattrscipyr   rU   AssertionErrorr   r9   Zfftr]   r8   )	rd   argr>   rm   depfnames	basenamesrootZfunc_npr$   r$   r%   test_numpy_deprecation   s,    



r   c               	   C   s   t   tjdddgtjd} | jtjks.t| jtjks>tttj} | j	ttjj	ksbttjtjksrtt
tjtjstW 5 Q R X d S )Nr'   r(   r)   r   )r   ry   rj   r1   r   rz   r   rk   Zfloat32Zeps
issubclass)r#   r$   r$   r%   $test_numpy_deprecation_functionality   s    r   c                  C   sj  t j } t| ddddd}t |dks.tt |dks@t|jdksNtt| dddd}t |dksptt |dkst|jdkstt| dddd	d}t |d
kstt |dkst|jdkstt| ddd	d}t |d
kstt |dks
t|jdkstzt j } W n t	k
r@   Y d S X t| ddddd}t |dkshtt |dks|t|jdkstt| dddd}t |dkstt |dkst|jdkstt| dddd	d}t |d
kstt |dkst|jdkstt| ddd	d}t |d
ksBtt |dksVt|jdksftd S )Nr(      d   T)lowhighr   endpoint)r   )r   r   r   r   Fr*   )
r   r9   r:   r   maxrz   minr   Zdefault_rngAttributeError)rngZarrr$   r$   r%   test_rng_integers   sJ    
r   c                	   @   sn   e Zd Zejddedede	dgdd Z
ejdde	dgeddgdd Zd	d
 ZdS )TestValidateIntr3   r*   c                 C   s   t |d}|dkstd S )Nr3   r*   )r   rz   rA   r3   r$   r$   r%   test_validate_int   s    
z!TestValidateInt.test_validate_intg      @r'   c              	   C   s(   t jtdd t|d W 5 Q R X d S )Nzn must be an integerrl   r3   )pytestr   	TypeErrorr   r   r$   r$   r%   test_validate_int_bad  s    z%TestValidateInt.test_validate_int_badc              	   C   s*   t jtdd tddd W 5 Q R X d S )Nz$n must be an integer not less than 0rl   r3   r   )r   r   r    r   )rA   r$   r$   r%   test_validate_int_below_min  s    z+TestValidateInt.test_validate_int_below_minN)rG   rH   rI   r   markparametrizer   r0   Zint16rj   r   r   r   r   r$   r$   r$   r%   r      s
   &
 
r   c                   @   sD   e Zd Zedddd Zedddddd Zd	d
 Zdd ZdS )TestRenameParameteroldnewc                 C   s   |S r@   r$   rA   r   r$   r$   r%   old_keyword_still_accepted  s    z.TestRenameParameter.old_keyword_still_acceptedz1.9.0)dep_versionc                 C   s   |S r@   r$   r   r$   r$   r%   old_keyword_deprecated  s    z*TestRenameParameter.old_keyword_deprecatedc              	   C   s   |  d}| j dd}| j dd}||  kr@|  kr@dksFn ttd}tjt|d | j dd W 5 Q R X td}tjt|d | j ddd W 5 Q R X tjt|d | j ddd W 5 Q R X tjt|d | j ddd W 5 Q R X d S )	Nr   r   r   z.old_keyword_still_accepted() got an unexpectedrl   Z
unexpectedz)old_keyword_still_accepted() got multipler   r   )r   rz   reescaper   r   r   )rA   res1res2res3messager$   r$   r%   test_old_keyword_still_accepted  s    
$

z3TestRenameParameter.test_old_keyword_still_acceptedc              
   C   sN  d}|  d}| j dd}tjt|d | j dd}W 5 Q R X ||  kr^|  kr^dksdn ttd}tjt|d | j dd W 5 Q R X td}tjt|d | j ddd W 5 Q R X tjt|d. tjt|d | j ddd W 5 Q R X W 5 Q R X tjt|d. tjt|d | j ddd	 W 5 Q R X W 5 Q R X d S )
Nz+Use of keyword argument `old` is deprecatedr   r   rl   r   z*old_keyword_deprecated() got an unexpectedr   z%old_keyword_deprecated() got multipler   )	r   r   ZwarnsDeprecationWarningrz   r   r   r   r   )rA   Zdep_msgr   r   r   r   r$   r$   r%   test_old_keyword_deprecated0  s(    
$

"z/TestRenameParameter.test_old_keyword_deprecatedN)rG   rH   rI   r   r   r   r   r   r$   r$   r$   r%   r     s   

r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestContainsNaNTestc              	   C   s   t dddt jg}t|dd\}}|s,t|dks8tt|dd\}}|sPt|dks\td}tjt|d t|d	d W 5 Q R X d
}tjt|d t|dd W 5 Q R X d S )Nr'   r(   r)   	propagate)
nan_policyZomitzThe input contains nan valuesrl   raiseznan_policy must be one ofnan)r   rj   r   r   rz   r   r   r    )rA   r   Zcontains_nanr   msgr$   r$   r%   test_policyN  s    zTestContainsNaNTest.test_policyc                 C   s   t dddg}t|d r tt dddt jg}t|d sDtt t jddt jg}t|d sjtt dddt jg}t|d rtt jdddt jgdd}t|d std S )Nr'   r(   r)   r   3objectr   r   rj   r   rz   r   )rA   data1data2data3data4Zdata5r$   r$   r%   test_contains_nan_1da  s    z(TestContainsNaNTest.test_contains_nan_1dc                 C   s   t ddgddgg}t|d r&tt ddgdt jgg}t|d sNtt ddgdt jgg}t|d rvtt jddgdt jggdd}t|d std S )	Nr'   r(   r)   r*   r   1r   r   r   )rA   r   r   r   r   r$   r$   r%   test_contains_nan_2dq  s    z(TestContainsNaNTest.test_contains_nan_2dN)rG   rH   rI   r   r   r   r$   r$   r$   r%   r   L  s   r   )+multiprocessingr   Zmultiprocessing.poolr^   rn   r   r[   	fractionsr   numpyr   Znumpy.testingr   r   r   r   r;   r   ry   Zscipy._lib._utilr   r	   r
   r   r   r   r   r   r   r5   r<   rN   rZ   r\   rc   r   r   r   r   r   r   r   r   r$   r$   r$   r%   <module>   s6   ,#! 
:?