
    xf
                     B   d dl 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 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 d dlmZ g dZej4                  j7                  d	d
ge      d        Z G d d      Z G d d      Z G d d      Z G d d      Z  G d d      Z! G d d      Z" G d d      Z# eg d      Z$ eg d      Z% 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 d. d/      Z- G d0 d1      Z. G d2 d3      Z/ G d4 d5      Z0 G d6 d7      Z1 G d8 d9      Z2 G d: d;      Z3i d< eg d=      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      dNg dOdPg dQdRg dSdTg dUdVg dWdXg dYdZg d[d\g d]g d^g d_d`Z4 G da db      Z5g dcg ddgdedfgfg dgg dhg digg djfg dkg dlg dmg dng dogg dpfg dqg drg dsg dtgg dufdvZ6 G dw dx      Z7 G dy dz      Z8 G d{ d|      Z9d} Z:d~ Z;d Z<d Z=d Z>d Z?y)    N)array)assert_array_almost_equalassert_array_equalassert_allcloseassert_equalassert_assert_array_lesssuppress_warnings)raises)fft)windows
get_windowresamplehann)signal))boxcar )triangr   )parzenr   )bohmanr   )blackmanr   )nuttallr   )blackmanharrisr   )flattopr   )bartlettr   )barthannr   )hammingr   )kaiser   )dpss)   )gaussian      ?)general_gaussian)      ?r"   )chebwinr   )cosiner   )r   r   )exponentialr   )taylorr   )tukeyr$   )lanczosr   methodargsc                     | dv rt        j                  d       t        t        |       }d|  }t        j                  |      5   |dg|  d d d        y # 1 sw Y   y xY w)N)r+   r-   r!   zDeprecation test not applicablez
Importing matchr    )pytestskipgetattrr   deprecated_call)r.   r/   funcmsgs       A/usr/lib/python3/dist-packages/scipy/signal/tests/test_windows.pytest_deprecated_importr:   *   s^    ..5666"Dvh
C			c	* Q  s   
AA!c                       e Zd Zd Zy)TestBartHannc                     t        t        j                  dd      g ddd       t        t        j                  d      g ddd       t        t        j                  dd	      g d
dd       y )N   Tsym)r   gA,q?	5xB$?rA   gA,q?r   V瞯<rtolatol   )r   HzG?\(\?      ?rH   rG   r   F)r   rG   rH   rI   rH   rG   )r   r   r   selfs    r9   
test_basiczTestBartHann.test_basic6   sd    ((5D"	0 	((+;"	0 	((E28"	0    N__name__
__module____qualname__rL   r   rM   r9   r<   r<   4   s    
0rM   r<   c                       e Zd Zd Zy)TestBartlettc                     t        t        j                  d      g d       t        t        j                  d      g d       t        t        j                  dd      g d       y )Nr>   )r   皙?皙?rV   rU   r   rF   )r   UUUUUU?UUUUUU?rI   rX   rW   r   F)r   rW   rX   rI   rX   rW   )r   r   r   rJ   s    r9   rL   zTestBartlett.test_basicE   sH    ((+-GH((+-LM((E24	6rM   NrN   r   rM   r9   rS   rS   C   s    6rM   rS   c                       e Zd Zd Zy)TestBlackmanc                 &   t        t        j                  dd      g dd       t        t        j                  dd      g dd	       t        t        j                  d      g d
d       t        t        j                  dd      g dd       y )Nr>   Fr?   )r   p=
ף?)\(?rI   r]   r\   +=rE   rF   )r   Fi'?b@c?Zgs?rb   ra   r`   g:0yE>)r   쳩ֲ?,,?rd   rc   r   T)r   r\   r]   rI   r]   r\   r   )r   r   r   rJ   s    r9   rL   zTestBlackman.test_basicN   s    ((68u	F((6BHL	N 	((+D"	$ 	((D1;%	IrM   NrN   r   rM   r9   rZ   rZ   L   s    IrM   rZ   c                       e Zd Zd Zy)TestBlackmanHarrisc                    t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  d      g d       t        t        j                  dd      g d	       y )
Nr>   F)iUMu?0_^}?縯猨?rI   rj   ri   rF   r?   )rh   gjP?g'm$M?gu?gu?g*m$M?gjP?)rh   ^?gU׈g?gU׈g?rk   rh   T)rh   ri   rj   rI   rj   ri   rh   )r   r   r   rJ   s    r9   rL   zTestBlackmanHarris.test_basic_   sw    ..q%8N	P..qe<B	C 	..q1J	K 	..qd;"	#rM   NrN   r   rM   r9   rf   rf   ]   s    #rM   rf   c                       e Zd Zd Zd Zd Zy)
TestTaylorc                    t        t        j                  ddd      d       t        t        j                  ddd      t        j                  g d             t        t        j                  ddd      t        j                  g d             y	)
zTests windows of small length that are normalized to 1. See the
        documentation for the Taylor window for more information on
        normalization.
        r    r"      rI      )%6'HA?)T
