a
    BCCfT                     @   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)scopec                   C   s   t jddS )Ni      )nprandomZrandn r   r   _/var/www/html/django/DPS/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    ,r1   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)r0   r   r   r   test_set_get_workers:   s    ..r3   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   r2   r*   r+   r   r   r   r   test_set_workers_invalidK   s    <r4   ),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%   r1   r3   r4   r   r   r   r   <module>   s*   

