a
    Re
                     @   s  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jd	d
gedd ZG dd dZG dd dZG dd dZG dd dZ G dd dZ!G dd dZ"G dd dZ#eg dZ$eg dZ%G d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&d' Z(G d(d) d)Z)G d*d+ d+Z*G d,d- d-Z+G d.d/ d/Z,G d0d1 d1Z-G d2d3 d3Z.G d4d5 d5Z/G d6d7 d7Z0G d8d9 d9Z1G d:d; d;Z2G d<d= d=Z3eg d>eg d?eg d@eg dAeg dBeg dCeg dDeg dEeg dFg dGg dHg dIg dJg dKg dLg dMg dNg dOg dPdQZ4G dRdS dSZ5g dTg dUgdVdWgfg dXg dYg dZgg d[fg d\g d]g d^g d_g d`gg dafg dbg dcg ddg degg dffdgZ6G dhdi diZ7G djdk dkZ8G dldm dmZ9dndo Z:dpdq Z;drds Z<dtdu Z=dvdw Z>dxdy Z?dS )z    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                 C   sf   | dv rt d tt| }d|  }t j|d  |dg|R   W d    n1 sX0    Y  d S )N)r*   r,   r    zDeprecation test not applicablez
Importing matchr   )pytestskipgetattrr   Zdeprecated_call)r-   r.   funcmsgr   r   S/var/www/sunrise/env/lib/python3.9/site-packages/scipy/signal/tests/test_windows.pytest_deprecated_import*   s    


r7   c                   @   s   e Zd Zdd ZdS )TestBartHannc                 C   sX   t tjdddg dddd t tdg dddd t tdd	g d
ddd d S )N   Tsym)r   gA,q?	5xB$?r<   gA,q?r   V瞯<rtolatol   )r   HzG?\(\?      ?rC   rB   r   F)r   rB   rC   rD   rC   rB   )r   r   r   selfr   r   r6   
test_basic6   s    
zTestBartHann.test_basicN__name__
__module____qualname__rG   r   r   r   r6   r8   4   s   r8   c                   @   s   e Zd Zdd ZdS )TestBartlettc                 C   sB   t tdg d t tdg d t tddg d d S )Nr9   )r   皙?皙?rN   rM   r   rA   )r   UUUUUU?UUUUUU?rD   rP   rO   r   F)r   rO   rP   rD   rP   rO   )r   r   r   rE   r   r   r6   rG   E   s
    zTestBartlett.test_basicNrH   r   r   r   r6   rL   C   s   rL   c                   @   s   e Zd Zdd ZdS )TestBlackmanc                 C   sn   t tjdddg ddd t tjdddg dd	d t tdg d
dd t tddg ddd d S )Nr9   Fr:   )r   p=
ף?)\(?rD   rS   rR   +=r@   rA   )r   Fi'?b@c?Zgs?rX   rW   rV   g:0yE>)r   쳩ֲ?,,?rZ   rY   r   T)r   rR   rS   rD   rS   rR   r   )r   r   r   rE   r   r   r6   rG   N   s    
zTestBlackman.test_basicNrH   r   r   r   r6   rQ   L   s   rQ   c                   @   s   e Zd Zdd ZdS )TestBlackmanHarrisc                 C   s^   t tddg d t tjdddg d t tdg d t tjdddg d	 d S )
Nr9   F)iUMu?0_^}?縯猨?rD   r^   r]   rA   r:   )r\   gjP?g'm$M?gu?gu?g*m$M?gjP?)r\   ^?gU׈g?gU׈g?r_   r\   T)r\   r]   r^   rD   r^   r]   r\   )r   r   r   rE   r   r   r6   rG   _   s    
zTestBlackmanHarris.test_basicNrH   r   r   r   r6   r[   ]   s   r[   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
TestTaylorc                 C   sT   t tdddd t tdddtg d t tdddtg d 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!      rD      )%6'HA?)T
?rD   rd   rc   r9   )δX?繡1E?PD3m?rg   rf   re   Nr   r   r*   npr   rE   r   r   r6   test_normalizedp   s    zTestTaylor.test_normalizedc                 C   sH   t tjdddddtg d t tjdddddtg d 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.
        rb   r!   ra   Fnorm)	P ?sCp?g)8ux?rn   rm   r9   ))S~?rD   kt#?rp   rD   ro   Nrh   rE   r   r   r6   test_non_normalized   s    zTestTaylor.test_non_normalizedc           
   	   C   s   d}d}t j|ddddd}t||}dtt|t|  }tt|dk}t|||  }d	t|d
