
    Yh                        d dl Z d dlZd dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZ ej        j        Zej        j        Zg dZ G d	 d
          Z G d d          Z G d d          Z G d d          Z  edd           G d d                      Z! G d d          Z" G d d          Z#g dZ$g dZ% edd           edd           G d d                                  Z& eg d            eg d!           eg d"           eg d#           eg d           d eg d"          d eg d$           eg d%          ddd&Z'd' Z( G d( d)          Z) G d* d+          Z* G d, d-          Z+ G d. d/          Z, G d0 d1          Z- G d2 d3          Z. G d4 d5          Z/ G d6 d7          Z0 G d8 d9          Z1 G d: d;          Z2 G d< d=          Z3i d> eg d?          d@ eg dA          dB eg dC          dD eg dE          dF eg dG          dH eg dI          dJ eg dK          dL eg dM          dN eg dO          dPg dQdRg dSdTg dUdVg dWdXg dYdZg d[d\g d]d^g d_g d`g dadbZ4 G dc dd          Z5g deg dfgdgdhgfg dig djg dkgg dlfg dmg dng dog dpg dqgg drfg dsg dtg dug dvgg dwfdxZ6 edydz{           G d| d}                      Z7 G d~ d          Z8 G d d          Z9 edd          d             Z:d Z;g dZ<ej        =                    de<          d             Z>d Z?dS )    N)array)suppress_warnings)raises)fft)windows
get_windowresample)	xp_assert_closexp_assert_equalarray_namespaceis_torchis_jaxis_cupyassert_array_almost_equalSCIPY_DEVICEis_numpy))boxcar )triangr   )parzenr   )bohmanr   )blackmanr   )nuttallr   )blackmanharrisr   )flattopr   )bartlettr   )barthannr   )hammingr   )kaiser   )dpss)   )gaussian      ?)general_gaussian)      ?r#   )chebwinr    )cosiner   )hannr   )exponentialr   )taylorr   )tukeyr%   )lanczosr   c                       e Zd Zd ZdS )TestBartHannc                    t          t          j        dd|          |                    g d|j                  dd           t          t          j        d|	          |                    g d
|j                  dd           t          t          j        dd|	          |                    g d|j                  dd           d S )N   Tsymxp)r   gA,q?	5xB$?r7   gA,q?r   dtypeV瞯<rtolatol   r6   )r   HzG?\(\?      ?rA   r@   r   F)r   r@   rA   rB   rA   r@   )r
   r   r   asarrayfloat64selfr6   s     q/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/scipy/signal/tests/test_windows.py
test_basiczTestBartHann.test_basic0   s   (<<<

 $D $D $DKM: # W W"	0 	0 	0 	0 	(r222

#F#F#F)+ # 5 5"	0 	0 	0 	0 	(Eb999

#C#C#C2:
VV"	0 	0 	0 	0 	0 	0    N__name__
__module____qualname__rH   r   rI   rG   r1   r1   .   s#        0 0 0 0 0rI   r1   c                       e Zd Zd ZdS )TestBartlettc                    t          t          j        d|          |                    g d|j                             t          t          j        d|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             d S )	Nr3   r?   )r   皙?皙?rR   rQ   r   r8   r>   )r   UUUUUU?UUUUUU?rB   rT   rS   r   F)r   rS   rT   rB   rT   rS   )r
   r   r   rC   rD   rE   s     rG   rH   zTestBartlett.test_basic@   s    (r222

#=#=#=RZ
PP	R 	R 	R(r222

#B#B#B"*
UU	W 	W 	W(Eb999

#?#?#?rz
RR	T 	T 	T 	T 	TrI   NrJ   r   rI   rG   rO   rO   >   s(        T T T T TrI   rO   c                       e Zd Zd ZdS )TestBlackmanc                    t          t          j        dd|          |                    g d|j                  d           t          t          j        dd|          |                    g d	|j                  d
           t          t          j        d|          |                    g d|j                  d           t          t          j        dd|          |                    g d|j                  d           d S )Nr3   Fr4   )r   p=
ף?)\(?rB   rY   rX   r8   +=r=   r>   )r   Fi'?b@c?Zgs?r^   r]   r\   :0yE>r?   )r   쳩ֲ?,,?ra   r`   r   T)r   rX   rY   rB   rY   rX   r   )r
   r   r   rC   rD   rE   s     rG   rH   zTestBlackman.test_basicK   sh   ("===

#C#C#C2:
VV"	$ 	$ 	$ 	$ 	("===

 $M $M $M +-* # 6 6 "	# 	# 	# 	# 	(r222

 $O $O $O*,* # 6 6 #		$ 	$ 	$ 	$
 	(DR888

#F#F#F j # * *05	7 	7 	7 	7 	7 	7rI   NrJ   r   rI   rG   rV   rV   I   s#        7 7 7 7 7rI   rV   c                       e Zd Zd ZdS )TestBlackmanHarrisc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        d|          |                    g d	|j                             t          t          j        dd
|          |                    g d|j                             d S )Nr3   Fr?   )iUMu?0_^}?縯猨?rB   rg   rf   r8   r>   r4   )re   gjP?g'm$M?gu?gu?g*m$M?gjP?)re   ^?gU׈g?gU׈g?rh   re   T)re   rf   rg   rB   rg   rf   re   )r
   r   r   rC   rD   rE   s     rG   rH   zTestBlackmanHarris.test_basica   sd   .q%B???

 $= $= $=DFJ # P P	Q 	Q 	Q 	.qeCCC

 $M $M $M +-* # 6 6	7 	7 	7
 	.qR888

 $U $U $U*,* # 6 6	7 	7 	7 	.qdrBBB

 $7 $7 $7>@j # J J	K 	K 	K 	K 	KrI   NrJ   r   rI   rG   rc   rc   _   s(        K K K K KrI   rc   	jax.numpyitem assignmentreasonc                   D    e Zd Zd Zd Z ed          d             ZdS )
TestTaylorc                    t          t          j        ddd|          |                    dg|j                             t          t          j        ddd|          |                    g d|j                             t          t          j        d	dd|          |                    g d
|j                             dS )zTests windows of small length that are normalized to 1. See the
        documentation for the Taylor window for more information on
        normalization.
        r!   r#      r?   rB   r8      )%6'HA?)T
?rB   rs   rr   r3   )δX?繡1E?PD3m?rv   ru   rt   Nr
   r   r-   rC   rD   rE   s     rG   test_normalizedzTestTaylor.test_normalizedv   s    
 	q!RB777