?rI   rr   rq   r>   )δX?繡1E?PD3m?ru   rt   rs   Nr   r   r+   npr   rJ   s    r9   test_normalizedzTestTaylor.test_normalizedp   sk    
 	q!R0#6NN1a$HHJK	
 	NN1a$HH  	
rM   c                     t        t        j                  dddd      t        j                  g d             t        t        j                  dddd      t        j                  g d             y	)
zTest windows of small length that are not normalized to 1. See
        the documentation for the Taylor window for more information on
        normalization.
        rp   r"   ro   Fnorm)	P ?sCp?g)8ux?r}   r|   r>   ))S~?rI   kt#?r   rI   r~   Nrv   rJ   s    r9   test_non_normalizedzTestTaylor.test_non_normalized   s\    
 	NN1a%0HH  	
 	NN1a%0HH  	
rM   c           	      :   d}d}t        j                  |dddd      }t        ||      }dt        j                  t        j
                  |t        j                  |      z              z  }t        j                  t        j                  |      dkD        }t        j                  |||        }d	t        j                  |d
k        z  |z  |z  }d	t        j                  |dk        z  |z  |z  }	t        |dd       t        |dd       t        |	dd       y)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{   r@      r   r"   gX$g_2gAfAr    r_   gLJ?皙?gZӼ@N)
r   r+   r   rw   log10absamaxargmaxdiffr   )
rK   M_winN_fftwfspec
first_zeroPSLLBW_3dBBW_18dBs
             r9   test_correctnesszTestTaylor.test_correctness   s      NN5qbu%H5MBHHRVVA