k | | }d	t|dk | | }	t	|ddd t	|ddd t	|	ddd 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)ZnbarZsllrl   r;      r   r!   gX$g_2gAfAr   rU   gLJ?皙?gZӼ@N)
r   r*   r   ri   log10absZamaxZargmaxdiffr   )
rF   ZM_winZN_fftwfspecZ
first_zeroZPSLLZBW_3dBZBW_18dBr   r   r6   test_correctness   s    
zTestTaylor.test_correctnessN)rI   rJ   rK   rj   rq   r|   r   r   r   r6   r`   n   s   r`   c                   @   s   e Zd Zdd ZdS )
TestBohmanc                 C   sF   t tdg d t tjdddg d t tddg d d S )	Nr9   )r   g$I ?6 D?r~   g I ?r   rA   Tr:   )r   PG?4}|?rD   6}|?r   r   F)r   r   r   rD   r   r   )r   r   r   rE   r   r   r6   rG      s    
zTestBohman.test_basicNrH   r   r   r   r6   r}      s   r}   c                   @   s   e Zd Zdd ZdS )
TestBoxcarc                 C   sB   t tdg d t tdg d t tddg d d S )Nr9   r   r   r   r   r   r   rA   r   r   r   r   r   r   r   F)r   r   r   rE   r   r   r6   rG      s    zTestBoxcar.test_basicNrH   r   r   r   r6   r      s   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?rD   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?.?rD   rD   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                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestChebWinc                 C   s   t  }|td ttddg d ttddg d ttddg d ttddg d	 ttddd
g d W d    n1 s0    Y  d S )NThis window is not suitabler9   d   )}	ɺ?L >?rD   rD   r   r   rA   )S?D1mPC?%5R?rD   r   r   r   
   )rD   TEm?	-o?r   r   rD   )rD   F3?NO?	r]?r   r   rD   F)rD   r   r   r   r   r   )r	   filterUserWarningr   r   r'   )rF   supr   r   r6   rG      s"    zTestChebWin.test_basicc                 C   sR   t  *}|td tjddd}W d    n1 s60    Y  t|tdd d S )Nr   5   atrr   decimal)r	   r   r   r   r'   r   cheb_odd_true)rF   r   cheb_oddr   r   r6   test_cheb_odd_high_attenuation	  s    ,z*TestChebWin.test_cheb_odd_high_attenuationc                 C   sR   t  *}|td tjddd}W d    n1 s60    Y  t|tdd d S )Nr   6   (   r   rr   r   )r	   r   r   r   r'   r   cheb_even_true)rF   r   	cheb_evenr   r   r6   test_cheb_even_high_attenuation  s    ,z+TestChebWin.test_cheb_even_high_attenuationc                 C   s^   t g d}t *}|td tjddd}W d    n1 sB0    Y  t||dd d S )N)rD   m?燿&k?gc[?r   r   rD   r   rA   r   r   rr   r   r   r	   r   r   r   r'   r   )rF   Zcheb_odd_low_at_truer   r   r   r   r6   test_cheb_odd_low_attenuation  s
    ,z)TestChebWin.test_cheb_odd_low_attenuationc                 C   s^   t g d}t *}|td tjddd}W d    n1 sB0    Y  t||dd d S )N)rD   R?N(D!T?#R?r   r   r   rD   r      ir   rr   r   r   )rF   Zcheb_even_low_at_truer   r   r   r   r6   test_cheb_even_low_attenuation  s
    ,z*TestChebWin.test_cheb_even_low_attenuationN)rI   rJ   rK   rG   r   r   r   r   r   r   r   r6   r      s
   	r   )|dy?vS?{?rD   r   )1B?%?r   r   )́R?8,6V?rD   r   )\Kr?
