
    Ug                        d dl Z d dl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 d dlmZmZmZmZmZmZmZ d dlm Z  d d	l!m"Z" d d
l#m$Z% d dl#m&Z' d dl#m(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          Z0 G d d          Z1dS )    N)assert_assert_approx_equalassert_allcloseassert_array_equalassert_equalassert_array_almost_equal_nulpsuppress_warnings)raises)signal)fftfreqrfftfreqfftirfft)	trapezoid)periodogramwelchlombscargle	coherencespectrogram
check_COLA
check_NOLA)hann)_spectral_helper)stft_compare)istft_compare)csd_comparec                   >   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                            ej        d
k    d          d             Zej                            ej        d
k    d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestPeriodogramc                     t          j        d          }d|d<   t          |          \  }}t          |t          j        ddd                     t          j        d          }d|d<   |dxx         dz  cc<   |dz  }t          ||           d S )	N      r         ?	          @   npzerosr   r   linspaceonesselfxfpqs        _/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/signal/tests/test_spectral.pytest_real_onesided_evenz'TestPeriodogram.test_real_onesided_even   s    HRLL!1~~12;q#q11222GAJJ!	"	Q1    c                    t          j        d          }d|d<   t          |          \  }}t          |t          j        d          dz             t          j        d          }d|d<   |dz  }t          ||d	           d S )
N   r!   r          @      .@r&   ?V瞯<atol)r(   r)   r   r   aranger+   r,   s        r2   test_real_onesided_oddz&TestPeriodogram.test_real_onesided_odd$   s~    HRLL!1~~129S>>$.///GAJJ!	X15))))))r4   c                     t          j        d          }d|d<   t          |d          \  }}t          |t	          dd                     t          j        dd          }d|d<   t          ||           d S )Nr    r!   r   Freturn_onesided      ?      ?)r(   r)   r   r   r   fullr,   s        r2   test_real_twosidedz"TestPeriodogram.test_real_twosided.   sx    HRLL!1e444172s++,,,GB!1r4   c                     t          j        d          }d|d<   t          |d          \  }}t          |d          \  }}t          |t          j        ddd                     t          ||d	z             d S )
Nr    r!   r   spectrumscalingdensityr"   r#   g      0@)r(   r)   r   r   r*   )r-   r.   r/   r0   gr1   s         r2   test_real_spectrumz"TestPeriodogram.test_real_spectrum7   s|    HRLL!1j11111i00012;q#q112221T6"""""r4   c                 .   t          j        dt                    }d|d<   t          |          \  }}t	          |t          j        ddd                     t          j        d          }d|d<   |dxx         dz  cc<   |d	z  }t	          ||           d S )
Nr    dtyper!   r   r"   r#   r$   r%   r&   )r(   r)   intr   r   r*   r+   r,   s        r2   test_integer_evenz!TestPeriodogram.test_integer_even?   s    HRs###!1~~12;q#q11222GAJJ!	"	Q1r4   c                    t          j        dt                    }d|d<   t          |          \  }}t	          |t          j        d          dz             t          j        d          }d|d<   |dz  }t	          ||d	
           d S )Nr6   rN   r!   r   r7   r8   r&   r9   r:   r;   )r(   r)   rP   r   r   r=   r+   r,   s        r2   test_integer_oddz TestPeriodogram.test_integer_oddJ   s    HRs###!1~~129S>>$.///GAJJ!	X15))))))r4   c                     t          j        dt                    }d|d<   t          |d          \  }}t	          |t          dd                     t          j        dd          }d|d<   t	          ||           d S )	Nr    rN   r!   r   Fr@   rB   rC   )r(   r)   rP   r   r   r   rD   r,   s        r2   test_integer_twosidedz%TestPeriodogram.test_integer_twosidedT   s    HRs###!1e444172s++,,,GB!1r4   c                    t          j        dt           j                  }d|d<   t          |d          \  }}t	          |t          dd                     t          j        dd          }d|d<   t	          ||           d S )Nr          ?       @r   Fr@   rB         ?)r(   r)   
complex128r   r   r   rD   r,   s        r2   test_complexzTestPeriodogram.test_complex]   s~    HR''!1e444172s++,,,GB!!!1r4   c                 z    t          t          t          t          j        dt          j                  d           d S )N   foorH   )assert_raises
ValueErrorr   r(   r)   rY   r-   s    r2   test_unk_scalingz TestPeriodogram.test_unk_scalingf   s:    j+rx2=/I/I	 	 	 	 	 	r4   l        zOn some 32-bit tolerance issue)reasonc                    t          j        dt           j                  }|                    d          }d|d d d d df<   t	          |          \  }}t          |j        d           t          |ddd d f         |ddd d f         d           t	          |ddd d f                   \  }}t          |t           j        d d f         |dd d f         d           d S )	N   rN      r!   
   rB   r   rf   r!      r!   <   )	r(   r)   float64reshaper   r   shaper   newaxisr-   r.   r/   r0   f0p0s         r2   test_nd_axis_m1zTestPeriodogram.test_nd_axis_m1j   s    
 HRrz***IIh!!!AAAa%1~~117I...&q1QQQx1Qqqq52>>>Qq111uX&&B&r"*QQQ,'71QQQ3DDDDDr4   c                    t          j        dt           j                  }|                    d          }d|dd d d d f<   t	          |d          \  }}t          |j        d           t          |d d ddf         |d d ddf         d	           t	          |d d ddf                   \  }}t          ||d d ddf                    d S )
Nrd   rN   rg   rf   r!   rB   r   axisri   rf   r!   r!   rj   )r(   r)   rk   rl   r   r   rm   r   ro   s         r2   test_nd_axis_0zTestPeriodogram.test_nd_axis_0x   s    
 HRrz***IIh!AAAaaa%11%%%117G,,,&q1Qx111Qq52>>>Qqqq1uX&&B&r1QQQqU844444r4   c                 V   t          j        d          }d|d<   t          |dd          \  }}t          j        dd          }t          |d|          \  }}t          ||           t          ||           t          j        dd          }t          t          t          |d|           d S )Nr    r!   r   rg   r       )r(   r)   r   r   
get_windowr   r^   r_   r-   r.   r/   r0   winfepewin_errs           r2   test_window_externalz$TestPeriodogram.test_window_external   s    HRLL!1b&))1++QC((B&q"---&q"---#FB//j+q'	# 	# 	# 	# 	#r4   c                    t          j        d          }d|d<   t          |          \  }}t          |d          \  }}t          ||d d d                    t          ||d d d                    t	          |j        d           d S )Nr    r!   r   rz   nfftrf   )   )r(   r)   r   r   r   rm   )r-   r.   r/   r0   fppps         r2   test_padded_fftzTestPeriodogram.test_padded_fft   s    HRLL!1~~1QR(((B2ccc7###2ccc7###28U+++++r4   c                 $   t          g           \  }}t          |j        d           t          |j        d           dD ]P}t          t          j        |                    \  }}t          |j        |           t          |j        |           Qd S Nr   r      r   r      rf   )r   r   rm   r(   emptyr-   r/   r0   rm   s       r2   test_empty_inputz TestPeriodogram.test_empty_input   s    2117D)))17D)))+ 	/ 	/Erx//DAqqw...qw....	/ 	/r4   c                     dD ]R}t          t          j        |          d          \  }}t          |j        |           t          |j        |           Sd S Nr   r   r!   ru   )r   r(   r   r   rm   r-   rm   r/   r0   s       r2   test_empty_input_other_axisz+TestPeriodogram.test_empty_input_other_axis   s`    % 	/ 	/ErxQ777DAqqw...qw....	/ 	/r4   c                 $   t          j        d          }d|d<   t          |d          \  }}t          |t          j        ddd                     t          j        d          }d|d<   |dxx         d	z  cc<   |d
z  }t          ||           d S )N   r!   r   r    r   r"   r#   r$   r%   r&   r'   r,   s        r2   test_short_nfftzTestPeriodogram.test_short_nfft       HRLL!12&&&12;q#q11222GAJJ!	"	Q1r4   c                 $   t          j        d          }d|d<   t          |d          \  }}t          |t          j        ddd                     t          j        d          }d|d<   |dxx         dz  cc<   |d	z  }t          ||           d S )
Nr    r!   r   r   r"   r#   r$   r%   r&   r'   r,   s        r2   test_nfft_is_xshapez#TestPeriodogram.test_nfft_is_xshape   r   r4   c                 ^   t          j        dd          }d|d<   t          |          \  }}t          |t          j        ddd                     t          j        dd          }d|d<   |dxx         dz  cc<   |d	z  }t          ||           t          |j        |j        k               d S )
Nr    r/   r!   r   r"   r#   r$   r%   r&   )r(   r)   r   r   r*   r+   r   rO   r,   s        r2   test_real_onesided_even_32z*TestPeriodogram.test_real_onesided_even_32   s    HR!1~~12;q#q11222GAsOO!	"	Q117"#####r4   c                 D   t          j        dd          }d|d<   t          |          \  }}t          |t          j        d          dz             t          j        dd          }d|d<   |dz  }t          ||d	
           t          |j        |j        k               d S )Nr6   r/   r!   r   r7   r8   r&   r9   Hz>r;   )r(   r)   r   r   r=   r+   r   rO   r,   s        r2   test_real_onesided_odd_32z)TestPeriodogram.test_real_onesided_odd_32   s    HR!1~~129S>>$.///GAsOO!	X14((((17"#####r4   c                 .   t          j        dd          }d|d<   t          |d          \  }}t          |t	          dd                     t          j        ddd          }d|d<   t          ||           t          |j        |j        k               d S )	Nr    r/   r!   r   Fr@   rB   rC   r(   r)   r   r   r   rD   r   rO   r,   s        r2   test_real_twosided_32z%TestPeriodogram.test_real_twosided_32   s    HR!1e444172s++,,,GB$$!117"#####r4   c                 .   t          j        dd          }d|d<   t          |d          \  }}t          |t	          dd                     t          j        ddd	          }d|d<   t          ||           t          |j        |j        k               d S )
