+
     ]i  c                   s0   ^ RI HtHtHtHt ^ RIt^ RIt^ RIH	t	 R t
 ! R R4      t]P                  P                  RRR	.R
R.RR7      ]P                  P                  R. R ORR7      ]P                  P                  R. RR!R!R!R!3^.RR!R!R!R!3. R"ORR!R!R!R!3. RRR!R!R3. RR!R!RR3. RRR!RR3. RRR!R!^3. RR!R!^!R3. ^^!R!R!R3. R^R!RR3. RR!^ R!R!3.. R#ORR7       ! R R4      4       4       4       tR t ! R R4      t ! R R4      t ! R R4      tR tR tR# )$    )assert_allcloseassert_almost_equalassert_array_equalassert_array_almost_equal_nulpN)mlabc                  sB   \         P                  P                  ^ 4       Rp \         P                  P                  V 4      ^d,           p\         P                  ! V 4      p\        \        P                  ! V4      V4       \        \        P                  ! V4      V4       \        \         P                  ! \        V4      4      V,          \        P                  ! V4      4       \        \         P                  ! \        V4      4      \        P                  ! V4      4       R# )r      N)nprandomseedstandard_normalonesr   r   window_noneZhanninglenwindow_hanning)nZrandr   s      A/usr/lib64/python3.14/site-packages/matplotlib/tests/test_mlab.pytest_windowr   	   s    IINN1A99$$Q'#-D771:Dt''-t4t''-t4rzz#d),t3T5H5H5NOrzz#d),d.A.A$.GH    c                   sb   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tRtV tR# )TestDetrendc                s   \         P                  P                  ^ 4       Rp\         P                  ! R^dV4      p\         P                  ! V4      V n        V P
                  R,           V n        \         P                  ! RRV4      V n        W"P                  4       ,
          V n	        \         P                  P                  V4      \         P                  ! V^,          \         P                  ,          V^d,          ,          4      ,           V n        V ;P                  V P                  P                  4       ,          un        R# )r    r                 Y@g     V@Ng      $)r   r   r	   linspacezeros	sig_zerossig_off	sig_slopemeansig_slope_meanr
   sinpisig_base)selfr   x   &  r   setup_methodZTestDetrend.setup_method   s    
		qKKC#!~~,T32&&(l II%%a(266!A#bee)QsU2C+DD 	++--r   c                s    \        VR R/  R# )atol:0yE>N)r   )r    Zargss   &*r   allcloseZTestDetrend.allclose$   s    )D)r   c                s~   R V P                   V P                  V P                  V P                  V P                  ,           V P                   ,           P                  4       \        P
                  ! V P                  V P                  V P                   ,           V P                  V P                  ,           V P                  V P                   ,           V P                  ,           .4      \        P
                  ! V P                  V P                  V P                   ,           V P                  V P                  ,           V P                  V P                   ,           V P                  ,           .4      P                  3 FE  p\        V\        P                  4      '       g   K%  \        \        P                  ! V4      V4       KG  	  R# )      @N)r   r   r   tolistr   vstackTZ