N344YYrwwt}q01
wwtJ
{34299T%8899EAEIBIId&99::UBUJhQ/S1c2rM   N)rO   rP   rQ   rx   r   r   r   rM   r9   rm   rm   n   s    
$
$!3rM   rm   c                       e Zd Zd Zy)
TestBohmanc                     t        t        j                  d      g d       t        t        j                  dd      g d       t        t        j                  dd      g d       y )	Nr>   )r   g$I ?6 D?r   g I ?r   rF   Tr?   )r   PG?4}|?rI   6}|?r   r   F)r   r   r   rI   r   r   )r   r   r   rJ   s    r9   rL   zTestBohman.test_basic   sX    q)D	E 	qd3D	E 	q%0A	BrM   NrN   r   rM   r9   r   r      s    	BrM   r   c                       e Zd Zd Zy)
TestBoxcarc                     t        t        j                  d      g d       t        t        j                  d      g d       t        t        j                  dd      g d       y )Nr>   r    r    r    r    r    r    rF   r    r    r    r    r    r    r    F)r   r   r   rJ   s    r9   rL   zTestBoxcar.test_basic   s@    q)+=>q)+@Aq%02DErM   NrN   r   rM   r9   r   r      s    FrM   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?rI   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?.?rI   rI   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   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestChebWinc                    t               5 }|j                  t        d       t        t	        j
                  dd      g d       t        t	        j
                  dd      g d       t        t	        j
                  dd      g d       t        t	        j
                  dd      g d	       t        t	        j
                  ddd
      g d       d d d        y # 1 sw Y   y xY w)NThis window is not suitabler>   d   )}	ɺ?L >?rI   rI   r   r   rF   )S?D1mPC?%5R?rI   r   r   r   
   )rI   TEm?	-o?r   r   rI   )rI   F3?NO?	r]?r   r   rI   F)rI   r   r   r   r   r   )r
   filterUserWarningr   r   r(   )rK   sups     r9   rL   zTestChebWin.test_basic   s      	2CJJ{$ABGOOAs3EF GOOAs3EF GOOAr2JK GOOAr267 GOOAr5912!	2 	2 	2s   CCCc                     t               5 }|j                  t        d       t        j                  dd      }d d d        t        t        d       y # 1 sw Y   xY w)Nr   5   atr   decimal)r
   r   r   r   r(   r   cheb_odd_true)rK   r   cheb_odds      r9   test_cheb_odd_high_attenuationz*TestChebWin.test_cheb_odd_high_attenuation	  sL      	3CJJ{$ABrc2H	3 	"(M1E	3 	3   .AAc                     t               5 }|j                  t        d       t        j                  dd      }d d d        t        t        d       y # 1 sw Y   xY w)Nr   6   (   r   r   r   )r
   r   r   r   r(   r   cheb_even_true)rK   r   	cheb_evens      r9   test_cheb_even_high_attenuationz+TestChebWin.test_cheb_even_high_attenuation  sL      	3CJJ{$ABr2I	3 	")^QG	3 	3r   c                     t        g d      }t               5 }|j                  t        d       t	        j
                  dd      }d d d        t        |d       y # 1 sw Y   xY w)N)rI   m?燿&k?gc[?r   r   rI   r   rF   r   r   r   r   r   r
   r   r   r   r(   r   )rK   cheb_odd_low_at_truer   r   s       r9   test_cheb_odd_low_attenuationz)TestChebWin.test_cheb_odd_low_attenuation  s_    $ &0  1   	1CJJ{$ABqR0H	1 	"(,@!L	1 	1   .AA&c                     t        g d      }t               5 }|j                  t        d       t	        j
                  dd      }d d d        t        |d       y # 1 sw Y   xY w)N)rI   R?N(D!T?#R?r  r  r  rI   r      ir   r   r   r   )rK   cheb_even_low_at_truer   r   s       r9   test_cheb_even_low_attenuationz*TestChebWin.test_cheb_even_low_attenuation  s_     % '; !<   	3CJJ{$ABc2I	3 	")-BAN	3 	3r  N)rO   rP   rQ   rL   r   r   r   r  r   rM   r9   r   r      s    2,FHMOrM   r   )|dy?vS?{?rI   r
  )1B?%?r  r  )́R?8,6V?rI   r  )\Kr?
oh?r  r  )r	  r
  rI   r
  r	  )r  r  rI   r  r  ))r   N皙?F)r   Nr  T)r   NrI   F)r   NrI   T)r   r"   r  F)r   r"   r  T)r   r"   rI   F)r   r"   rI   T)rp   Nr  T)rp   NrI   T)rp   r"   r  T)rp   r"   rI   Tc                      t         j                         D ]G  \  } }| t        t        t        j
                  g|   (t	        j
                  |  }t        ||d       I y )Nr^   rD   )exponential_dataitemsassert_raises
ValueErrorr   r*   r   )kvwins      r9   test_exponentialr  E  sT     &&( 019*g&9&9>A>%%q)CC/0rM   c                       e Zd Zd Zy)TestFlatTopc                    t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  d      g d       t        t        j                  dd      g d	       y )
Nr>   Fr?   )bF;s*?dR	p^?rI   r!  r   rF   )r  `p|ܢ?J?r$  r#  r"  )r  <#U_&k?r&  r%  r  T)r  r   r!  rI   r!  r   r  )r   r   r   rJ   s    r9   rL   zTestFlatTop.test_basicP  sp    u53	4 	u5/	0
 	*'	( 	40A	BrM   NrN   r   rM   r9   r  r  N  s    BrM   r  c                       e Zd Zd Zy)TestGaussianc                    t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  ddd	      g d
       y )Nr>   rI   )|~?w$?"$j=?r,  r+  r*  rF   g333333?)r*  
"?;eܜ?rI   r.  r-  r*     )r  ?yLE?rI   r1  r0  r  F)r  r0  r1  rI   r1  r0  )r   r   r#   rJ   s    r9   rL   zTestGaussian.test_basicd  s    ((C0B	C 	((C0B	C 	((A.A	B 	((Au5-	.rM   NrN   r   rM   r9   r(  r(  b  s    .rM   r(  c                       e Zd Zd Zy)TestGeneralCosinec                     t        t        j                  dg d      g d       t        t        j                  dg dd      g d       y )Nrp   r%   333333?r  )rU   r6  r    r6  rU   r   Fr?   rU   r6  r    r6  )r   r   general_cosinerJ   s    r9   rL   zTestGeneralCosine.test_basicy  s8    ..q/B/	1..q/uM*	,rM   NrN   r   rM   r9   r3  r3  w  s    ,rM   r3  c                       e Zd Zd Zy)TestGeneralHammingc                     t        t        j                  dd      g d       t        t        j                  ddd      g d       t        t        j                  ddd	      g d
       y )Nrp   ffffff?rU   r<  rI   r<  rU         ?Fr?   )r%   y&"?x?r@  r?  r>   T)r%   r?  r@  r@  r?  r%   )r   r   general_hammingrJ   s    r9   rL   zTestGeneralHamming.test_basic  sZ    //371	3//4UC5	6 	//4TB9	:rM   NrN   r   rM   r9   r:  r:    s    :rM   r:  c                       e Zd Zd Zy)TestHammingc                    t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  d      g d       t        t        j                  dd      g d	       y )
Nr>   F){Gz?ףp=
?p=
ף?rI   rG  rF  rF   r?   )rE  CW4?	/5?4Cъ?rJ  rI  rH  )rE  6 iv?P0?rL  rK  rE  T)rE  rF  rG  rI   rG  rF  rE  )r   r   r   rJ   s    r9   rL   zTestHamming.test_basic  sm    51;	=u5A	B 	*G	H 	t4A	CrM   NrN   r   rM   r9   rC  rC    s    CrM   rC  c                       e Zd Zd Zy)TestHannc                 .   t        t        j                  dd      g ddd       t        t        j                  dd      g ddd       t        t        j                  dd	      g d
dd       t        t        j                  d      g ddd       y )Nr>   Fr?   )r         ?r>  rI   r>  rP  rB   rC   rF   )r   \$:?H`r?8T^j?rS  rR  rQ  Tr   Xhd?Tͻ?rV  rU  r   r   rP  r>  rI   r>  rP  r   )r   r   r   rJ   s    r9   rL   zTestHann.test_basic  s    QE28"	0 	QE2A #		0
 	Q-D"	0 	Q;"	0rM   NrN   r   rM   r9   rN  rN    s    0rM   rN  c                       e Zd Zd Zy)
TestKaiserc                 Z   t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  ddd	      g d
       y )Nr>   r%   )l?<3N?i>%?r]  r\  r[  rF   )r[  	$?6?rI   r_  r^  r[  g@)§Aը?O F?$?rb  ra  r`  )r`  *'?=a?rI   rd  rc  r`  F)r`  rc  rd  rI   rd  rc  )r   r   r   rJ   s    r9   rL   zTestKaiser.test_basic  s    q#.A	B 	q#.A	B 	q#.A	B 	q#.A	B 	q#u5-	.rM   NrN   r   rM   r9   rY  rY    s    .rM   rY  c                       e Zd Zd Zd Zy)TestKaiserBesselDerivedc                 4   d}t        j                  |d      }t        j                  d|d      }t        ||       t        |d |dz   dz  || dz  d  dz  z   d       t        t        j                  dt        j
                  dz        d d	 t	        j                  d      dz         t        t        j                  d
t        j
                  dz        d d ddg       t        t        j                  dt        j
                  dz        d d g d       y )Nr         @beta)zkaiser bessel derivedrh  Ffftbinsr"   rI   r    r   gU?gU3|\?r>   r/  )gHZ1?gKf?g"iF5?)r   kaiser_bessel_derivedr   r   rw   pisqrt)rK   Mr   w2s       r9   rL   z"TestKaiserBesselDerived.test_basic  s    ))!#6 > !522 	'16