oh?r   r   )r   r   rD   r   r   )r   r   rD   r   r   ))rr   N皙?F)rr   Nr   T)rr   NrD   F)rr   NrD   T)rr   r!   r   F)rr   r!   r   T)rr   r!   rD   F)rr   r!   rD   T)rb   Nr   T)rb   NrD   T)rb   r!   r   T)rb   r!   rD   Tc                  C   sL   t  D ]>\} }|d u r.tttjg| R   qtj|  }t||dd qd S )NrT   r?   )exponential_dataitemsassert_raises
ValueErrorr   r)   r   )kvwinr   r   r6   test_exponentialE  s
    
r   c                   @   s   e Zd Zdd ZdS )TestFlatTopc                 C   s^   t tjdddg d t tjdddg d t tdg d t tddg d	 d S )
Nr9   Fr:   )bF;s*?dR	p^?rD   r   r   rA   )r   `p|ܢ?J?r   r   r   )r   <#U_&k?r   r   r   T)r   r   r   rD   r   r   r   )r   r   r   rE   r   r   r6   rG   P  s    
zTestFlatTop.test_basicNrH   r   r   r   r6   r   N  s   r   c                   @   s   e Zd Zdd ZdS )TestGaussianc                 C   s^   t tddg d t tddg d t tddg d t tddd	g d
 d S )Nr9   rD   )|~?w$?"$j=?r   r   r   rA   g333333?)r   
"?;eܜ?rD   r  r   r      )r   ?yLE?rD   r  r  r   F)r   r  r  rD   r  r  )r   r   r"   rE   r   r   r6   rG   d  s    zTestGaussian.test_basicNrH   r   r   r   r6   r   b  s   r   c                   @   s   e Zd Zdd ZdS )TestGeneralCosinec                 C   s<   t tdg dg d t tjdg dddg d d S )Nrb   r$   333333?r   )rM   r  r   r  rM   rr   Fr:   rM   r  r   r  )r   r   general_cosinerE   r   r   r6   rG   y  s    zTestGeneralCosine.test_basicNrH   r   r   r   r6   r  w  s   r  c                   @   s   e Zd Zdd ZdS )TestGeneralHammingc                 C   sN   t tddg d t tjddddg d t tjddd	dg d
 d S )Nrb   ffffff?rM   r  rD   r  rM         ?Fr:   )r$   y&"?x?r  r  r9   T)r$   r  r  r  r  r$   )r   r   general_hammingrE   r   r   r6   rG     s    zTestGeneralHamming.test_basicNrH   r   r   r   r6   r
    s   r
  c                   @   s   e Zd Zdd ZdS )TestHammingc                 C   s^   t tddg d t tjdddg d t tdg d t tjdddg d	 d S )
Nr9   F){Gz?ףp=
?p=
ף?rD   r  r  rA   r:   )r  CW4?	/5?4Cъ?r  r  r  )r  6 iv?P0?r  r  r  T)r  r  r  rD   r  r  r  )r   r   r   rE   r   r   r6   rG     s    
zTestHamming.test_basicNrH   r   r   r   r6   r    s   r  c                   @   s   e Zd Zdd ZdS )TestHannc                 C   sv   t tjdddg dddd t tjdddg dddd t tdd	g d
ddd t tdg dddd d S )Nr9   Fr:   )r         ?r  rD   r  r  r=   r>   rA   )r   \$:?H`r?8T^j?r  r  r  Tr   Xhd?Tͻ?r!  r   r   r   r  r  rD   r  r  r   )r   r   r   rE   r   r   r6   rG     s     
zTestHann.test_basicNrH   r   r   r   r6   r    s   r  c                   @   s   e Zd Zdd ZdS )
TestKaiserc                 C   st   t tddg d t tddg d t tddg d t tddg d t tddd	g d
 d S )Nr9   r$   )l?<3N?i>%?r&  r%  r$  rA   )r$  	$?6?rD   r(  r'  r$  g@)§Aը?O F?$?r+  r*  r)  )r)  *'?=a?rD   r-  r,  r)  F)r)  r,  r-  rD   r-  r,  )r   r   r   rE   r   r   r6   rG     s    zTestKaiser.test_basicNrH   r   r   r   r6   r#    s   r#  c                   @   s   e Zd Zdd Zdd ZdS )TestKaiserBesselDerivedc                 C   s   d}t j|dd}t jd|dd}t|| t|d |d  d || d d  d  d tt jdtjd dd d	 tdd  tt jd