Nr    FrW   r   Fr@   rB   rX   r/   r   r,   s        r2   test_complex_32zTestPeriodogram.test_complex_32   s    HR!1e444172s++,,,GB#&&!117"#####r4   c                     t          j        d          }d|d<   t          j        dd          }d}t	          t
          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )	Nr    r!   r   r   rg   zOthe size of the window must be the same size of the input on the specified axismatchwindow)r(   r)   r   r{   r^   r_   r   )r-   r.   r}   expected_msgs       r2   test_shorter_window_errorz)TestPeriodogram.test_shorter_window_error   s    HRLL!++=:\::: 	' 	'#&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A&&A*-A*N)__name__
__module____qualname__r3   r>   rE   rL   rQ   rS   rU   rZ   ra   pytestmarkskipifsysmaxsizerr   rx   r   r   r   r   r   r   r   r   r   r   r    r4   r2   r   r      s       	 	 	* * *  # # #	 	 	* * *       [u/   E E	 E [u/   5 5	 5
# 
# 
#, , ,/ / // / /	 	 		 	 	
$ 
$ 
$	$ 	$ 	$$ $ $$ $ $' ' ' ' 'r4   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d!S )"	TestWelchc                    t          j        d          }d|d<   d|d<   t          |d          \  }}t          |t          j        ddd                     t          j        g d          }t          ||d	d	
           d S Nr    r!   r   r&   npersegr"   r   iKGUU?gS8?#q?r   #q?r   r<   rtolr(   r)   r   r   r*   arrayr,   s        r2   r3   z!TestWelch.test_real_onesided_even   s    HRLL!!Q"""12;q#q11222H " " " # #14d333333r4   c                    t          j        d          }d|d<   d|d<   t          |d          \  }}t          |t          j        d          dz             t          j        g d	          }t          ||d
d
           d S Nr    r!   r   r&   r#   r         @      "@g9?g?p0?r   r   r   r   )r(   r)   r   r   r=   r   r,   s        r2   r>   z TestWelch.test_real_onesided_odd   s    HRLL!!Q"""129S>>#-...H " " " # #14d333333r4   c                     t          j        d          }d|d<   d|d<   t          |dd          \  }}t          |t	          dd                     t          j        g d          }t          ||d	d	
           d S Nr    r!   r   r&   Fr   rA   rB   r   S8?r   r   r   r   r   r   r   r   )r(   r)   r   r   r   r   r,   s        r2   rE   zTestWelch.test_real_twosided
  s    HRLL!!Q5999171c??+++H F F F G G14d333333r4   c                    t          j        d          }d|d<   d|d<   t          |dd          \  }}t          |t          j        ddd                     t          j        g d	          }t          ||d
d
           d S Nr    r!   r   r&   rG   )r   rI   r"   r   )g      ?g-UU?.iqUU?r   g-UU?r   r   r   r,   s        r2   rL   zTestWelch.test_real_spectrum  s    HRLL!!Q:66612;q#q11222H " " " # #14d333333r4   c                    t          j        dt                    }d|d<   d|d<   t          |d          \  }}t	          |t          j        ddd                     t          j        g d	          }t	          ||d
d
           d S Nr    rN   r!   r   r&   r   r"   r   r   r   r   )r(   r)   rP   r   r   r*   r   r,   s        r2   test_integer_onesided_evenz$TestWelch.test_integer_onesided_even  s    HRs###!!Q"""12;q#q11222H " " " # #14d333333r4   c                    t          j        dt                    }d|d<   d|d<   t          |d          \  }}t	          |t          j        d          d	z             t          j        g d
          }t	          ||dd           d S Nr    rN   r!   r   r&   r#   r   r   r   r   r   r   )r(   r)   rP   r   r   r=   r   r,   s        r2   test_integer_onesided_oddz#TestWelch.test_integer_onesided_odd(  s    HRs###!!Q"""129S>>#-...H " " " # #14d333333r4   c                    t          j        dt                    }d|d<   d|d<   t          |dd          \  }}t	          |t          dd                     t          j        g d	          }t	          ||d
d
           d S Nr    rN   r!   r   r&   Fr   rB   r   r   r   )r(   r)   rP   r   r   r   r   r,   s        r2   rU   zTestWelch.test_integer_twosided2  s    HRs###!!Q5999171c??+++H F F F G G14d333333r4   c                    t          j        dt           j                  }d|d<   d|d<   t          |dd          \  }}t	          |t          dd                     t          j        g d          }t	          ||d	d	
           d S Nr    rW   r   r&   Fr   rB   )g&>?#q?n)t?r   r   r   r   r   r   r   )r(   r)   rY   r   r   r   r   r,   s        r2   rZ   zTestWelch.test_complex<  s    HR''!!Q5999171c??+++H F F F G G14d333333r4   c                 |    t          t          t          t          j        dt          j                  dd           d S Nr\   r]   )rI   r   )r^   r_   r   r(   r)   rY   r`   s    r2   ra   zTestWelch.test_unk_scalingF  s<    j%!R])C)C#Q	0 	0 	0 	0 	0 	0r4   c                     t          j        dt           j                  dz   }t          |dd          \  }}t	          |t          j        |          d           d S Nrg   rN   {Gz?linearr   detrendr:   r;   r(   r=   rk   r   r   