isinstanceZndarrayr   r   detrend_noner    Zsig   & r   test_detrend_noneZTestDetrend.test_detrend_none'   s    T\\4>>4==/$,,>FFH		4====4<<7==4>>9==4<<7$..HJ K 		4====4<<7==4>>9==4<<7$..HJ K LM1
C #rzz**"4#4#4S#93?
r   c                s(   R F  pK  	  V P                  \        P                  ! V P                  4      V P                  4       V P                  \        P                  ! V P                  4      V P                  4       V P                  \        P                  ! V P                  V P
                  ,           4      V P                  4       V P                  \        P                  ! V P                  V P                  ,           4      V P                  V P                  ,           4       V P                  \        P                  ! V P                  V P                  ,           V P
                  ,           4      V P                  V P                  ,           4       R# )r   N)r   r'   )r&   r   detrend_meanr   r   r   r   r   r,   r-   r   test_detrend_meanZTestDetrend.test_detrend_mean=   s    C9
 	d''7Hd''6Fd''(DEmm	%d''(FGmmd&9&99	;dmmdnn<t||KLMMD///	1r   c                s   V P                   V P                  ,           V P                  ,           pV P                   V P                  ,           pV P	                  \
        P                  ! V^ R7      V4       V P	                  \
        P                  ! VP                  4       4      V4       V P	                  \
        P                  ! VP                  4       ^ R7      V4       R# )r    axisN)r   r   r   r   r&   r   r/   r(   r    ZinputZtargetr"   r   4test_detrend_mean_1d_base_slope_off_list_andor_axis0Z@TestDetrend.test_detrend_mean_1d_base_slope_off_list_andor_axis0M   s    .=!4!44d''A6?d''7@d''Q?Hr   c                sP   \         P                  ! V P                  V P                  V P                  ,           .4      p\         P                  ! V P                  V P                  .4      pV P                  \        P                  ! V4      V4       V P                  \        P                  ! VR R7      V4       V P                  \        P                  ! VP                  R R7      P                  V4       V P                  \        P                  ! V4      V4       V P                  \        P                  ! VR R7      V4       V P                  \        P                  ! VP                  RR R7      VP                  4       \         P                  ! V P                  V P                  V P                  ,           V P                  V P                  ,           V P                  V P                  ,           V P                  ,           .4      p\         P                  ! V P                  V P                  V P                  V P                  ,           V P                  V P                  ,           .4      pV P                  \        P                  ! VP                  ^ R7      VP                  4       V P                  \        P                  ! V^R7      V4       V P                  \        P                  ! VRR7      V4       V P                  \        P                  ! VR^R7      V4       V P                  \        P                  ! VP                  R^ R7      VP                  4       V P                  \        P                  ! VP                  \        P                  ^ R7      VP                  4       R # )Nr1   Zconstantkeyr2   defaultr   )r   r)   r   r   r   r&   r   r/   r*   detrendr   r   r3   r"   r   test_detrend_mean_2dZ TestDetrend.test_detrend_mean_2dT   s_   		4<<==4<<79 :DNN MM+ ,d''.7d''D96Bd''d;==vFdll5)62dll5t4f=LLjt<fhh	H 		4====4<<7==4>>9==4<<7$..HJ K DMM MM MMD,?,?? MMD,?,??A B 	d''a8&((Cd''A6?d''B7@dll5ia@&Idll577Q?JLLd&7&7a@&((	Lr   c                s   V P                   \        P                  ,          R R/3V P                   \        P                  ,          R ^/3RR^ /3V P                   R^/3V P                   \        P                  ,          R^/33 FG  w  r\        P                  ! \
        4      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       KI  	  R#   + '       g   i     K^  ; i)r6   spamr'   r2   N)r   r   newaxispytestraises
ValueErrorr   r9   r    Zsignalkwargsr"   r   test_detrend_ValueErrorZ#TestDetrend.test_detrend_ValueErrorq   s    

+eV_=

+eQZ8vqk"&!-

+fa[9
NF z**V.v. +*
 +**s   *CC!c                s8   R R^ /3V P                   R^/3V P                   \        P                  ,          R^/33 FG  w  r\        P                  ! \
        4      ;_uu_ 4        \        P                  ! V3/ VB  RRR4       KI  	  R#   + '       g   i     K^  ; i)r'   r2   N)r   r   r<   r=   r>   r?   r   r/   r@   r"   r   test_detrend_mean_ValueErrorZ(TestDetrend.test_detrend_mean_ValueError|   s}    vqk"&!-

+fa[9
NF
 z**!!&3F3 +*

 +**s   "BBc                s    V P                   V P                  V P                  V P                   ,           3 F3  pV P                  \        P                  ! V4      V P
                  4       K5  	  R # )N)r   r   r&   r   detrend_linearr   r,   r-   r   test_detrend_linearZTestDetrend.test_detrend_linear   sM     -
C
 MM$--c2DNNC
r   c                s|   V P                   V P                  ,           pV P                  pV P                  \        P
                  ! VR R7      V4       V P                  \        P
                  ! V\        P                  R7      V4       V P                  \        P                  ! VP                  4       4      V4       R# )linear)r6   N)r   r   r   r&   r   r9   rD   r(   r3   r"   r   test_detrend_str_linear_1dZ&TestDetrend.test_detrend_str_linear_1d   st    -dll5h7@dll5d.A.ABFKd))%,,.96Br   c                s   \         P                  ! V P                  V P                  V P                  V P                  ,           .4      p\         P                  ! V P                  V P                  V P                  .4      pV P                  \        P                  ! VP                  R ^ R7      VP                  4       V P                  \        P                  ! VP                  \        P                  ^ R7      VP                  4       V P                  \        P                  ! VR ^R7      V4       V P                  \        P                  ! V\        P                  ^R7      V4       \        P                  ! \        4      ;_uu_ 4        \        P                  ! V P                  \         P                  ,          4       RRR4       R#   + '       g   i     R# ; i)rF   r5   N)r   r)   r   r   r   r&   r   r9   r*   rD   r=   r>   r?   r<   r3   r"   r   test_detrend_linear_2dZ"TestDetrend.test_detrend_linear_2d   s/   		4<<>>>>DLL8: ; DNN NN NN, - 	LLhQ7	CLLd&9&9BFHH	NLLH15v	?LLD$7$7a@&	J ]]:&&rzz :; '&&&s   
6G

G	)r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r#   r&   r.   r0   r4   r:   rB   rC   rE   rG   rH   __static_attributes____classdictcell__Z__classdict__   @r   r   r      sE     .*5,1 IL:	/4DC< <r   r   	iscomplexFTrealcomplexclass)Zidsscopesides)rU   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrum   i      i  c                   s  a  ] tR t^t o ]P
                  ! RRR7      R 4       tR tR tR t	]P                  P                  RR	R
.4      R 4       t]P                  P                  R. R+O4      R 4       tR tR tR t]P                  P                  R]P$                  ]P(                  3]P$                  R3]P*                  ]P,                  3]P*                  R3.4      R 4       tR tR tR tR tR t]P                  P                  R. R,O4      R 4       t]P                  P                  R / RR	/RR
/RR/RR/RR/RR/.4      R! 4       tR" tR# t ]P                  P                  RR	R
.4      R$ 4       t!]P                  P                  R%R]PD                  3R]PF                  3RR& 3.4      R' 4       t$R( t%R)t&V t'R*# )-TestSpectralrT   T)rU   Zautousec
                sz	   R p
\         P                  ! ^ ^
^V
,          4      pVe   VRV pV Uu. uF  qV,          NK  	  ppVf   RpMV^ 8  d   ^d;rMTpVf   ^ pMV^ 8  d   V^,          ;rMTpVf   TpMFV^ 8  d>   \        ^\         P                  ! \         P                  ! V4      4      ,          4      pTpMTpV	f   \        V4      pMV	^ 8  d   \        V4      ;pp	MT	pV	f   T;ppM\        V4      ;pp^ pTpTpTpTpTpVR8X  g   VR8X  d   V'       g   V^,          '       d*   \         P                  ! ^ V
^,          VRR7      R,          pM.\         P                  ! ^ V
^,          V^,          ^,           R7      pV^,          '       d+   \         P                  ! ^ V
^,          VRR7      R,          pEM\         P                  ! ^ V
^,          V^,          ^,           R7      pMV^,          '       d9   \         P                  ! V
) ^,          V
^,          ^V,          RR7      R	,          pM)\         P                  ! V
) ^,          V
^,          VRR7      pV^,          '       d9   \         P                  ! V
) ^,          V
^,          ^V,          RR7      R	,          pM)\         P                  ! V
) ^,          V
^,          VRR7      pTpV^,          p\        V4      V^,          ,
          ^,           pVV,
          pVVVV1,          pV^,          '       d   V^V
