o
    `^hf                     @   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'ejj(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randomrandn r   r   a/home/air/shanriGPT/back/venv/lib/python3.10/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 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   multiprocessing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 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   "r2   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   get_workersset_workers)r1   r   r   r   test_set_get_workers;   s   "r5   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/   r0   r   r4   r+   r,   r   r   r   r   test_set_workers_invalidL   s   "r6   )-scipyr   numpyr	   r.   numpy.testingr   r   r+   fixturer   markparametrizer-   fft2ifft2fftnifftnrfftirfftrfft2irfft2rfftnirfftnhfftihffthfft2ihfft2hfftnihfftndctidctdctnidctndstidstdstnidstnr   r   slowr&   r2   r5   r6   r   r   r   r   <module>   s.    