C5

;;	= 	= 	=N1a+++JJLLLZ  ) )	
 	
 	

 	N1a+++JJ    Z  ! !	
 	
 	
 	
 	
rI   c           	         t          t          j        dddd|          |                    g d|j                             t          t          j        dddd|          |                    g d	|j                             d
S )zTest windows of small length that are not normalized to 1. See
        the documentation for the Taylor window for more information on
        normalization.
        rq   r#   rp   Fnormr6   )	P ?sCp?g)8ux?r}   r|   r8   r3   ))S~?rB   kt#?r   rB   r~   Nrw   rE   s     rG   test_non_normalizedzTestTaylor.test_non_normalized   s    
 	N1a%B777JJ   Z  ! !	
 	
 	
 	N1a%B777JJ   Z  ! !	
 	
 	
 	
 	
rI   T)cpu_onlyc           	         d}d}t          j        |dddd|          }t          ||          }t          j        |          }dt          j        t          j        |t          j        |          z                      z  }t          j        t          j	        |          dk              }t          j        |||                    }	d	t          j        |d
k              z  |z  |z  }
d	t          j        |dk              z  |z  |z  }t          j        |	dd          sJ t          j        |
dd          sJ t          j        |dd          sJ dS )a  This test ensures the correctness of the implemented Taylor
        Windowing function. A Taylor Window of 1024 points is created, its FFT
        is taken, and the Peak Sidelobe Level (PSLL) and 3dB and 18dB bandwidth
        are found and checked.

        A publication from Sandia National Laboratories was used as reference
        for the correctness values [1]_.

        References
        -----
        .. [1] Armin Doerry, "Catalog of Window Taper Functions for
               Sidelobe Control", 2017.
               https://www.researchgate.net/profile/Armin_Doerry/publication/316281181_Catalog_of_Window_Taper_Functions_for_Sidelobe_Control/links/58f92cb2a6fdccb121c9d54d/Catalog-of-Window-Taper-Functions-for-Sidelobe-Control.pdf
        i   i      #   F)nbarsllr{   r5   r6      r   r#   gX$g_2gAfAr!   )abs_tolgLJ?皙?gZӼ@N)r   r-   r   nprC   log10absmaxargmaxdiffmathisclose)rF   r6   M_winN_fftwff_npspec
first_zeroPSLLBW_3dBBW_18dBs               rG   test_correctnesszTestTaylor.test_correctness   sM      N5qbu%BOOO5MMz!}}BHRVD26$<<$788999Yrwt}}q011
vd:zk123329T%88999EAEIBId&99:::UBUJ|D(A666666|FFC888888|GVS99999999rI   N)rK   rL   rM   rx   r   skip_xp_backendsr   r   rI   rG   rn   rn   s   s\        
 
 
(
 
 
$ t$$$#: #: %$#: #: #:rI   rn   c                       e Zd Zd ZdS )
TestBohmanc                    t          t          j        d|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        dd	|          |                    g d
|j                             d S )Nr3   r?   )r   g$I ?6 D?r   g I ?r   r8   r>   Tr4   )r   PG?4}|?rB   6}|?r   r   F)r   r   r   rB   r   r   )r
   r   r   rC   rD   rE   s     rG   rH   zTestBohman.test_basic   s   qR000

 $O $O $O*,* # 6 6	7 	7 	7 	qdr:::

 $O $O $O*,* # 6 6	7 	7 	7 	q%B777

 $L $L $L*,* # 6 6	7 	7 	7 	7 	7rI   NrJ   r   rI   rG   r   r      s#        7 7 7 7 7rI   r   c                       e Zd Zd ZdS )
TestBoxcarc                    t          t          j        d|          |                    g d|j                             t          t          j        d|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             d S )Nr3   r?   rB   r!   r!   r!   r!   r!   r8   r>   rB   r!   r!   r!   r!   r!   r!   F)r
   r   r   rC   rD   rE   s     rG   rH   zTestBoxcar.test_basic   s    qR000

#7#7#7rz
JJ	L 	L 	LqR000

#:#:#:"*
MM	O 	O 	Oq%B777

#7#7#7rz
JJ	L 	L 	L 	L 	LrI   NrJ   r   rI   rG   r   r      s(        L L L L LrI   r   )5CV?CԳ ?Q&E?:*?;Bu?9#?=[?Z
G?ٵݒ?Lg?(+ ?T=? zR&5?scH?u?]/M`?xC8???9?mo?[?T:?sK!q?/M.?×?)s?rB   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   )6?2?w.v?f*#?灖`?d${!??M?ut\?Ljh?xak?WY?qj?<)[?@ի?MEs?甽/?{l?[^6?:Ug$?: U\?I.!v?Clp?gF?稦$p?VLy?.?rB   rB   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   
dask.arraydata-dependent output shapesc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestChebWinc           	         t                      5 }|                    t          d           t          t	          j        dd|          |                    g d|j                  d           t          t	          j        d	d|          |                    g d
|j                             t          t	          j        dd|          |                    g d|j                             t          t	          j        d	d|          |                    g d|j                             t          t	          j        ddd|          |                    g d|j                             d d d            d S # 1 swxY w Y   d S )NThis window is not suitabler3   d   r?   )}	ɺ?L >?rB   rB   r   r   r8   r_   r[   r>   )S?D1mPC?%5R?rB   r   r   r   
   )rB   TEm?	-o?r   r   rB   )rB   F3?NO?	r]?r   r   rB   F)rB   r   r   r   r   r   )r   filterUserWarningr
   r   r)   rC   rD   )rF   r6   sups      rG   rH   zTestChebWin.test_basic  sP      	PCJJ{$ABBBGOAsr:::JJ (P (P (P /1j ' : : "&    GOAsr:::JJ (P (P (P /1j ' : :; ; ;
 GOArb999JJ (U (U (U.0j ' : :; ; ; GOArb999JJ (A (A (AHJ
 ' T TU U U GOAr5R@@@JJ (< (< (<CE: ' O OP P P-	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   E$F  FFc                 
   t                      5 }|                    t          d           t          j        dd|          }d d d            n# 1 swxY w Y   t          ||                    t                    d           d S )Nr   5   atr6   r   decimal)r   r   r   r   r)   r   rC   cheb_odd_true)rF   r6   r   cheb_odds       rG   test_cheb_odd_high_attenuationz*TestChebWin.test_cheb_odd_high_attenuation"  s       	:CJJ{$ABBBrcb999H	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	"(BJJ},E,EqQQQQQQ   3AAAc                 
   t                      5 }|                    t          d           t          j        dd|          }d d d            n# 1 swxY w Y   t          ||                    t                    d           d S )Nr   6   (   r   r   r   )r   r   r   r   r)   r   rC   cheb_even_true)rF   r6   r   	cheb_evens       rG   test_cheb_even_high_attenuationz+TestChebWin.test_cheb_even_high_attenuation(  s       	:CJJ{$ABBBrb999I	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	")RZZ-G-GQRSSSSSSr   c                    |                     g d|j                  }t                      5 }|                    t          d           t          j        dd|          }d d d            n# 1 swxY w Y   t          ||d           d S )	N)rB   m?燿&k?gc[?r  r  rB   r8   r   r>   r   r   r   r   rC   rD   r   r   r   r   r)   r   )rF   r6   cheb_odd_low_at_truer   r   s        rG   test_cheb_odd_low_attenuationz)TestChebWin.test_cheb_odd_low_attenuation.  s    !zz +5 +5 +5<>J  *  H  H    	8CJJ{$ABBBqRB777H	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	"(,@!LLLLLL   3A,,A03A0c                    |                     g d|j                  }t                      5 }|                    t          d           t          j        dd|          }d d d            n# 1 swxY w Y   t          ||d           d S )	N)rB   R?N(D!T?#R?r  r  r  rB   r8   r      ir   r   r   r  )rF   r6   cheb_even_low_at_truer   r  s        rG   test_cheb_even_low_attenuationz*TestChebWin.test_cheb_even_low_attenuation7  s     "

 ,@ ,@ ,@GIz !+ !S !S    	:CJJ{$ABBBcb999I	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	")-BANNNNNNr
  N)rK   rL   rM   rH   r   r  r	  r  r   rI   rG   r   r     sp        P P P8R R RT T TM M MO O O O OrI   r   )|dy?vS?{?rB   r  )1B?%?r  r  )́R?8,6V?rB   r  )\Kr?