,          ^,          ,          p\        V4      ^ 8X  d&   \         P                  ! V^V
,          ,          .4      p\         P                  ! V^V
,          ,          .4      p Tp!\         P                  ! V4      p"\        V4       FS  w  p#pV"\         P                  ! W,          \         P                  ,          ^,          4      ^
V#,          ,          ,          p"KU  	  V'       d   V"P                  R
4      p"VP                  p$V
V$n        VV$n        VV$n        VV$n        VV$n        VV$n        VV$n        VV$n        V	V$n        VV$n        VV$n        VV$n        VV$n        V!V$n        V V$n        V"V$n        VV$n        VV$n        VV$n         VV$n!        R# u upi )r   NrX   onesidedr7   F)numZendpoint:NN   r[   :   Nr\   rS   )"r   arangeZintZceilZlog2r   r   array
zeros_likeZ	enumerater   r   ZastypeclsFsrV   fstimsNFFT_densitynover_densitypad_to_densityNFFT_spectrumnover_spectrumpad_to_spectrumNFFT_specgramnover_specgrampad_to_specgram
t_specgram	t_density
t_spectrumyfreqs_densityfreqs_spectrumfreqs_specgramNFFT_density_real)%r    Zrequestrd   rQ   rV   Zlen_xre   rf   rg   rj   rc   r!   fstimru   Znover_density_realZpad_to_density_realZpad_to_spectrum_realZNFFT_spectrum_realrh   ri   rk   rl   rm   ZNFFT_specgram_realZnover_specgram_realrr   rs   rt   Zt_startZt_stopZt_steprn   rp   ro   rq   irb   s%   &&&&&&&&&&                           r   stimZTestSpectral.stim   s    IIaQV$&5	A +11&u**&1  #A/22 , !"Q1Ba1GG!.!"3a BGGBGG4E,F$G!GHN"0"0"#&q6 q 58V; ?#2 "1EE14Q7$&(.0J5I#5i #Q&& "ArAv0C5:!<<?!A !#ArAv0Cq0H10L!N
 $a''!#QQ1E6;"==@"B "$QQ1E1JQ1N"P
 #Q&& "RC!GR!V014G0G5:!<<@!B !#RC!GR!V0C5:!< $a''!#bS1Wb1f125I1I6;"==A"C "$bS1Wb1f1E6;"= '$)Q,11A5#&99wvf,-
!!!b&1*$Jz?a#5R#@"ABJXX1QV<=>
	MM!!&)HAu	BEE)A-.Q66A * #A
 kk	
')+)+-)+-#!#)++ 1S 2s   R8c                s    \        W2R R7       V F-  p\        P                  ! W5,
          4      P                  4       pK/  	  R# )ư>r$   N)r   r   absargmin)r    ZvalsZ	targfreqsZresfreqsrd   rv   rw   s   &&&&&  r   check_freqsZTestSpectral.check_freqsd  s2     	%8Ex'(//1A r   c                s   \        V4      ^ 8X  d   R# VP                  4       ^ 8  dY   \        P                  ! V4      pVP	                  4       pV P                  VRV VRV V4       V P                  WR WER V4       R# VR,          pVP                  4       pV'       dB   VP                  4       pW(,          p	\        WR,          4       VR ^ Wx^,
          V^,           % KI  R# )r    N:NNNr8   )	r   Zminr   r{   r|   check_maxfreqZcopyZargmaxr   )
r    specfsprd   fspaZzeroindZfstimstZspectZmaxindZmaxfreqs
   &&&&      r   r~   ZTestSpectral.check_maxfreqm  s    v;! 779q=66#;DkkmGtHW~tHW~vFtH~tH~vF)		 \\^FkG5'(E(6!8$ r   c                s$   R V P                   ^,           RR/R V P                   ^,           RR/R V P                   ^,           RR/R V P                   ^,           RR/RR/R V P                   RR/R V P                   R	^
R
^/R	^
R
^
/R V P                   R	^
R\        P                  ! ^	4      /3	 FP  p\        P                  ! \
        4      ;_uu_ 4        \        P                  ! RRV P                   /VB  RRR4       KR  	  R#   + '       g   i     Kg  ; i)rq   moderS   	magnitudeanglephaser;   rV   ZeggsNFFTnoverlapwindowr!   N )rq   r   r   r=   r>   r?   r   _spectral_helper)r    rA   r-   r   test_spectral_helper_raisesZ(TestSpectral.test_spectral_helper_raises  s     $&&(FI.$&&(FK0$&&(FG,$&&(FG,V$&&'6*$&&&"j"5RR($&&&"rwwqz#
F z**%%99&9 +*
 +**s   #C>>Dr   r7   psdc                s    \         P                  ! \        4      ;_uu_ 4        \        P                  ! V P
                  VR 7       RRR4       R#   + '       g   i     R# ; i))r!   r   N)r=   r>   r?   r   Z_single_spectrum_helperrq   )r    r   s   &&r   -test_single_spectrum_helper_unsupported_modesZ:TestSpectral.test_single_spectrum_helper_unsupported_modes  s4    ]]:&&((466= '&&&s   #AA!	z
mode, caser   c                sT   \        V R V 24      p\        P                  ! V P                  V P                  \        V RV 24      V P                  \        V RV 24      \        V RV 24      V P
                  VR7      w  rEp\        WSRR7       \        V\        V RV 24      RR7       R# )	Zfreqs_ZNFFT_Znover_Zpad_to_)r!   rq   r   rc   r   pad_torV   r   ry   rz   Zt_N)getattrr   r   rq   rc   rV   r   )r    r   Zcasefreqsr   r   ts   &&&    r   test_spectral_helper_psdZ%TestSpectral.test_spectral_helper_psd  s     tfo.,,fftf~.wwTVD6?3474&!12**1 	/742dV5EBr   c           
     s   V P                   p\        P                  ! V P                  V P                  ^,           V P                  V P
                  V P                  V P                  V P                  R7      w  r#\        W1RR7       R# )r^   r!   rq   r   rc   r   r   rV   ry   rz   N)
rr   r   csdrq   re   rc   rf   rg   rV   r   r    r   r   r      &   r   test_csdZTestSpectral.test_csd  sb    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 	/r   c           	     sv   V P                   f   R# \        V P                  V P                  ^,           V P                  \        P
                  V P                  R7      p\        P                  ! RRV P                   /VB w  r#\        P                  ! RRV P                   ^,          /VB w  rC\        \        P                  ! \        P                  ! V4      V,          4      P                  \        P                  ! \        P                  ! V^,          4      V,          ^,          4      P                  4       R# )zTest zero padding of csd().N)r!   rq   rc   r   rV   r   r   )re   Zdictrq   rc   r   r   rV   r   r   r   sumZ	conjugaterR   )r    ZsargsZspec0Z_Zspec1   &    r   test_csd_paddingZTestSpectral.test_csd_padding  s    $tvvdggd>N>N::' 88<!2!2<e<88>!2!21!4>>BFF2<<#6u#<=BBFF2<<a#8#>q#@AFF	Hr   c           	     s
   V P                   p\        P                  ! V P                  V P                  V P
                  V P                  V P                  V P                  R 7      w  r#V P                  W!W0P                  4       R# )r!   r   rc   r   r   rV   N)rr   r   r   rq   re   rc   rf   rg   rV   r}   rd   r   r   r   test_psdZTestSpectral.test_psd  sb    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 	c;;7r   zmake_data, detrendr   rF   c           	     s   V P                   f   R # V! V P                   4      pV^,           pVR,           p\        P                  ! WE.4      p\        P                  ! VR4      pVP                  P                  4       pVP                  4       p\        P                  ! V4      p\        P                  ! VV P                   V P                  ^ V P                  VR7      w  r\        P                  ! VV P                   V P                  ^ V P                  VR7      w  r\        P                  ! VV P                   V P                  ^ V P                  R7      w  r\        W4       \        W4       \        WRR7       \        P                  ! \        4      ;_uu_ 4        \        WRR7       R R R 4       R #   + '       g   i     R # ; i)Nffffff