tjd dd d ddg tt jdtjd dd d g d d S )Nr         @beta)zkaiser bessel derivedr/  FZfftbinsr!   rD   r   rr   gU?gU3|\?r9   r  )gHZ1?gKf?g"iF5?)r   kaiser_bessel_derivedr   r   ri   pisqrt)rF   Mry   w2r   r   r6   rG     s     
0z"TestKaiserBesselDerived.test_basicc                 C   s   d}d}t t|d" tj|d dd W d    n1 s<0    Y  d}t t|d$ tj|d ddd	 W d    n1 s0    Y  d S )
Nr   zHKaiser-Bessel Derived windows are only defined for even number of pointsr/   r   r/  r0  zCKaiser-Bessel Derived windows are only defined for symmetric shapesF)r1  r;   )r   r   r   r3  )rF   r6  r5   r   r   r6   test_exceptions  s    0z'TestKaiserBesselDerived.test_exceptionsN)rI   rJ   rK   rG   r8  r   r   r   r6   r.    s   r.  c                   @   s   e Zd Zdd ZdS )TestNuttallc                 C   s^   t tjdddg d t tjdddg d t tdg d t tddg d	 d S )
Nr9   Fr:   )A"7?v;O<g?$2bUs?rD   r<  r;  rA   )r:  gx&yxXW?g??絑?r=  g??g&yxXW?)r:  gEJ?g=`T?g>`T?gEJ?r:  T)r:  r;  r<  rD   r<  r;  r:  )r   r   r   rE   r   r   r6   rG     s    
zTestNuttall.test_basicNrH   r   r   r   r6   r9    s   r9  c                   @   s   e Zd Zdd ZdS )
TestParzenc                 C   sF   t tdg d t tjdddg d t tddg d d S )	Nr9   )e/?r  88?r@  r  r?  rA   Tr:   )%OZQ%w?2|&?݁?rD   rC  rB  rA  F)rA  rB  rC  rD   rC  rB  )r   r   r   rE   r   r   r6   rG     s    
zTestParzen.test_basicNrH   r   r   r   r6   r>    s   r>  c                   @   s   e Zd Zdd ZdS )
TestTriangc                 C   sF   t tddg d t tdg d t tjdddg d d S )	Nr9   T)UUUUUU?r$   竪?rF  r$   rE  rA   )r  r$   r  r   r  r$   r  Fr:   )r  r$   r  r   r  r$   )r   r   r   rE   r   r   r6   rG     s    
zTestTriang.test_basicNrH   r   r   r   r6   rD    s   rD  )        rD   rD   rG  )rG  ?rH  rG  )rG  r  r  rG  )rG  rD   rD   rD   )rG  rnOC?rD   rI  )rG  r$   rD   r$   )rD   rD   rD   rD   rD   )rG  Yx?rD   rJ  rG  )rG  r$   rD   r$   rG  r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r!  rD   rD   gRͻ?r   )r   r  rD   rD   rD   r  r   )r   gxų	&?rD   rD   gvų	&?r   )r   g#}`yq?)!?rD   rK  g#}`yq?r   r  r"  ))rr   r$   T)rr   ?T)rr   rD   T)rr   r$   F)rr   rL  F)rr   rD   F)rb   rG  T)rb   rN   T)rb   rD   T)r9   r   )rA   r   )r9   r  )rA   r  )r9   )rA   )r9   r  )rA   r  )r9   r   )rA   r   c                   @   s   e Zd Zdd Zdd ZdS )	TestTukeyc                 C   sN   t  D ]@\}}|d u r.tttjg|R   qtj| }t||ddd qd S )Nr=   r>   )
tukey_datar   r   r   r   r+   r   )rF   r   r   r   r   r   r6   rG   @  s
    
zTestTukey.test_basicc                 C   sD   t dd}t d}t|| t dd}t d}t|| d S )Nr   r   r   )r   r+   r   r   r   )rF   Ztuk0Zbox0Ztuk1Zhan1r   r   r6   test_extremesI  s    


