B
    0d"                 @   s   d dl mZ d dlm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 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%dS )    )PoolN)Fraction)assert_equalassert_)raisesdeprecated_call)_aligned_zeroscheck_random_state
MapWrappergetfullargspec_no_selfFullArgSpecrng_integers_validate_intc              C   s   d} dd }xxdD ]p}xjdD ]b}x\dD ]T}xNt jt jgD ]>}x8|ddd	|fgD ]$}xt| D ]}||||| q\W qNW q8W q&W qW qW 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"   M/var/www/html/venv/lib/python3.7/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    


r3   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   r5   ZPCG64)ZrsiZrgr"   r"   r#   test_check_random_state5   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"   )selfr4   bcr   argskwargsr"   r"   r#   _rvsR   s    z5test_getfullargspec_no_self.<locals>._rv_generic._rvs)r&   r'   )__name__
__module____qualname__rC   r"   r"   r"   r#   _rv_genericQ   s   rG   r4   r?   r@   rA   rB   )r&   r'   r   )r
   r   __init__r   r   __call__rC   )pZargspecrG   Zrv_objr"   r"   r#   test_getfullargspec_no_selfH   s    



rK   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 d Q R X d S )Ng      $@r%   Fr   )r   arangesinr
   r   _mapfuncmapr;   	_own_poollistr   r9   RuntimeError)in_argout_argrJ   outr"   r"   r#   test_mapwrapper_serial[   s    



rV   c           	   C   s.   t d} | tjddddg W d Q R X d S )Nr&   r%   r'   r(   )r   rO   mathrM   )rJ   r"   r"   r#   	test_poolj   s    
rX   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 d Q R X tt}|t j|  W d Q R X t|jtk tdB}t|j}t|jdk |  |t j| }tt|| W d Q R X d S )Ng      $@r&   TF)r   rL   rM   r
   r   rQ   r   rP   
isinstancer;   PWLrN   r9   	Exceptionr6   r   r   rO   close)rS   rT   rJ   rU   excinfoqr"   r"   r#   test_mapwrapper_parallelo   s"    





r_   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 d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.)ra   rb   rc   g      ?g        finfor&   z scipy\.%s is deprecated.*2\.0\.0)matchNc             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"   )ri   rj   basename)rm   fnamer"   r"   r#   ro      s    Z
test__util)re   rd   ra   )floatgetattrscipyr   rQ   AssertionErrorr   r7   ZfftrY   r6   )	r`   argr<   rh   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 d Q R X d S )Nr%   r&   r'   )r   )r   rt   rf   r/   r   ru   r   rg   Zfloat32Zeps
issubclass)r!   r"   r"   r#   $test_numpy_deprecation_functionality   s    r}   c              C   sh  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yt j } W n t	k
r>   d S X t| ddddd}t |dksftt |dkszt|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s@tt |dksTt|jdksdtd S )Nr&      d   T)lowhighr   endpoint)r   )r   r   r   r   Fr(   )
r   r7   r8   r   maxru   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 )TestValidateIntr1   r(   c             C   s   t |d}|dkstd S )Nr1   r(   )r   ru   )r>   r1   r"   r"   r#   test_validate_int   s    
z!TestValidateInt.test_validate_intg      @r%   c          	   C   s(   t jtdd t|d W d Q R X d S )Nzn must be an integer)rh   r1   )pytestr   	TypeErrorr   )r>   r1   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 d Q R X d S )Nz$n must be an integer not less than 0)rh   r1   r   )r   r   r   r   )r>   r"   r"   r#   test_validate_int_below_min  s    z+TestValidateInt.test_validate_int_below_minN)rD   rE   rF   r   markparametrizer   r.   Zint16rf   r   r   r   r   r"   r"   r"   r#   r      s   0*r   )&multiprocessingr   Zmultiprocessing.poolrZ   ri   rW   	fractionsr   numpyr   Znumpy.testingr   r   r   r   r9   r   rt   Zscipy._lib._utilr   r	   r
   r   r   r   r   r3   r:   rK   rV   rX   r_   r   r   r{   r}   r   r   r"   r"   r"   r#   <module>   s*   $#!: