
    (ph                        S SK rS SK Jr  S SKJrJrJrJrJrJ	r	J
r
  S SKJr  S SKJr  S SKJrJrJr  / SQr " S S	5      r " S
 S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\" / SQ5      r\" / SQ5      r " S S5      r\" / SQ5      \" / SQ5      \" / SQ5      \" / SQ5      \" / SQ5      S\" / SQ5      S\" / SQ5      \" / SQ5      SSS .rS! r  " S" S#5      r! " S$ S%5      r" " S& S'5      r# " S( S)5      r$ " S* S+5      r% " S, S-5      r& " S. S/5      r' " S0 S15      r( " S2 S35      r) " S4 S55      r* " S6 S75      r+0 S8\" / S9Q5      _S:\" / S;Q5      _S<\" / S=Q5      _S>\" / S?Q5      _S@\" / SAQ5      _SB\" / SCQ5      _SD\" / SEQ5      _SF\" / SGQ5      _SH\" / SIQ5      _SJ/ SKQ_SL/ SMQ_SN/ SOQ_SP/ SQQ_SR/ SSQ_ST/ SUQ_SV/ SWQ_SX/ SYQ_/ SZQ/ S[QS\.Er, " S] S^5      r-/ S_Q/ S`Q/SaSb/4/ ScQ/ SdQ/ SeQ// SfQ4/ SgQ/ ShQ/ SiQ/ SjQ/ SkQ// SlQ4/ SmQ/ SnQ/ SoQ/ SpQ// SqQ4Sr.r. " Ss St5      r/ " Su Sv5      r0 " Sw Sx5      r1Sy r2Sz r3S{ r4S| r5g)}    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))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                       \ rS rSrS rSrg)TestBartHann'   c                     [        [        R                  " SSS9/ SQSSS9  [        [        R                  " S5      / SQSSS9  [        [        R                  " SS	5      / S
QSSS9  g )N   Tsym)r   gA,q?	5xB$?r4   gA,q?r   V瞯<rtolatol   )r   HzG?\(\?      ?r;   r:   r   F)r   r:   r;   r<   r;   r:   )r   r   r   selfs    R/var/www/html/venv/lib/python3.13/site-packages/scipy/signal/tests/test_windows.py
test_basicTestBartHann.test_basic)   sd    ((5D"	0 	((+;"	0 	((E28"	0    r   N__name__
__module____qualname____firstlineno__r@   __static_attributes__r   rB   r?   r.   r.   '   s    
0rB   r.   c                       \ rS rSrS rSrg)TestBartlett6   c                     [        [        R                  " S5      / SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SS5      / SQ5        g )Nr1   )r   皙?皙?rN   rM   r   r9   )r   UUUUUU?UUUUUU?r<   rP   rO   r   F)r   rO   rP   r<   rP   rO   )r   r   r   r=   s    r?   r@   TestBartlett.test_basic8   sH    ((+-GH((+-LM((E24	6rB   r   NrC   r   rB   r?   rJ   rJ   6   s    6rB   rJ   c                       \ rS rSrS rSrg)TestBlackman?   c                 
   [        [        R                  " SSS9/ SQSS9  [        [        R                  " SSS9/ SQS	S9  [        [        R                  " S5      / S
QSS9  [        [        R                  " SS5      / SQSS9  g )Nr1   Fr2   )r   p=
ף?)\(?r<   rW   rV   +=r8   r9   )r   Fi'?b@c?Zgs?r\   r[   rZ   g:0yE>)r   쳩ֲ?,,?r^   r]   r   T)r   rV   rW   r<   rW   rV   r   )r   r   r   r=   s    r?   r@   TestBlackman.test_basicA   s    ((68u	F((6BHL	N 	((+D"	$ 	((D1;%	IrB   r   NrC   r   rB   r?   rS   rS   ?   s    IrB   rS   c                       \ rS rSrS rSrg)TestBlackmanHarrisP   c                    [        [        R                  " SS5      / SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SSS9/ S	Q5        g )
Nr1   F)iUMu?0_^}?縯猨?r<   rf   re   r9   r2   )rd   gjP?g'm$M?gu?gu?g*m$M?gjP?)rd   ^?gU׈g?gU׈g?rg   rd   T)rd   re   rf   r<   rf   re   rd   )r   r   r   r=   s    r?   r@   TestBlackmanHarris.test_basicR   sw    ..q%8N	P..qe<B	C 	..q1J	K 	..qd;"	#rB   r   NrC   r   rB   r?   ra   ra   P   s    #rB   ra   c                   &    \ rS rSrS rS rS rSrg)
TestTaylora   c                 (   [        [        R                  " SSS5      S5        [        [        R                  " SSS5      [        R                  " / SQ5      5        [        [        R                  " SSS5      [        R                  " / SQ5      5        g	)
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<      )%6'HA?)T
?r<   rp   ro   r1   )δX?繡1E?PD3m?rs   rr   rq   Nr   r   r*   npr   r=   s    r?   test_normalizedTestTaylor.test_normalizedc   sk    
 	q!R0#6NN1a$HHJK	
 	NN1a$HH  	
rB   c           	          [        [        R                  " SSSSS9[        R                  " / SQ5      5        [        [        R                  " SSSSS9[        R                  " / SQ5      5        g	)
zTest windows of small length that are not normalized to 1. See
the documentation for the Taylor window for more information on
normalization.
rn   r    rm   Fnorm)	P ?sCp?g)8ux?r|   r{   r1   ))S~?r<   kt#?r~   r<   r}   Nrt   r=   s    r?   test_non_normalizedTestTaylor.test_non_normalizedu   s\    
 	NN1a%0HH  	
 	NN1a%0HH  	
rB   c           	      0   SnSn[         R                  " USSSSS9n[        X25      nS[        R                  " [        R
                  " U[        R                  " U5      -  5      5      -  n[        R                  " [        R                  " U5      S:  5      n[        R                  " XVU*  5      nS	[        R                  " US
:*  5      -  U-  U-  nS	[        R                  " US:*  5      -  U-  U-  n	[        USSS9  [        USSS9  [        U	SSS9  g)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sllrz   r3      r   r    gX$g_2gAfAr   rY   gLJ?皙?gZӼ@N)
r   r*   r   ru   log10absamaxargmaxdiffr   )
r>   M_winN_fftwfspec
first_zeroPSLLBW_3dBBW_18dBs
             r?   test_correctnessTestTaylor.test_correctness   s      NN5qbu%HMBHHRVVA
N344YYrwwt}q01
wwt
{34299T%8899EAEIBIId&99::UBUJhQ/S1c2rB   r   N)rD   rE   rF   rG   rv   r   r   rH   r   rB   r?   rj   rj   a   s    
$
$!3rB   rj   c                       \ rS rSrS rSrg)
TestBohman   c                     [        [        R                  " S5      / SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " SS5      / SQ5        g )	Nr1   )r   g$I ?6 D?r   g I ?r   r9   Tr2   )r   PG?4}|?r<   6}|?r   r   F)r   r   r   r<   r   r   )r   r   r   r=   s    r?   r@   TestBohman.test_basic   sX    q)D	E 	qd3D	E 	q%0A	BrB   r   NrC   r   rB   r?   r   r      s    	BrB   r   c                       \ rS rSrS rSrg)
TestBoxcar   c                     [        [        R                  " S5      / SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SS5      / SQ5        g )Nr1   r   r   r   r   r   r   r9   r   r   r   r   r   r   r   F)r   r   r   r=   s    r?   r@   TestBoxcar.test_basic   s@    q)+=>q)+@Aq%02DErB   r   NrC   r   rB   r?   r   r      s    FrB   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?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   )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?.?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   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestChebWin   c                    [        5        nUR                  [        S5        [        [        R
                  " SS5      / SQ5        [        [        R
                  " SS5      / SQ5        [        [        R
                  " SS5      / SQ5        [        [        R
                  " SS5      / S	Q5        [        [        R
                  " SSS
5      / SQ5        S S S 5        g ! , (       d  f       g = f)NThis window is not suitabler1   d   )}	ɺ?L >?r<   r<   r   r   r9   )S?D1mPC?%5R?r<   r   r   r   
   )r<   TEm?	-o?r   r   r<   )r<   F3?NO?	r]?r   r   r<   F)r<   r   r   r   r   r   )r
   filterUserWarningr   r   r&   )r>   sups     r?   r@   TestChebWin.test_basic   s     CJJ{$ABGOOAs3EF GOOAs3EF GOOAr2JK GOOAr267 GOOAr5912! !  s   CC
C)c                     [        5        nUR                  [        S5        [        R                  " SSS9nS S S 5        [        W[        SS9  g ! , (       d  f       N= f)Nr   5   atr   decimal)r
   r   r   r   r&   r   cheb_odd_true)r>   r   cheb_odds      r?   test_cheb_odd_high_attenuation*TestChebWin.test_cheb_odd_high_attenuation   sE     CJJ{$ABrc2H ! 	"(M1E !    ,A
Ac                     [        5        nUR                  [        S5        [        R                  " SSS9nS S S 5        [        W[        SS9  g ! , (       d  f       N= f)Nr   rK   (   r   r   r   )r
   r   r   r   r&   r   cheb_even_true)r>   r   	cheb_evens      r?   test_cheb_even_high_attenuation+TestChebWin.test_cheb_even_high_attenuation  sE     CJJ{$ABr2I ! 	")^QG ! r   c                     [        / SQ5      n[        5        nUR                  [        S5        [        R
                  " SSS9nS S S 5        [        WUSS9  g ! , (       d  f       N= f)N)r<   m?燿&k?gc[?r  r  r<   r   r9   r   r   r   r   r   r
   r   r   r   r&   r   )r>   cheb_odd_low_at_truer   r   s       r?   test_cheb_odd_low_attenuation)TestChebWin.test_cheb_odd_low_attenuation  sX    $ &0  1  CJJ{$ABqR0H ! 	"(,@!L !    ,A
A&c                     [        / SQ5      n[        5        nUR                  [        S5        [        R
                  " SSS9nS S S 5        [        WUSS9  g ! , (       d  f       N= f)N)r<   R?N(D!T?#R?r  r  r  r<   r      ir   r   r   r  )r>   cheb_even_low_at_truer   r   s       r?   test_cheb_even_low_attenuation*TestChebWin.test_cheb_even_low_attenuation  sX     % '; !<  CJJ{$ABc2I ! 	")-BAN ! r
  r   N)
rD   rE   rF   rG   r@   r   r  r  r  rH   r   rB   r?   r   r      s    2,FHMOrB   r   )|dy?vS?{?r<   r  )1B?%?r  r  )́R?8,6V?r<   r  )\Kr?
oh?r  r  )r  r  r<   r  r  )r  r  r<   r  r  ))r   N皙?F)r   Nr  T)r   Nr<   F)r   Nr<   T)r   r    r  F)r   r    r  T)r   r    r<   F)r   r    r<   T)rn   Nr  T)rn   Nr<   T)rn   r    r  T)rn   r    r<   Tc                      [         R                  5        HF  u  pUc!  [        [        [        R
                  /U Q76   M)  [        R
                  " U 6 n[        X!SS9  MH     g )NrX   r7   )exponential_dataitemsassert_raises
ValueErrorr   r)   r   )kvwins      r?   test_exponentialr%  8  sK     &&(9*g&9&9>A>%%q)CC/ )rB   c                       \ rS rSrS rSrg)TestFlatTopiA  c                    [        [        R                  " SSS9/ SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SS5      / S	Q5        g )
Nr1   Fr2   )bF;s*?dR	p^?r<   r+  r*  r9   )r)  `p|ܢ?J?r.  r-  r,  )r)  <#U_&k?r0  r/  r)  T)r)  r*  r+  r<   r+  r*  r)  )r   r   r   r=   s    r?   r@   TestFlatTop.test_basicC  sp    u53	4 	u5/	0
 	*'	( 	40A	BrB   r   NrC   r   rB   r?   r'  r'  A  s    BrB   r'  c                       \ rS rSrS rSrg)TestGaussianiU  c                    [        [        R                  " SS5      / SQ5        [        [        R                  " SS5      / SQ5        [        [        R                  " SS5      / SQ5        [        [        R                  " SSS	5      / S
Q5        g )Nr1   r<   )|~?w$?"$j=?r7  r6  r5  r9   g333333?)r5  
"?;eܜ?r<   r9  r8  r5     )r  ?yLE?r<   r<  r;  r  F)r  r;  r<  r<   r<  r;  )r   r   r!   r=   s    r?   r@   TestGaussian.test_basicW  s    ((C0B	C 	((C0B	C 	((A.A	B 	((Au5-	.rB   r   NrC   r   rB   r?   r3  r3  U  s    .rB   r3  c                       \ rS rSrS rSrg)TestGeneralCosineij  c                     [        [        R                  " S/ SQ5      / SQ5        [        [        R                  " S/ SQSS9/ SQ5        g )Nrn   r#   333333?r  )rM   rB  r   rB  rM   r   Fr2   rM   rB  r   rB  )r   r   general_cosiner=   s    r?   r@   TestGeneralCosine.test_basicl  s8    ..q/B/	1..q/uM*	,rB   r   NrC   r   rB   r?   r?  r?  j  s    ,rB   r?  c                       \ rS rSrS rSrg)TestGeneralHammingis  c                     [        [        R                  " SS5      / SQ5        [        [        R                  " SSSS9/ SQ5        [        [        R                  " SSS	S9/ S
Q5        g )Nrn   ffffff?rM   rI  r<   rI  rM         ?Fr2   )r#   y&"?x?rM  rL  r1   T)r#   rL  rM  rM  rL  r#   )r   r   general_hammingr=   s    r?   r@   TestGeneralHamming.test_basicu  sZ    //371	3//4UC5	6 	//4TB9	:rB   r   NrC   r   rB   r?   rG  rG  s  s    :rB   rG  c                       \ rS rSrS rSrg)TestHammingi  c                    [        [        R                  " SS5      / SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SSS9/ S	Q5        g )
Nr1   F){Gz?ףp=
?p=
ף?r<   rU  rT  r9   r2   )rS  CW4?	/5?4Cъ?rX  rW  rV  )rS  6 iv?P0?rZ  rY  rS  T)rS  rT  rU  r<   rU  rT  rS  )r   r   r   r=   s    r?   r@   TestHamming.test_basic  sm    51;	=u5A	B 	*G	H 	t4A	CrB   r   NrC   r   rB   r?   rQ  rQ    s    CrB   rQ  c                       \ rS rSrS rSrg)TestHanni  c                    [        [        R                  " SSS9/ SQSSS9  [        [        R                  " SSS9/ SQSSS9  [        [        R                  " SS	5      / S
QSSS9  [        [        R                  " S5      / SQSSS9  g )Nr1   Fr2   )r         ?rK  r<   rK  r_  r5   r6   r9   )r   \$:?H`r?8T^j?rb  ra  r`  Tr   Xhd?Tͻ?re  rd  r   r   r_  rK  r<   rK  r_  r   )r   r   r(   r=   s    r?   r@   TestHann.test_basic  s    QE28"	0 	QE2A #		0
 	Q-D"	0 	Q;"	0rB   r   NrC   r   rB   r?   r]  r]    s    0rB   r]  c                       \ rS rSrS rSrg)
TestKaiseri  c                 d   [        [        R                  " SS5      / SQ5        [        [        R                  " SS5      / SQ5        [        [        R                  " SS5      / SQ5        [        [        R                  " SS5      / SQ5        [        [        R                  " SSS	5      / S
Q5        g )Nr1   r#   )l?<3N?i>%?rm  rl  rk  r9   )rk  	$?6?r<   ro  rn  rk  g@)§Aը?O F?$?rr  rq  rp  )rp  *'?=a?r<   rt  rs  rp  F)rp  rs  rt  r<   rt  rs  )r   r   r   r=   s    r?   r@   TestKaiser.test_basic  s    q#.A	B 	q#.A	B 	q#.A	B 	q#.A	B 	q#u5-	.rB   r   NrC   r   rB   r?   ri  ri    s    .rB   ri  c                        \ rS rSrS rS rSrg)TestKaiserBesselDerivedi  c                    Sn[         R                  " USS9n[         R                  " SUSS9n[        X#5        [        US US-   S-  X!* S-  S  S-  -   S5        [        [         R                  " S[        R
                  S-  S9S S	 [        R                  " S5      S-  5        [        [         R                  " S
[        R
                  S-  S9S S SS/5        [        [         R                  " S[        R
                  S-  S9S S / SQ5        g )Nr         @beta)zkaiser bessel derivedry  Ffftbinsr    r<   r   r   gU?gU3|\?r1   r:  )gHZ1?gKf?g"iF5?)r   kaiser_bessel_derivedr   r   ru   pisqrt)r>   Mr   w2s       r?   r@   "TestKaiserBesselDerived.test_basic  s    ))!#6 > !52 	'16
a!B!GH+*::B? 	55abeeaiH!L
Q	( 	55abeeaiH!L'8	: 	55abeeaiH!LH	JrB   c                    SnSn[        [        US9   [        R                  " US-   SS9  S S S 5        Sn[        [        US9   [        R                  " US-   SSS	9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)
Nr   zHKaiser-Bessel Derived windows are only defined for even number of pointsmatchr   ry  rz  zCKaiser-Bessel Derived windows are only defined for symmetric shapesF)r{  r3   )r   r!  r   r~  )r>   r  msgs      r?   test_exceptions'TestKaiserBesselDerived.test_exceptions  sr    ":S1))!a%b9 2":S1))!a%beD 21 21 21s   A'A8'
A58
Br   N)rD   rE   rF   rG   r@   r  rH   r   rB   r?   rw  rw    s    J0ErB   rw  c                       \ rS rSrS rSrg)TestNuttalli  c                    [        [        R                  " SSS9/ SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SS5      / S	Q5        g )
Nr1   Fr2   )A"7?v;O<g?$2bUs?r<   r  r  r9   )r  gx&yxXW?g??絑?r  g??g&yxXW?)r  gEJ?g=`T?g>`T?gEJ?r  T)r  r  r  r<   r  r  r  )r   r   r   r=   s    r?   r@   TestNuttall.test_basic  sr    u5$	% 	u5A	B 	*L	M 	40/	0rB   r   NrC   r   rB   r?   r  r    s    0rB   r  c                       \ rS rSrS rSrg)
TestParzeni  c                     [        [        R                  " S5      / SQ5        [        [        R                  " SSS9/ SQ5        [        [        R                  " SS5      / SQ5        g )	Nr1   )e/?r_  88?r  r_  r  r9   Tr2   )%OZQ%w?2|&?݁?r<   r  r  r  F)r  r  r  r<   r  r  )r   r   r   r=   s    r?   r@   TestParzen.test_basic  sV    q)I	J 	qd3B	C 	q%0-	.rB   r   NrC   r   rB   r?   r  r    s    .rB   r  c                       \ rS rSrS rSrg)
TestTriangi  c                     [        [        R                  " SS5      / SQ5        [        [        R                  " S5      / SQ5        [        [        R                  " SSS9/ SQ5        g )	Nr1   T)UUUUUU?r#   竪?r  r#   r  r9   )r_  r#   rK  r   rK  r#   r_  Fr2   )r_  r#   rK  r   rK  r#   )r   r   r   r=   s    r?   r@   TestTriang.test_basic
  sH    q$/6	8q)9	;qe44	6rB   r   NrC   r   rB   r?   r  r    s    6rB   r  )r   r#   T)        r<   r<   r  )r   ?T)r  ?r  r  )r   r<   T)r  rK  rK  r  )r   r#   F)r  r<   r<   r<   )r   r  F)r  rnOC?r<   r  )r   r<   F)r  r#   r<   r#   )rn   r  T)r<   r<   r<   r<   r<   )rn   rN   T)r  Yx?r<   r  r  )rn   r<   T)r  r#   r<   r#   r  )r1   r   r   )r9   r   r   )r1   r_  )r   r   r   r   r   r   )r9   r_  )r   r   r   r   r   r   r   )r1   )r   re  r<   r<   gRͻ?r   )r9   )r   rK  r<   r<   r<   rK  r   )r1   rK  )r   gxų	&?r<   r<   gvų	&?r   )r9   rK  )r   g#}`yq?)!?r<   r  g#}`yq?r   rc  rf  ))r1   r   )r9   r   c                        \ rS rSrS rS rSrg)	TestTukeyi1  c                     [         R                  5        HG  u  pUc!  [        [        [        R
                  /UQ76   M)  [        R
                  " U6 n[        X2SSS9  MI     g )Nr5   r6   )
tukey_datar  r   r!  r   r+   r   )r>   r"  r#  r$  s       r?   r@   TestTukey.test_basic3  sI    $$&DAyj'--<!<mmQ'U? 'rB   c                     [         R                  " SS5      n[         R                  " S5      n[        X5        [         R                  " SS5      n[         R                  " S5      n[        X45        g )Nr   r   r   )r   r+   r   r   r(   )r>   tuk0box0tuk1han1s        r?   test_extremesTestTukey.test_extremes<  sN    }}S!$~~c"!$-}}S!$||C !$-rB   r   N)rD   rE   rF   rG   r@   r  rH   r   rB   r?   r  r  1  s    @.rB   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:  )rn   r%   rn   )r   r    r   c                   ,    \ rS rSrS rS rS rS rSrg)TestDPSSiR  c           	          [         R                  5        H:  u  p[        R                  " USS06u  p4[	        X2S   SUS9  [	        XBS   SSUS9  M<     g )	Nreturn_ratiosTr   gHz>)r8   err_msgr   gh㈵>)r7   r8   r%  )	dpss_datar  r   r   r   )r>   r"  r#  r$  ratioss        r?   r@   TestDPSS.test_basicT  sL    OO%DA!,,>>KCC1D!<FaDt$J &rB   c                    [        SS5       H  n[        R                  " XS-  5      nUS-  n[        [        R
                  " US5      R                  5       UU S9  [        R                  " XS-  SS9nUS:  a9  [        [        R
                  " US5      R                  5       UU S9  [        X$S	S
9  [        R                  " XS-  SS9nUS:X  a  SOSn[        [        R
                  " US5      R                  5       UU S9  M     g )Nr      g @r    r<   )r%  	subsamplery   gQ?r  r   )ranger   r   r   ru   isclosesumr   )r>   r  r$  expectedwin_subwin_2s         r?   
test_unityTestDPSS.test_unity[  s    q"A,,qc'*C1uHC,002H$'5+ ll1#gK@G1uRZZ488:H(/y348LLG!4EFqHE2.224h$)7-! rB   c                     [         R                  " SSSSS9S   n[        US5        [         R                  " SSSSS9S   n[        US5        [         R                  " SS	SSS9S   n[        US5        g )
N   r1   r   T)r$  r   r<   r9   r  )r   r   r   )r>   lams     r?   r  TestDPSS.test_extremesp  sk    ll2q!48;!#r*ll2q!48;!#r*ll2q!48;!#r*rB   c                    [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        [        [        [        R                  SSS5        g )	Nr   r%   g?r:  r   r   )r   r!  r   r   	TypeErrorr=   s    r?   test_degenerateTestDPSS.test_degeneratey  s    j',,3;j',,3;iq#s;j',,3:j',,2q9j',,1a8j',,Aq9rB   r   N)	rD   rE   rF   rG   r@   r2  r  r<  rH   r   rB   r?   r"  r"  R  s    K-*+:rB   r"  c                        \ rS rSrS rS rSrg)TestLanczosi  c                     [        [        R                  " SSS9/ SQSS9  [        [        R                  " S5      / SQSS9  [        [        R                  " SS	S9/ S
QSS9  g )Nr1   Fr2   r  qϾv?;Fv?r<   rC  rB  &.>rY   r  uH%?;9?rG  rF  r  r9   T)r  rB  rC  r<   rC  rB  r  )r   r   r,   r=   s    r?   r@   TestLanczos.test_basic  sc     	u5& "		#
 	** "		#
 	t4* "		#rB   c           
          S HS  n[        [        [        R                  " USS95      U5        [        [        [        R                  " USS95      U5        MU     g )N)r   r      Fr2   T)r   lenr   r,   )r>   ns     r?   test_array_sizeTestLanczos.test_array_size  s@    AW__QE:;Q?W__QD9:A> rB   r   N)rD   rE   rF   rG   r@   rM  rH   r   rB   r?   r?  r?    s    #2?rB   r?  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestGetWindowi  c                     [         R                  " SS5      n[        U[        R                  " U5      5        [         R                  " SS5      n[        U[        R                  " U5      5        g )Nr      )r      )r   r   r   ru   	ones_like)r>   r   s     r?   test_boxcarTestGetWindow.test_boxcar  sL    x,1bll1o. {B/1bll1o.rB   c                     [        5        nUR                  [        S5        [        R                  " SSSS9nS S S 5        [        W[        SS9  g ! , (       d  f       N= f)Nr   )r&   r   r   Fr|  r   r   )r
   r   r   r   r   r   r   r>   r   r   s      r?   test_cheb_oddTestGetWindow.test_cheb_odd  sJ     CJJ{$AB""#3RGA ! 	"!]A> !    -A
Ac                     [        5        nUR                  [        S5        [        R                  " SSSS9nS S S 5        [        W[        SS9  g ! , (       d  f       N= f)Nr   )r&   r   rK   Fr|  r   r   )r
   r   r   r   r   r   r   rX  s      r?   test_cheb_evenTestGetWindow.test_cheb_even  sI     CJJ{$AB""?BFA ! 	"!^Q? ! r[  c                 r    [         R                  " SSSS9n[         R                  " SS5      n[        XSS9  g )N)r   r:  @   Fr|  r:  r   r   )r   r   r   r   r>   win1win2s      r?   	test_dpssTestGetWindow.test_dpss  s0    !!+r5A||B"!$a8rB   c                 x    [         R                  " SS5      n[         R                  " SSS5      n[        X5        g )Ng@r`  F)r   r   r   r   ra  s      r?   test_kaiser_floatTestGetWindow.test_kaiser_float  s.    !!#r*~~b#u-#rB   c                     [        [        [        R                  [	        S5      S5        [        [        [        R                  SS5        g )Nr(   r  brokenr   )r   r!  r   r   setr=   s    r?   test_invalid_inputs!TestGetWindow.test_invalid_inputs  s0    j'"4"4c&k1E 	j'"4"4hBrB   c                     Sn[         R                  " S5      n[        R                  " SUS-  5      n[	        [
        SS9   [        U[        U5      U-  US9  S S S 5        g ! , (       d  f       g = f)N   )r   g       @r    zmust have the same lengthr  )window)ru   aranger   r   r   r!  r   rK  )r>   osfactorsigr$  s       r?   test_array_as_window"TestGetWindow.test_array_as_window  sW    iin  (a-@:-HIS#c(X-c: JIIs   A""
A0c                 r    [        [        S/ SQ4S5      / SQ5        [        [        S/ SQ4SSS9/ SQ5        g )NrD  rA  r   rC  Fr|  )rM   皙?rw  rM   r   r   r=   s    r?   test_general_cosine!TestGetWindow.test_general_cosine  s;    
$4o#FJ*	,
$4o#F+02.	0rB   c                 b    [        [        SS5      / SQ5        [        [        SSSS9/ SQ5        g )N)rN  rI  rn   )rM   жn?男*?r}  r|  Fr|  rJ  rx  r=   s    r?   test_general_hamming"TestGetWindow.test_general_hamming  s/    
#;Q?I	K
#;QN1	3rB   c                     [        [        SS5      / SQSS9  [        [        SSSS9/ SQSS9  [        [        SS5      [        S	S5      5        g )
Nr,   r1   rA  rD  rY   Fr|  rE  sincrx  r=   s    r?   test_lanczosTestGetWindow.test_lanczos  sR    
9a0&,0	2 	
9a?*04	6 	
9a0*VQ2GHrB   r   N)rD   rE   rF   rG   rU  rY  r]  rd  rg  rl  rt  ry  r~  r  rH   r   rB   r?   rP  rP    s7    /?@9
$
C;03IrB   rP  c                  6   [          GH  u  p[        [        U 5      n[        5        nUR	                  [
        S5        U" S/UQ7SS06nU" S/UQ7SS06n[        US S U5        U" S/UQ7SS06nU" S/UQ7SS06n[        US S U5        [        [        U" S	/UQ7SS065      S	5        [        [        U" S	/UQ7SS065      S	5        [        [        U" S/UQ7SS065      S5        [        [        U" S/UQ7SS065      S5        [        [        US
/UQ76   [        [        US/UQ76   [        U" S/UQ7SS06/ 5        [        U" S/UQ7SS06/ 5        [        U" S/UQ7SS06S/5        [        U" S/UQ7SS06S/5        [        U" S/UQ7SS06R                  S:H  5        [        U" S/UQ7SS06R                  S:H  5        [        U" S/UQ7SS06R                  S:H  5        [        U" S/UQ7SS06R                  S:H  5        [        U" S	/UQ7SS06R                  S:H  5        [        U" S	/UQ7SS06R                  S:H  5        [        U" S/UQ7SS06S5        [        U" S/UQ7SS06S5        [        U" S/UQ7SS06S5        [        U" S/UQ7SS06S5        [        [!        U" S/UQ7SS065      R"                  SSS9  [        [!        U" S/UQ7SS065      R"                  SSS9  S S S 5        GM     g ! , (       d  f       GM  = f)Nr   r  r3   Tr9   Fr9  	   r1   g      @ir   r   floatr   g)\(?rX   rY   rJ  )window_funcsgetattrr   r
   r   r   r   r   rK  r   r!  r   r   dtyper	   r   r   imag)window_nameparamsrp  r   w1r  s         r?   test_windowfunc_basicsr    sD   +|+. 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                  B    S H  n [        [        [        U S5        M     g )N)r   ksrr~  kbdr!   gaussgsszgeneral gaussianr$   zgeneral gaussgeneral_gaussggsdssr   zgeneral cosinerD  r&   chebzgeneral hammingrN  r9   )r   r!  r   )winstrs    r?   test_needs_paramsr    s     	j*fa8rB   c                  X    S H$  n [        U S5      n[        [        U5      S5        M&     g )N)r   r   r   r   r   r   r'   r   r   r   r   r*   r)   poissonr+   tuktriangler,   r  r9   )r   r   rK  )r  r$  s     r?   test_not_needs_paramsr  *  s*    ( #SXq!+rB   c            	         [         R                  4 H  n U " S5      n[        R                  " [        R                  " U[        R
                  " U5      -
  5      5      n[        US5        U " S5      n[        R                  " [        R                  " U[        R
                  " U5      -
  5      5      n[        US5        M     g )Ni   r  i  )r   r,   ru   maxr   flipr   )r$  r   errors      r?   test_symmetricr  C  s     Irvva
l+,UC  Irvva
l+,UC  !rB   )6numpyru   r   numpy.testingr   r   r   r   r   r	   r
   pytestr   r   	scipy.fftr   scipy.signalr   r   r   r  r.   rJ   rS   ra   rj   r   r   r   r   r   r  r%  r'  r3  r?  rG  rQ  r]  ri  rw  r  r  r  r  r  r&  r"  r?  rP  r  r  r  r  r   rB   r?   <module>r     s    . . . +  6 64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!rB   