zTestTukey.test_extremesN)rI   rJ   rK   rG   rO  r   r   r   r6   rM  >  s   	rM  )IP?;]L?rQ  rP  )g/vI<t?gE@?gE@̿g/vI<tgV?g$aȲ`?)ыBA?gnjk?rR  )g>ef?rG  g>ef)	#n?gLorS  )gm/ ?g96+?g雦br?)g w?V?g>J#?g;Wi?g֙}I#?gr?V?)g:7A!(?cHX?rG  cHXS[@!(ܿ)qh4?T1a~²?gEܿrX  rW  )rT  rV  rG  gS[@!(?rU  )gu+t?X>߿g36?rY  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{  rz  ry  rx  rw  rv  ru  rt  rs  rr  rq  rp  ro  rn  rm  rl  rk  rj  ri  rh  rg  rf  re  rd  rc  rb  ra  r`  r_  r^  r]  r\  r[  rZ  )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 `?))rr   ru   r!   )r  gffffff?r  )rb   r&   rb   )r   r!   rr   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestDPSSc                 C   sT   t  D ]F\}}tj|ddi\}}t||d d|d t||d dd|d qd S )	Nreturn_ratiosTr   gHz>)r@   err_msgr   gh㈵>)r?   r@   r  )	dpss_datar   r   r    r   )rF   r   r   r   Zratiosr   r   r6   rG   a  s    zTestDPSS.test_basicc                 C   s   t ddD ]}t||d }|d }tt|d || d tj||d dd}|dkrtt|d || d t||d	d
 tj||d dd}|dkrdnd}tt|d || d q
d S )Nr      g @r!   rD   )r  Z	subsamplerk   gQ?r   r   )ranger   r    r   ri   isclosesumr   )rF   r6  r   expectedZwin_subZwin_2r   r   r6   
test_unityh  s"    zTestDPSS.test_unityc                 C   sd   t jdddddd }t|d t jdddddd }t|d t jdd	dddd }t|d d S )
N   r9   rr   T)r  r   rD   rA   r   )r   r    r   )rF   Zlamr   r   r6   rO  }  s    

zTestDPSS.test_extremesc                 C   s   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 )	Nrr   r&   g?r  r   r   )r   r   r   r    	TypeErrorrE   r   r   r6   test_degenerate  s    zTestDPSS.test_degenerateN)rI   rJ   rK   rG   r  rO  r  r   r   r   r6   r  _  s   	r  c                   @   s   e Zd Zdd Zdd ZdS )TestLanczosc                 C   sT   t tjdddg ddd t tdg ddd t tjdd	dg d
dd d S )Nr9   Fr:   rG  qϾv?;Fv?rD   r  r  &.>rU   rG  uH%?;9?r  r  rG  rA   T)rG  r  r  rD   r  r  rG  )r   r   r,   rE   r   r   r6   rG     s    	
zTestLanczos.test_basicc                 C   s>   dD ]4}t ttj|dd| t ttj|dd| qd S )N)r   r      Fr:   T)r   lenr   r,   )rF   nr   r   r6   test_array_size  s    zTestLanczos.test_array_sizeN)rI   rJ   rK   rG   r  r   r   r   r6   r    s   r  c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )TestGetWindowc                 C   s<   t dd}t|t| t dd}t|t| d S )Nr      )r      )r   r   r   ri   Z	ones_like)rF   ry   r   r   r6   test_boxcar  s    zTestGetWindow.test_boxcarc                 C   sT   t  ,}|td tjdddd}W d    n1 s80    Y  t|tdd d S )Nr   )r'   r   r   Fr2  rr   r   )r	   r   r   r   r   r   r   rF   r   ry   r   r   r6   test_cheb_odd  s    .zTestGetWindow.test_cheb_oddc                 C   sT   t  ,}|td tjdddd}W d    n1 s80    Y  t|tdd d S )Nr   )r'   r   r   Fr2  rr   r   )r	   r   r   r   r   r   r   r  r   r   r6   test_cheb_even  s    .zTestGetWindow.test_cheb_evenc                 C   s.   t jdddd}t dd}t||dd d S )N)r    r  @   Fr2  r  rr   r   )r   r   r    r   rF   Zwin1Zwin2r   r   r6   	test_dpss  s    zTestGetWindow.test_dpssc                 C   s(   t dd}t ddd}t|| d S )Ng@r  F)r   r   r   r   r  r   r   r6   test_kaiser_float  s    zTestGetWindow.test_kaiser_floatc                 C   s(   t ttjtdd t ttjdd d S )Nr   r   brokenrr   )r   r   r   r   setrE   r   r   r6   test_invalid_inputs  s    z!TestGetWindow.test_invalid_inputsc                 C   sd   d}t d}td|d }ttdd& t|t|| |d W d    n1 sV0    Y  d S )N   )r   g       @r!   zmust have the same lengthr/   )window)ri   Zaranger   r   r   r   r   r  )rF   Zosfactorsigr   r   r   r6   test_array_as_window  s
    
z"TestGetWindow.test_array_as_windowc                 C   s@   t tdg dfdg d t tdg dfdddg d d S )Nr	  r  rr   r  Fr2  )rM   皙?r  rM   r   r   rE   r   r   r6   test_general_cosine  s    z!TestGetWindow.test_general_cosinec                 C   s0   t tddg d t tddddg d d S )N)r  r  rb   )rM   жn?男*?r  r  Fr2  r  r  rE   r   r   r6   test_general_hamming  s    
z"TestGetWindow.test_general_hammingc                 C   sN   t tddg ddd t tddddg ddd t tddtd	d d S )
Nr,   r9   r  r  rU   Fr2  r  sincr  rE   r   r   r6   test_lanczos  s    
zTestGetWindow.test_lanczosN)rI   rJ   rK   r  r  r  r  r  r  r  r  r  r  r   r   r   r6   r    s   	r  c               	   C   sh  t D ]\\} }tt| }t 0}|td |dg|R ddi}|dg|R ddi}t|d d | |dg|R ddi}|dg|R ddi}t|d d | tt|d	g|R ddid	 tt|d	g|R ddid	 tt|dg|R ddid tt|dg|R ddid t	t
|d
g|R   t	t
|dg|R   t|dg|R ddig  t|dg|R ddig  t|dg|R ddidg t|dg|R ddidg t|dg|R ddijdk t|dg|R ddijdk t|dg|R ddijdk t|dg|R ddijdk t|d	g|R ddijdk t|d	g|R ddijdk t|dg|R ddid t|dg|R ddid t|dg|R ddid t|dg|R ddid tt|dg|R ddijddd tt|dg|R ddijddd W d    q1 sX0    Y  qd S )Nr   r   r;   TrA   Fr  	   r9   g      @ir   r   floatr   g)\(?rT   rU   r  )window_funcsr3   r   r	   r   r   r   r   r  r   r   r   r   Zdtyper   r   r   imag)Zwindow_nameparamsr  r   Zw1r7  r   r   r6   test_windowfunc_basics  sH    

          r  c                  C   s   dD ]} t tt| d qd S )N)r   Zksrr3  Zkbdr"   gaussZgsszgeneral gaussianr%   zgeneral gaussZgeneral_gaussZggsZdssr    zgeneral cosiner	  r'   Zchebzgeneral hammingr  rA   )r   r   r   )winstrr   r   r6   test_needs_params,  s    r  c                  C   s&   dD ]} t | d}tt|d qd S )N)r   r   r   r   r   r   r(   r   r   r   r   r*   r)   Zpoissonr+   ZtukZtriangler,   r  rA   )r   r   r  )r  r   r   r   r6   test_not_needs_params7  s    
r  c                   C   s,   t jd ur(tdt jv  tdtjjv d S )Nzsignal.hann is deprecated
deprecated)dep_hann__doc__r   r   r   r   r   r   r6   test_deprecationP  s    
r   c                  C   s    t t t} t| tu  d S )N)pickleloadsdumpsr  r   )Z	dep_hann2r   r   r6   test_deprecated_pickleableV  s    r  c               	   C   sj   t jfD ]\} | d}tt|t| }t|d | d}tt|t| }t|d qd S )Ni   rG  i  )r   r,   ri   maxrw   Zflipr   )r   ry   errorr   r   r6   test_symmetric[  s    
r  )@r  numpyri   r   Znumpy.testingr   r   r   r   r   r   r	   r1   r
   r   Z	scipy.fftr   Zscipy.signalr   r   r   r   r  Zscipyr   r  markZparametrizer7   r8   rL   rQ   r[   r`   r}   r   r   r   r   r   r   r   r   r  r
  r  r  r#  r.  r9  r>  rD  rN  rM  r  r  r  r  r  r  r  r   r  r  r   r   r   r6   <module>   s   $
		J9







		)








("2!G3