oh?r  r  )r  r  rB   r  r  )r  r  rB   r  r  ))r   N皙?F)r   Nr  T)r   NrB   F)r   NrB   T)r   r#   r  F)r   r#   r  T)r   r#   rB   F)r   r#   rB   T)rq   Nr  T)rq   NrB   T)rq   r#   r  T)rq   r#   rB   Tc                     t                                           D ]^\  }}|!t          t          t          j        g|R d| i (t	          j        |d| i}t          ||                     |          d           _d S )Nr6   rZ   r<   )exponential_dataitemsassert_raises
ValueErrorr   r,   r
   rC   )r6   kvwins       rG   test_exponentialr$  ^  s     &&(( < <19*g&9EAEEE"EEEE%q0R00CCAU;;;;;< <rI   c                       e Zd Zd ZdS )TestFlatTopc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        d|          |                    g d	|j                             t          t          j        dd
|          |                    g d|j                             d S )Nr3   Fr4   )bF;s*?dR	p^?rB   r*  r)  r8   r>   )r(  `p|ܢ?J?r-  r,  r+  r?   )r(  <#U_&k?r/  r.  r(  T)r(  r)  r*  rB   r*  r)  r(  )r
   r   r   rC   rD   rE   s     rG   rH   zTestFlatTop.test_basici  sb   u<<<

 $? $? $?FHj # R R	S 	S 	S 	u<<<

 $: $: $: BD # M M	N 	N 	N
 	b111

 $G $G $G +-* # 6 6	7 	7 	7
 	4B777

 $M $M $M+-: # 7 7	8 	8 	8 	8 	8rI   NrJ   r   rI   rG   r&  r&  g  s#        8 8 8 8 8rI   r&  c                       e Zd Zd ZdS )TestGaussianc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        dd	|          |                    g d
|j                             t          t          j        dd	d|          |                    g d|j                             d S )Nr3   rB   r?   )|~?w$?"$j=?r5  r4  r3  r8   r>   g333333?)r3  
"?;eܜ?rB   r7  r6  r3     )r  ?yLE?rB   r:  r9  r  F)r  r9  r:  rB   r:  r9  )r
   r   r$   rC   rD   rE   s     rG   rH   zTestGaussian.test_basic  sj   (CB777

 $M $M $M +-* # 6 6	7 	7 	7
 	(CB777

 $M $M $M +-* # 6 6	7 	7 	7
 	(A"555

 $L $L $L +-* # 6 6	7 	7 	7
 	(Au<<<

 $8 $8 $8?Az # K K	L 	L 	L 	L 	LrI   NrJ   r   rI   rG   r1  r1  }  s(        L L L L LrI   r1  c                       e Zd Zd ZdS )TestGeneralCosinec                 b   |                     g d          }t          t          j        d|          |                     g d|j                             |                     g d          }t          t          j        d|d          |                     g d|j                             d S )	Nr&   333333?r  rq   )rQ   r?  r!   r?  rQ   r8   r   F)r5   rQ   r?  r!   r?  )rC   r
   r   general_cosinerD   )rF   r6   as      rG   rH   zTestGeneralCosine.test_basic  s    JJ''.q!44

#:#:#:"*
MM	O 	O 	O JJ''.q!???

#5#5#5RZ
HH	J 	J 	J 	J 	JrI   NrJ   r   rI   rG   r<  r<    s(        J J J J JrI   r<  c                       e Zd Zd ZdS )TestGeneralHammingc                    t          t          j        dd|          |                    g d|j                             t          t          j        ddd|          |                    g d	|j                             t          t          j        d
dd|          |                    g d|j                             d S )Nrq   ffffff?r?   rQ   rF  rB   rF  rQ   r8         ?Fr4   )r&   y&"?x?rJ  rI  r3   T)r&   rI  rJ  rJ  rI  r&   )r
   r   general_hammingrC   rD   rE   s     rG   rH   zTestGeneralHamming.test_basic  s	   /32>>>

#<#<#<BJ
OO	Q 	Q 	Q/4UrJJJ

 $@ $@ $@GIz # S S	T 	T 	T 	/4TbIII

 $E $E $ELNJ # X X	Y 	Y 	Y 	Y 	YrI   NrJ   r   rI   rG   rD  rD    s(        Y Y Y Y YrI   rD  c                       e Zd Zd ZdS )TestHammingc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        d|          |                    g d	|j                             t          t          j        dd
|          |                    g d|j                             d S )Nr3   Fr?   ){Gz?ףp=
?p=
ף?rB   rQ  rP  r8   r>   r4   )rO  CW4?	/5?4Cъ?rT  rS  rR  )rO  6 iv?P0?rV  rU  rO  T)rO  rP  rQ  rB   rQ  rP  rO  )r
   r   r   rC   rD   rE   s     rG   rH   zTestHamming.test_basic  sH   5R888

#F#F#F)+ # 5 5	6 	6 	6 	u<<<

 $L $L $L +-* # 6 6	7 	7 	7
 	b111

 $R $R $R*,* # 6 6	7 	7 	7 	t;;;

#L#L#L)+ # 5 5	6 	6 	6 	6 	6rI   NrJ   r   rI   rG   rM  rM    s#        6 6 6 6 6rI   rM  c                       e Zd Zd ZdS )TestHannc                 $   t          t          j        dd|          |                    g d|j                  dd           t          t          j        dd|          |                    g d	|j                  dd           t          t          j        dd
|          |                    g d|j                  dd           t          t          j        d|          |                    g d|j                  dd           d S )Nr3   Fr4   )r         ?rH  rB   rH  rZ  r8   r:   r;   r>   )r   \$:?H`r?8T^j?r]  r\  r[  Tr?   r   Xhd?Tͻ?r`  r_  r   r   rZ  rH  rB   rH  rZ  r   )r
   r   r+   rC   rD   rE   s     rG   rH   zTestHann.test_basic  sl   QEb999

#C#C#C2:
VV"	0 	0 	0 	0 	QEb999

 $L $L $L +-* # 6 6 #	0 	0 	0 	0 	Q444

 $O $O $O*,* # 6 6 #		0 	0 	0 	0
 	Q2...

#F#F#F j # * *"	0 	0 	0 	0 	0 	0rI   NrJ   r   rI   rG   rX  rX    s#        0 0 0 0 0rI   rX  c                       e Zd Zd ZdS )
TestKaiserc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d	|j                             t          t          j        dd|          |                    g d
|j                             t          t          j        ddd|          |                    g d|j                             d S )Nr3   r&   r?   )l?<3N?i>%?rg  rf  re  r8   r>   )re  	$?6?rB   ri  rh  re  g@)§Aը?O F?$?rl  rk  rj  )rj  *'?=a?rB   rn  rm  rj  F)rj  rm  rn  rB   rn  rm  )r
   r   r   rC   rD   rE   s     rG   rH   zTestKaiser.test_basic  s   q#"555

 $L $L $L +-* # 6 6	7 	7 	7
 	q#"555

 $L $L $L +-* # 6 6	7 	7 	7
 	q#"555

 $L $L $L +-* # 6 6	7 	7 	7
 	q#"555

 $L $L $L +-* # 6 6	7 	7 	7
 	q#u<<<

 $8 $8 $8?Az # K K	L 	L 	L 	L 	LrI   NrJ   r   rI   rG   rc  rc    s(        L L L L LrI   rc  c                       e Zd Zd Zd ZdS )TestKaiserBesselDerivedc                    t          j        dd|          }t          ||                    g                      d}t          j        |d|          }t          j        d|d|          }t          ||           |d |dz           dz  || dz  d          dz  z   }t          ||                    |j        |j        	                     t          j        dt          j
        dz  |          d d
         }|                    |          t          j        d          z  dz  }t          ||           t          t          j        dt          j
        dz  |          d d         |                    ddg|j        	                     t          t          j        dt          j
        dz  |          d d         |                    g d|j        	                     d S )Nr&         @betar6   r   )zkaiser bessel derivedrr  Ffftbinsr6   r#   r8   r!   g       @r   gU?gU3|\?r3   r8  )gHZ1?gKf?g"iF5?)r   kaiser_bessel_derivedr   rC   r   r
   onesshaper9   r   pi	ones_liker   sqrtrD   )rF   r6   r   Mw2actualdesireds          rG   rH   z"TestKaiserBesselDerived.test_basic  s   )#CB???2::b>>***)!#"=== > !5R9 9 92 7AF7q1aR1WXX;!#33FL I IJJJ .qruqyRHHH!L,,v&&15;(((5abeaiBOOOPRQRPRS

NN#C2:
VV	X 	X 	X 	5abeaiBOOOPRQRPRS

#S#S#S)+ # 5 5	6 	6 	6 	6 	6rI   c                 6   d}d}t          t          |          5  t          j        |dz   d|           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j        |dz   dd|	           d d d            d S # 1 swxY w Y   d S )
Nr   zHKaiser-Bessel Derived windows are only defined for even number of pointsmatchr!   rr  rs  zCKaiser-Bessel Derived windows are only defined for symmetric shapesF)rt  r5   r6   )r  r   r   rw  )rF   r6   r}  msgs       rG   test_exceptionsz'TestKaiserBesselDerived.test_exceptions  sS   ":S111 	A 	A)!a%bR@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A":S111 	L 	L)!a%beKKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	Ls#   AA	A%BBBN)rK   rL   rM   rH   r  r   rI   rG   rp  rp    s7        6 6 6>L L L L LrI   rp  c                       e Zd Zd ZdS )TestNuttallc                    t          t          j        dd|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        d|          |                    g d	|j                             t          t          j        dd
|          |                    g d|j                             d S )Nr3   Fr4   )A"7?v;O<g?$2bUs?rB   r  r  r8   r>   )r  gx&yxXW?g??絑?r  g??g&yxXW?r?   )r  gEJ?g=`T?g>`T?gEJ?r  T)r  r  r  rB   r  r  r  )r
   r   r   rC   rD   rE   s     rG   rH   zTestNuttall.test_basic(  sh   u<<<

 $/ $/ $/68j # B B	C 	C 	C 	u<<<

 $L $L $L +-*	 # 6 6	7 	7 	7 	b111

 $C $C $CJL* # V V	W 	W 	W 	4B777

 $E $E $ELNJ # X X	Y 	Y 	Y 	Y 	YrI   NrJ   r   rI   rG   r  r  &  s(        Y Y Y Y YrI   r  c                       e Zd Zd ZdS )
TestParzenc                    t          t          j        d|          |                    g d|j                             t          t          j        dd|          |                    g d|j                             t          t          j        dd	|          |                    g d
|j                             d S )Nr3   r?   )e/?rZ  88?r  rZ  r  r8   r>   Tr4   )%OZQ%w?2|&?݁?rB   r  r  r  F)r  r  r  rB   r  r  )r
   r   r   rC   rD   rE   s     rG   rH   zTestParzen.test_basic=  s
   qR000

 $T $T $T*,* # 6 6	7 	7 	7 	qdr:::

 $M $M $M +-* # 6 6	7 	7 	7
 	q%B777

 $8 $8 $8?Az # K K	L 	L 	L 	L 	LrI   NrJ   r   rI   rG   r  r  ;  s(        L L L L LrI   r  c                       e Zd Zd ZdS )
TestTriangc                    t          t          j        dd|          |                    g d|j                             t          t          j        d|          |                    g d|j                             t          t          j        dd|	          |                    g d
|j                             d S )Nr3   Tr?   )UUUUUU?r&   竪?r  r&   r  r8   r>   )rZ  r&   rH  r!   rH  r&   rZ  Fr4   )rZ  r&   rH  r!   rH  r&   )r
   r   r   rC   rD   rE   s     rG   rH   zTestTriang.test_basicO  s    q$2666

#A#A#A
TT	V 	V 	VqR000

#D#D#DBJ
WW	Y 	Y 	Yqe;;;

#?#?#?rz
RR	T 	T 	T 	T 	TrI   NrJ   r   rI   rG   r  r  M  s(        T T T T TrI   r  )r   r&   T)        rB   rB   r  )r   ?T)r  ?r  r  )r   rB   T)r  rH  rH  r  )r   r&   F)r  rB   rB   rB   )r   r  F)r  rnOC?rB   r  )r   rB   F)r  r&   rB   r&   )rq   r  T)rB   rB   rB   rB   rB   )rq   rR   T)r  Yx?rB   r  r  )rq   rB   T)r  r&   rB   r&   r  )r3   r   r   )r>   r   r   )r3   rZ  )r  r!   r!   r!   r!   r   )r>   rZ  )r  r!   r!   r!   r!   r!   r   r3   )r   r`  rB   rB   gRͻ?r   )r>   )r   rH  rB   rB   rB   rH  r   r3   rH  )r   gxų	&?rB   rB   gvų	&?r   r>   rH  )r   g#}`yq?)!?rB   r  g#}`yq?r   r^  ra  )r3   r!   )r>   r!   c                       e Zd Zd Zd ZdS )	TestTukeyc                 .   t                                           D ]z\  }}|!t          t          t          j        g|R d|i (t          |          r
|dv rddd}nddd}t	          j        |d|i}t          ||                    |          fddi| {d S )	Nr6   )r  r  r  r  g+i)+`>r_   r;   r:   check_dtypeF)	
tukey_datar  r  r   r   r.   r   r
   rC   )rF   r6   r!  r"  	atol_rtolr#  s         rG   rH   zTestTukey.test_basicx  s    $$&& 	@ 	@DAqyj'-C!CCCCCCCB<< AA)J$J$J*.!=!=YY*/!@!@YmQ.2..RZZ]] @ @,1@5>@ @ @ @	@ 	@rI   c                     t          j        dd|          }t          j        d|          }t          ||           t          j        dd|          }t          j        d|          }t          ||           d S )Nr   r   r?   r!   )r   r.   r   r
   r+   )rF   r6   tuk0box0tuk1han1s         rG   test_extremeszTestTukey.test_extremes  s|    }S!+++~cb)))d###}S!+++|CB'''d#####rI   N)rK   rL   rM   rH   r  r   rI   rG   r  r  v  s5        @ @ @$ $ $ $ $rI   r  )IP?;]L?r  r  )g/vI<t?gE@?gE@̿g/vI<tgV?g$aȲ`?)ыBA?gnjk?r  )g>ef?r  g>ef)	#n?gLor  )gm/ ?g96+?g雦br?)g w?V?g>J#?g;Wi?g֙}I#?gr?V?)g:7A!(?cHX?r  cHXS[@!(ܿ)qh4?T1a~²?gEܿr  r  )r  r  r  gS[@!(?r  )gu+t?X>߿g36?r  g;St?)gML?gh5"z?g\v4?gPa?gd?)dsk8Si?p&p?5Bu?OL{?08À?w-<?kF?^R?kPz?1?Y^Q?X9?dkѐ^ś?3aJ?)IQ?-?ѫ"?給.?~9P?~n[?8Wϭ?	%fҳ?!KI?PJd?/ĳ?$~s	?pkuP?%ꙷ?