@)r!   r   rc   r   rV   r9   )r!   r   rc   r   rV   r%   rz   i   r^   )re   r   r)   tiler*   flattenra   r   r   rc   rV   r   r   r=   r>   AssertionError)r    Z	make_datar9   ydataydata1ydata2ydatabycontrolspec_gfsp_gspec_bfsp_bspec_cfsp_cs   &&&           r   test_psd_detrendZTestSpectral.test_psd_detrend  sQ   
 $$++,qs		6*+w'"=='5&*&7&7$(GG*+'+zz)02 6&*&7&7$(GG*+'+zz)02 8&*&7&7$(GG*+'+zz	3
 	5(5(U3]]>**F7 +***s   F33G	c           	     s<   V P                   f   R # \        P                  ! V P                   4      pV^,           pVR,           p\        P                  ! \        P
                  ! V4      4      pW$,          p\        P                  ! V4      p\        P                  ! W#.4      p\        P                  ! WV.4      p\        P                  ! VR4      p\        P                  ! VR4      pVP                  P                  4       pVP                  4       p	VP                  4       p\        P                  ! V	V P                   V P                  ^ V P                  \        P                  R7      w  r\        P                  ! VV P                   V P                  ^ V P                  \        P                  R7      w  r\        P                  ! VV P                   V P                  ^ V P                  \        P                  R7      w  rV\        V4      V^,          P                  4       ,          ,          p\!        W4       \!        W4       \#        WRR7       \$        P&                  ! \(        4      ;_uu_ 4        \#        WRR7       R R R 4       R #   + '       g   i     R # ; i)Nr   r!   r   rc   r   rV   r   r%   rz   r   )re   r   r_   r   r   	ones_liker)   r   r*   r   r   rc   rV   r   r   r   r   r   r=   r>   r   )r    r   r   r   
windowVals	ycontrol1	ycontrol2r   r   ydatafr   r   r   r   r   r      &               r   test_psd_window_hanningZ$TestSpectral.test_psd_window_hanning  s   $		$++,qs((f)=>
'	''/			6*+99i34w'778W-"##%6&*&7&7$(GG*+'+zz(,(;(;= 6&*&7&7$(GG*+'+zz(,(;(;= 8&*&7&7$(GG*+'+zz(,(8(8: 	#i.*a-!4!4!6665(5(U3]]>**F7 +***s   2J

J	c           
     s   V P                   f   R # \        P                  ! V P                   4      p\        P                  ! V P                   4      pV^,           pVR,           pTpTp\        P
                  ! \        P                  ! V4      4      pWW,          p\        P
                  ! V4      p\        P                  ! W4.4      p\        P                  ! WV.4      p\        P                  ! VR4      p\        P                  ! VR4      pVP                  P                  4       pVP                  4       p	VP                  4       p\        P                  ! V	V P                   V P                  ^ V P                  \        P                  \        P
                  R7      w  r\        P                  ! VV P                   V P                  ^ V P                  \        P                  \        P
                  R7      w  r\        P                  ! VV P                   V P                  ^ V P                  \        P                  R7      w  rV\!        V4      V^,          P#                  4       ,          ,          p\%        W4       \%        W4       \'        WRR7       \(        P*                  ! \,        4      ;_uu_ 4        \'        WRR7       R R R 4       R #   + '       g   i     R # ; i)Nr   )r!   r   rc   r   rV   r9   r   r   r%   rz   r   )re   r   r_   r   r   r   r   r)   r   r*   r   r   rc   rV   rD   r   r   r   r   r   r=   r>   r   )r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   &test_psd_window_hanning_detrend_linearZ3TestSpectral.test_psd_window_hanning_detrend_linear#  s
   $		$++,88D--.qs		((i)@A
*	''	2			6*+99i34w'778W-"##%6&*&7&7$(GG*+'+zz)-)<)<(,(;(;= 6&*&7&7$(GG*+'+zz)-)<)<(,(;(;= 8&*&7&7$(GG*+'+zz(,(8(8: 	#i.*a-!4!4!6665(5(U3]]>**F7 +***s   4KK	c           
     s&   . ROp\         P                  ! \         P                  ) \         P                  V P                  4      p\         P                  ! V P                  4      p\        \        V4      4       F3  pW1V,          \         P                  ! WB,          4      ,          ,          pK5  	  \        P                  ! V P                  V P                  V P                  ^ V P                  VRR7      w  rV\        P                  ! V P                  V P                  V P                  ^ V P                  VR7      w  rx\        WSP                  4       ^,          ,          WpP                  ,          V^,          P                  4       ,          RR7       R# )^M?F)r!   r   rc   r   rV   r   scale_by_freqr   r%   rz   N)r   g+?g<?g'ne?gt|?)r   r   r   ru   r   ranger   Zcosr   r   rq   re   rc   rV   r   r   )	r    ZaZfacwinZkr   r   Zspec_aZfsp_as	   &        r   test_psd_window_flattopZ$TestSpectral.test_psd_window_flattopR  s    Lkk255&"%%)?)?@hht--.s1vAQ4"&&/))C  HHtvv"&"3"3 $&'#'::$'+02	 466&*&7&7$(GG*+'+zz(+- 	WWY\)wwQ||~5"	$r   c                s*   V P                   p\        P                  ! V P                  V P                  V P
                  V P                  V P                  V P                  \        P                  ! V P                  4      R 7      w  r#\        W1RR7       R# )r!   r   rc   r   r   rV   r   ry   rz   N)rr   r   r   rq   re   rc   rf   rg   rV   r   r   ru   r   r   r   r   test_psd_windowarrayZ!TestSpectral.test_psd_windowarraym  sk    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::$&GGD,B,B$CE	 	/r   c                s   \         P                  ! \        P                  ! V P                  4      4      p\         P
                  ! V P                  V P                  V P                  V P                  V P                  V P                  \         P                  R 7      w  r#\         P
                  ! V P                  V P                  V P                  V P                  V P                  V P                  \         P                  RR7      w  rE\         P
                  ! V P                  V P                  V P                  V P                  V P                  V P                  \         P                  RR7      w  rg\        W54       \        W74       \        W$4       \        WA^,          P                  4       ,          W`P                  ,          VP                  4       ^,          ,          RR7       R# )r   T)r!   r   rc   r   r   rV   r   r   Fr%   rz   N)r   r   r   r   ru   r   rq   re   rc   rf   rg   rV   r   r   r   )r    r   r   r   Zspec_sZfsp_sZspec_nZfsp_ns   &       r   "test_psd_windowarray_scale_by_freqZ/TestSpectral.test_psd_windowarray_scale_by_freqy  sO   !!"''$*@*@"ABHHtvv"&"3"3 $&*&8&8$($7$7#'::$($7$79	 466&*&7&7$(GG*.*<*<(,(;(;'+zz(,(;(;/35 466&*&7&7$(GG*.*<*<(,(;(;'+zz(,(;(;/46 	3&3&4(Q||~-wwswwy!|3"	$r   kindrS   r   r   c                sH   V P                   p\        \        V R 24      ! V P                  V P                  V P
                  V P                  R7      w  r4\        WBRR7       VR8X  d;   V P                  W4V P                  4       V P                  W2W@P                  4       R# R# )Z	_spectrum)r!   rc   rV   r   ry   rz   r   N)rs   r   r   rq   rc   rV   rj   r   r~   rd   r}   )r    r   r   r   r   s   &&   r   test_spectrumZTestSpectral.test_spectrum  s     ##DTF)"45ffwwdjj1E1EG	 	/;t$++6T#{{; r   rA   c                sL   V P                   p\        P                  ! RR V P                  RV P                  RV P
                  RV P                  RV P                  RV P                  /VB w  r4pVP                  R4      R8X  d   \        P                  ! V4      p\        P                  ! V^R7      p\        WBR	R
7       \        WPP                  R	R
7       VP                  R4      R9  d   \        P                  ! VP                  4       4      ^ 8w  d\   \        \        P                   ! V^R7      P                  4       \        P                  ! VP                  4       4      ,          ^ RR
7       VP                  R4      R9  d   V P#                  WbW@P$                  4       R# R# )r!   r   rc   r   r   rV   r   rS   r1   ry   rz   g{Gz?Nr   )rS   r   r   )r   r   )rt   r   specgramrq   rk   rc   rl   rm   rV   Zgetr   r{   r   r   rn   ZmaxZdiffr}   rd   )r    rA   r   r   r   r   specms   &&     r   test_specgramZTestSpectral.test_specgram  sV   
 ##}} /tvv /*.*<*</(,/ /3.A.A/ -1,@,@	/
 ,0::/ (./1 ::f*66$<D1%/??7
 ::f%BBvvdhhj!Q&GGDq)--/"&&2DDa  ::f%77U3< 8r   c                s   \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! V P
                  \        V P
                  4      V P                  R7       RRR4       R#   + '       g   i     R# ; i)z+Warning should be raised if len(x) <= NFFT.zOnly one segment is calculated)Zmatch)r!   r   rc   N)r=   ZwarnsZUserWarningr   r   rq   r   rc   r       &r   test_specgram_warn_only1segZ(TestSpectral.test_specgram_warn_only1seg  sD    \\+-MNNMMDFFTVVA ONNNs   AA00B	c           
     s   \         P                  ! V P                  V P                  V P                  V P
                  V P                  V P                  R 7      w  r\         P                  ! V P                  V P                  V P                  V P                  V P
                  V P                  V P                  R7      w  r4\        W4       \        W$4       R# )r   r   N)r   r   rq   re   rc   rf   rg   rV   r   r   r   )r    ZPxxZfreqsxxZPxyZfreqsxyr   r   test_psd_csd_equalZTestSpectral.test_psd_csd_equal  s    xx$&&%)%6%6#'77)-););'+':':&*jj2 xx$&&DFF%)%6%6#'77)-););'+':':&*jj2 	's07,r   c           
     s   \         P                  ! V P                  V P                  V P                  V P
                  V P                  V P                  R7      w  r#p\         P                  ! V P                  V P                  V P                  V P
                  V P                  V P                  VR7      w  rVp\        W%4       \        W64       \        WG4       R# )zZ
Test that mlab.specgram without mode and with mode 'default' and 'psd'
are all the same.
r   r!   r   rc   r   r   rV   r   N)	r   r   rq   rk   rc   rl   rm   rV   r   )r    r   specaZ	freqspecaZtaspecbZ	freqspecbZtbs   &&      r   $test_specgram_auto_default_psd_equalZ1TestSpectral.test_specgram_auto_default_psd_equal  s      $}}tvv262D2D046:6I6I484H4H37:: ?"  $}}tvv262D2D046:6I6I484H4H37::26 8" 	5(902"r   z
mode, convc                sZ    \         P                  ! \         P                  ! V 4      ^ R7      # )r    r1   )r   Zunwrapr   r!   r   r   Z<lambda>ZTestSpectral.<lambda>  s    		"((1+A >r   c           
     s   \         P                  ! V P                  V P                  V P                  V P
                  V P                  V P                  R R7      w  r4p\         P                  ! V P                  V P                  V P                  V P
                  V P                  V P                  VR7      w  rgp\        WG4       \        WX4       \        V! V4      VRR7       R# )rS   r   ry   rz   N)
r   r   rq   rk   rc   rl   rm   rV   r   r   )	r    r   ZconvZspeccZ	freqspeccZtcr   Z	freqspecmZtms	   &&&      r    test_specgram_complex_equivalentZ-TestSpectral.test_specgram_complex_equivalent  s      $}}tvv262D2D046:6I6I484H4H37::2; ="  $}}tvv262D2D046:6I6I484H4H37::26 8" 	902"UU7r   c           
     s   \         P                  ! \        P                  ! V P                  4      4      p\         P
                  ! V P                  V P                  V P                  V P                  V P                  V P                  VR 7      w  r#\         P
                  ! V P                  V P                  V P                  V P                  V P                  V P                  R7      w  rE\        W54       \        W$RR7       R# )r   r   r%   rz   N)r   r   r   r   ru   r   rq   re   rc   rf   rg   rV   r   r   )r    r   r   r   r   Zfspb   &     r   test_psd_windowarray_equalZ'TestSpectral.test_psd_windowarray_equal  s    !!"''$*@*@"ABhh$($5$5"&''(,(:(:&*&9&9%)ZZ&)+ hh$($5$5"&''(,(:(:&*&9&9%)ZZ1 	4&51r   r   N))r   Zdensity)r   r   )r   Zspectrum)rS   r   r   r   )(rI   rJ   rK   rL   r=   Zfixturerx   r}   r~   r   markparametrizer   r   r   r   r   r   r   r   r/   r_   rD   r   r   r   r   r   r   r   r   r   r   r   r{   r   r   r   rM   rN   rO   rP   r   rY   rY      s1    D ^^'40R2 1R2h')0:" [[Vi%78> 9> [[\ , 
D
D 	)
H	8 [[
((D%%	&6(:
))T((	)BIIx+@	BC!8	C!8F(8T-8^$6
)$B [[:<	<<	< [[	fi 65/FK3H
)	vw/&'1B	DE=	E=8B
-  [[Vi%78# 9#, [["&&!bhh>?
88(2 2r   rY   c                  s   R p \         P                  P                  R4       \         P                  P                  V 4      p\         P                  ! V^4      p\         P
                  ! V\         P                  ! ^4      R,          RR7      p\        P                  ! WR^^R7      w  r4\        \         P                  ! V4      RRR	7       R
# )rW   i!N,g      4@Zsame)r   rX   )r   rc   r   gbX9?gMbP?rz   N)r   r   r	   randnZrollZconvolver   r   Zcoherer   r   )ZNr!   rq   Zcohsqfs        r   test_coherer   !  s    AIINN8
		A
2A
Arwwr{S(v6A{{1ca#>HEBGGENE6r   c                   s2   a  ] tR tRt o R tR tR tRtV tR# )TestGaussianKDEi4  c                s    \         P                  ! ^4      p\        P                  ! V4      p. ROp\         P                  P                  V! V4      V^R7       R# )zRegression test for #1181.ZdecimalN)B\A?筱ES?g
f?r   r   )r   r_   r   GaussianKDEtestingassert_array_almost_equal)r    x1kde
y_expectedr   r   test_kde_integer_inputZ&TestGaussianKDE.test_kde_integer_input6  sC    YYq\r""



,,SWj!,Lr   c                s    \         P                  ! . RO\        R7      p\         P                  ! R^
^R7      p. ROp\        P
                  ! VR4      pV! V4      p\         P                  P                  W5^R7       R# )	   )Zdtyper]   scottr   Nir^         i)g>L\9?gp4=?gH꟫?g8(H	MT?gĲCR?)r   r`   Zfloatr   r   r   r   r   )r    r   xsr   Zkde2Zy2r   r   $test_gaussian_kde_covariance_cachingZ4TestGaussianKDE.test_gaussian_kde_covariance_caching>  s`    XX'u5[[ba("
 G,"X


,,ZQ,Gr   c                s   \         P                  P                  R 4       ^2p\         P                  P                  V4      p\        P
                  ! V4      p\        P
                  ! VR4      p\        P
                  ! W#P                  R7      p\         P                  ! R^^34      pVP                  V4      pVP                  V4      pVP                  V4      p	R# ) r   Z	bw_methodNr   )	r   r   r	   r   r   r   Zfactorr   evaluate)
r    n_basesampleZxnZgkdeZgkde2Zgkde3r   ZkdepdfZkdepdf2Zkdepdf3s
   &         r   test_kde_bandwidth_methodZ)TestGaussianKDE.test_kde_bandwidth_methodL  s    
		wYY__\* #  W-  {{;[[Q#r"..$..$r   r   N)	rI   rJ   rK   rL   r   r   r   rM   rN   rO   rP   r   r   r   4  s     MH- -r   r   c                   sb   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestGaussianKDECustomia  c                s    \         P                  ! \        4      ;_uu_ 4        \        P                  ! . 4       RRR4       R#   + '       g   i     R# ; i)z(Pass no data into the GaussianKDE class.Nr=   r>   r?   r   r   r   r   r   test_no_dataZ"TestGaussianKDECustom.test_no_datab  s.    ]]:&&R  '&&&s   AA	c                s    \         P                  ! \        4      ;_uu_ 4        \        P                  ! ^*.4       RRR4       R#   + '       g   i     R# ; i)z9Pass a single dataset element into the GaussianKDE class.Nr   r   r   r   test_single_dataset_elementZ1TestGaussianKDECustom.test_single_dataset_elementg  s0    ]]:&&bT" '&&&s   AA	c                   \         P                  ! . RO. RO. RO.4      p\        P                  ! \         P                  P
                  4      ;_uu_ 4        \        P                  ! VR4       RRR4       R#   + '       g   i     R# ; i)z/Test silverman's for a multi-dimensional array.	silvermanNr^   r\      r   r   i   r   i   i	   r   r`   r=   r>   ZlinalgZLinAlgErrorr   r   r    r   r-   r   test_silverman_multidim_datasetZ5TestGaussianKDECustom.test_silverman_multidim_datasetl  sO    XXy)Y78]]2990011R- 2111   A88B		c                    \         P                  ! . RO4      p\        P                  ! VR4      pRp\	        VP                  4       V^4       R# )z4Test silverman's output for a single dimension list.r   g/?Nr   r   r`   r   r   r   covariance_factorr    r   Zmygaussr   r   r    test_silverman_singledim_datasetZ6TestGaussianKDECustom.test_silverman_singledim_datasetr  s=    XX'(""2{3(
G557QGr   c                r   )z2Test scott's output for a multi-dimensional array.r   Nr   r   r   r   r   r-   r   test_scott_multidim_datasetZ1TestGaussianKDECustom.test_scott_multidim_datasety  sO    XXy)Y78]]2990011R) 2111r   c                r   )z/Test scott's output a single-dimensional array.r   g	e1?Nr   r   r   r   r   test_scott_singledim_datasetZ2TestGaussianKDECustom.test_scott_singledim_dataset  s=    XX'(""2w/(
G557QGr   c                s    \         P                  ! \        4      ;_uu_ 4        \        P                  ! . ^R7       RRR4       R#   + '       g   i     R# ; i)z0Test the scalar's cov factor for an empty array.r   Nr   r   r   r   test_scalar_empty_datasetZ/TestGaussianKDECustom.test_scalar_empty_dataset  s0    ]]:&&R1- '&&&s   AA	c                s    \         P                  P                  R4       ^2p\        ^4       Uu. uF"  p\         P                  P	                  V4      NK$  	  pp\
        P                  ! VRR7      pR# u upi )zTest a scalar's cov factor.r   g      ?r   Nr   r   r	   r   r   r   r   )r    r   rw   multidim_datar   r   r   test_scalar_covariance_datasetZ4TestGaussianKDECustom.test_scalar_covariance_dataset  sT    
		w@EaI16I}< Js   (A3c                s    \         P                  P                  R4       ^2p\        ^4       Uu. uF"  p\         P                  P	                  V4      NK$  	  ppR p\
        P                  ! W4R7      pR# u upi )z=Test the callable's cov factor for a multi-dimensional array.r   c                 s    R # )g?r   r   r   r   callable_funZLTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.callable_fun  s    r   r   Nr  )r    r   rw   r  r  r   r   r    test_callable_covariance_datasetZ6TestGaussianKDECustom.test_callable_covariance_dataset  sW    
		w@EaI16I	}E	 Js   (A5c                s    \         P                  P                  R4       ^2p\         P                  P                  V4      p\        P
                  ! VRR7      pRp\        VP                  4       V^4       R# )z>Test the callable's cov factor for a single-dimensional array.r   r   r   g}B8 ?N)r   r   r	   r   r   r   r   r   )r    r   r  r   r   r   r   test_callable_singledim_datasetZ5TestGaussianKDECustom.test_callable_singledim_dataset  sU    
		w		5}D(
C113ZCr   c                s4   \         P                  P                  R4       ^2p\         P                  P                  V4      p\        P
                  ! \        4      ;_uu_ 4        \        P                  ! VRR7       RRR4       R#   + '       g   i     R# ; i)z@Test the error message that should be called when bw is invalid.r   Zinvalidr   N)	r   r   r	   r   r=   r>   r?   r   r   )r    r   Zdatar"   r   test_wrong_bw_methodZ*TestGaussianKDECustom.test_wrong_bw_method  sW    
		wyy|,]]:&&TY7 '&&&s   #BB	r   N)rI   rJ   rK   rL   r   r   r   r   r   r  r  r  r  r  r	  rM   rN   rO   rP   r   r   r   a  sD     !
