o
    EbT                     @   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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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ddS )Ni      )npZrandomZrandn r	   r	   E/usr/lib/python3/dist-packages/scipy/fft/tests/test_multithreading.pyx	   s   r   funcworkers   c                 C   s&   || dd}|| |d}t || d S )N   r   r   )r   r   r   ZexpectedZ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                    s|   t j  dd}td}|t fddtdD }W d    n1 s&w   Y  |D ]}t|| q-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   multiprocessingZPoolmapr   ranger   )r   Zexpectpresrr	   r   r
   test_mixed_threads_processes    s    r   c                 C   s   t  }tjdg| d tjtdd tj| dd W d    n1 s&w   Y  tjtdd tj| | d d W d    d S 1 sHw   Y  d S )Nr   r   workers must not be zeromatchr   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  } t dksJ td5 t dksJ td t | ks(J W d    n1 s2w   Y  t dks?J W d    n1 sIw   Y  t dksVJ t|   t dkseJ W d    d S 1 spw   Y  d S )Nr   r   r   )r$   r%   r   Zget_workersset_workers)r*   r	   r	   r
   test_set_get_workers:   s   "r-   c                	   C   s   t jtdd td W d    n1 sw   Y  W d    n1 s'w   Y  t jtdd+ tt  d  W d    n1 sIw   Y  W d    d S W d    d S 1 saw   Y  d S )Nr    r!   r   r#   r   )r'   r(   r)   r   r,   r$   r%   r	   r	   r	   r
   test_set_workers_invalidK   s   "r.   ),Zscipyr   Znumpyr   r'   Znumpy.testingr   r   r$   Zfixturer   ZmarkZparametrizer&   Zfft2Zifft2ZfftnZifftnZrfftZirfftZrfft2Zirfft2ZrfftnZirfftnZhfftZihfftZhfft2Zihfft2ZhfftnZihfftnZdctZidctZdctnZidctndstZidstZdstnZidstnr   r   r   r+   r-   r.   r	   r	   r	   r
   <module>   s,    