?q*?%wo?Zo??矐Ӄ?磓B@%?g3?/ߗ#@?0?@?=?.F!?it3?:.?X.?GkNVs?玃"Hk? 'F?精`?iGU?#!5#?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  )dgUw|?gTP?gj?gwĢ?gDъO?g_{?g< ?gȁk?gꬃt?g(P;?gHñ?gBKXP?g.mˏ޴?g nik?g"=?gOu?g{?ggU?g/u?gN׏$s?g ]?gГE?goY*?gܛ?gbu?g`?gɪJS?ga`gT*r?g.{?gYn?g.|TK?g紸?gzþ?gfU?g,?gԙ=?gg'?gws䕽?g?g[\	?g#k	?g%*?gLw<w?g,h-A?g[::<?g199l?g.4䓦%?gG/?gƢhlO?g[$v?g[$vgƢhlOgG/g.4䓦%g199lg[::<񍭿g,h-AgLw<wg%*浿g#k	g[\	g㻿gws䕽gg'gԙ=g,gfUgzþg紸¿g.|TK¿gYn¿g.{¿ga`gT*r¿gɪJS¿g`¿gbugܛgoY*gГEg ]gN׏$sg/uggUg{캿gOug"=g nikg.mˏ޴gBKXPgHñg(P;gꬃtgȁkg< g_{gDъOgwĢgjgTPgUw|)d|W◰?煢	͓??
8ρ?\i?ٮ32A?!;f?+?3sXL2??J?5QG?Ao?W? }2?␉k?IǇ?F6?f?ch'?%"a?h/K?:?>}?DC1?XB?QST`?s\NK?
3?<s?o?@1O?5M?#$7?,9ṗ?C)?W]{?#Ys臈En꛿x;i6
v^
m-b3[Ehp[6a0_:WR~戺0ъҺ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  )dgI!w.?gMu?g%Pld?g3z?g>?gd?g!DKy?g+o ?gYh{b?g{^y?gSh1?gy%@?g|hzj??gP\D?gz	?gVx<҅?g?gq&?gb˱?g8|p?g_cH?g6K	?gwp΍?g"Q	q?g@m8Migǐ3g7/`_qgS!g8QJg68gu\qg/Z~ܳgpQZgCg3`g7<w䷿ggp鷿g<Wulg~`gTg#qvg,]Bigw|gvľg3gagLHgU,gvA]PvgvA]Pv?gU,?gLH?ga?g3?gvľ?gw|?g,]Bi?g#qv?gT?g~`?g<Wul?gp?g?g7<w?g3`?gC?gpQZ?g/Z~ܳ?gu\q?g68?g8QJ?gS!?g7/`_q?gǐ3?g@m8Mi?g"Q	qgwp΍g6K	g_cHg8|pgb˱gq&ggVx<҅gz	gP\Dg|hzj?gy%@¿gSh1ÿg{^yÿgYh{bĿg+o Ŀg!DKyſgdſg>ſg3zĿg%PldĿgMuÿgI!w.ÿ)g?g"?gy?'?g `?))r   r   r#   )r8  gffffff?r8  )rq   r(   rq   )r   r#   r   Tz#banded linear algebra is numpy-onlynp_onlyrl   c                   P    e Zd Zd Zd Zd Zd Z ed          d             ZdS )	TestDPSSc                     t                                           D ]M\  }}t          j        |d|d\  }}t	          ||d         d|           t	          ||d         dd|           Nd S )	NTreturn_ratiosr6   r   gHz>)r=   err_msgr!   gh㈵>)r<   r=   r%  )	dpss_datar  r   r"   r
   )rF   r6   r!  r"  r#  ratioss         rG   rH   zTestDPSS.test_basic  s    OO%% 	K 	KDAq!,"EEEKCC1D!<<<<FAaDt$JJJJJ	K 	KrI   c                 n   t          dd          D ]"}t          j        ||dz  |          }|dz  }t          t	          j        |d                                          ||            t          j        ||dz  d|	          }|dk    rJt          t	          j        |d                                          ||            t          ||d
           t          j        ||dz  d|	          }|dk    rdnd}t          t	          j        |d                                          ||            $d S )Nr!      g @r?   r#   rB   )r%  	subsamplerz   gQ?r  r   )ranger   r"   r   r   r   sumr
   )rF   r6   r}  r#  expectedwin_subwin_2s          rG   