zeros_liker-   r.   r/   r0   s       r2   test_detrend_linearzTestWelch.test_detrend_linearJ  sZ    Ib
+++d2QH55512=++%888888r4   c                     t          j        dt           j                  dz   }t          |dd          \  }}t          |dd           \  }}t	          ||d           t	          ||d           d S )	Nrg   rN   r   Fr   c                     | S Nr   r.   s    r2   <lambda>z.TestWelch.test_no_detrending.<locals>.<lambda>R  s     r4   r:   r;   )r(   r=   rk   r   r   r-   r.   f1p1f2p2s         r2   test_no_detrendingzTestWelch.test_no_detrendingO  s    Ib
+++d2q"e444Bq"kk:::BBU++++BU++++++r4   c                     t          j        dt           j                  dz   }t          |dd           \  }}t	          |t          j        |          d           d S )Nrg   rN   r   c                 .    t          j        | d          S Nl)typer   r   segs    r2   r   z1TestWelch.test_detrend_external.<locals>.<lambda>Y      #)F)F)F r4   r   r:   r;   r   r   s       r2   test_detrend_externalzTestWelch.test_detrend_externalV  sg    Ib
+++d2QFFH H H12=++%888888r4   c                     t          j        dt           j                  dz   }|                    d          }t	          |dd           \  }}t          |t          j        |          d	           d S )
N(   rN   r   rf   rf   rg   rg   c                 .    t          j        | d          S r   r   r   s    r2   r   z7TestWelch.test_detrend_external_nd_m1.<locals>.<lambda>`  r  r4   r   r:   r;   )r(   r=   rk   rl   r   r   r   r   s       r2   test_detrend_external_nd_m1z%TestWelch.test_detrend_external_nd_m1\  sx    Ib
+++d2IIhQFFH H H12=++%888888r4   c                    t          j        dt           j                  dz   }|                    d          }t          j        |dd          }t          |ddd 	          \  }}t          |t          j        |          d
           d S )Nrd   rN   r   re   rf   r   rg   c                 0    t          j        | dd          S Nr   r   )rv   r   r   r   s    r2   r   z6TestWelch.test_detrend_external_nd_0.<locals>.<lambda>h  s    !#)N)N)N r4   r   rv   r   r:   r;   )r(   r=   rk   rl   moveaxisr   r   r   r   s       r2   test_detrend_external_nd_0z$TestWelch.test_detrend_external_nd_0c  s    Ib
+++d2IIhK1a  QNNP P P12=++%888888r4   c                    t          j        dt           j                  dz   }|                    d          }t	          |d          \  }}t          |j        d           t          |ddd d f         |d	dd d f         d
d
           t	          |ddd d f         d          \  }}t          |t           j        d d f         |d	d d f         d
d
           d S Nrd   rN   r   re   rg   r   rh   r   r!   vIh%<=r   )	r(   r=   rk   rl   r   r   rm   r   rn   ro   s         r2   rr   zTestWelch.test_nd_axis_m1k  s    Ib
+++d2IIhQ###117I...!Aaaa%!AaE(UCCCCq1QQQx,,,B2:aaa<(!AaaaC&u5IIIIIIr4   c                    t          j        dt           j                  dz   }|                    d          }t	          |dd          \  }}t          |j        d           t          |d d ddf         |d d d	df         d
d
           t	          |d d ddf         d          \  }}t          ||d d d	df         d
d
           d S Nrd   rN   r   rt   rg   r   )r   rv   rw   r!   r  r   r   )r(   r=   rk   rl   r   r   rm   r   ro   s         r2   rx   zTestWelch.test_nd_axis_0t  s    Ib
+++d2IIhQ+++117G,,,!!!Aa%!AAAaE(UCCCCq1Qx,,,BAaaa!eH5u======r4   c                    t          j        d          }d|d<   d|d<   t          |ddd          \  }}t          j        dd          }t          |d|d           \  }}t          ||           t          ||           t          |j        d           t          |j        d           t          t          t          |d|d	           t          j        dd
          }t          t          t          |d|d            d S )Nr    r!   r   r&   rg   r   r   r   r\   rz   )
r(   r)   r   r   r{   r   r   rm   r^   r_   r|   s           r2   r   zTestWelch.test_window_external}  s   HRLL!!QFA...1**q"c4000B&q"---&q"---28T***28T***j%#q	* 	* 	* 	*#FB//j%'4	1 	1 	1 	1 	1 	1r4   c                 $   t          g           \  }}t          |j        d           t          |j        d           dD ]P}t          t          j        |                    \  }}t          |j        |           t          |j        |           Qd S r   )r   r   rm   r(   r   r   s       r2   r   zTestWelch.test_empty_input  s    Ryy117D)))17D)))+ 	/ 	/E%))DAqqw...qw....	/ 	/r4   c                     dD ]R}t          t          j        |          d          \  }}t          |j        |           t          |j        |           Sd S r   )r   r(   r   r   rm   r   s       r2   r   z%TestWelch.test_empty_input_other_axis  s`    % 	/ 	/E%q111DAqqw...qw....	/ 	/r4   c                    t          j        d          }d|d<   t                      5 }d}|                    t          |           t          |d          \  }}t          |dd          \  }}d d d            n# 1 swxY w Y   t          |d	          \  }}	t          ||           t          ||	           t          ||           t          ||	           d S 
Nr&   r!   r   zBnperseg = 256 is greater than input length  = 8, using nperseg = 8r   r      r   r   r   )r(   r)   r	   filterUserWarningr   r   
r-   r.   supmsgr/   r0   r   r   r   r   s
             r2   test_short_datazTestWelch.test_short_data  s   HQKK!    	9CVCJJ{C(((&)))DAq1FC888FB		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9
 q!$$$B22BBs   AA;;A?A?c           
      4   t          t          t          t          j        d          dt          j        g d                     t          t          t          t          j        d          dt          j        d                              d                     d S Nr\   r!   )r!   r!   r!   r!   r!   ri   )rf   r   )r^   r_   r   r(   r)   r   r=   rl   r`   s    r2   test_window_long_or_ndz TestWelch.test_window_long_or_nd  ss    j%!a+++9N9NOOOj%!aill**511	3 	3 	3 	3 	3r4   c                     t          j        d          }d|d d d<   t          |dd          \  }}t          j        g d          }t	          ||d	           d S 
N@   r!   r&   r    r\   r   noverlap)	r   gUUUUUU?UUUUUU?皙?r)  r*  r)  r*  gUUUUUU?g-q=r;   )r(   r)   r   r   r   r,   s        r2   test_nondefault_noverlapz"TestWelch.test_nondefault_noverlap  sq    HRLL##A#QQ///1H     15))))))r4   c           	      h    t          t          t          t          j        d          dddd           d S Nr\   r!   r   rf      )r^   r_   r   r(   r)   r`   s    r2   test_bad_noverlapzTestWelch.test_bad_noverlap  s*    j%!aAFFFFFr4   c                 f    t          t          t          t          j        d          dd           d S N   r   r\   )r   r   )r^   r_   r   r(   r+   r`   s    r2   test_nfft_too_shortzTestWelch.test_nfft_too_short  s)    j%1aHHHHHHr4   c                 B   t          j        dd          }d|d<   d|d<   t          |d          \  }}t          |t          j        ddd                     t          j        g d	d          }t          ||d
d
           t          |j        |j        k               d S Nr    r/   r!   r   r&   r   r"   r   r   r   r   )r(   r)   r   r   r*   r   r   rO   r,   s        r2   r   z$TestWelch.test_real_onesided_even_32  s    HR!!Q"""12;q#q11222H " " "#&( (14d333317"#####r4   c                 D   t          j        dd          }d|d<   d|d<   t          |d          \  }}t          |t          j        d          d	z             t          j        g d
d          }t          ||dd           t          |j        |j        k               d S Nr    r/   r!   r   r&   r#   r   r   r   )gx:?gyѲI?r   gw0?r   r   r   )r(   r)   r   r   r=   r   r   rO   r,   s        r2   r   z#TestWelch.test_real_onesided_odd_32  s    HR!!Q"""129S>>#-...H " " "#&( (14d333317"#####r4   c                 8   t          j        dd          }d|d<   d|d<   t          |dd          \  }}t          |t	          dd                     t          j        g d	d          }t          ||d
d
           t          |j        |j        k               d S Nr    r/   r!   r   r&   Fr   rB   r   r   r   r(   r)   r   r   r   r   r   rO   r,   s        r2   r   zTestWelch.test_real_twosided_32  s    HR!!Q5999171c??+++H " " "#&( ( 	14d333317"#####r4   c                 Z   t          j        dd          }d|d<   d|d<   t          |dd          \  }}t          |t	          dd                     t          j        g d	d
          }t          ||dd           t          |j        |j        k    d|j         d|j                    d S Nr    r   rW   r   r&   Fr   rB   )g%?A2q?d^?r>  g~?r>  r>  r=  r/   r   r   zdtype mismatch, , r:  r,   s        r2   r   zTestWelch.test_complex_32  s    HR!!Q5999171c??+++H F F FGJL L14d333317"71777ag77	9 	9 	9 	9 	9r4   c                    t          j        d          }d}t          |d          d |dz  dz            }|dxx         dz  cc<   t          |d|          \  }}t          |d	|          \  }}t	          ||           t	          ||           d
}t          |d          d |dz   dz           }t          |d|          \  }}t          |d	|          \  }}t	          ||           t	          ||           d S Nr2     rB   rf   r!   r$   r   r   r   ri      )r(   r)   r   r   r   )r-   r.   r   r/   fodd_fevens          r2   test_padded_freqszTestWelch.test_padded_freqs  s   HRLLD#za	z*	"14000aAD111q4   5!!!D#~A~.14000aAD111q4   5!!!!!r4   c           	         d}d}t          |dz            }d}t          ||z  |z            }t          j        |          |z  }|t          j        dt          j        z  |z  |z            z  }dD ]}t          ||||d          \  }	}
t          ||||d	          \  }}t          |
|         |dz  d
z             t          t          j        t          ||                    |t          j        d          z  dz  d           d S )Nrd   g     @rg   ,  rf   )r   bartlett)tukey皙?flattoprG   )fsr   r   rI   rJ   r%   gMbP?r   )	rP   r(   r=   sinpir   r   sqrtr   )r-   ArO  r   fsigiittr.   r   rF  p_specfreqp_denss                r2   test_window_correctionz TestWelch.test_window_correction   s.   b"f++gr!""Yr]]2bfQruWT\"_%%%E 
	' 
	'FaB&02 2 2IAv r76)24 4 4LD& F2J1S111BGIfd$;$;<<a

l1n!%' ' ' ' '
	' 
	'r4   c                 
   t           j                            d           t           j                            d          }t	          |          \  }}t          d          D ]}dgdz  }d||<   |                    |          }t	          ||          \  }}t	          |||j        z
            \  }}t          ||	                                |           t          ||	                                ||j        z
             d S )N     r   r!   r$   ru   err_msg)
r(   randomseedrandnr   rangerl   ndimr   squeeze)	r-   x_flatrF  p_flatanewshaper.   p_plusp_minuss	            r2   test_axis_rollingzTestWelch.test_axis_rolling  s    
	t&&&MM	6q 		F 		FAtAvHHQKx((Aaa(((IAvqqx000JAw!1!11====!2!2AafHEEEEE		F 		Fr4   c                 B   t          j        d          }d|d<   d|d<   t          |dd          \  }}t          |t          j        ddd                     t          j        g d	          }t          ||d
d
           t          t          t          |dd           d S )Nr    r!   r   r&   median)r   averager"   r   )rM  g?        g&E    9rq  r   r   zunrecognised-average)r(   r)   r   r   r*   r   r^   r_   r,   s        r2   test_averagezTestWelch.test_average'  s    HRLL!!Q844412;q#q11222H6667714d3333j%A4	6 	6 	6 	6 	6 	6r4   N)#r   r   r   r3   r>   rE   rL   r   r   rU   rZ   ra   r   r   r  r  r  rr   rx   r   r   r   r   r#  r+  r/  r3  r   r   r   r   rH  r[  rm  rr  r   r4   r2   r   r      s        4 4 44 4 44 4 44 4 44 4 44 4 44 4 44 4 40 0 09 9 9
, , ,9 9 99 9 99 9 9J J J> > >1 1 1"/ / // / /      3 3 3
* * *G G GI I I	$ 	$ 	$	$ 	$ 	$
$ 
$ 
$
9 
9 
9" " "$' ' ',F F F"
6 
6 
6 
6 
6r4   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d!S )"TestCSDc                 ,   t          j        d          }t          j        d          }t          j        ddd          }t          j        dt           j                  }t	          ||d          \  }}t          ||           t          ||           d S )Nr&   r2  r   r"   r.  rN   r   r(   r)   r*   rY   csdr   r-   r.   yr/   cr   c1s          r2   test_pad_shorter_xzTestCSD.test_pad_shorter_x5  s    HQKKHRLLK3""HQR]+++Q2&&&B22r4   c                 ,   t          j        d          }t          j        d          }t          j        ddd          }t          j        dt           j                  }t	          ||d          \  }}t          ||           t          ||           d S )Nr2  r&   r   r"   r.  rN   r   rv  rx  s          r2   test_pad_shorter_yzTestCSD.test_pad_shorter_y@  s    HRLLHQKKK3""HQR]+++Q2&&&B22r4   c                    t          j        d          }d|d<   d|d<   t          ||d          \  }}t          |t          j        ddd                     t          j        g d          }t          ||d	d	
           d S r   r(   r)   rw  r   r*   r   r,   s        r2   r3   zTestCSD.test_real_onesided_evenK  s    HRLL!!1a###12;q#q11222H " " " # #14d333333r4   c                    t          j        d          }d|d<   d|d<   t          ||d          \  }}t          |t          j        d          dz             t          j        g d	          }t          ||d
d
           d S r   )r(   r)   rw  r   r=   r   r,   s        r2   r>   zTestCSD.test_real_onesided_oddU  s    HRLL!!1a###129S>>#-...H " " " # #14d333333r4   c                     t          j        d          }d|d<   d|d<   t          ||dd          \  }}t          |t	          dd                     t          j        g d          }t          ||d	d	
           d S r   )r(   r)   rw  r   r   r   r,   s        r2   rE   zTestCSD.test_real_twosided_  s    HRLL!!1aE:::171c??+++H F F F G G14d333333r4   c                    t          j        d          }d|d<   d|d<   t          ||dd          \  }}t          |t          j        ddd                     t          j        g d	          }t          ||d
d
           d S r   r  r,   s        r2   rL   zTestCSD.test_real_spectrumi  s    HRLL!!1aJ77712;q#q11222H " " " # #14d333333r4   c                    t          j        dt                    }d|d<   d|d<   t          ||d          \  }}t	          |t          j        ddd                     t          j        g d	          }t	          ||d
d
           d S r   )r(   r)   rP   rw  r   r*   r   r,   s        r2   r   z"TestCSD.test_integer_onesided_evens  s    HRs###!!1a###12;q#q11222H " " " # #14d333333r4   c                    t          j        dt                    }d|d<   d|d<   t          ||d          \  }}t	          |t          j        d          d	z             t          j        g d
          }t	          ||dd           d S r   )r(   r)   rP   rw  r   r=   r   r,   s        r2   r   z!TestCSD.test_integer_onesided_odd}  s    HRs###!!1a###129S>>#-...H " " " # #14d333333r4   c                 
   t          j        dt                    }d|d<   d|d<   t          ||dd          \  }}t	          |t          dd                     t          j        g d	          }t	          ||d
d
           d S r   )r(   r)   rP   rw  r   r   r   r,   s        r2   rU   zTestCSD.test_integer_twosided  s    HRs###!!1aE:::171c??+++H F F F G G14d333333r4   c                    t          j        dt           j                  }d|d<   d|d<   t          ||dd          \  }}t	          |t          dd                     t          j        g d          }t	          ||d	d	
           d S r   )r(   r)   rY   rw  r   r   r   r,   s        r2   rZ   zTestCSD.test_complex  s    HR''!!1aE:::171c??+++H F F F G G14d333333r4   c           	          t          t          t          t          j        dt          j                  t          j        dt          j                  dd           d S r   )r^   r_   rw  r(   r)   rY   r+   r`   s    r2   ra   zTestCSD.test_unk_scaling  sR    j#rx2='A'Aga//	K 	K 	K 	K 	K 	Kr4   c                     t          j        dt           j                  dz   }t          ||dd          \  }}t	          |t          j        |          d           d S r   r(   r=   rk   rw  r   r   r   s       r2   r   zTestCSD.test_detrend_linear  s\    Ib
+++d21aX66612=++%888888r4   c                     t          j        dt           j                  dz   }t          ||dd          \  }}t          ||dd           \  }}t	          ||d           t	          ||d           d S )	Nrg   rN   r   Fr   c                     | S r   r   r   s    r2   r   z,TestCSD.test_no_detrending.<locals>.<lambda>  s     r4   r:   r;   )r(   r=   rk   rw  r   r   s         r2   r   zTestCSD.test_no_detrending  s    Ib
+++d2Q2u555BQ2{{;;;BBU++++BU++++++r4   c                     t          j        dt           j                  dz   }t          ||dd           \  }}t	          |t          j        |          d           d S )Nrg   rN   r   c                 .    t          j        | d          S r   r   r   s    r2   r   z/TestCSD.test_detrend_external.<locals>.<lambda>      v~c'D'D'D r4   r   r:   r;   r  r   s       r2   r  zTestCSD.test_detrend_external  si    Ib
+++d21aDDF F F12=++%888888r4   c                     t          j        dt           j                  dz   }|                    d          }t	          ||dd           \  }}t          |t          j        |          d	           d S )
Nr  rN   r   r  rg   c                 .    t          j        | d          S r   r   r   s    r2   r   z5TestCSD.test_detrend_external_nd_m1.<locals>.<lambda>  r  r4   r   r:   r;   )r(   r=   rk   rl   rw  r   r   r   s       r2   r  z#TestCSD.test_detrend_external_nd_m1  sz    Ib
+++d2IIh1aDDF F F12=++%888888r4   c                    t          j        dt           j                  dz   }|                    d          }t          j        |dd          }t          ||ddd 	          \  }}t          |t          j        |          d
           d S )Nrd   rN   r   re   rf   r   rg   c                 0    t          j        | dd          S r
  r   r   s    r2   r   z4TestCSD.test_detrend_external_nd_0.<locals>.<lambda>  s    v~c'L'L'L r4   r  r:   r;   )r(   r=   rk   rl   r  rw  r   r   r   s       r2   r  z"TestCSD.test_detrend_external_nd_0  s    Ib
