§
    _ùMhô  ã                   ó  — 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)Úxp_assert_close)Úfft)ÚcztÚzoom_fftÚ
czt_pointsÚCZTÚZoomFFTc                 ó
  — t          | ¦  «        }t          | ¦  «        }t          ||d¬¦  «         t          | dt          | ¦  «        z  ¦  «        }t          | dt          | ¦  «        z  ¦  «        }t          ||d¬¦  «         d S )Nç‚vIhÂ%<=©Úrtoléd   çê-™—q=)r   r   r   Úlen)ÚxÚyÚy1s      ú[/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/signal/tests/test_czt.pyÚ	check_cztr      s|   € åˆA‰Œ€AÝ	ˆQ‰Œ€BÝB˜ Ð&Ñ&Ô&Ð&õ 	ˆAˆs•3q‘6”6‰zÑÔ€AÝ	ˆQ•C˜‘F”F‘
Ñ	Ô	€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©Úendpointç•dyáý¥=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 !™fœf™9™Ð%°Ð	5Ñ	5Ô	5€BÝB˜ ¨EÐ2Ñ2Ô2Ð2Ý	!a˜VÑ	Ô	€BÝB˜ ¨EÐ2Ñ2Ô2Ð2õ 
!Qr#˜a™&œ&‘y‘[¨4Ð	0Ñ	0Ô	0€BÝB˜ ¨EÐ2Ñ2Ô2Ð2Ý	!Q‰Œ€BÝB˜ ¨EÐ2Ñ2Ô2Ð2ð €DÝ4˜A™œ‘;ÑÔ€EÝ	!a˜˜2c %™jœj™=™Ð)­S°©Z¬ZÀ$Ð	GÑ	GÔ	G€BÝB˜ E°Ð6Ñ6Ô6Ð6Ý	!a˜Vs 5™zœzÐ	*Ñ	*Ô	*€BÝB˜ E°Ð6Ñ6Ô6Ð6õ 	ŒAq˜C ™FœF™‘{¥C¨¡F¤FÑ+Ô+€AØˆqŒT1Q”4ˆ€BÝ	!b˜"X  4¡¨¡°DÐ	9Ñ	9Ô	9€BÝ4‘˜˜4™ ™Ñ"Ô"€DÝB˜˜dœ¨%Ð0Ñ0Ô0Ð0Ð0Ð0r   c                  ó>  — t           j                             d¦  «        } |                      ddd¦  «        }t          j        |d¦  «         |D ]5}|                      |¦  «        }t          |¦  «         t          |¦  «         Œ6t          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¬¦  «         |                      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{®Gáz„?)r%   r   r#   é   é   r$   é   é_   é`   éa   éb   éc   é¨   )r#   r   é   g·mÛ¶mÛþ?)r   r   r   r   r   Fr   ée   r9   é   r   ©Údtype)r%   r9   é   y              ð?ç      à?)r&   ÚrandomÚRandomStateÚrandintÚappendr1   r   r'   ÚexpÚrangeÚreshapeÚaranger   r   ÚrandÚsinÚpiÚzerosÚcomplexÚshape)ÚrngÚlengthsÚlengthr   Útr   r+   s          r   Útest_1DrZ   7   så  € õ Œ)×
Ò
 Ñ
"Ô
"€Cð kŠk˜!˜S "Ñ%Ô%€GÝ„IˆgqÑÔÐØð ð ˆØJŠJvÑÔˆÝqÑÔÐÝ!‰Œˆˆõ 	ŒB˜˜3ÑÔ€AÝ
Œ1‘ˆuT‰zÑÔ€AÝ1ÑÔÐð 	ÐÐ€AÝ1ÑÔÐõ •5˜‘=”=Ñ!Ô!Ð!Ý•5˜‘=”=Ñ!Ô!Ð!Ý•5˜‘=”=Ñ!Ô!Ð!Ý•5˜‘=”=Ñ!Ô!Ð!Ý•5˜‘=”=Ñ!Ô!Ð!õ 	Œ
•2”9˜VÑ$Ô$ jÑ1Ô1€AÝ	!a˜\Ñ	"Ô	"€BÝ	!Aq˜!˜!˜!G”*˜q '˜lÑ	+Ô	+€BÝBt”H˜b u°5Ð9Ñ9Ô9Ð9å	!a˜V eÐ	,Ñ	,Ô	,€BÝ	!Aq˜!˜!˜!G”*˜q !˜f¨uÐ	5Ñ	5Ô	5€BÝBt”H˜b u°5Ð9Ñ9Ô9Ð9ð 	Š‰Œ€AÝ1ÑÔÐõ 	ŒAq˜#ÑÔ€AÝ
Œˆq•”‰wq‰y˜‰{ÑÔBœF 1¥R¤U¡7¨1¡9¨R¡<Ñ0Ô0Ñ0€AÝ1ÑÔÐõ 	ŒGÐ$Ñ$Ô$€AØ€A€j€j€jMÝ1ÑÔÐð ˆBŒK˜˜3 ¤¨¤
Ñ+Ô+Ñ	+Ñ+€AÝ1ÑÔÐÐÐr   c                  óØ   — t           j                             d¦  «        } dD ]G}|                      |¦  «        }t	          |¦  «        }t          |¦  «        }t          ||d¬¦  «         ŒHd S )Nr   )rB   iñ  é'  r   r   )r&   rH   rI   rP   r   r   r   )rV   ÚNr   r   r   s        r   Útest_large_prime_lengthsr^   q   sm   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØð +ð +ˆØHŠHQ‰KŒKˆÝ‰FŒFˆÝ‰VŒVˆÝ˜˜2 EÐ*Ñ*Ô*Ð*Ð*ð	+ð +r   c                  ó$  — t           j                             d¦  «        } |                      dd¬¦  «                             d¦  «        }|D ]C}|                      |¦  «        }t          t          |¦  «        t          |¦  «        d¬¦  «         ŒDd S )Né{   i † r   ©ÚsizeÚintr   r   )	r&   rH   rI   ÚexponentialÚastypeÚrandnr   r   r   )rV   Úrandom_lengthsÚnÚas       r   Útest_czt_vs_fftrj   z   s†   € å
Œ)×
Ò
 Ñ