a!QB!GH+*::B? 	55abeeaiH!L
Q	( 	55abeeaiH!L'8	: 	55abeeaiH!LH	JrM   c                    d}d}t        t        |      5  t        j                  |dz   d       d d d        d}t        t        |      5  t        j                  |dz   dd	       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)
Nr   zHKaiser-Bessel Derived windows are only defined for even number of pointsr1   r    rh  ri  zCKaiser-Bessel Derived windows are only defined for symmetric shapesF)rj  r@   )r  r  r   rm  )rK   rp  r8   s      r9   test_exceptionsz'TestKaiserBesselDerived.test_exceptions  s    ":S1 	:))!a%b9	:":S1 	E))!a%beD	E 	E	: 	:	E 	Es   A1A=1A:=BN)rO   rP   rQ   rL   rs  r   rM   r9   rf  rf    s    J0ErM   rf  c                       e Zd Zd Zy)TestNuttallc                    t        t        j                  dd      g d       t        t        j                  dd      g d       t        t        j                  d      g d       t        t        j                  dd      g d	       y )
Nr>   Fr?   )A"7?v;O<g?$2bUs?rI   ry  rx  rF   )rw  gx&yxXW?g??絑?rz  g??g&yxXW?)rw  gEJ?g=`T?g>`T?gEJ?rw  T)rw  rx  ry  rI   ry  rx  rw  )r   r   r   rJ   s    r9   rL   zTestNuttall.test_basic  sr    u5$	% 	u5A	B 	*L	M 	40/	0rM   NrN   r   rM   r9   ru  ru    s    0rM   ru  c                       e Zd Zd Zy)
TestParzenc                     t        t        j                  d      g d       t        t        j                  dd      g d       t        t        j                  dd      g d       y )	Nr>   )e/?rP  88?r  rP  r~  rF   Tr?   )%OZQ%w?2|&?݁?rI   r  r  r  F)r  r  r  rI   r  r  )r   r   r   rJ   s    r9   rL   zTestParzen.test_basic  sV    q)I	J 	qd3B	C 	q%0-	.rM   NrN   r   rM   r9   r|  r|    s    .rM   r|  c                       e Zd Zd Zy)
TestTriangc                     t        t        j                  dd      g d       t        t        j                  d      g d       t        t        j                  dd      g d       y )	Nr>   T)UUUUUU?r%   竪?r  r%   r  rF   )rP  r%   r>  r    r>  r%   rP  Fr?   )rP  r%   r>  r    r>  r%   )r   r   r   rJ   s    r9   rL   zTestTriang.test_basic  sH    q$/6	8q)9	;qe44	6rM   NrN   r   rM   r9   r  r    s    6rM   r  )r   r%   T)        rI   rI   r  )r   ?T)r  ?r  r  )r   rI   T)r  r>  r>  r  )r   r%   F)r  rI   rI   rI   )r   r  F)r  rnOC?rI   r  )r   rI   F)r  r%   rI   r%   )rp   r  T)rI   rI   rI   rI   rI   )rp   rV   T)r  Yx?rI   r  r  )rp   rI   T)r  r%   rI   r%   r  )r>   r   r   )rF   r   r   )r>   rP  )r   r    r    r    r    r   )rF   rP  )r   r    r    r    r    r    r   )r>   )r   rV  rI   rI   gRͻ?r   )rF   )r   r>  rI   rI   rI   r>  r   )r>   r>  )r   gxų	&?rI   rI   gvų	&?r   )rF   r>  )r   g#}`yq?)!?rI   r  g#}`yq?r   rT  rW  ))r>   r    )rF   r    c                       e Zd Zd Zd Zy)	TestTukeyc                     t         j                         D ]H  \  }}| t        t        t        j
                  g|  (t	        j
                  | }t        ||dd       J y )NrB   rC   )