+++d2IIhK1a  1a!LLN N N12=++%888888r4   c                    t          j        dt           j                  dz   }|                    d          }t	          ||d          \  }}t          |j        d           t          |ddd d f         |d	dd d f         d
d
           t	          |ddd d f         |ddd d f         d          \  }}t          |t           j        d d f         |d	d d f         d
d
           d S r  )	r(   r=   rk   rl   rw  r   rm   r   rn   ro   s         r2   rr   zTestCSD.test_nd_axis_m1  s    Ib
+++d2IIh1a$$$117I...!Aaaa%!AaE(UCCCCQq111uXq1QQQx444B2:aaa<(!AaaaC&u5IIIIIIr4   c                    t          j        dt           j                  dz   }|                    d          }t	          ||dd          \  }}t          |j        d           t          |d d ddf         |d d d	df         d
d
           t	          |d d ddf         |d d ddf         d          \  }}t          ||d d d	df         d
d
           d S r  )r(   r=   rk   rl   rw  r   rm   r   ro   s         r2   rx   zTestCSD.test_nd_axis_0  s    Ib
+++d2IIh1a!,,,117G,,,!!!Aa%!AAAaE(UCCCCQqqq1uXq1Qx444BAaaa!eH5u======r4   c           	         t          j        d          }d|d<   d|d<   t          ||ddd          \  }}t          j        dd          }t          ||d|d           \  }}t          ||           t          ||           t          |j        d           t          |j        d           t          t          t          ||d|d	           t          j        dd
          }t          t          t          ||d|d            d S )Nr    r!   r   r&   rg   r   r   r  r  rz   )
r(   r)   rw  r   r{   r   r   rm   r^   r_   r|   s           r2   r   zTestCSD.test_window_external  s   HRLL!!1aVQ''1**Q2sD111B&q"---&q"---28T***28T***j#q!#s	, 	, 	, 	,#FB//j#q!'4	) 	) 	) 	) 	) 	)r4   c                    t          g t          j        d                    \  }}t          |j        d           t          |j        d           t          t          j        d          g           \  }}t          |j        d           t          |j        d           dD ]c}t          t          j        |          t          j        |                    \  }}t          |j        |           t          |j        |           dt          t          j        d          t          j        d                    \  }}t          |j        d           t          |j        d           t          t          j        d          t          j        d                    \  }}t          |j        d           t          |j        d           d S )Nrg   r   r   )r   r   )rw  r(   r)   r   rm   r   r+   r   s       r2   r   zTestCSD.test_empty_input  sm   2bhrll##117D)))17D)))28B<<##117D)))17D)))+ 	/ 	/Erx88DAqqw...qw....272;;00117E***17E***28E??BGBKK00117E***17E*****r4   c                 b   dD ]e}t          t          j        |          t          j        |          d          \  }}t          |j        |           t          |j        |           ft          t          j        d          t          j        d          d          \  }}t          |j        d           t          |j        d           t          t          j        d          t          j        d          d          \  }}t          |j        d           t          |j        d           d S )Nr   r!   ru   )rg   rg   r   )rg   r   r!   )rg   r   r   )rw  r(   r   r   rm   r)   r   s       r2   r   z#TestCSD.test_empty_input_other_axis  s   % 	/ 	/Erxa@@@DAqqw...qw....28I&&(:(:CCC117H---17H---28H%%rx	':':CCC117H---17H-----r4   c                    t          j        d          }d|d<   t                      5 }d}|                    t          |           t          ||d          \  }}t          ||dd          \  }}d d d            n# 1 swxY w Y   t          ||d	          \  }}	t          ||           t          ||	           t          ||           t          ||	           d S r  )r(   r)   r	   r  r  rw  r   r  s
             r2   r   zTestCSD.test_short_data  s#   HQKK!    	;CVCJJ{C(((q!F+++DAqAfc:::FB		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 Q1%%%B22BBs   A	A==BBc                    t          t          t          t          j        d          t          j        d          dt          j        g d                     t          t          t          t          j        d          t          j        d          dt          j        d                              d                     d S r"  )	r^   r_   rw  r(   r)   r+   r   r=   rl   r`   s    r2   r#  zTestCSD.test_window_long_or_nd  s    j#rx{{BGAJJh{{{++	- 	- 	-j#rx{{BGAJJill**511	3 	3 	3 	3 	3r4   c                     t          j        d          }d|d d d<   t          ||dd          \  }}t          j        g d          }t	          ||d	           d S r%  )r(   r)   rw  r   r   r,   s        r2   r+  z TestCSD.test_nondefault_noverlap  ss    HRLL##A#1aa0001H     15))))))r4   c           
          t          t          t          t          j        d          t          j        d          dddd           d S r-  )r^   r_   rw  r(   r)   r+   r`   s    r2   r/  zTestCSD.test_bad_noverlap&  s?    j#rx{{BGAJJ6	 	 	 	 	r4   c                     t          t          t          t          j        d          t          j        d          dd           d S r1  )r^   r_   rw  r(   r+   r)   r`   s    r2   r3  zTestCSD.test_nfft_too_short*  s@    j#rwr{{BHRLLq	! 	! 	! 	! 	! 	!r4   c                 D   t          j        dd          }d|d<   d|d<   t          ||d          \  }}t          |t          j        ddd                     t          j        g d	d          }t          ||d