$Ô
$€CØ—_’_ V°"_Ñ5Ô5×<Ò<¸UÑCÔC€NØð 4ð 4ˆØIŠIa‰LŒLˆÝ˜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©ÚmatchrG   )ÚpytestÚraisesÚ
ValueErrorr   r   © r   r   Útest_empty_inputrs   ƒ   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 rangerm   r9   rG   )ro   rp   Ú
IndexErrorr   r   rr   r   r   Útest_0_rank_inputrw   Š   s  € Ý	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð ÝˆA‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð ÝCÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rt   Úimpulse)r   r   r%   )r   r   r%   r   r   r   r    )r%   r#   r9   r3   rB   iý  ri   )r%   r   rG   gš™™™™™ñ?r,   )Ny¹nÀç‡ï?1™*•ÔÅ?c                 ó€  — t          t          | dd …         |||¬¦  «        t          j        |t          j        ¬¦  «        d¬¦  «         t          t          | dd …         |||¬¦  «        t          |||¬¦  «        dz  d¬¦  «         t          t          | |||¬¦  «        t          |||¬¦  «        dz  d¬¦  «         d S )	Nr   ©r    r,   ri   rD   r!   r   r%   éÿÿÿÿr6   )r   r   r&   ÚonesÚ
complex128r   )rx   r    r,   ri   s       r   Útest_czt_mathr~   ‘   sì   € õ •C˜   œ q¨A°Ð3Ñ3Ô3Ý”G˜A¥R¤]Ð3Ñ3Ô3¸%ðAñ Aô Að Aõ •C˜   œ q¨A°Ð3Ñ3Ô3Ý  a¨1Ð-Ñ-Ô-¨rÑ1¸ð?ñ ?ô ?ð ?õ •C˜ 1¨¨QÐ/Ñ/Ô/Ý  a¨1Ð-Ñ-Ô-¨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	t          j        ¬¦  «        z  z  d¬¦  «         d S )Nr   r%   r   r   )r    ri   rG   gVçž¯Ò<r   é   ©r,   rD   ç ÂëþKH´9)r   Úabsr   r&   r|   r   rO   r}   rr   r   r   Útest_int_argsr„   §   s”   € å•C˜Q ˜F b¨AÐ.Ñ.Ô.Ñ/Ô/°µR´W¸R±[´[±ÀuÐMÑMÔMÐMÝ•J˜r QÐ'Ñ'Ô'Øq"œ) B­b¬mÐ<Ñ<Ô<Ñ<Ñ=ÀEðKñ Kô Kð Kð Kð Kr   c            
      ób  — dD ]X} t          t          | ¦  «        t          j        dt          j        z  t          j        | ¦  «        z  | z  ¦  «        d¬¦  «         ŒYt          t          dd¬¦  «        t          j        dt          j        ¬¦  «        d¬¦  «         t          t          d	d