#
.H*H.
.	/D8 8r   r   c                   s>   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestGaussianKDEEvaluatei  c                s    \         P                  ! ^^
^4      p\        P                  ! V4      p\         P                  ! ^^^4      p. ROpVP	                  V4      p\         P
                  P                  WT^4       R# )zZ
Test the evaluate method when the dim's of dataset and points have
different dimensions.
N)X]?AG$?r  r  g;]?r   r_   r   r   r   r   r   )r    r   r   x2r   rq   r   r   test_evaluate_diff_dimZ.TestGaussianKDEEvaluate.test_evaluate_diff_dim  sc    
 YYq"a r"YYq"a 

 LL


,,QA>r   c                sb   \         P                  P                  R4       ^2p\         P                  P                  V4      p\        P
                  ! V4      p^.^.^..p\        P                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)z
Invert the dimensions; i.e., for a dataset of dimension 1 [3, 2, 4],
the points should have a dimension of 3 [[3], [2], [4]].
r   N)
r   r   r	   r   r   r   r=   r>   r?   r   )r    r   r  r   r  r   r   test_evaluate_inv_dimZ-TestGaussianKDEEvaluate.test_evaluate_inv_dim  sv    
 			w		5}-cA3_]]:&&LL '&&&   BB.	c                s    \         P                  ! ^^
