o
    tBhO&                     @   s|   d dl mZmZ d dlmZmZ d dlmZ d dlZd dl	Z
d dlZg dZdd Zdd	 ZG d
d dZG dd dZdS )    )next_fast_len_init_nd_shape_and_axes)assert_equalassert_array_equal)raisesN)                  	   
      i  i  c                  C   s   t D ]	} tt| |  qd S )N)_5_smooth_numbersr   r   )n r   r/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/scipy/fft/tests/test_helper.pytest_next_fast_len   s   r   c                 C   s   | }|dk rJ 	 t | d\}}|dkrn|} q	td|d dD ]}	 t | |\}}|dkr/n|} q#q | dks@J d||| d S )Nr   FTr   r      z#x={} is not {}-smooth, remainder={})divmodrangeformat)xr   x_origqrdr   r   r   _assert_n_smooth   s(   
r   c                   @   sN   e Zd Zdd Zdd Zdd Zejje	j
dk ded	d
dd Zdd ZdS )TestNextFastLenc                 C   s\   t jd dd }| D ]}t|}t|d |t|dks!J t|d}t|d qd S )Ni  c                   s   s    t ddE d H  dV  d S )Nr   i  iy )r   r   r   r   r   nums/   s   
z0TestNextFastLen.test_next_fast_len.<locals>.nums   FTr
   )nprandomseedr   r   )selfr    r   mr   r   r   r   ,   s   


z"TestNextFastLen.test_next_fast_lenc                 C   sL   t jt jt jt jt jt jg}|D ]}|d}t|}t|tt	| qd S )Ni90  )
r"   int16int32int64uint16uint32uint64r   r   int)r%   ITYPESitypr   testNr   r   r   test_np_integers;   s   z TestNextFastLen.test_np_integersc                 C   sJ   ddddddddddd	d
dddd}|  D ]\}}tt|d| qd S )Nr   r   r   r	   r
   r   r            i       @)r   r   r   r	   r
   r      r      r2   r3      i  r5   r6   Titemsr   r   r%   hamsr   yr   r   r   testnext_fast_len_smallB   s   