¬¦  «        ddt          j        d	t          j        ¬¦  «        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   r\   y               @r‚   r   r:   r%   r   rD   r€   r   r   é   rz   )
r   r   r&   rL   rR   rO   r|   r}   r   Úpoints)r]   Úfuncs     r   Útest_czt_pointsr‰   ®   s(  € Ø.ð $ð $ˆÝ
 1™œ¥r¤v¨bµ´©hµr´yÀ±|´|Ñ.CÀAÑ.EÑ'FÔ'FØ"ð	$ñ 	$ô 	$ð 	$ð 	$õ •J˜q AÐ&Ñ&Ô&­¬°½¼Ð(GÑ(GÔ(GÈeÐTÑTÔTÐTÝ•J˜r RÐ(Ñ(Ô(Øq"œ) B­b¬mÐ<Ñ<Ô<Ñ<Ñ=ÀEðKñ Kô Kð Kõ ˆrR˜2 Ð#Ñ#Ô#€DÝD—K’K‘M”M 1 a­¬°2©¬Ñ&6Ñ#7¸eÐ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 forrm   r9   )ro   rp   rq   r&   rO   )ÚclsÚargsÚmyfuncs      r   Útest_CZT_size_mismatchr   »   s¡   € ð ˆS$ˆZ€FÝ	Œ•zÐ):Ð	;Ñ	;Ô	;ð ð ØˆrŒy˜‰|Œ|ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð 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 sequencerm   r   ©r%   r   r#   )ro   rp   rq   r	   rr   r   r   Útest_invalid_ranger’   Ã   s   € Ý	Œ•zÐ)<Ð	=Ñ	=Ô	=ð  ð  ÝYYYÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   œ<¼A ÁA )r   iõÿÿÿg      @ç      @c                 óŒ   — t          j        t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrl   rm   )ro   rp   rq   r   r"   s    r   Útest_czt_points_errorsr•   È   s‰   € õ 
Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ý1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   œ9¹=Á =rb   )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 )Nrl   rm   r#   rŠ   r‘   )ro   rp   rq   r   r	   r   r   ra   s    r   Útest_nonsense_sizer˜   Ï   sý  € õ 
Œ•zÐ)@Ð	AÑ	AÔ	Að ð ÝˆD!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ýc˜1ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)@Ð	AÑ	AÔ	Að ð ÝˆAˆt‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)@Ð	AÑ	AÔ	Að ð Ý3˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)@Ð	AÑ	AÔ	Að ð ÝˆIˆIˆItÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÐ)@Ð	AÑ	AÔ	Að 'ð 'Ý˜C Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'sg   œ9¹=Á =ÁA=Á=BÂBÂ#C Ã CÃCÃ&DÄDÄDÄ*E	Å	EÅEÅ/FÆFÆF)"Ú__doc__ro   Úscipy._lib._array_apir   Ú	scipy.fftr   Úscipy.signalr   r   r   r   r	   Únumpyr&   r   r1   rZ   r^   ÚmarkÚslowrj   rs   rw   ÚparametrizeÚconcatenateÚarrayrS   r~   r„   r‰   r   r’   r•   r˜   rr   r   r   ú<module>r£      s²  ððð ð €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð ð	'ð 	'ð 	'ð1ð 1ð 1ð<7ð 7ð 7ðt+ð +ð +ð „Ôð4ð 4ñ Ôð4ðð ð ðð ð ð „×Ò˜ Y Y Y°°°Ø%3 R¤^°X°R´X¸i¸i¸iÑ5HÔ5HØ5=°R´X¸c±]´]ð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   