test_unityzTestDPSS.test_unity  s\   q" 	- 	-A,q!c'b111C1uHBJsB//3355x$'+ + + + l1a#gKBGGGG1uu
7B 7 7 ; ; = =x(/\3 3 3 3W48888LAG!;;;EFFqqHBJub115577$)- - - - -!	- 	-rI   c                    t          j        dddd|          d         }t          ||                    |                     t          j        dddd|          d         }t          ||                    |                     t          j        dddd|          d         }t          ||                    |                     d S )	N   r3   r   Tr#  r!   r>   r  )r   r"   r
   r{  )rF   r6   lams      rG   r  zTestDPSS.test_extremes  s    l2q!4B???BR\\#..///l2q!4B???BR\\#..///l2q!4B???BR\\#../////rI   c                    t          t          t          j        ddd           t          t          t          j        ddd           t          t          t          j        ddd           t          t          t          j        ddd           t          t          t          j        ddd           t          t          t          j        ddd           t          t          t          j        ddd           d S )	Nr   r(   皙?r8  r   r!   )r  r   r   r"   	TypeErrorrE   s     rG   test_degeneratezTestDPSS.test_degenerate  s    j',3;;;j',3;;;iq#s;;;j',3:::j',2q999j',1a888j',Aq99999rI   T)r  c                 b   t          j        dd          }t          |dg           t          j        ddd          \  }}t          |dg           |dk    sJ t          j        dddd          \  }}t          |dg           t          |t          j                  sJ t          |dg           t          t          t           j        ddd|	           t          t          t           j        ddd