tukey_datar  r  r  r   r,   r   )rK   r  r  r  s       r9   rL   zTestTukey.test_basic@  sT    $$& 	@DAqyj'--<!<mmQ'QU?	@rM   c                     t        j                  dd      }t        j                  d      }t        ||       t        j                  dd      }t        j                  d      }t        ||       y )Nr   r   r    )r   r,   r   r   r   )rK   tuk0box0tuk1han1s        r9   test_extremeszTestTukey.test_extremesI  sR    }}S!$~~c"!$-}}S!$||C !$-rM   N)rO   rP   rQ   rL   r  r   rM   r9   r  r  >  s    @.rM   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"   )r/  gffffff?r/  )rp   r'   rp   )r   r"   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestDPSSc                     t         j                         D ]B  \  }}t        j                  |ddi\  }}t	        ||d   d|       t	        ||d   dd|       D y )	Nreturn_ratiosTr   gHz>)rE   err_msgr    gh㈵>)rD   rE   r
  )	dpss_datar  r   r!   r   )rK   r  r  r  ratioss        r9   rL   zTestDPSS.test_basica  s[    OO% 	KDAq!,,>>KCC1D!<FAaDt$J	KrM   c                 0   t        dd      D ]  }t        j                  ||dz        }|dz  }t        t	        j
                  |d      j                         ||        t        j                  ||dz  d      }|dkD  r?t        t	        j
                  |d      j                         ||        t        ||d	
       t        j                  ||dz  d      }|dk(  rdnd}t        t	        j
                  |d      j                         ||        	 y )Nr       g @r"   rI   )r
  	subsamplerz   gQ?r  r   )ranger   r!   r   rw   isclosesumr   )rK   rp  r  expectedwin_subwin_2s         r9   