d
           t          |j        |j        k               d S r5  )r(   r)   rw  r   r*   r   r   rO   r,   s        r2   r   z"TestCSD.test_real_onesided_even_32.  s    HR!!1a###12;q#q11222H " " "#&( (14d333317"#####r4   c                 F   t          j        dd          }d|d<   d|d<   t          ||d          \  }}t          |t          j        d          d	z             t          j        g d
d          }t          ||dd           t          |j        |j        k               d S r7  )r(   r)   rw  r   r=   r   r   rO   r,   s        r2   r   z!TestCSD.test_real_onesided_odd_329  s    HR!!1a###129S>>#-...H " " "#&( (14d333317"#####r4   c                 :   t          j        dd          }d|d<   d|d<   t          ||dd          \  }}t          |t	          dd                     t          j        g d	d          }t          ||d
d
           t          |j        |j        k               d S r9  r(   r)   rw  r   r   r   r   rO   r,   s        r2   r   zTestCSD.test_real_twosided_32D  s    HR!!1aE:::171c??+++H " " "#&( ( 	14d333317"#####r4   c                 \   t          j        dd          }d|d<   d|d<   t          ||dd          \  }}t          |t	          dd                     t          j        g d	d
          }t          ||dd           t          |j        |j        k    d|j         d|j                    d S r<  r  r,   s        r2   r   zTestCSD.test_complex_32P  s    HR!!1aE:::171c??+++H F F FGJL L14d333317"71777ag77	9 	9 	9 	9 	9r4   c                 &   t          j        d          }t          j        d          }d}t          |d          d |dz  dz            }|dxx         dz  cc<   t	          ||d|          \  }}t	          ||d	|          \  }}t          ||           t          ||           d
}t          |d          d |dz   dz           }t	          ||d|          \  }}t	          ||d	|          \  }}t          ||           t          ||           d S rA  )r(   r)   r+   r   rw  r   )r-   r.   ry  r   r/   rE  rF  rG  s           r2   rH  zTestCSD.test_padded_freqs\  s)   HRLLGBKKD#za	z*	"aAD111aq!QT222q4   5!!!D#~A~.aAD111aq!QT222q4   5!!!!!r4   c                 d   t           j                            d          }|                                }t	          ||ddd          \  }}t	          ||ddd          \  }}t          ||           t	          ||ddd          \  }}t	          ||ddd          \  }}t          ||           d S )Nr&  r&   meanF)r   rp  rA   ro  )r(   ra  rc  copyrw  r   )r-   r.   ry  rF  p_samep_copieds         r2   test_copied_datazTestCSD.test_copied_datao  s    IOOBFFHH1a(-/ / /	6!Q6*/1 1 18)))1a(-/ / /	6!Q8*/1 1 18)))))r4   N)#r   r   r   r|  r~  r3   r>   rE   rL   r   r   rU   rZ   ra   r   r   r  r  r  rr   rx   r   r   r   r   r#  r+  r/  r3  r   r   r   r   rH  r  r   r4   r2   rt  rt  4  s       	 	 		 	 	4 4 44 4 44 4 44 4 44 4 44 4 44 4 44 4 4K K K9 9 9
, , ,9 9 99 9 99 9 9J J J> > >) ) )"+ + +,. . .     "3 3 3* * *  ! ! !	$ 	$ 	$	$ 	$ 	$
$ 
$ 
$
9 
9 
9" " "&* * * * *r4   rt  c                       e Zd Zd Zd ZdS )TestCoherencec                 *   t           j                            d          }t          j        |          }t          j        ddd          }t          j        d          }t          ||d          \  }}t          ||           t          ||           d S Nrd   r   r"   ri   rg   r   )r(   ra  rc  r  r*   r+   r   r   r-   r.   ry  r/   Cr   C1s          r2   test_identical_inputz"TestCoherence.test_identical_input  s    IOOBGAJJK3""GAJJ1a,,,B22r4   c                    t           j                            d          }| }t          j        ddd          }t          j        d          }t          ||d          \  }}t          ||           t          ||           d S r  )r(   ra  rc  r*   r+   r   r   r  s          r2   test_phase_shifted_inputz&TestCoherence.test_phase_shifted_input  sz    IOOBBK3""GAJJ1a,,,B22r4   N)r   r   r   r  r  r   r4   r2   r  r    s2        	 	 		 	 	 	 	r4   r  c                        e Zd Zd Zd Zd ZdS )TestSpectrogramc                    t           j                            d          }d}d}d}d}t          |||||          \  }}}t	          |||||          \  }	}
t          ||	           t          t          j        |d          |
           d S )Nr^  rB   rL  g      ?r    rf   r$   ru   )r(   ra  rc  r   r   r   r  )r-   r.   rO  r   r   r(  r/   rF  PfwPws              r2   test_average_all_segmentsz)TestSpectrogram.test_average_all_segments  s    IOOD!! aVWh??1aq"fgx88B2+++R00000r4   c                    t           j                            d          }d}d}d}d}t          |||||          \  }}}t	          j        dd          }	t          |||	d d          \  }
}}t          |
j        d           t          |j        d           t          t          t          |||	d	
           t	          j        dd          }t          t          t          |||d 
           d S )Nr^  rB   r  r    rf   r'  )r#   )r#   I   r&   r   i   )
r(   ra  rc  r   r   r{   r   rm   r^   r_   )r-   r.   rO  r   r   r(  r/   rF  r  r}   r~   Per   s                r2   r   z$TestSpectrogram.test_window_external  s    IOOD!! aVWh??1a442sD1EEE	Ar28T***28V,,,j+q#q	* 	* 	* 	*#OT::j+q'4	1 	1 	1 	1 	1 	1r4   c                    t           j                            d          }d}t          ||d          \  }}}t	                      5 }|                    t          d           t          ||dd          \  }}}d d d            n# 1 swxY w Y   t          ||d	          \  }	}}
t          ||d	          \  }}}t          ||	           t          ||
           t          ||           t          ||           d S )
Nr^  rB   r  r   zInperseg = 1025 is greater than input length  = 1024, using nperseg = 1024i  r  r  r   )r(   ra  rc  r   r	   r  r  r   )r-   r.   rO  r/   rF  r0   r  r   r   r   r   f3p3s                r2   r   zTestSpectrogram.test_short_data  sR   IOOD!! aN;;;1a   	2CJJ{.0 0 0 $Ar.,02 2 2IB2		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2  2s333	Ar2t444	Ar22BBs   3BB	B	N)r   r   r   r  r   r   r   r4   r2   r  r    sA        1 1 11 1 1&         r4   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestLombscarglec                 4   d}d}dt           j        z  }d}d}d}t           j                            d           t           j                            |          }t          j        dt           j        z  d	t           j        z  |          ||k             }|t          j        ||z  |z             z  }	t          j        dd	|          }
t          ||	|
          }|
d
         |
d         z
  }t          ||
t          j	        |                   z
  |dz  k                dS )zgTest if frequency location of peak corresponds to frequency of
        generated input signal.
        r%   rB   r"   d     ffffff?# {Gz?      $@r!   r   N)
r(   rR  ra  rb  randr*   rQ  r   r   argmax)r-   amplwphininnoutr0   rtr.   r/   r  deltas                r2   test_frequencyzTestLombscargle.test_frequency  s     BEk 		wINN3KRU
CIs33AF; 26!A#)$$$ Kc4(( 1a   !qtAbillO#uRx011111r4   c                 B   d}d}dt           j        z  }d}d}d}t           j                            d           t           j                            |          }t          j        dt           j        z  d	t           j        z  |          ||k             }|t          j        ||z  |z             z  }	t          j        dd	|          }
t          ||	|
          }t          j        d