^4      p\         P                  ! ^.4      p\        P                  ! V4      pR.pVP                  V4      p\         P                  P                  WT^4       R# )z-Tests if evaluated against a one by one arrayr  N)r   r_   r`   r   r   r   r   r   r    r   r  r   r   rq   r   r   test_evaluate_dim_and_numZ1TestGaussianKDEEvaluate.test_evaluate_dim_and_num  s\    YYq"a XXqc]r" \
LL


,,QA>r   c                sb   \         P                  ! ^^
^4      p\         P                  ! ^^
^4      \         P                  ! ^^
^4      .p\        P                  ! V4      p\        P
                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)r   N)r   r_   r   r   r=   r>   r?   r   )r    r   r  r   r   r   test_evaluate_point_dim_not_oneZ7TestGaussianKDEEvaluate.test_evaluate_point_dim_not_one  sr    YYq"a ii2q!299QA#67r"]]:&&LL '&&&r  c                s    \         P                  ! ^^
^4      p\         P                  ! ^^^4      p\        P                  ! V4      p. ROpVP	                  V4      p\         P
                  P                  WT^4       R# )r   N)r  r  r  r  r  r   r   "test_evaluate_equal_dim_and_num_ltZ:TestGaussianKDEEvaluate.test_evaluate_equal_dim_and_num_lt  s]    YYq"a YYq!Qr"9