test_unityzTestDPSS.test_unityh  s    q" 	-A,,q!c'*C1uHC,002H$'5+ ll1a#gK@G1uRZZ488:H(/y3W48LLAG!4EFqHE2.224h$)7-!	-rM   c                     t        j                  dddd      d   }t        |d       t        j                  dddd      d   }t        |d       t        j                  dd	dd      d   }t        |d       y )
N   r>   r   T)r	  r    rI   rF   r  )r   r!   r   )rK   lams     r9   r  zTestDPSS.test_extremes}  sk    ll2q!48;!#r*ll2q!48;!#r*ll2q!48;!#r*rM   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       y )	Nr   r'   g?r/  r   r    )r  r  r   r!   	TypeErrorrJ   s    r9   test_degeneratezTestDPSS.test_degenerate  s    j',,3;j',,3;iq#s;j',,3:j',,2q9j',,1a8j',,Aq9rM   N)rO   rP   rQ   rL   r  r  r  r   rM   r9   r  r  _  s    K-*+:rM   r  c                       e Zd Zd Zd Zy)TestLanczosc                     t        t        j                  dd      g dd       t        t        j                  d      g dd       t        t        j                  dd	      g d
d       y )Nr>   Fr?   r  qϾv?;Fv?rI   r$  r#  &.>r_   r  uH%?;9?r(  r'  r  rF   T)r  r#  r$  rI   r$  r#  r  )r   r   r-   rJ   s    r9   rL   zTestLanczos.test_basic  sc     	u5& "		#
 	** "		#
 	t4* "		#rM   c           	          dD ]V  }t        t        t        j                  |d            |       t        t        t        j                  |d            |       X y )N)r   r      Fr?   T)r   lenr   r-   )rK   ns     r9   test_array_sizezTestLanczos.test_array_size  sE     	?AW__QE:;Q?W__QD9:A>	?rM   N)rO   rP   rQ   rL   r-  r   rM   r9   r   r     s    #2?rM   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestGetWindowc                     t        j                  dd      }t        |t        j                  |             t        j                  dd      }t        |t        j                  |             y )Nr      )r      )r   r   r   rw   	ones_like)rK   r   s     r9   test_boxcarzTestGetWindow.test_boxcar  sL    x,1bll1o. {B/1bll1o.rM   c                     t               5 }|j                  t        d       t        j                  ddd      }d d d        t        t        d       y # 1 sw Y   xY w)Nr   )r(   r   r   Frk  r   r   )r
   r   r   r   r   r   r   rK   r   r   s      r9   test_cheb_oddzTestGetWindow.test_cheb_odd  sU      	HCJJ{$AB""#3RGA	H 	"!]A>	H 	H   /AAc                     t               5 }|j                  t        d       t        j                  ddd      }d d d        t        t        d       y # 1 sw Y   xY w)Nr   )r(   r   r   Frk  r   r   )r
   r   r   r   r   r   r   r6  s      r9   test_cheb_evenzTestGetWindow.test_cheb_even  sT      	GCJJ{$AB""?BFA	G 	"!^Q?	G 	Gr8  c                 |    t        j                  ddd      }t        j                  dd      }t        ||d       y )N)r!   r/  @   Frk  r/  r   r   )r   r   r!   r   rK   win1win2s      r9   	test_dpsszTestGetWindow.test_dpss  s2    !!+r5A||B"!$a8rM   c                 v    t        j                  dd      }t        j                  ddd      }t        ||       y )Ng@r<  F)r   r   r   r   r=  s      r9   test_kaiser_floatzTestGetWindow.test_kaiser_float  s0    !!#r*~~b#u-d#rM   c                     t        t        t        j                  t	        d      d       t        t        t        j                  dd       y )Nr   r  brokenr   )r  r  r   r   setrJ   s    r9   test_invalid_inputsz!TestGetWindow.test_invalid_inputs  s0    j'"4"4c&k1E 	j'"4"4hBrM   c                     d}t        j                  d      }t        j                  d|dz        }t	        t
        d      5  t        |t        |      |z  |       d d d        y # 1 sw Y   y xY w)N   )r   g       @r"   zmust have the same lengthr1   )window)rw   aranger   r   r  r  r   r+  )rK   osfactorsigr  s       r9   test_array_as_windowz"TestGetWindow.test_array_as_window  s_    iin  (a-@:-HI 	;S#c(X-c:	; 	; 	;s   A&&A/c                 x    t        t        dg dfd      g d       t        t        dg dfdd      g d       y )Nr8  r5  r   r7  Frk  )rU   皙?rO  rU   r   r   rJ   s    r9   test_general_cosinez!TestGetWindow.test_general_cosine  s;    
$4o#FJ*	,
$4o#F+02.	0rM   c                 h    t        t        dd      g d       t        t        ddd      g d       y )N)rA  r<  rp   )rU   жn?男*?rT  rS  Frk  r=  rP  rJ   s    r9   test_general_hammingz"TestGetWindow.test_general_hamming  s/    
#;Q?I	K
#;QN1	3rM   c                     t        t        dd      g dd       t        t        ddd      g dd       t        t        dd      t        d	d             y )
Nr-   r>   r"  r%  r_   Frk  r&  sincrP  rJ   s    r9   test_lanczoszTestGetWindow.test_lanczos  sR    
9a0&,0	2 	
9a?*04	6 	
9a0*VQ2GHrM   N)rO   rP   rQ   r4  r7  r:  r@  rB  rF  rM  rQ  rU  rX  r   rM   r9   r/  r/    s7    /?@9
$
C;03IrM   r/  c                  4   t         D ]  \  } }t        t        |       }t               5 }|j	                  t
        d        |dg|ddi} |dg|ddi}t        |d d |        |dg|ddi} |dg|ddi}t        |d d |       t        t         |d	g|ddi      d	       t        t         |d	g|ddi      d	       t        t         |dg|ddi      d       t        t         |dg|ddi      d       t        t        |d
