o
    i]                     @   s  d dl mZmZ d dlZd dlmZmZ d dlZd dlm	Z
 d dlmZmZmZmZmZmZmZmZ eeeedZdd ed	D Zd
d ed	D ZeeeedZeeeedZed Zdd Zdd Zdd Zdd Z dd Z!dd Z"dddZ#dddZ$dddZ%dd d!Z&G d"d# d#Z'G d$d% d%Z(G d&d' d'e(Z)G d(d) d)e(Z*G d*d+ d+e(Z+G d,d- d-e(Z,G d.d/ d/e)Z-G d0d1 d1e)Z.G d2d3 d3e)Z/G d4d5 d5e*Z0G d6d7 d7e*Z1G d8d9 d9e*Z2G d:d; d;e+Z3G d<d= d=e+Z4G d>d? d?e+Z5G d@dA dAe,Z6G dBdC dCe,Z7G dDdE dEe,Z8G dFdG dGZ9G dHdI dIe9Z:G dJdK dKe9Z;G dLdM dMe9Z<G dNdO dOe9Z=G dPdQ dQe9Z>G dRdS dSe9Z?G dTdU dUe9Z@G dVdW dWe9ZAG dXdY dYe9ZBG dZd[ d[e9ZCG d\d] d]e9ZDG d^d_ d_e9ZEG d`da daZFG dbdc dceFZGG ddde deeFZHG dfdg dgeGZIG dhdi dieGZJG djdk dkeGZKG dldm dmeFZLG dndo doeFZMG dpdq dqeFZNG drds dseFZOG dtdu dueFZPG dvdw dweFZQG dxdy dyeHZRG dzd{ d{eHZSG d|d} d}eHZTG d~d dZUG dd deUZVG dd deUZWG dd deUZXG dd deUZYG dd deUZZG dd deUZ[G dd deUZ\G dd deUZ]G dd deUZ^G dd deUZ_G dd deUZ`G dd deUZaG dd dZbG dd dZcdS )    )joindirnameN)assert_array_almost_equalassert_equal)raises)dctidctdstidstdctnidctndstnidstnztest.npzc                 C      g | ]}t d |  qS )zx%dMDATA.0i r   c/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_real_transforms.py
<listcomp>       r      c                 C   r   )zy%dr   r   r   r   r   r      r   zfftw_double_ref.npzzfftw_single_ref.npzsizesc                 C   l   t d|d ||}t t j|}|t jkrt}n|t jkr#t}nt |d| |f  |}|||fS )Nr      z	dct_%d_%d	nplinspaceastyperesult_typefloat32doubleFFTWDATA_DOUBLEFFTWDATA_SINGLE
ValueErrortypesizedtxdatayr   r   r   fftw_dct_ref      


r.   c                 C   r   )Nr   r   z	dst_%d_%dr   r'   r   r   r   fftw_dst_ref'   r/   r0   c                 K      t j| dd} t| jd D ]}t| |ddf fi || |ddf< qt| jd D ]}t| dd|f fi || dd|f< q,| S )z,Calculate reference values for testing dct2.Tcopyr   Nr   )r   arrayrangeshaper   r+   kwargsrowcolr   r   r   
dct_2d_ref4      **r;   c                 K   r1   )z-Calculate reference values for testing idct2.Tr2   r   Nr   )r   r4   r5   r6   r   r7   r   r   r   idct_2d_ref>   r<   r=   c                 K   r1   )z,Calculate reference values for testing dst2.Tr2   r   Nr   )r   r4   r5   r6   r	   r7   r   r   r   
dst_2d_refH   r<   r>   c                 K   r1   )z-Calculate reference values for testing idst2.Tr2   r   Nr   )r   r4   r5   r6   r
   r7   r   r   r   idst_2d_refR   r<   r?   c           	   
   C   s2  t j| dd} t| }|d }t |}d\}}|dkr*t d| }t d| }t|D ]H}td|d D ]}||  || |  t t j| | |  7  < q7||  || d  7  < ||  || |d   |d	 dkrqdnd
 7  < q.|dkr|d  dt d	 9  < ||d   dt d	 9  < |S )z/Calculate textbook definition version of DCT-I.Tr2   r   )r      ortho      ?       @r   r@   )r   r4   lenzerossqrtr5   cospi)	r+   normNMr-   m0mknr   r   r   
