
    UgQ                        d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZ ddlZd Zd Zd Zd	 Zej        j        d
             Zd Zd Zej                            dg dg d ej         ej        g d           ej        d          f          f          ej                            dd          ej                            dd          ej                            dd          d                                                 Zd Zd Zej                            de
dfedfg          d             Zd Zej                            dg d          d              Z ej                            d!g d"          d#             Z!dS )$z
A unit test module for czt.py
    N)assert_allclose)fft)cztzoom_fft
czt_pointsCZTZoomFFTc                 
   t          |           }t          |           }t          ||d           t          | dt          |           z            }t          | dt          |           z            }t          ||d           d S )NvIh%<=rtold   -q=)r   r   r   len)xyy1s      Z/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/signal/tests/test_czt.py	check_cztr      s|    AA	QBB&&&& 	As3q66zA	QCFF
		BB&&&&&&    c           	         t          |           }t          | dddt          |          z  z
  gd          }t          ||dd           t          | ddg          }t          ||dd           t          | ddt          |          z  z
  d          }t          ||dd           t          | d          }t          ||dd           d	}t          | |t          |           z            }t          | dddt          |          z  z
  gt          |          d
          }t          ||dd           t          | ddgt          |                    }t          ||dd           t	          j        dddt          |           z  z
  t          |                     }|d         |d         }}t          | ||gd|z  dz   d
          }	t          d|z  d|z  dz             }
t          |	||
         d           d S )Nr             @Tendpointdy=g+=r   atol
   )mr   r   绽|=r             r   r   )r   r   r   r   nplinspaceslice)r   r   r   overyovery2wf1f2y3idx3s              r   check_zoom_fftr1      s   AA	!a2c!ff9%	5	5	5BBE2222	!aV		BBE2222 
!Qr#a&&y[4	0	0	0BBE2222	!QBBE2222 D4A;E	!a2c%jj=)SZZ$	G	G	GBBE6666	!aVs5zz	*	*	*BBE6666 	AqCFF{CFF++AqT1Q4B	!b"X4D	9	9	9B44""DBd%000000r   c                  z   t           j                            d           t           j                            ddd          } t          j        | d           | D ]?}t           j                            |          }t          |           t          |           @t          j        ddd          }t          j        |dz   d	z            }t          |           g d
}t          |           t          t          d                     t          t          d                     t          t          d                     t          t          d                     t          t          d                     t          j
        t          j        d          d          }t          |ddg          }t          |ddd d f         ddg          }t          |d         |dd           t          |ddgd          }t          |ddd d f         ddgd          }t          |d         |dd           t           j                            d          }t          |           t          j        ddd          }t          j        dt           j        z  |z  dz            t          j        dt           j        z  |z  dz            z   }t          |           t          j        dt$                    }d|g d<   t          |           |dt          j        dd |j        d                   z  z  }t          |           d S )!Nr            r%   r      g{Gz?)r%   r   r#         r$      _   `   a   b   c      )r#   r      gm۶m?)r   r   r   r   r   Fr   e   r9      r   )dtype)r%   r9      y              ?      ?)r&   randomseedrandintappendr1   r   r'   exprangereshapearanger   r   randsinpizeroscomplexshape)lengthslengthr   tr   r+   s         r   test_1DrX   7   s    INN1 i3++GIgq  IV$$q! 	B3A