|	           t          t          t           j        ddd|	           t          t          t           j        ddd|	           t          t          t           j        ddd|	           t          t          t           j        ddd|	           t          t          t           j        ddd|	           d S )Nr!   rB   T)r$  r   )Kmaxr$  r(   r5  r?   r6  r7  r8  r   )	r   r"   r   
isinstancer   ndarrayr  r   r8  )rF   r6   r   ratios       rG   test_degenerate_signle_samplesz'TestDPSS.test_degenerate_signle_samples  s    LBB4   <2T:::5B4   {{{{<2ATBBB5B4   %,,,,,t$$$j',3rBBBBj',3rBBBBiq#srBBBBj',3bAAAAj',2qR@@@@j',1aB????j',AqR@@@@@@rI   N)	rK   rL   rM   rH   r0  r  r9  r   r?  r   rI   rG   r!  r!    s        K K K- - -*0 0 0: : : d###A A $#A A ArI   r!  c                       e Zd Zd Zd ZdS )TestLanczosc                    t          t          j        dd|          |                    g d|j                  d           t          t          j        d|          |                    g d	|j                  d           t          t          j        d
d|          |                    g d|j                  d           d S )Nr3   Fr4   r  qϾv?;Fv?rB   rE  rD  r8   &.>r[   r?   r  uH%?;9?rI  rH  r  r>   T)r  rD  rE  rB   rE  rD  r  )r
   r   r/   rC   rD   rE   s     rG   rH   zTestLanczos.test_basic  s!    	u<<<

 $1 $1 $18:
 # D D "		# 	# 	# 	#
 	b111

 $5 $5 $5<>J # H H "		# 	# 	# 	#
 	t;;;

 $5 $5 $5<>J # H H "		# 	# 	# 	# 	# 	#rI   c                     dD ]R}t          j        |d|          j        d         |k    sJ t          j        |d|          j        d         |k    sJ Sd S )N)r   r      Fr4   r   T)r   r/   ry  )rF   r6   ns      rG   test_array_sizezTestLanczos.test_array_size   sv     	E 	EA?1%B777=a@AEEEE?1$2666<Q?1DDDDD	E 	ErI   N)rK   rL   rM   rH   rM  r   rI   rG   rA  rA    s7        # # #2E E E E ErI   rA  c                   4   e Zd Zd Z edd           edd          d                         Z edd           edd          d                         Z ed	d
          d             Zd Zd Z	 e