naive_dct1\   s"   
22rQ   c                 C   s   t j| dd} t| }|d }t |}t|D ]%}t|D ]}||  d| |  t t j|d  |d  |  7  < qq|dkrK|t d| 9 }|S )z0Calculate textbook definition version  of DST-I.Tr2   r   r@   rB   rA         ?r   r4   rE   rF   r5   sinrI   rG   )r+   rJ   rK   rL   r-   rO   rP   r   r   r   
naive_dst1q   s   
:rU   c                 C      t j| dd} t| }t |}t|D ]#}t|D ]}||  | | t t j|d  |d  |  7  < qq|dkrG|t d| 9 }|S |d9 }|S )z0Calculate textbook definition version of DCT-IV.Tr2   rR   rA   rC   r@   )r   r4   rE   rF   r5   rH   rI   rG   r+   rJ   rK   r-   rO   rP   r   r   r   
naive_dct4      
6rX   c                 C   rV   )z0Calculate textbook definition version of DST-IV.Tr2   rR   rA   rC   r@   rS   rW   r   r   r   
naive_dst4   rY   rZ   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestComplexc                 C   s8   t dtjdtjd }dt td }t|| d S )N              ?   dtype)r   r   arange	complex64r   selfr-   r+   r   r   r   test_dct_complex64      zTestComplex.test_dct_complex64c                 C   2   t tdd }dt td }t|| d S Nr]   r\   )r   r   r`   r   rb   r   r   r   test_dct_complex      zTestComplex.test_dct_complexc                 C   rf   rg   )r   r   r`   r   rb   r   r   r   test_idct_complex   ri   zTestComplex.test_idct_complexc                 C   s8   t tjdtjdd }dt td }t|| d S )Nr]   r^   r\   )r	   r   r`   ra   r   rb   r   r   r   test_dst_complex64   re   zTestComplex.test_dst_complex64c                 C   rf   rg   )r	   r   r`   r   rb   r   r   r   test_dst_complex   ri   zTestComplex.test_dst_complexc                 C   rf   rg   )r
   r   r`   r   rb   r   r   r   test_idst_complex   ri   zTestComplex.test_idst_complexN)	__name__
__module____qualname__rd   rh   rj   rk   rl   rm   r   r   r   r   r[      s    r[   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_TestDCTBasec                 C      d | _ d| _d | _d S N   rdtdecr(   rc   r   r   r   setup_method      
z_TestDCTBase.setup_methodc                 C   h   t D ]/}t| j|| j\}}}t|| jd}t|j| t|t	| |t	| | j
d| d qd S Nr(   Size %d faileddecimalerr_msg)FFTWDATA_SIZESr.   r(   rv   r   r   r_   r   r   maxrw   )rc   r   r+   yrr*   r-   r   r   r   test_definition      z_TestDCTBase.test_definitionc                 C   s   d}dD ]S}t j||}t|| jd}t|D ]}t|| t|| | jd| jd q|j}t|d| jd}t|D ]}t|d d |f t|d d |f | jd| jd q;qd S )Nr@   )   r   	          @   r}   r   r   )axisr(   )	r   randomrandnr   r(   r5   r   rw   T)rc   ntr   r+   r-   jr   r   r   	test_axis   s    (z_TestDCTBase.test_axisN)rn   ro   rp   ry   r   r   r   r   r   r   rq      s    rq   c                   @      e Zd Zdd ZdS )_TestDCTIBasec                 C   x   t t j| j}tD ]/}t j|| jd}t|ddd}t|dd}t|j	| t
|t | |t | | jd q
d S Nr^   rA   r   rJ   r(   rJ   r   )r   r!   r"   rv   Xr4   r   rQ   r   r_   r   r   rw   rc   r*   xrr+   r-   y2r   r   r   test_definition_ortho      &z#_TestDCTIBase.test_definition_orthoNrn   ro   rp   r   r   r   r   r   r          r   c                   @   r   )_TestDCTIIBasec                 C   s`   t t j| j}tttD ] \}}t j||d}t|ddd}t	|j
| t||| jd qd S )Nr^   rA   r@   r   r   )r   r!   r"   rv   zipr   Yr4   r   r   r_   r   rw   )rc   r*   r   r   r+   r-   r   r   r   test_definition_matlab   s   z%_TestDCTIIBase.test_definition_matlabN)rn   ro   rp   r   r   r   r   r   r      r   r   c                   @   r   )_TestDCTIIIBasec                 C   sf   t t j| j}tD ]&}t j|| jd}t|ddd}t|ddd}t|j| t	||| j
d q
d S )Nr^   rA   r@   r      r   )r   r!   r"   rv   r   r4   r   r   r_   r   rw   )rc   r*   r   r+   r-   xir   r   r   r      s   z%_TestDCTIIIBase.test_definition_orthoNr   r   r   r   r   r      r   r   c                   @   r   )_TestDCTIVBasec                 C   r   Nr^   rA      r   r   r   )r   r!   r"   rv   r   r4   r   rX   r   r_   r   r   rw   r   r   r   r   r     r   z$_TestDCTIVBase.test_definition_orthoNr   r   r   r   r   r      r   r   c                   @   r   )TestDCTIDoublec                 C      t j| _d| _d| _d S N
   r   r   r#   rv   rw   r(   rx   r   r   r   ry        