1uTzA1 	A1 5==!!!5==!!!5==!!!5==!!!5==!!! 	
29V$$j11A	!a\	"	"B	!Aq!!!G*q'l	+	+BBtHbu59999	!aVe	,	,	,B	!Aq!!!G*q!fu	5	5	5BBtHbu59999 		sA1 	Aq#A
qwqy{BF1RU719R<000A1 	G$$$AAjjjM1 BK3
++	++A1r   c                      t           j                            d           dD ]Q} t           j                            |           }t	          |          }t          |          }t          ||d           Rd S )Nr   )rB   i  '  r   r   )r&   rG   rH   rO   r   r   r   )Nr   r   r   s       r   test_large_prime_lengthsr\   q   sp    INN1 + +INN1FFVV2E*****	+ +r   c                  L   t           j                            d           t           j                            dd                              d          } | D ]M}t           j                            |          }t          t          |          t          |          d           Nd S )N{   i r   sizeintr   r   )	r&   rG   rH   exponentialastyperandnr   r   r   )random_lengthsnas      r   test_czt_vs_fftrh   z   s    INN3Y**6*;;BB5IIN 4 4IOOAAAU333334 4r   c                     t          j        t          d          5  t          g            d d d            n# 1 swxY w Y   t          j        t          d          5  t	          g d           d d d            d S # 1 swxY w Y   d S )NInvalid number of CZTmatchrF   )pytestraises
ValueErrorr   r    r   r   test_empty_inputrq      s   	z)@	A	A	A  B              	z)@	A	A	A  S                    8<<A<<B B c                     t          j        t          d          5  t          d           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          dd           d d d            d S # 1 swxY w Y   d S )Nztuple index out of rangerk   r9   rF   )rm   rn   
IndexErrorr   r   rp   r   r   test_0_rank_inputru      s   	z)C	D	D	D  A              	z)C	D	D	D  C                 rr   impulse)r   r   r%   )r   r   r%   r   r   r   r    )r%   r#   r9   r3   rB   i  rg   )r%   r   rF   g?r,   )Nyn?1*?c                 h   t          t          | dd          |||          t          j        |          d           t          t          | dd          |||          t	          |||          dz  d           t          t          | |||          t	          |||          dz  d           d S )Nr   r    r,   rg   r!   r   r%   r6   )r   r   r&   onesr   )rv   r    r,   rg   s       r   test_czt_mathr{      s     CqA333GAJJU, , , , CqA333a1---r1? ? ? ? C1Q///a1---r1? ? ? ? ? ?r   c            	         t          t          t          ddgdd                    dt          j        d          z  d           t          t          d	d
          ddt          j        d	          z  z  d           d S )Nr   r%   r   r   )r    rg   rF   gV瞯<r      r,   KH9)r   absr   r&   rz   r   rN   rp   r   r   test_int_argsr      sx    CQFbA...//RWR[[uMMMMJrQ'''Ary}},<)=EJJJJJJr   c            
      2   dD ]X} t          t          |           t          j        dt          j        z  t          j        |           z  | z            d           Yt          t          dd          t          j        d          d           t          t          dd	          dd
t          j        d          z  z  d           t          ddd	d          }t          |                                dd
t          j        d          z  z  d           d S )N)r%   r   r#   r3   r}   r   rB   rZ   y               @r   r   r:   r%   r~   r}   r   r      rx   )	r   r   r&   rK   rQ   rN   rz   r   points)r[   funcs     r   test_czt_pointsr      s   . $ $
1rvbhry||.CA.E'F'F"	$ 	$ 	$ 	$ 	$ JqA&&&

????JrR(((!Q	"-=*>UKKKKrR2###DDKKMM1a2&6#7eDDDDDDr   z	cls, args)r   )r   皙?c                      | | }t          j        t          d          5   |t          j        d                     d d d            d S # 1 swxY w Y   d S )NzCZT defined forrk   r9   )rm   rn   ro   r&   rN   )clsargsmyfuncs      r   test_CZT_size_mismatchr      s     S$ZF	z):	;	;	;  ry||                 s   AAAc                      t          j        t          d          5  t          dg d           d d d            d S # 1 swxY w Y   d S )Nz2-length sequencerk   r   r%   r   r#   )rm   rn   ro   r	   rp   r   r   test_invalid_ranger      s    	z)<	=	=	=    YYY                                   s   <A A )r   ig      @      @c                     t          j        t          d          5  t          |            d d d            d S # 1 swxY w Y   d S )Nrj   rk   )rm   rn   ro   r   r"   s    r   test_czt_points_errorsr      s     
z)@	A	A	A  1                 s   9= =r`   )r   g      @r   c                 :   t          j        t          d          5  t          | d           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          | dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          d|            d d d            n# 1 swxY w Y   t          j        t          d          5  t	          dd|            d d d            n# 1 swxY w Y   t          j        t          d          5  t          g d|            d d d            n# 1 swxY w Y   t          j        t          d          5  t          g dd|            d d d            d S # 1 swxY w Y   d S )Nrj   rk   r#   r   r   )rm   rn   ro   r   r	   r   r   r_   s    r   test_nonsense_sizer      s    
z)@	A	A	A  D!              	z)@	A	A	A  c1              	z)@	A	A	A  At              	z)@	A	A	A  3              	z)@	A	A	A  IIIt              	z)@	A	A	A ' 'C&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sg   9= =A==BB#C  CC&DDD*E		EE/FFF)"__doc__rm   numpy.testingr   	scipy.fftr   scipy.signalr   r   r   r   r	   numpyr&   r   r1   rX   r\   markslowrh   rq   ru   parametrizeconcatenatearrayrR   r{   r   r   r   r   r   r   rp   r   r   <module>r      s     ) ) ) ) ) )       B B B B B B B B B B B B B B    	' 	' 	'1 1 1<7 7 7t+ + + 4 4 4     YYY%3R^XRXiii5H5H5=RXc]]5D &E &E%F G G 566.// 899? ? :9 0/ 76G G?K K K	E 	E 	E V}w
6K&LMM  NM     
 00011  21 !2!2!233' ' 43' ' 'r   