|z  |j	        d         z            }t          t          j        |          |d           d S )Nr%   rB   r"   r  r  r  r  r  r  r\   r   rf   significant)r(   rR  ra  rb  r  r*   rQ  r   rS  rm   r   max)r-   r  r  r  r  r  r0   r  r  r.   r/   pgrams               r2   test_amplitudezTestLombscargle.test_amplitude  s   
 BEk 		wINN3KRU
CIs33AF; 26!A#)$$$ Kc4(( Aq!$$ E	AGAJ.// 	BF5MM4Q??????r4   c                 .   d}d}dt           j        z  }d}d}d}d}t           j                            d           t           j                            |          }t          j        d	t           j        z  d
t           j        z  |          ||k             }	|t          j        ||	z  |z             z  |z   }
t          j        d	d
|          }t          |	|
|d          }t          |	|
|
                                z
  |d          }t          ||           d S )Nr%   rB   r"   r  r  r  g333333?r  r  r  T)	precenterF)
r(   rR  ra  rb  r  r*   rQ  r   r  r   )r-   r  r  r  r  r  r0   offsetr  r  r.   r/   r  pgram2s                 r2   test_precenterzTestLombscargle.test_precenter  s    BEk 		wINN3KRU
CIs33AF; 26!A#)$$$v- Kc4(( Aq!t444QAFFHHa5AAA 	v&&&&&r4   c                 p   d}d}dt           j        z  }d}d}d}t           j                            d           t           j                            |          }t          j        dt           j        z  d	t           j        z  |          ||k             }|t          j        ||z  |z             z  }	t          j        dd	|          }
t          ||	|
          }t          ||	|
d
          }t          |dz  t          j	        |	|	          z  |           t          t          j        |          dd           d S )Nr%   rB   r"   r  r  r  r  r  r  T)	normalizerf   r  )r(   rR  ra  rb  r  r*   rQ  r   r   dotr   r  )r-   r  r  r  r  r  r0   r  r  r.   r/   r  r  s                r2   test_normalizezTestLombscargle.test_normalize-  s    BEk 		wINN3KRU
CIs33AF; 26!A#)$$$ Kc4(( Aq!$$Q1555 		BF1aLL0&999BF6NNCQ??????r4   c                     t          j        ddd          }t          j        ddd          }t          j        ddd          }t          t          t          |||           d S )Nr   r!   rf   r   )r(   r*   r^   r_   r   r-   r  r.   r/   s       r2   test_wrong_shapez TestLombscargle.test_wrong_shapeK  sW    K1a  K1a  K1a  j+q!Q77777r4   c                     t          j        d          }t          j        d          }t          j        d          }t          t          t          |||           d S )Nr!   )r(   r)   r^   ZeroDivisionErrorr   r  s       r2   test_zero_divisionz"TestLombscargle.test_zero_divisionQ  sF    HQKKHQKKHQKK'aA>>>>>r4   c                     t          j        dddd          }t          j        d|z            }t          j        dddd          d	z   }t          |||d
z  t           j        z             d S )Nr   rg   r  F)endpointr\   2   i  rM  rf   )r(   r*   rQ  r   rR  r  s       r2   test_lombscargle_atan_vs_atan2z.TestLombscargle.test_lombscargle_atan_vs_atan2W  sl     K2te444F1Q3KKK2sU333c9Aq!A#be)$$$$$r4   N)
r   r   r   r  r  r  r  r  r  r  r   r4   r2   r  r    s        2 2 2@@ @ @B' ' '<@ @ @<8 8 8? ? ?% % % % %r4   r  c                       e Zd Zd Zd Zd Zd Zd Zej	        
                    dddg          d	             Zd
 Zd Zd Zej	        
                    dddg          d             Zd Zd Zd Zd Zd ZdS )TestSTFTc                    d } |d          5  t          ddd           d d d            n# 1 swxY w Y    |d          5  t          ddd           d d d            n# 1 swxY w Y    |d	          5  t          t          j        d
          dd           d d d            n# 1 swxY w Y    |d          5  t          t          j        d          dd           d d d            n# 1 swxY w Y    |d          5  t          ddd           d d d            n# 1 swxY w Y    |d          5  t          ddd           d d d            n# 1 swxY w Y    |d	          5  t          t          j        d
          dd           d d d            n# 1 swxY w Y    |d          5  t          t          j        d          dd           d d d            n# 1 swxY w Y    |d          5  t          ddd           d d d            n# 1 swxY w Y   t          j        d          }t          |          d         } |d	          5  t          |t          j        d
                     d d d            n# 1 swxY w Y    |d          5  t          |t          j        d          d           d d d            n# 1 swxY w Y    |d          5  t          |d           d d d            n# 1 swxY w Y    |d          5  t          |dd           d d d            n# 1 swxY w Y    |d          5  t          |dd           d d d            n# 1 swxY w Y    |d          5  t          |           d d d            n# 1 swxY w Y    |d	          5  t          |t          j        d
                     d d d            n# 1 swxY w Y    |d          5  t          |t          j        d          d           d d d            n# 1 swxY w Y    |d          5  t          |d           d d d            n# 1 swxY w Y    |d          5  t          |dd           d d d            n# 1 swxY w Y    |d          5  t          |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |ddd            d d d            n# 1 swxY w Y    |d!          5  t          |dd"           d d d            n# 1 swxY w Y    |d#          5  t          ||d$%           d d d            n# 1 swxY w Y    |d&          5  t          |d d'         |d'd          d(%           d d d            n# 1 swxY w Y    |d)          5  t          ||d$*           d d d            n# 1 swxY w Y   d+} |d,|d-          5  t          ||.           d d d            n# 1 swxY w Y    |d,|d-          5  t          ||.           d d d            d S # 1 swxY w Y   d S )/Nc                 8    t          j        t          |           S )zAssert for a ValueError matching regexp `match`.

            This little wrapper allows a more concise code layout.
            r   )r   r
   r_   r   s    r2   chk_VEz.TestSTFT.test_input_validation.<locals>.chk_VEc  s    
 =59999r4   z"nperseg must be a positive integerr   ir   z#noverlap must be less than nperseg.rg   rd   zwindow must be 1-D)rf   rf   z"window must have length of npersegz"noverlap must be less than npersegz&noverlap must be a nonnegative integerr&  ir^  rf   r   z>value specified for nperseg is different from length of windowr  r  i r   r'  z.nfft must be greater than or equal to nperseg.r&   rC  zInput stft must be at least 2d!zwindow must have length of 256z1NOLA condition failed, STFT may not be invertibler   r   r(  r   z/Must specify differing time and frequency axes!	time_axis	freq_axisz=Unknown value for mode foo, must be one of: \{'psd', 'stft'\}r]   )modez'x and y must be equal if mode is 'stft'   stftz[Unknown boundary option 'foo', must be one of: \['even', 'odd', 'constant', 'zeros', None\])boundary	not_validzParameter scaling=z not in \['spectrum', 'psd'\]!rH   )r   r(   r+   r   r)   r  istftr   warnsr  r   )r-   r  r.   zrI   s        r2   test_input_validationzTestSTFT.test_input_validationa  s   	: 	: 	: V899 	' 	'vsA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'V9:: 	' 	'vr2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'V()) 	/ 	/rwvA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/V899 	+ 	+rwr{{B***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ V899 	' 	'vsA&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'V899 	' 	'vr2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'V()) 	/ 	/rwvA...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/V899 	+ 	+rwr{{B***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+V<== 	( 	(vr3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( HTNNGGAJ V()) 	, 	,276??++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,V , - - 	5 	5272;;4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 V899 	" 	"D!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"V9:: 	0 	0C$////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0VDEE 	) 	)Ca((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) V566 	 	!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V()) 	- 	-!BGFOO,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-V455 	6 	6!BGBKK5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6V899 	# 	#!T""""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#V9:: 	1 	1!S40000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1VDEE 	* 	*!Sq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*\+ .7 8 8 8 	= 	=!S1V<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= VEFF 	/ 	/!qA....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ V ) * * 	/ 	/Q....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ V=>> 	< 	<QttWagF;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<V D E E 	3 	3QE2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 VJ'JJJKK 	% 	%G$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%VJ'JJJKK 	& 	&!W%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s  -11A!!A%(A%7$B''B+.B+=$C--C14C1D!!D%(D%7EEE+$FF"F1$G!!G%(G%7HHH$JJJ%KKK!K??LLL44L8;L8
M))M-0M-?NN"N1$O!!O%(O%7%P((P,/P,>QQ #Q 2RRR'SS
S
,TTT"UUUU66U:=U:#V;;V?V?W00W47W4X**X.1X.Y##Y'*Y'c                 ^    g d}|D ]%} dj         | }t          dt          | |           &d S )N)boxcarrg   r   r  rg   r#   rK  3      r   r     r   r     blackmanrJ     rL  r"   r  r&  r   r     
{}, {}, {}Tr_  )formatr   r   )r-   settingssettingr  s       r2   test_check_COLAzTestSTFT.test_check_COLA  s^    	 	 	   	B 	BG%,%w/Cz73SAAAAA	B 	Br4   c                 .   g d}|D ]%} dj         | }t          dt          | |           &t          j        d          }d|d d d<   |t          |          t          |          dz  fdg}|D ]%} dj         | }t          d	t          | |           &d S )
N)r  r  )r  rg   r.  r  )rK  r  rg   r  r
  )r   r  %   r  )r  rJ  {   r  )r  r  &   r  )r   r  '   r  Tr_  r    r   rf   )r   r&  r   F)r  r   r   r(   r+   len)r-   settings_passr  r  w_failsettings_fails         r2   test_check_NOLAzTestSTFT.test_check_NOLA  s        % 	B 	BG%,%w/Cz73SAAAAAsssS[[#f++*:;#
 % 	C 	CG%,%w/C