d	d          d             Zd Zd Zd Zd ZdS )TestGetWindowc                     t          j        dd|          }t          ||                    |                     t          j        dd|          }t          ||                    |                     d S )Nr      r?   )r      )r   r   r   r{  )rF   r6   r   s      rG   test_boxcarzTestGetWindow.test_boxcar  sl    x3332<<??+++ {B26662<<??+++++rI   ri   rj   rk   r   r   c                    t                      5 }|                    t          d           t          j        ddd|          }d d d            n# 1 swxY w Y   t          ||                    t          |j                  d           d S )	Nr   )r)   r   r   Fru  r8   r   r   )	r   r   r   r   r   r   rC   r   rD   rF   r6   r   r   s       rG   test_cheb_oddzTestGetWindow.test_cheb_odd  s        	OCJJ{$ABBB"#3R2NNNA	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	"rzz-rzz::A	
 	
 	
 	
 	
 	
   4AAAc                    t                      5 }|                    t          d           t          j        ddd|          }d d d            n# 1 swxY w Y   t          ||                    t                    d           d S )Nr   )r)   r   r   Fru  r   r   )r   r   r   r   r   r   rC   r  rU  s       rG   test_cheb_evenzTestGetWindow.test_cheb_even  s        	NCJJ{$ABBB"?B"MMMA	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	"!RZZ%?%?KKKKKKrW  Tzeigh_tridiagonal is CPU-only)r   rl   c                     t          j        ddd|          }t          j        dd|          }t          ||d           d S )	N)r"   r8  @   Fru  r8  r?   r   r   )r   r   r"   r   rF   r6   win1win2s       rG   	test_dpsszTestGetWindow.test_dpss"  sL    !+r5RHHH|Bb)))!$a888888rI   c                     t          j        dd|          }t          j        ddd|          }t          ||           d S )Ng@r[  r?   F)r   r   r   r
   r\  s       rG   test_kaiser_floatzTestGetWindow.test_kaiser_float(  sG    !#rb111~b#u444d#####rI   c                     t          t          t          j        t	          d          d|           t          t          t          j        dd|           d S )Nr+   r  r?   brokenr   )r  r   r   r   setrE   s     rG   test_invalid_inputsz!TestGetWindow.test_invalid_inputs-  sH    j'"4c&kk1LLLL 	j'"4hbIIIIIIrI   z#TODO: make resample array API readyr  c                 
   d}|                     d          }t          j        d|dz  |          }t          t          d          5  t          |t          |          |z  |           d d d            d S # 1 swxY w Y   d S )N   )r   g       @r#   r?   z^window.shape=r  )window)aranger   r   r  r   r	   len)rF   r6   osfactorsigr#  s        rG   test_array_as_windowz"TestGetWindow.test_array_as_window4  s     iinn (a-BGGG:-=>>> 	; 	;S#c((X-c::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   #A88A<?A<c           	         t          t          d|                    g d          fd          |                    g d|j                             t          t          d|                    g d          fdd          |                    g d|j                             t	          j        t                    5  t          dg dfd|	           d d d            d S # 1 swxY w Y   d S )
NrA  r>  r   r@  r8   F)rv  )rQ   皙?ro  rQ   r?   )r
   r   rC   rD   pytestr   r   rE   s     rG   test_general_cosinez!TestGetWindow.test_general_cosine>  s_   
$4bjj6Q6Q#RTUVV

#5#5#5RZ
HH	J 	J 	J
$4bjj6Q6Q#RTU+02 2 2