zTestDCTIDouble.setup_methodNrn   ro   rp   ry   r   r   r   r   r     r   r   c                   @   r   )TestDCTIFloatc                 C   r   Nr   r   r   r"   rv   rw   r(   rx   r   r   r   ry     r   zTestDCTIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDCTIIntc                 C      t | _d| _d| _d S Nr]   r   intrv   rw   r(   rx   r   r   r   ry     rz   zTestDCTIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDCTIIDoublec                 C   r   Nr   r@   r   rx   r   r   r   ry   "  r   zTestDCTIIDouble.setup_methodNr   r   r   r   r   r   !  r   r   c                   @   r   )TestDCTIIFloatc                 C   r   Nr]   r@   r   rx   r   r   r   ry   )  r   zTestDCTIIFloat.setup_methodNr   r   r   r   r   r   (  r   r   c                   @   r   )TestDCTIIIntc                 C   r   r   r   rx   r   r   r   ry   0  rz   zTestDCTIIInt.setup_methodNr   r   r   r   r   r   /  r   r   c                   @   r   )TestDCTIIIDoublec                 C   r   Nrt   r   r   rx   r   r   r   ry   7  r   zTestDCTIIIDouble.setup_methodNr   r   r   r   r   r   6  r   r   c                   @   r   )TestDCTIIIFloatc                 C   r   Nr]   r   r   rx   r   r   r   ry   >  r   zTestDCTIIIFloat.setup_methodNr   r   r   r   r   r   =  r   r   c                   @   r   )TestDCTIIIIntc                 C   r   r   r   rx   r   r   r   ry   E  rz   zTestDCTIIIInt.setup_methodNr   r   r   r   r   r   D  r   r   c                   @   r   )TestDCTIVDoublec                 C   r   )N   r   r   rx   r   r   r   ry   L  r   zTestDCTIVDouble.setup_methodNr   r   r   r   r   r   K  r   r   c                   @   r   )TestDCTIVFloatc                 C   r   r   r   rx   r   r   r   ry   S  r   zTestDCTIVFloat.setup_methodNr   r   r   r   r   r   R  r   r   c                   @   r   )TestDCTIVIntc                 C   r   r   r   rx   r   r   r   ry   Z  rz   zTestDCTIVInt.setup_methodNr   r   r   r   r   r   Y  r   r   c                   @      e Zd Zdd Zdd ZdS )_TestIDCTBasec                 C   rr   rs   ru   rx   r   r   r   ry   a  rz   z_TestIDCTBase.setup_methodc                 C   s   t D ]C}t| j|| j\}}}t|| jd}| jdkr$|d|d   }n|d|  }t|j| t|t	| |t	| | j
d| d qd S Nr}   r   r@   r~   r   )r   r.   r(   rv   r   r   r_   r   r   r   rw   rc   r   r   r   r*   r+   r   r   r   r   f     
z_TestIDCTBase.test_definitionNrn   ro   rp   ry   r   r   r   r   r   r   `      r   c                   @   r   )TestIDCTIDoublec                 C   r   r   r   rx   r   r   r   ry   x  r   zTestIDCTIDouble.setup_methodNr   r   r   r   r   r   w  r   r   c                   @   r   )TestIDCTIFloatc                 C   r   r   r   rx   r   r   r   ry     r   zTestIDCTIFloat.setup_methodNr   r   r   r   r   r   ~  r   r   c                   @   r   )TestIDCTIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDCTIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIDoublec                 C   r   r   r   rx   r   r   r   ry     r   zTestIDCTIIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIFloatc                 C   r   r   r   rx   r   r   r   ry     r   zTestIDCTIIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDCTIIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIIDoublec                 C   r   r   r   rx   r   r   r   ry     r   zTestIDCTIIIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIIFloatc                 C   r   r   r   rx   r   r   r   ry     r   zTestIDCTIIIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIIIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDCTIIIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIVDoublec                 C   r   Nr   r   r   rx   r   r   r   ry     r   zTestIDCTIVDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIVFloatc                 C   r   Nr]   r   r   rx   r   r   r   ry     r   zTestIDCTIVFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDCTIVIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDCTIVInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )_TestDSTBasec                 C      d | _ d | _d | _d S Nru   rx   r   r   r   ry     rz   z_TestDSTBase.setup_methodc                 C   r{   r|   )r   r0   r(   rv   r	   r   r_   r   r   r   rw   )rc   r   r   r   r*   r-   r   r   r   r     r   z_TestDSTBase.test_definitionNr   r   r   r   r   r     r   r   c                   @   r   )_TestDSTIBasec                 C   r   r   )r   r!   r"   rv   r   r4   r	   rU   r   r_   r   r   rw   r   r   r   r   r     r   z#_TestDSTIBase.test_definition_orthoNr   r   r   r   r   r     r   r   c                   @   r   )_TestDSTIVBasec                 C   sd   t t j| j}tD ]%}t j|| jd}t|ddd}t|dd}t|j	| t
||| jd q
d S r   )r   r!   r"   rv   r   r4   r	   rZ   r   r_   r   rw   r   r   r   r   r     s   z$_TestDSTIVBase.test_definition_orthoNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIDoublec                 C   r   Nr   r   r   rx   r   r   r   ry     r   zTestDSTIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIFloatc                 C   r   r   r   rx   r   r   r   ry     r   zTestDSTIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestDSTIInt.setup_methodNr   r   r   r   r   r      r   r   c                   @   r   )TestDSTIIDoublec                 C   r   Nrt   r@   r   rx   r   r   r   ry     r   zTestDSTIIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIIFloatc                 C   r   N   r@   r   rx   r   r   r   ry     r   zTestDSTIIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestDSTIIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIIIDoublec                 C   r   r   r   rx   r   r   r   ry     r   zTestDSTIIIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestDSTIIIFloatc                 C   r   Nr   r   r   rx   r   r   r   ry   $  r   zTestDSTIIIFloat.setup_methodNr   r   r   r   r   r   #  r   r   c                   @   r   )TestDSTIIIIntc                 C   r   r   r   rx   r   r   r   ry   +  rz   zTestDSTIIIInt.setup_methodNr   r   r   r   r   r   *  r   r   c                   @   r   )TestDSTIVDoublec                 C   r   r   r   rx   r   r   r   ry   2  r   zTestDSTIVDouble.setup_methodNr   r   r   r   r   r   1  r   r   c                   @   r   )TestDSTIVFloatc                 C   s   t j| _d| _d| _d S )Nr   r   rx   r   r   r   ry   9  r   zTestDSTIVFloat.setup_methodNr   r   r   r   r   r   8  r   r   c                   @   r   )TestDSTIVIntc                 C   r   r   r   rx   r   r   r   ry   @  rz   zTestDSTIVInt.setup_methodNr   r   r   r   r   r   ?  r   r   c                   @   r   )_TestIDSTBasec                 C   r   r   ru   rx   r   r   r   ry   G  rz   z_TestIDSTBase.setup_methodc                 C   s   t D ]C}t| j|| j\}}}t|| jd}| jdkr$|d|d   }n|d|  }t|j| t|t	| |t	| | j
d| d qd S r   )r   r0   r(   rv   r
   r   r_   r   r   r   rw   r   r   r   r   r   L  r   z_TestIDSTBase.test_definitionNr   r   r   r   r   r   F  r   r   c                   @   r   )TestIDSTIDoublec                 C   r   r   r   rx   r   r   r   ry   ^  r   zTestIDSTIDouble.setup_methodNr   r   r   r   r   r   ]  r   r   c                   @   r   )TestIDSTIFloatc                 C   r   r   r   rx   r   r   r   ry   e  r   zTestIDSTIFloat.setup_methodNr   r   r   r   r   r   d  r   r   c                   @   r   )TestIDSTIIntc                 C   r   r   r   rx   r   r   r   ry   l  rz   zTestIDSTIInt.setup_methodNr   r   r   r   r   r   k  r   r   c                   @   r   )TestIDSTIIDoublec                 C   r   r   r   rx   r   r   r   ry   s  r   zTestIDSTIIDouble.setup_methodNr   r   r   r   r   r   r  r   r   c                   @   r   )TestIDSTIIFloatc                 C   r   r   r   rx   r   r   r   ry   z  r   zTestIDSTIIFloat.setup_methodNr   r   r   r   r   r   y  r   r   c                   @   r   )TestIDSTIIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDSTIIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIIIDoublec                 C   r   r   r   rx   r   r   r   ry     r   zTestIDSTIIIDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIIIFloatc                 C   r   Nr   r   r   rx   r   r   r   ry     r   zTestIDSTIIIFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIIIIntc                 C   r   r   r   rx   r   r   r   ry     rz   zTestIDSTIIIInt.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIVDoublec                 C   r   r   r   rx   r   r   r   ry     r   zTestIDSTIVDouble.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIVFloatc                 C   r   Nr   r   r   rx   r   r   r   ry     r   zTestIDSTIVFloat.setup_methodNr   r   r   r   r   r     r   r   c                   @   r   )TestIDSTIVntc                 C   r   r  r   rx   r   r   r   ry     rz   zTestIDSTIVnt.setup_methodNr   r   r   r   r   r    r   r  c                   @   sL   e Zd ZdZejejgZdd Zdd Z	dd Z
dd	 Zd
d Zdd ZdS )TestOverwritezCheck input overwrite behavior.c                 K   sT   |  }	||	|||||d d|j|j|j|||f }
|s(t|	|d|
 d d S d S )N)overwrite_xz%%s(%s%r, %r, axis=%r, overwrite_x=%r)zspurious overwrite in %s)r   )r3   rn   r_   r6   r   )rc   r+   routiner(   fftsizer   rJ   r  kwx2sigr   r   r   _check  s   zTestOverwrite._checkc           	      C   s   t jd t |t jrt jj| dt jj|   }nt jj| }||}dD ]}dD ]}dD ]}| |||d ||| q1q-q)d S )N  r\   r   r@   r   r   )TF)NrA   )r   r   seed
issubdtypecomplexfloatingr   r    r
  )	rc   r  r_   r6   r   r,   r(   r  rJ   r   r   r   	_check_1d  s   
zTestOverwrite._check_1dc                 C   @   | j D ]}| t|dd | t|dd | t|dd qd S N)r   rD   )r   r@   r   )r@   r   r   )real_dtypesr  r   rc   r_   r   r   r   test_dct  
   
zTestOverwrite.test_dctc                 C   r  r  )r  r  r   r  r   r   r   	test_idct  r  zTestOverwrite.test_idctc                 C   r  r  )r  r  r	   r  r   r   r   test_dst  r  zTestOverwrite.test_dstc                 C   r  r  )r  r  r
   r  r   r   r   	test_idst  r  zTestOverwrite.test_idstN)rn   ro   rp   __doc__r   r"   float64r  r
  r  r  r  r  r  r   r   r   r   r    s    	r  c                   @   s  e Zd ZdZg dZddgZejdZ	dZ
e	je
 Zejdeefeefgejddd	d
d	gdddgddd	gdddggejdeejddgdd Zejdeefeefgejdeejdedd Zejdeefeefgejdeejdddgdd Zejdeefeefgdd Zejdeegdd Zejdeefeefgejdd	d
d	gdddggd d! ZdS )"Test_DCTN_IDCTNrt   r  NrA   r  )r   r   zfforward,finverseaxesr   )r   r   )r   r   r   )rD   r  rD   dct_typerJ   c                 C   s6   || j |||d}|||||d}t| j |dd d S )Nr(   r  rJ   r   r   r,   r   )rc   fforwardfinverser  r   rJ   tmpr   r   r   test_axes_round_trip  s   
z$Test_DCTN_IDCTN.test_axes_round_tripzfforward,fforward_refc                 C   s4   || j |d |d}|| j ||d}t||dd d S )Nr!  r(   rJ      r   r"  )rc   r#  fforward_refr   rJ   y1r   r   r   r   test_dctn_vs_2d_reference  s   z)Test_DCTN_IDCTN.test_dctn_vs_2d_referencezfinverse,finverse_refc                 C   s>   t | j||d}||||d}||||d}t||dd d S )Nr'  r(  r   )r   r,   r   )rc   r$  finverse_refr   rJ   fdatar*  r   r   r   r   test_idctn_vs_2d_reference  s   z*Test_DCTN_IDCTN.test_idctn_vs_2d_referencec                 C   s   t tdd || j| jjd dd W d    n1 sw   Y  t tdd || j| jjd d d W d    n1 s?w   Y  t tdd || j| jjdd W d    d S 1 s`w   Y  d S )NzBwhen given, axes and shape arguments have to be of the same length)matchr   r  r6   r  )assert_raisesr&   r,   r6   )rc   r#  r$  r   r   r   test_axes_and_shape  s   "z#Test_DCTN_IDCTN.test_axes_and_shaper#  c                 C   s    || j dd d}t|jd d S )N)   r3  r0  )r,   r   r6   )rc   r#  r%  r   r   r   
test_shape#  s   zTest_DCTN_IDCTN.test_shapec                 C   s8   || j d |dd}||d |dd}t| j || jd d S )NrA   )r6   r  rJ   r   )r,   r   rw   )rc   r#  r$  r  r%  r   r   r   test_shape_is_none_with_axes(  s   z,Test_DCTN_IDCTN.test_shape_is_none_with_axes)rn   ro   rp   rw   r   normsr   r   RandomStaterstater6   r   r,   pytestmarkparametrizer   r   r   r   r&  r;   r>   r+  r=   r?   r.  r2  r4  r5  r   r   r   r   r    sX    



r  r   )dos.pathr   r   numpyr   numpy.testingr   r   r9  r   r1  scipy.fftpack._realtransformsr   r   r	   r
   r   r   r   r   load__file__r   r5   r   r   r$   r%   r   r.   r0   r;   r=   r>   r?   rQ   rU   rX   rZ   r[   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   <module>   s    (







 "5