3
OdT                 @   s  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Zej	dddd Z
ejjdejejejejejejejejejejejejejejejejejejejejej ej!ej"ej#ej$ej%gejjd	d
dgdd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dS )    )fftN)assert_allclosemodule)Zscopec               C   s   t jjddS )Ni      )nprandomZrandn r   r   W/var/www/html/virt/lib64/python3.6/site-packages/scipy/fft/tests/test_multithreading.pyx	   s    r
   funcworkers      c             C   s&   || dd}|| |d}t || d S )Nr   )r   )r   )r
   r   r   expectedactualr   r   r	   test_threaded_same   s    	r   c             C   s   t j | ddS )Nr   )r   )r   )r
   r   r   r	   _mt_fft   s    r   c                sl   t j  dd}tjd$}|jt fddtdD }W d Q R X x|D ]}t|| qHW t j  dd d S )Nr   )r   c                s   g | ]} qS r   r   ).0_)r
   r   r	   
<listcomp>&   s    z0test_mixed_threads_processes.<locals>.<listcomp>   )r   multiprocessingPoolmapr   ranger   )r
   expectpresrr   )r
   r	   test_mixed_threads_processes    s    (
r   c             C   st   t j }tjdg| d tjtdd tj| dd W d Q R X tjtdd tj| | d d W d Q R X d S )Nr   )r   zworkers must not be zero)matchr   zworkers value out of range)os	cpu_countr   ifftpytestraises
ValueError)r
   cpusr   r   r	   test_invalid_workers.   s    r(   c              C   s   t j } tj dksttjdL tj dks4ttjd tj | ksPtW d Q R X tj dksjtW d Q R X tj dksttj|   tj dkstW d Q R X d S )Nr   r   )r!   r"   r   Zget_workersAssertionErrorset_workers)r'   r   r   r	   test_set_get_workers:   s    r,   c               C   sn   t jtdd tjd W d Q R X W d Q R X t jtdd& tjtj  d  W d Q R X W d Q R X d S )Nzworkers must not be zero)r    r   zworkers value out of ranger   )r$   r%   r&   r   r+   r!   r"   r   r   r   r	   test_set_workers_invalidK   s    r-   r)   ),Zscipyr   Znumpyr   r$   Znumpy.testingr   r   r!   Zfixturer
   markZparametrizer#   Zfft2Zifft2ZfftnZifftnZrfftZirfftZrfft2Zirfft2ZrfftnZirfftnZhfftZihfftZhfft2Zihfft2ZhfftnZihfftndctZidctZdctnZidctndstZidstZdstnZidstnr   r   r   r(   r,   r-   r   r   r   r	   <module>   s$   