#9#9#9
LL	N 	N 	N ]:&& 	F 	F(///:A"EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   >C""C&)C&c                     t          t          dd|          |                    g d|j                             t          t          ddd|          |                    g d|j                             d S )	N)rK  rF  rq   r?   )rQ   жn?男*?rt  rs  r8   Fru  rG  r
   r   rC   rD   rE   s     rG   test_general_hammingz"TestGetWindow.test_general_hammingH  s    
#;Q2FFF

#T#T#T)+ # 5 5	6 	6 	6 	
#;QRTUUU

#<#<#<BJ
OO	Q 	Q 	Q 	Q 	QrI   c                 `   t          t          dd|          |                    g d|j                  d           t          t          ddd|	          |                    g d
|j                  d           t          t          dd|          t          dd|                     d S )Nr/   r3   r?   rC  r8   rF  r[   Fru  rG  sincru  rE   s     rG   test_lanczoszTestGetWindow.test_lanczosO  s    
9aB777

 $1 $1 $18:
 # D DJN	P 	P 	P 	P 	
9a2FFF

 $5 $5 $5<>J # H HNR	T 	T 	T 	T 	
9aB777"61444	6 	6 	6 	6 	6rI   c                     t          dd          }t          |t          j                  sJ t          dd|          }t	          |          st          |t          j                  rJ d S d S )Nr/   r3   r?   )r   r<  r   r=  r   )rF   r6   r#  s      rG   test_xp_defaultzTestGetWindow.test_xp_defaultY  ss    A&&#rz*****A"---|| 	3!#rz22222	3 	322rI   N)rK   rL   rM   rS  r   rV  rY  r_  ra  re  xfail_xp_backendsrm  rq  rv  ry  r{  r   rI   rG   rO  rO    sy       , , , k*;<<<l+IJJJ
 
 KJ =<
 k*;<<<l+IJJJL L KJ =<L t,JKKK9 9 LK9
$ $ $
J J J t,QRRR; ; SR;F F FQ Q Q6 6 63 3 3 3 3rI   rO  z(https://github.com/dask/dask/issues/2620c           
      r	   t           D ]\  }}t          t          |          }t          |           r|dv rt	          j        d|d           |dv rSt          |           rt	          j        d           t          |           r t          dk    rt	          j        d           t                      5 }|
                    t          d	            |d
g|R d| d} |dg|R d| d}t          |d d         |            |dg|R d| d} |d
g|R d| d}t          |d d         |            |dg|R d| dj        d         dk    sJ  |dg|R d| dj        d         dk    sJ  |dg|R d| dj        d         dk    sJ  |dg|R d| dj        d         dk    sJ t          t          |dg|R d| i t          t          |dg|R d| i t!           |dg|R d| d|                     g | j                             t!           |dg|R d| d|                     g | j                             t!           |dg|R d| d|                     dg| j                             t!           |dg|R d| d|                     dg| j                              |dg|R d| dj        | j        k    sJ  |dg|R d| dj        | j        k    sJ  |dg|R d| dj        | j        k    sJ  |dg|R d| dj        | j        k    sJ  |dg|R d| dj        | j        k    sJ  |dg|R d| dj        | j        k    sJ |                      |dg|R d| ddk               sJ |                      |dg|R d| ddk               sJ |                      |dg|R d| ddk               sJ |                      |dg|R d| ddk               sJ t+           |dg|R d| d          }|                     |          }t          ||                     |          d           t+           |dg|R d| d          }|                     |          }t          ||                     |          d           d d d            n# 1 swxY w Y   d S )N)r-   r)   zwindow_name = : item assignmentrk   )r"   z'dpss window is not implemented for cupycpuz)needs eight_tridiagonal which is CPU onlyr   r  Tr4   r>   Fr5  	   r3   r   g      @r6   ir8   r!   rB   r   g)\(?rZ   r[   rK  )window_funcsgetattrr   r   rp  skipr   r   r   r   r   r   r
   ry  r  r   r   rC   rD   r9   allr   imag
zeros_like)r6   window_nameparamsrh  r   w1r~  ress           rG   test_windowfunc_basicsr  c  s   + >A >AV+..":: 	E+)>>>KC+CCCDDDD(""r{{ N#LMMMM|| P 5 5#NOOOO   4	ACJJ{$ABBB4F44444B5F55"555BBssGR(((4F44444B5F55"555BBssGR((( 6!6f66$2666<Q?1DDDD6!7f77%B777=a@AEEEE6!6f66$2666<Q?1DDDD6!7f77%B777=a@AEEEE *fcBFBBBrBBB*fbA6AAAbAAA FF1?v??4B???JJrJ<<> > >FF1@v@@5R@@@JJrJ<<> > >FF1?v??4B???JJt2:J>>@ @ @FF1@v@@5R@@@JJt2:J>>@ @ @ 6!6f66$2666<
JJJJ6!7f77%B777=KKKK6!6f66$2666<
JJJJ6!7f77%B777=KKKK6!6f66$2666<
JJJJ6!7f77%B777=KKKK 66&&>f>>$2>>>EFFFFF66&&?f??%B???$FGGGGG66&&=V=="===DEEEEE66&&>V>>2>>>EFFFFF ffR;&;;e;;;<<C''#,,CCs!3!3%@@@@ffR;&;;e;;;<<C''#,,CCs!3!3%@@@@i4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A 4	A>A >As   4O*R**R.	1R.	c                 L    dD ] }t          t          t          |d|            !d S )N)r   ksrrw  kbdr$   gaussgsszgeneral gaussianr'   zgeneral gaussgeneral_gaussggsdssr"   zgeneral cosinerA  r)   chebzgeneral hammingrK  r>   r?   )r  r   r   )r6   winstrs     rG   test_needs_paramsr    s?     @ @ 	j*faB?????@ @rI   )r   r   r   r   r   r   r*   r   r   r   r   r-   r,   poissonr.   tuktriangler/   rx  r  c                     t          |           r|dv rt          j        | d           t          |d|           }|j        d         dk    sJ d S )N)r-   r~  rk   r>   r?   r   )r   rp  r  r   ry  )r6   r  r#  s      rG   test_not_needs_paramsr    sg    bzz 9f
**f7778888
VQ2
&
&
&C9Q<1rI   c           	         t           j        fD ]} |d|           }t          |          j        }|                     |                     | ||          z
                      }t          ||                     d          dd            |d|           }|                     |                     | ||          z
                      }t          ||                     d          dd           d S )Ni   r?   r  F)r  check_0di  )r   r/   r   flipr   r   r   rC   )r6   r#  r   r  errors        rG   test_symmetricr    s      
S 
SCq!!&rvva$$q''k**++rzz#EERRRR Crvva$$q''k**++rzz#EERRRRR
S 
SrI   )@r   numpyr   r   numpy.testingr   rp  r   r  	scipy.fftr   scipy.signalr   r   r	   scipy._lib._array_apir
   r   r   r   r   r   r   r   r   markr   r|  r  r1   rO   rV   rc   rn   r   r   r   r  r   r  r$  r&  r1  r<  rD  rM  rX  rc  rp  r  r  r  r  r  r&  r!  rA  rO  r  r  _winstrparametrizer  r  r   rI   rG   <module>r     s+              + + + + + +  * * * * * *       6 6 6 6 6 6 6 6 6 6                     
 ;/ K1   40 0 0 0 0 0 0 0 T T T T T T T T7 7 7 7 7 7 7 7,K K K K K K K K( +&7888L: L: L: L: L: L: L: 98L:^7 7 7 7 7 7 7 7"L L L L L L L L  0 0 0( +&7888,'EFFF:O :O :O :O :O :O :O GF 98:O~ 	 ( ( ( 	) 	)  % !J !J !J K K 5 "7 "7 "7 8 8% !K !K !K L L 	 A A A 	B 	B 4 4 4 5 5 A A A 	B 	B  % !J !J !J K K3  :< < <8 8 8 8 8 8 8 8,L L L L L L L L0	J 	J 	J 	J 	J 	J 	J 	J
Y 
Y 
Y 
Y 
Y 
Y 
Y 
Y6 6 6 6 6 6 6 6(0 0 0 0 0 0 0 0.L L L L L L L L:-L -L -L -L -L -L -L -L`Y Y Y Y Y Y Y Y*L L L L L L L L$	T 	T 	T 	T 	T 	T 	T 	TEE...//EE 5 5 5 6 6 EE00011	
 UU///00 UU 6 6 6 7 7 UU///00 EE33344 EE : : : ; ; EE33344     ###  """!" %%%#$ 	
B
B
B%& 	
+
+
+'( FFF)*  : : :+.$ $ $///3  
:$ $ $ $ $ $ $ $@ HGGIII  A  DO  Q\  C]  ^:::<\<\<\  _G  _G  _G  H  Jq  Jq  Jq  rVVV  YU  YU  YU  WY  WY  WY  [V  [V  [V  Xa  Xa  Xa  b  dk  dk  dk  l |  |  |  ~J(  ~J(  ~J(  L(D<  L(D<  L(D<  F<`P  F<`P  F<`P  aP  cPWQ  cPWQ  cPWQ  XQ 	 $'LMMMDA DA DA DA DA DA DA NMDANE E E E E E E EBZ3 Z3 Z3 Z3 Z3 Z3 Z3 Z3z ,'QRRR?A ?A SR?AD@ @ @  , 7++  ,+S S S S SrI   