3
Od              	   @   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	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 dd Zdd	 Zd
d Zdd Zdd Zdd Zejjdd dd Zdd Z dd Z!dS )!    )PoolN)assert_equalassert_)raisesdeprecated_call)_aligned_zeroscheck_random_state
MapWrappergetfullargspec_no_selfFullArgSpecrng_integersc              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|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dtype	alignmentr   Z__array_interface__hasattrshaper   flagsc_contiguoussizef_contiguous
ValueError)r   r   orderr   err_msgx r!   O/var/www/html/virt/lib64/python3.6/site-packages/scipy/_lib/tests/test__util.pycheck   s"    

z"test__aligned_zeros.<locals>.check                      @   r      r   r   )	r$   r%   r&   r'   r(   r)   r*   r+   N)r   r$   r&   r,   )r   r   N)r   Zuint8float64range)Zniterr#   r   nr   r   r   jr!   r!   r"   test__aligned_zeros   s    


r1   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j	tjj
 }t |} tt| tjj	 d S )Nr$   a	Generator)r   r   typer   randomRandomStateassert_raisesr   r   r3   ZPCG64)ZrsiZrgr!   r!   r"   test_check_random_state4   s    r8   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}| }t|j}t|tddd	gd
dddgdd ii  d S )Nr$   pool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!   )selfr2   bcr   argskwargsr!   r!   r"   _rvsO   s    z5test_getfullargspec_no_self.<locals>._rv_generic._rvs)r%   r&   )__name__
__module____qualname__rA   r!   r!   r!   r"   _rv_genericN   s   rE   r2   r=   r>   r?   r@   r%   r&   r   )r$   )r%   r&   )r	   r
   __init__r   r   __call__objectrA   )pZargspecrE   Zrv_objr!   r!   r"   test_getfullargspec_no_selfG   s    


rJ   c           	   C   s   t jd} t j| }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mapr9   	_own_poollistr   r7   RuntimeError)in_argout_argrI   outr!   r!   r"   test_mapwrapper_serialW   s    



rU   c              C   s.   t d} | jtjddddg W d Q R X d S )Nr%   r$   r&   r'   )r   rN   mathrL   )rI   r!   r!   r"   	test_poolf   s    
rW   c              C   s   t jd} t j| }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 zHtd}t|j}t|jdk |j  |jt j| }tt|| W d |j  X d S )Ng      $@r%   TF)r   rK   rL   r	   r   rP   r   rO   
isinstancer9   PWLrM   r7   	Exceptionr4   r   r   rN   close)rR   rS   rI   rT   Zexcinfoqr!   r!   r"   test_mapwrapper_parallelk   s&    




r]   keyfftifftdiagarccosrandnrandarrayc       	   
   C   s   | dkrddg}n| dkr t }nd}tt| }| dkr<d	}nd
|  }t|d}|| W dQ R X dd |jD }dd |D }d|kst| 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.r_   r`   ra   rb   g      ?g        finfor%   zscipy\.fft.*deprecated.*1.5.0.*z scipy\.%s is deprecated.*2\.0\.0)matchNc             S   s   g | ]}t j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j|qS r!   )rh   ri   basename)rl   fnamer!   r!   r"   rn      s    Z
test__utilrd   rc   )r_   r`   ra   rb   )rd   rc   )r_   r`   )floatgetattrscipyr   rP   AssertionErrorr   r5   r_   rX   r4   )	r^   argr:   rg   depfnames	basenamesrootZfunc_npr!   r!   r"   test_numpy_deprecation   s0    



rz   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jtj} | j	tj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   rs   re   r-   r   rt   r   rf   Zfloat32Zeps
issubclass)r    r!   r!   r"   $test_numpy_deprecation_functionality   s    r|   c              C   sh  t jj } t| ddddd}t j|dks.tt j|dks@t|jd
ksNtt| dddd}t j|dksptt j|dkst|jdkstt| ddddd}t j|d	kstt j|dkst|jdkstt| dddd}t j|d	kstt j|dks
t|jdkstyt jj } W n t	k
r>   d S X t| ddddd}t j|dksftt j|dkszt|jdkstt| dddd}t j|dkstt j|dkst|jdkstt| ddddd}t j|d	kstt j|dkst|jdkstt| dddd}t j|d	ks@tt j|dksTt|jdksdtd S )Nr%      d   T)lowhighr   endpoint)r   r   r   r   Fr'   )r~   )r~   )r~   )r~   )r~   )r~   )r~   )r~   )
r   r5   r6   r   maxrt   minr   Zdefault_rngAttributeError)rngZarrr!   r!   r"   test_rng_integers   sJ    
r   )r_   r`   ra   rb   rc   rd   re   )"multiprocessingr   Zmultiprocessing.poolrY   rh   rV   Znumpyr   Znumpy.testingr   r   Zpytestr   r7   r   rs   Zscipy._lib._utilr   r   r	   r
   r   r   r1   r8   rJ   rU   rW   r]   markZparametrizerz   r|   r   r!   r!   r!   r"   <module>   s(    #$"