LL


,,QA>r   r   N)rI   rJ   rK   rL   r  r  r  r  r  rM   rN   rO   rP   r   r
  r
    s#     ??? ?r   r
  c                  s   \         P                  ! . R	O4      p Rp\         P                  ! \         P                  P                  V 4      V,          4      ^,          WP                  ,          ,          p\
        P                  ! W P                  ^V,          \
        P                  \
        P                  ^ RRRR7	      w  r4\         P                  ! V^ ,          .VR,          VR,          RRR
1,          ,           4      p\        W5RR7       R# )r          ?NrZ   r   rc   r   r9   r   r   r   rV   r^   r   Nr   NNry   rz   r    r^   r\   r   r^   r\   r^   r8   )r   r`   r{   fftsizer   r   r   r+   appendr   ZuZdtZSuZPr   ZSu_1side         r   test_psd_onesided_normr     s    
&'A	B	

1"	#Q	&"vv+	6B88AFFqtD4D4D --$"&$&DA yy"Q%"S'BrF4R4L"89HAe,r   c                 sv   \         P                  ! . RO4      p Rp\         P                  ! \         P                  P                  V 4      V,          4      ^,          WP                  ,          ,          p\
        P                  ! W P                  ^,          ^V,          \
        P                  \
        P                  ^ RRRR7	      w  r4\         P                  ! V^ ,          .VR,          VR,          RRR1,          ,           4      p\        \         P                  ! V4      \         P                  ! V4      4       R# )	z&Test the case len(x) < NFFT for psd().r  NrZ   r  r  r  r  r8   )r   r`   r{   r  r  r   r   r   r+   r  r   r   r  r  r   test_psd_oversamplingr!    s    
&'A	B	

1"	#Q	&"vv+	6B88AFF1H2d6F6F --$"&$&DA yy"Q%"S'BrF4R4L"89Hq	266(#34r   )rZ   Ztwosidedr7   r8   )r   r   i
   )ZnosigZFs4ZFsAllZnosig_noNFFTZnosig_nopad_toZnosig_noNFFT_no_pad_toZ
nosig_trimZ	nosig_oddZnosig_oddlenZnosig_stretchZnosig_overlap)Znumpy.testingr   r   r   r   Znumpyr   r=   Z
matplotlibr   r   r   r   r   rY   r   r   r   r
  r   r!  r   r   r   <module>r"     s  O O   IV< V<r udm$i0  A"E&  (L	T2r2r"
dBB#	T2r2r*	T4R&	T2r4&	T4T4(	T3B$	S"b"c"	S"b"d#	S#r3$	T2r2r"	 9  :O	2 O	2;(ABO	2f
%&*- *-ZN8 N8b3? 3?l	-
5r   