G 4cBBBBB	C 	Cr4   c           
         t           j                            d           t           j                            d          }d}d}d}d}t	          |||||ddd           \  }}}t          |||||dd	d
          \  }	}
t          ||	           t          t          j        t          j        |          dz  d          |
           d S )Nr]  r^  rB   r   r    r&   F)paddedrA   r  rG   )rA   rI   r   rf   r$   ru   )	r(   ra  rb  rc  r  r   r   r  abs)r-   r.   rO  r   r   r(  r/   rF  Zr  r  s              r2   r  z"TestSTFT.test_average_all_segments  s    
	tIOOD!!
 q"fgx',t= = =1aq"fgx)5: : :B 	2q		12666;;;;;r4   c           	      R   t           j                            d           t           j                            d          }d}d}d}d}t	          |||||          \  }}}t	          |                    d          ||||d	          \  }	}
}t          |||||          \  }}t          |j        ||||dd
          \  }}t          ||	           t          ||
           t          ||           t          ||d d ddd d f                    t          ||d d ddf                    d S )Nr]  r^  rB   r   r    r&   )r$   r!   r!   r   ru   r$   r  )	r(   ra  rb  rc  r  rl   r  Tr   )r-   r.   rO  r   r   r(  r   t1Z1r   t2Z2t3x1t4x2s                   r2   test_permute_axeszTestSTFT.test_permute_axes  sI   
	tIOOD!!!R(;;
B!))J//VWh " " "
B r2vw99BrtR(a!#% % %B 	BBBBqqq!QzN+++Bqqq!QwK(((((r4   rI   rG   psdc           
         t           j                            d           g d}|D ]\  }}}}t          j        |          }dt           j                            |j                  z  }t          ||||d d|          \  }	}	}
t          |
||||          \  }}| d| }t          |||           t          |||           d S )	Nr]  r  r  rg   r   r  r  rg   r#   )rK  e   r  r  r   r^  r  r	  )r    r  r&  )r   r^  r  r  rg   F)r   r(  r   r   r#  rI   )r   r(  r   rI   r?  r_  	r(   ra  rb  r=   rc  sizer  r  r   )r-   rI   r  r   Nr   r(  r  r.   rF  zztrxrr  s                 r2   test_roundtrip_realzTestSTFT.test_roundtrip_real  s   
	t   -5 	0 	0(FAw	!A29??16***AAw#)4$+- - -HAq" 2w"('; ; ;FB ))x))CAr3////Ar3/////	0 	0r4   c           
      <   t           j                            d           t          j        d          }d|d d d<   |dt	          |          t	          |          dz  fdg}|D ]7\  }}}}| d| d| d| }t          |||          r
J |            t          j        |          }dt           j                            |j                  z  }	t          |	|||d d	d
          \  }
}
}t          j        t          d          5  t          ||||d	          \  }}d d d            n# 1 swxY w Y   t          j        ||d t	          |                             s
J |            t          j        |	|d t	          |	                             r
J |            9d S )Nr]  r    r   rf   r  )r   r  r&  r   r?  rg   Tr)   r   r(  r   r   r#  r  NOLAr   r   r(  r   r  )r(   ra  rb  r+   r  r   r=   rc  r:  r  r   r  r  r  allclose)r-   r  r  r   r;  r   r(  r  r  r.   rF  r<  r=  r>  s                 r2   test_roundtrip_not_nolaz TestSTFT.test_roundtrip_not_nola)  s   
	tsssS#f++s6{{a/?@(

 -5 	8 	8(FAw99q99G99x99C!&'8<<AAcAAA	!ARY__QV,,,AAw#)4%,. . .HAq" k888 = =r7X&,t= = =B= = = = = = = = = = = = = = = ;q"Wc!ffW+..33333{1b#a&&k2277C7777	8 	8s   D''D+	.D+	c           
      f   t           j                            d           g d}|D ]	\  }}}}| d| d| }t          |||          s
J |            t	          |||          r
J |            t          j        |          }dt           j                            |j                  z  }t          ||||d dd          \  }	}	}
t          |
|||d          \  }}| d| }t          ||d t          |                   |	           t          ||d t          |                   |	           d S )
Nr]  ))r  r  rg   r   )rK  r6  r  r  )r   r^  r     )r  r8  r     )r   r^  r  r   r?  rg   Tr)   rA  rC  r_  )r(   ra  rb  r   r   r=   rc  r:  r  r  r   r  )r-   r  r   r;  r   r(  r  r  r.   rF  r<  r=  r>  s                r2   test_roundtrip_nola_not_colaz%TestSTFT.test_roundtrip_nola_not_colaD  sz   
	t   -5 	9 	9(FAw44w44(44Cfgx88==#===!&'8<<AAcAAA	!ARY__QV,,,AAw#)4%,. . .HAq" 2w"(49 9 9FB ))x))CAr'3q66'{C8888Ar'3q66'{C88888#	9 	9r4   c           	         t           j                            d           dg}|D ]\  }}}}t          j        |          }dt           j                            |j                  z  }|                    t           j                  }t          ||||d d          \  }}}	t          |	|||          \  }
}| d| }t          |||           t          |||d	d
           t          |j        |j        k               d S )Nr]  r7  rg   Fr   r(  r   r   r#  r  r?  r_  g-C6?gh㈵>)r`  r   r<   )r(   ra  rb  r=   rc  r:  astypefloat32r  r  r   r   rO   r-   r  r   r;  r   r(  r  r.   rF  r<  r=  r>  r  s                r2   test_roundtrip_float32zTestSTFT.test_roundtrip_float32b  s$   
	t,-,4 	) 	)(FAw	!A29??16***A$$AAw#)4G G GHAq" 2w"(* * *FB ))x))CAq#....Ar3TEEEEAGrx'((((	) 	)r4   c                 ,   t           j                            d           g d}|D ]\  }}}}t          j        |          }dt           j                            |j                  z  dt           j                            |j                  z  z   }t          ||||d dd|          \  }	}	}
t          |
|||d|          \  }}| d| d| }t          |||	           t          |||	           t                      5 }|
                    t          d
           t          ||||d dd|          \  }	}	}