g|  t        t        |dg|  t         |dg|ddig        t         |dg|ddig        t         |dg|ddidg       t         |dg|ddidg       t         |dg|ddij                  dk(         t         |dg|ddij                  dk(         t         |dg|ddij                  dk(         t         |dg|ddij                  dk(         t         |d	g|ddij                  dk(         t         |d	g|ddij                  dk(         t         |dg|ddid       t         |dg|ddid       t         |dg|ddid       t         |dg|ddid       t        t!         |dg|ddi      j"                  dd       t        t!         |dg|ddi      j"                  dd       d d d         y # 1 sw Y   xY w)Nr   r  r@   TrF   Fr  	   r>   g      @ir   r    floatr   g)\(?r^   r_   r*  )window_funcsr5   r   r
   r   r   r   r   r+  r  r  r   r   dtyper	   r   r   imag)window_nameparamsrI  r   w1rq  s         r9   test_windowfunc_basicsrb    sT   + /+V+.  -	+CJJ{$AB-F--B.F..B%b"gr2-F--B.F..B%b"gr2 VA99D9:A>VA::E:;Q?VA99D9:A>VA::E:;Q? *fc;F;*fb:6: va;&;d;R@va<&<e<bAva;&;d;aSAva<&<e<qcB F10v04066'ABF11v151777BCF10v04066'ABF11v151777BCF10v04066'ABF11v151777BC fR;&;d;TBfR<&<e<dCfQ::T:DAfQ;;U;TB Cr >F > >?DDE+Cr >F > >?DDE+Y-	+ -	+/+-	+ -	+s   KLL	c                  >    dD ]  } t        t        t        | d        y )N)r   ksrrm  kbdr#   gaussgsszgeneral gaussianr&   zgeneral gaussgeneral_gaussggsdssr!   zgeneral cosiner8  r(   chebzgeneral hammingrA  rF   )r  r  r   )winstrs    r9   test_needs_paramsrm  ,  s#     9 	j*fa89rM   c                  T    dD ]#  } t        | d      }t        t        |      d       % y )N)r   r   r   r   r   r   r)   r   r   r   r   r+   r*   poissonr,   tuktriangler-   rW  rF   )r   r   r+  )rl  r  s     r9   test_not_needs_paramsrr  7  s/     "( #SXq!+"rM   c                      t         j                  At        dt         j                  v        t        dt        j                  j                  v       y y )Nzsignal.hann is deprecated
deprecated)dep_hann__doc__r   r   r   r   rM   r9   test_deprecationrw  P  s>    #+x/?/??@GLL$8$889 $rM   c                  ~    t        j                  t        j                  t                    } t	        | t        u        y )N)pickleloadsdumpsru  r   )	dep_hann2s    r9   test_deprecated_pickleabler}  V  s&    V\\(34II!"rM   c            	      x   t         j                  fD ]  }  | d      }t        j                  t        j                  |t        j
                  |      z
              }t        |d        | d      }t        j                  t        j                  |t        j
                  |      z
              }t        |d        y )Ni   r  i  )r   r-   rw   maxr   flipr   )r  r   errors      r9   test_symmetricr  [  s      	!Irvva
l+,UC  Irvva
l+,UC 	!rM   )@ry  numpyrw   r   numpy.testingr   r   r   r   r   r	   r
   r3   r   r  	scipy.fftr   scipy.signalr   r   r   r   ru  scipyr   r\  markparametrizer:   r<   rS   rZ   rf   rm   r   r   r   r   r   r  r  r  r(  r3  r:  rC  rN  rY  rf  ru  r|  r  r  r  r  r  r   r/  rb  rm  rr  rw  r}  r  r   rM   r9   <module>r     s     . . .  *  H H 2 (F+\: ;0 06 6I I"# #"G3 G3TB BF F  ! "  6 7(4O 4Or 	 ( 	)   !J K  "7 8 !K L 	 A 	B 4 5 A 	B   !J K3 :0B B(. .*, ,
: 
:C C 0 0(. .2&E &ER0 0$. . 	6 	6E./E 5 6 E01	
 U/0 U 6 7 U/0 E34 E : ; E34  !   !" ##$ 	
B%& 	
+'( F)*  :+.$/3
:. .4 HI  A  DO  Q\  C]  ^:<\  _G  H  Jq  rV  YU  WY  [V  Xa  b  dk  l |  ~J(  L(D<  F<`P  aP  cPWQ  XQ	/: /:d? ?BDI DIN0+f9"2:#
!rM   