a
    ReT                     @   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      )nprandomZrandn r
   r
   W/var/www/sunrise/env/lib/python3.9/site-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   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                    s|   t j  dd}td.}|t fddtdD }W d    n1 sL0    Y  |D ]}t|| qZt j  dd d S )Nr   r   c                    s   g | ]} qS r
   r
   ).0_r   r
   r   
<listcomp>&       z0test_mixed_threads_processes.<locals>.<listcomp>   )r   multiprocessingZPoolmapr   ranger   )r   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 sL0    Y  tjtdd$ tj| | d d W d    n1 s0    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    ,r0   c               	   C   s   t  } t dksJ tdj t dks4J td  t | ksPJ W d    n1 sd0    Y  t dks~J W d    n1 s0    Y  t dksJ t|    t dksJ W d    n1 s0    Y  d S )Nr   r   r   )r)   r*   r   Zget_workersset_workers)r/   r
   r
   r   test_set_get_workers:   s    ..r2   c                	   C   s   t jtdd: td W d    n1 s00    Y  W d    n1 sN0    Y  t jtddD tt  d  W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr%   r&   r   r(   r   )r,   r-   r.   r   r1   r)   r*   r
   r
   r
   r   test_set_workers_invalidK   s    <r3   ),Zscipyr   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$   r0   r2   r3   r
   r
   r
   r   <module>   s*   