d d d            n# 1 swxY w Y   t          |
|||d|          \  }}| d| d| }t          |||	           t          |||	           d S )Nr]  r3  rg   y              $@F)r   r(  r   r   r#  rA   rI   )r   r(  r   input_onesidedrI   r?  r_  z9Input data is complex, switching to return_onesided=FalseT)r(   ra  rb  r=   rc  r:  r  r  r   r	   r  r  )r-   rI   r  r   r;  r   r(  r  r.   rF  r<  r=  r>  r  r  s                  r2   test_roundtrip_complexzTestSTFT.test_roundtrip_complexw  sW   
	t   -5 	0 	0(FAw	!A29??16***S1H1H-HHAAw#)4,17D D DHAq" 2w"(#*, , ,FB 44w44(44CAr3////Ar3/////    	CCJJ{RT T TAw#)4,0'C C CHAq"	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C r7X$UGM M MB 00700h002s++++2s++++++s    7EE
Ec                    t           j                            d           ddg}|D ]\  }}}}t          j        |          }dt           j                            |j                  z  }t          ||||d dd           \  }}}	t          |	||d          \  }}
d	D ]`}t          ||||d d|          \  }}}t          |||d          \  }}| d
| d
| }t          ||
|           t          |||           ad S )Nr]  r4  r5  rg   TrA  F)r(  r   r  )evenoddconstantr)   r?  r_  r9  )r-   r  r   r;  r   r(  r  r.   rF  r<  r>  r  zz_extxr_extr  s                  r2   !test_roundtrip_boundary_extensionz*TestSTFT.test_roundtrip_boundary_extension  sa   
	t +*
 -5 	8 	8(FAw	!A29??16***AAw"($t$(* * *HAq" "xOOOEAr@ 
8 
8#Aw'-tD)1 3  3  31f "&8F)-/ / /	6  99899x992s33336377777
8	8 	8r4   c           	         t           j                            d           ddg}|D ]\  }}}}t          j        |          }dt           j                            |j                  z  }t          ||||d d          \  }}}	t          |	||          \  }
}| d| }t          ||
d |j                 |	           t          ||d |j                 |	           d S )
Nr]  )r  r6  rg   r   )r   r  r  r	  rg   TrK  )r(  r   r?  r_  r9  rN  s                r2   test_roundtrip_padded_signalz%TestSTFT.test_roundtrip_padded_signal  s   
	t +,
 -5 	9 	9(FAw	!A29??16***AAw#)4F F FHAq" 2@@@FB))x))CAr'16'{C8888Ar'16'{C88888	9 	9r4   c                 l   t           j                            d           g d}|D ]\  }}}}}t          j        |          }dt           j                            |j                  z  }|t          j        dt           j        z  dz            z  }	t          |||||d d          \  }
}
}t          |	||||d dd	          \  }
}
}t          |||||
          \  }}t          |||||d          \  }}| d| }t          |||           t          |||           t          |	||           d S )Nr]  ))r   r^  r  r	  r  )r   r^  r  r	  i  )r  r  rg   r   !   )r  r8  r  r&  r^  rg   y              ?r\   T)r   r(  r   r   r   r#  F)r   r(  r   r   r   r#  rA   )r   r(  r   r   )r   r(  r   r   rQ  r?  r_  )r(   ra  rb  r=   rc  r:  exprR  r  r  r   )r-   r  r   r;  r   r(  r   r  r.   xcrF  r  zcr=  r>  xcrr  s                    r2   test_roundtrip_padded_FFTz"TestSTFT.test_roundtrip_padded_FFT  s   
	t   3; 	2 	2.FAw$	!A29??16***A26"RU(1*%%%B 1gt#)4F F FGAq! B(#)4,13 3 3HAq" 1gt"(* * *FB B(#)%A A AGB ))x))CAr3////Ar3////BS11111/	2 	2r4   c                    t           j                            d           t           j                            d          }t	          |          \  }}}t          d          D ]}dgdz  }d||<   |                    |          }t	          ||          \  }}}t	          |||j        z
            \  }}}t          ||	                                |           t          ||	                                ||j        z
             t          |j        dd	          \  }}	t          |j        d
d	          \  }}
t          ||	d           t          ||
d           d S )Nr]  r^  r   r!   r$   ru   r_  r  r   zistft transpose minuszistft transpose plus)r(   ra  rb  rc  r  rd  rl   re  r   rf  r  r'  r   )r-   rg  rF  z_flatri  rj  r.   z_plusz_minusx_transpose_mx_transpose_ps              r2   rm  zTestSTFT.test_axis_rolling  sZ   
	t&&F||1fq 		F 		FAtAvHHQKx((A???LAq& 16222MAq'!1!11====!2!2AafHEEEEE
 !R2FFF= Q!DDD=7NOOOO7MNNNNNNr4   c                    t          j        dt                    }d|d<   t           j                            |          }t          |dz            t          |          z  }t          |dd          d         }t          |d	d          d
         }t          ||           t          t          |dddf                   d           t          t          |dddf                   d
           t          t          |dddf                   d           d|ddddf<   t          |ddddf         dt          j        |j                  j                   t          |ddd          d         }t          j        |j        dz  |j        dz  z   d          |j        d         z  }t          ||           t          |dd	d          d
         }t          ||           t          |d	dd          d         }t          j        |dddddf                   }	t          |ddddf         |           t          |ddddf         |	           t          j        |j        dz  |j        dz  z   d          t          j        |	j        dz  |	j        dz  z   d          z   }
|
|j        d         |	j        d         z   z  }t          ||           t          |d	d	d          d
         }t          ||           dS )z&Verify behavior of scaling parameter. i  rN   r^  r  rf   rT  rG   )r  rI   Tr!   ?   Nr$   r"   r&  A   r   B   r;   Fr1  )rA   r  rI   ru   )rQ  r  rI   rd     )r(   r)   complexr   r   sumr  r  r  r   r$  finforO   
resolutionrealimagrm   conj)r-   Xr.   power_xZsr-  Zppsd_ZpZp0Zp1s2psd_Zp01s               r2   test_roundtrip_scalingzTestSTFT.test_roundtrip_scaling  s    HS(((#FLLOOad))c!ff$ !fj999!< 2j999!<A 	Br3B3wK((#...Br3B3wK((!,,,Br3B3wK((#...2b5#2#:111crc6
ABHRX,>,>,IJJJJ !UVUKKKAN 
RWaZ/a88828A;F((( 2edEJJJ1MA 1dVUKKKAN gc"Qr'111*o&&4C47S)))3447S))) fSX]SX]2;;;fSX]SX]2;;;<1	!45'*** 3tdEJJJ1MAr4   N)r   r   r   r   r  r!  r  r0  r   r   parametrizer?  rE  rI  rO  rR  rY  r[  rb  rm  r  r   r4   r2   r  r  `  sM       P& P& P&dB B B C C C>< < <() ) ). [YU(;<<0 0 =<068 8 869 9 9<) ) )* [YU(;<<), ), =<),V8 8 8B9 9 9,!2 !2 !2FO O O4? ? ? ? ?r4   r  c                       e Zd ZU dZdZeed<   dZeed<   dZ	eed<   dZ
eed<   ej        ed	<   ej        ed
<   eed<   eed<   d Zedefd            Zedefd            Zd Zd ZdS )"TestSampledSpectralRepresentationsa  Check energy/power relations from `Spectral Analysis` section in the user guide.

    A 32 sample cosine signal is used to compare the numerical to the expected results
    stated in :ref:`tutorial_SpectralAnalysis` in
    file ``doc/source/tutorial/signal.rst``
    rz   nrC   r'  r   a_refl_ax_refX_refE_refP_refc                 V   t          | j        | j                  }t          j        |          }d| _        | j        dz  | j        z  || j        <   t          |          | _        t          | j                  | _
        | j        | j        dz  z  dz  | _        | j        dz  dz  | _        dS )z5Create Cosine signal with amplitude a from spectrum. r   rf   N)r   r  r'  r(   r   r  r  r   r  r   r  taur  r  )r-   r/   r  s      r2   setup_methodz/TestSampledSpectralRepresentations.setup_methodj  s    TVTV$$a  *Q,/dh5\\
__
 X
A-1
Z]Q&


r4   returnc                      | j         | j        z  S )zDuration of signal. r  r'  r`   s    r2   r  z&TestSampledSpectralRepresentations.tauw  s     vr4   c                 &    d| j         | j        z  z  S )z
Bin width r!   r  r`   s    r2   delta_fz*TestSampledSpectralRepresentations.delta_f|  s     DFTVO$$r4   c                    t          d| j        z  t          j        | j                  d           t          | j        t          | j        dz            z  | j                   t          | j        j	        dz  | j        j
        dz  z             }t          | j        | j        z  |z  | j                   t          d| j        dz  z  |z  | j                   dS )z Test energy and power formulas. rf   rM  rP  r!   N)r   r  r(   ptpr  r'  rp  r  r  rs  rt  r  r  )r-   sum_X_ref_squareds     r2   test_reference_signalz8TestSampledSpectralRepresentations.test_reference_signal  s     	$*bfTZ&8&8sCCCCTZ1_!5!55tzBBB  
 2TZ_a5G GHHtv(994:FFF$&!)&77DDDDDr4   c                    t          | j        d          }t          t          |                    t	          j        t          |j        dz  |j        dz  z                       }}t          | j	        |z            }t          | j        || j                 z  |z  | j        | j        z  dz             t          || j                 |z  | j        dz             | j        | j        z  t          ||z            dz  z  }| j        t          ||z            dz  z  }t          | j        t          |          z  | j                   t          | j        t          |          z  | j                   t%          d| j        z  |dd          }t'          | j	        fddi|\  }}	t'          | j	        fddi|\  }}
t	          j        |	j                  j        }t          |	t          ||z            dz  |t/          |	          z  	           t          |
||t/          |
          z  	           t%          dt1          | j	                  d
d|}t          t3          | j	        fddi|d         |	|t/          |	          z  	           t          t3          | j	        fddi|d         |
|t/          |
          z  	           dS )zVerify spectral representations of windowed DFT.

        Furthermore, the scalings of `periodogram` and `welch` are verified.
        F)symrf   r!   )rO  r   r   rA   rI   rG   rJ   r;   r   r'  Nr   )r   r  r$  rp  r(   rS  rs  rt  r   r  r   r  r  r  r'  r  r  r  dictr   rq  rO   rr  r  r  r   )r-   r  c_ampc_rmsXwX_ESDX_PSDkwrF  P_magP_psd	float_ress               r2   test_windowed_DFTz4TestSampledSpectralRepresentations.test_windowed_DFT  s   
 U###3q66{{BGC	AFAI0E,F,F$G$GuA 	2dh</%7dh9NQR9RSSS48u,djl;;; 46!CU
OOQ$66R%Z!++s5zz14:>>>s5zz14:>>> QtvXaNNNtzDD:DDD5tzCC9CCC5 HU[))4	s2e8}}a/iE

6JKKKKu9SZZ+?@@@@ <#dj//A<<<<djCC*CCCAF&s5zz1	3 	3 	3 	3djBB)BrBB1Eu&s5zz1	3 	3 	3 	3 	3 	3r4   N)r   r   r   __doc__r  rP   __annotations__r'  floatr  r  r(   ndarrayr  propertyr  r  r  r  r   r4   r2   r  r  Y  s          AsKKKAuOOOE5CLLL::LLLLLL' ' ' U    X % % % % X%
E 
E 
E$3 $3 $3 $3 $3r4   r  )2r   numpyr(   numpy.testingr   r   r   r   r   r   r	   r   r
   r^   scipyr   	scipy.fftr   r   r   r   scipy.integrater   scipy.signalr   r   r   r   r   r   r   scipy.signal.windowsr   scipy.signal._spectral_pyr   ,scipy.signal.tests._scipy_spectral_test_shimr   r  r   r  r   rw  r   r   rt  r  r  r  r  r  r   r4   r2   <module>r     s$   



    N N N N N N N N N N N N N N N N N N  * * * * * *       3 3 3 3 3 3 3 3 3 3 3 3 % % % % % %? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % % % % % % 6 6 6 6 6 6 N M M M M M O O O O O O K K K K K KZ' Z' Z' Z' Z' Z' Z' Z'z|6 |6 |6 |6 |6 |6 |6 |6~	I* I* I* I* I* I* I* I*X
       03  3  3  3  3  3  3  3 jP% P% P% P% P% P% P% P%fv v v v v v v vrX3 X3 X3 X3 X3 X3 X3 X3 X3 X3r4   