z'TestNextFastLen.testnext_fast_len_smalll        z$Hamming Numbers too large for 32-bitT)reasonr   strictc                 C   s   i ddddddddddddd	d
dddddddddddddddddddddddddddddddd }|  D ]\}}tt|d!| qGd S )"Nihihi i=ui+2i,2i  B3l      l     l   s' l   >9l   >9l         l      fn l     fn l    >Uko l     q. l    q. l   xQ+t0 l      ! l     ! l    dopL? l   hRl   hR   2 f;               `71Y!l    ("               X l         	 )rB   l   2 f;rC   l   rD   l    `71Y!rE   l          l   X rF   l   !X Tr:   r<   r   r   r   testnext_fast_len_bigJ   sd   	
z%TestNextFastLen.testnext_fast_len_bigc                 C   s,   t ddddks
J t ddddksJ d S )Nr!   T)real   r7   F)targetrH   )r   )r%   r   r   r   test_keyword_argso   s   z!TestNextFastLen.test_keyword_argsN)__name__
__module____qualname__r   r1   r?   pytestmarkxfailsysmaxsize
ValueErrorrG   rK   r   r   r   r   r   *   s    
"r   c                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )Test_init_nd_shape_and_axesc                 C   N   t d}d }d }t g }t g }t|||\}}t|| t|| d S )Nr	   r"   arrayr   r   r%   r   shapeaxesshape_expectedaxes_expected	shape_resaxes_resr   r   r   test_py_0d_defaultsv      



z/Test_init_nd_shape_and_axes.test_py_0d_defaultsc                 C   rV   )Ng      @rW   rY   r   r   r   test_np_0d_defaults   ra   z/Test_init_nd_shape_and_axes.test_np_0d_defaultsc                 C   sV   t g d}d }d }t dg}t dg}t|||\}}t|| t|| d S )Nr   r   r   r   r   rW   rY   r   r   r   test_py_1d_defaults      
z/Test_init_nd_shape_and_axes.test_py_1d_defaultsc                 C   sV   t ddd}d }d }t dg}t dg}t|||\}}t|| t|| d S )Nr   r   皙?r   )r"   arangerX   r   r   rY   r   r   r   test_np_1d_defaults   re   z/Test_init_nd_shape_and_axes.test_np_1d_defaultsc                 C   sb   t g dg dg}d }d }t ddg}t ddg}t|||\}}t|| t|| d S )N)r   r   r   r	   )r
   r   r7   r   r   r	   r   r   rW   rY   r   r   r   test_py_2d_defaults   s   

z/Test_init_nd_shape_and_axes.test_py_2d_defaultsc                 C   sb   t ddddd}d }d }t ddg}t ddg}t|||\}}t|| t|| d S )Nr   r   rf   r
   r   )r"   rg   reshaperX   r   r   rY   r   r   r   test_np_2d_defaults   s   
z/Test_init_nd_shape_and_axes.test_np_2d_defaultsc                 C   sZ   t g d}d }d }t g d}t g d}t|||\}}t|| t|| d S )Nr   r   r
   r   r	   r   r   r   r   r	   r"   zerosrX   r   r   rY   r   r   r   test_np_5d_defaults   s   
z/Test_init_nd_shape_and_axes.test_np_5d_defaultsc                 C   s^   t g d}g d}d }t g d}t g d}t|||\}}t|| t|| d S )Nrl   )r   rq   r   r	   )r   r   r
   r   r	   rm   rn   rY   r   r   r   test_np_5d_set_shape   s   
z0Test_init_nd_shape_and_axes.test_np_5d_set_shapec                 C   s^   t g d}d }g d}t g d}t g d}t|||\}}t|| t|| d S )Nrl   )r	   r   r   )r	   r   r
   rn   rY   r   r   r   test_np_5d_set_axes   s   
z/Test_init_nd_shape_and_axes.test_np_5d_set_axesc                 C   sb   t g d}g d}g d}t g d}t g d}t|||\}}t|| t|| d S )Nrl   )r   rq   r   )r   r   r   )r   r   r   rn   rY   r   r   r   test_np_5d_set_shape_axes   s   
z5Test_init_nd_shape_and_axes.test_np_5d_set_shape_axesc                 C   s<   t d}t|dd d\}}t|g d t|g d d S )N)r   r   r	   r
   )r
   r
   r
   rZ   r[   rc   )r"   ro   r   r   )r%   r   rZ   r[   r   r   r   test_shape_axes_subset   s   
z2Test_init_nd_shape_and_axes.test_shape_axes_subsetc                 C   s  t d}ttdd t|d ddgddggd W d    n1 s#w   Y  ttdd t|d g dd W d    n1 sBw   Y  ttd	d t|d dgd W d    n1 s`w   Y  ttd	d t|d d
gd W d    n1 s~w   Y  ttdd t|d ddgd W d    n1 sw   Y  ttdd t|ddgddggd d W d    n1 sw   Y  ttdd t|g dd d W d    n1 sw   Y  ttdd tt g dg ddgd W d    n	1 sw   Y  ttdd t|dgd d W d    n	1 s$w   Y  ttdd t|d
d d W d    d S 1 sCw   Y  d S )Nr   z-axes must be a scalar or iterable of integers)matchr   r   r	   ru   )g      ?g       @g      @g      @z$axes exceeds dimensionality of inputzall axes must be uniquer   z.shape must be a scalar or iterable of integerszBwhen given, axes and shape arguments have to be of the same length)r   r   r   r   rc   z1invalid number of data points \(\[0\]\) specifiedz2invalid number of data points \(\[-2\]\) specified)r"   ro   assert_raisesrT   r   )r%   r   r   r   r   test_errors   sZ   

$z'Test_init_nd_shape_and_axes.test_errorsN)rL   rM   rN   r`   rb   rd   rh   ri   rk   rp   rr   rs   rt   rv   rz   r   r   r   r   rU   t   s    rU   )scipy.fft._helperr   r   numpy.testingr   r   rO   r   ry   numpyr"   rR   r   r   r   r   rU   r   r   r   r   <module>   s    J