+
     ]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   \         P                  ! R 4      R 8X  g   Q h\         P                  ! R ^R7      R 8X  g   Q h\         P                  ! R RR7      R 8X  g   Q h\         P                  ! R \         P                  R7      R 8X  g   Q h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 Fb  p\        V\        P                  4      '       d#   \        \         P                  ! V4      V4       KE  \         P                  ! V4      V8X  d   Kb  Q h	  R# )r   axisZnonekey      @N)r   detrend_nonedetrendr   r   r   tolistr   vstackTZ
isinstanceZndarrayr   r    Zsig   & r   test_detrend_noneZTestDetrend.test_detrend_none'   s     $***  !,222||BF+r111||BD$5$56"<<<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?((-444
r   c                s   R Fl  p\         P                  ! V4      R 8X  g   Q h\         P                  ! VRR7      R 8X  g   Q h\         P                  ! V\         P                  R7      R 8X  d   Kl  Q h	  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   r   r)   N)r   r+   )	r   detrend_meanr-   r&   r   r   r   r   r   r1   r2   r   test_detrend_meanZTestDetrend.test_detrend_mean=   sH   C$$S)R///<<0B666<<):):;rAAA 
 	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    r'   N)r   r   r   r   r&   r   r4   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 # )Nr'   Zconstantr*   r(   defaultr   )r   r/   r   r   r   r&   r   r4   r0   r-   r   r   r6   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)r*   spamr+   r(   N)r   r   newaxispytestraises
ValueErrorr   r-   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+   r(   N)r   r   r=   r>   r?   r@   r   r4   rA   r"   r   test_detrend_mean_ValueErrorZ(TestDetrend.test_detrend_mean_ValueError|   s}    vqk"&!-

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

 +**s   "BBc                s   \         P                  ! R 4      R 8X  g   Q h\         P                  ! R4      R 8X  g   Q h\         P                  ! RRR7      R 8X  g   Q h\         P                  ! R\         P                  R7      R 8X  g   Q hV P                  V P                  V P                  V P                  ,           3 F3  pV P                  \         P                  ! V4      V P                  4       K5  	  R# )r   r+   linearr)   N)r   detrend_linearr-   r   r   r&   r   r1   r2   r   test_detrend_linearZTestDetrend.test_detrend_linear   s    ""2&",,,""3'2---||CX."444||CT%8%89R???-
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# )rE   r)   N)r   r   r   r&   r   r-   rF   r.   r6   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)rE   r8   N)r   r/   r   r   r   r&   r   r-   r0   rF   r>   r?   r@   r=   r6   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&   r3   r5   r7   r;   rC   rD   rG   rH   rI   __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)rV   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*# )-TestSpectralrU   T)rV   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   NrY   onesidedr9   F)numZendpoint:NN   r\   :   Nr]   rT   )"r   arangeZintZceilZlog2r   r   array
zeros_likeZ	enumerater   r   ZastypeclsFsrW   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requestre   rR   rW   Zlen_xrf   rg   rh   rk   rd   r!   fstimrv   Znover_density_realZpad_to_density_realZpad_to_spectrum_realZNFFT_spectrum_realri   rj   rl   rm   rn   ZNFFT_specgram_realZnover_specgram_realrs   rt   ru   Zt_startZt_stopZt_stepro   rq   rp   rr   irc   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                sr   VP                  4       ^ 8X  g   Q hVP                  4       \        V4      ^,
          8X  g   Q h\        W2RR7       V Fe  p\        P
                  ! W5,
          4      P                  4       pW,          W^,           ,          8  g   Q hW,          W^,
          ,          8  d   Ke  Q h	  R# )r    ư>r$   N)argminargmaxr   r   r   abs)r    ZvalsZ	targfreqsZresfreqsre   rw   rx   s   &&&&&  r   check_freqsZTestSpectral.check_freqsd  s     A%%% CM!O333%8Ex'(//1A7TA#Y&&&7TA#Y&&& 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:NNNr:   )	r   Zminr   r~   r|   check_maxfreqZcopyr}   r   )
r    specfspre   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)rr   moderT   	magnitudeanglephaser<   rW   ZeggsNFFTnoverlapwindowr!   N )rr   r   r   r>   r?   r@   r   _spectral_helper)r    rB   r2   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   r9   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_helperrr   )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                s   \        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       VP                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          \        V RV 24      P                  ^ ,          8X  g   Q hR# )	Zfreqs_ZNFFT_Znover_Zpad_to_)r!   rr   r   rd   r   pad_torW   r   rz   r{   Zt_N)getattrr   r   rr   rd   rW   r   shape)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Bzz!}A...zz!}4&k : @ @ CCCCr   c           
     sJ   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       VP                  VP                  8X  g   Q hR# )r_   r!   rr   r   rd   r   r   rW   rz   r{   N)rs   r   csdrr   rf   rd   rg   rh   rW   r   r   r    r   r   r      &   r   test_csdZTestSpectral.test_csd  sx    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 	/zzU[[(((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!   rr   rd   r   rW   r   r   )rf   Zdictrr   rd   r   r   rW   r   r   r   sumZ	conjugaterS   )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           	     sD   V P                   p\        P                  ! V P                  V P                  V P
                  V P                  V P                  V P                  R 7      w  r#VP                  VP                  8X  g   Q hV P                  W!W0P                  4       R# )r!   r   rd   r   r   rW   N)rs   r   r   rr   rf   rd   rg   rh   rW   r   r   re   r   r   r   test_psdZTestSpectral.test_psd  sx    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 zzU[[(((c;;7r   zmake_data, detrendr   rE   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   rd   r   rW   r-   )r!   r   rd   r   rW   r%   r{   i   r_   )rf   r   r/   tiler0   flattenrb   r   r   rd   rW   r   r   r>   r?   AssertionError)r    Z	make_datar-   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   rd   r   rW   r   r%   r{   r   )rf   r   r`   r   r   	ones_liker/   r   r0   r   r   rd   rW   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   rd   r   rW   r-   r   r   r%   r{   r   )rf   r   r`   r   r   r   r   r/   r   r0   r   r   rd   rW   rF   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   rd   r   rW   r   scale_by_freqr   r%   r{   N)r   g+?g<?g'ne?gt|?)r   r   r   rv   r   ranger   Zcosr   r   rr   rf   rd   rW   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                sd   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       VP                  VP                  8X  g   Q hR# )r!   r   rd   r   r   rW   r   rz   r{   N)rs   r   r   rr   rf   rd   rg   rh   rW   r   r   rv   r   r   r   r   r   test_psd_windowarrayZ!TestSpectral.test_psd_windowarraym  s    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::$&GGD,B,B$CE	 	/zzU[[(((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   rd   r   r   rW   r   r   Fr%   r{   N)r   r   r   r   rv   r   rr   rf   rd   rg   rh   rW   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   kindrT   r   r   c                s   V P                   p\        \        V R 24      ! V P                  V P                  V P
                  V P                  R7      w  r4\        WBRR7       VP                  VP                  8X  g   Q hVR8X  d;   V P                  W4V P                  4       V P                  W2W@P                  4       R# R# )Z	_spectrum)r!   rd   rW   r   rz   r{   r   N)rt   r   r   rr   rd   rW   rk   r   r   r   re   r   )r    r   r   r   r   s   &&   r   test_spectrumZTestSpectral.test_spectrum  s     ##DTF)"45ffwwdjj1E1EG	 	/zzU[[(((;t$++6T#{{; r   rB   c                s   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                  ^ ,          VP                  ^ ,          8X  g   Q hVP                  ^,          V P                  P                  ^ ,          8X  g   Q h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   rd   r   r   rW   r   rT   r'   rz   r{   g{Gz?Nr   )rT   r   r   )r   r   )ru   r   specgramrr   rl   rd   rm   rn   rW   Zgetr   r~   r   r   ro   r   ZmaxZdiffr   re   )r    rB   r   r   r   r   specms   &&     r   test_specgramZTestSpectral.test_specgram  s   
 ##}} /tvv /*.*<*</(,/ /3.A.A/ -1,@,@	/
 ,0::/ (./1 ::f*66$<D1%/??7zz!}A...zz!} 5 5a 8888::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   rd   N)r>   ZwarnsZUserWarningr   r   rr   r   rd   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   rr   rf   rd   rg   rh   rW   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   rd   r   r   rW   r   N)	r   r   rr   rl   rd   rm   rn   rW   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    r'   )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# )rT   r   rz   r{   N)
r   r   rr   rl   rd   rm   rn   rW   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%   r{   N)r   r   r   r   rv   r   rr   rf   rd   rg   rh   rW   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)rT   r   r   r   )(rJ   rK   rL   rM   r>   Zfixturery   r   r   r   markparametrizer   r   r   r   r   r   r   r   r4   r`   rF   r   r   r   r   r   r   r   r   r   r   r   r~   r   r   r   rN   rO   rP   rQ   r   rZ   rZ      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   rZ   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       \         P                  ! \         P                  ! V4      4      '       g   Q hR
# )rX   i!N,g      4@Zsame)r   rY   )r   rd   r   gbX9?gMbP?r{   N)r   r   r	   randnZrollZconvolver   r   Zcoherer   r   Zisreal)ZNr!   rr   Zcohsqfs        r   test_coherer   !  s    AIINN8
		A
2A
Arwwr{S(v6A{{1ca#>HEBGGENE699RWWU^$$$$r   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   ra   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                sL   \         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                  4       VP                  4       8X  g   Q hVP                  V4      p	VP                  4       V	P                  4       8X  g   Q hR# ) r   Z	bw_methodNr   )
r   r   r	   r   r   r   Zfactorr   evaluateZall)
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"..$zz|w{{},,,..$zz|w{{},,,r   r   N)	rJ   rK   rL   rM   r   r   r   rN   rO   rP   rQ   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   ra   r>   r?   ZlinalgZLinAlgErrorr   r   r    r   r2   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   ra   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   r2   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VP                  4       R8X  g   Q h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    r   rx   multidim_datar   r   r   test_scalar_covariance_datasetZ4TestGaussianKDECustom.test_scalar_covariance_dataset  sk    
		w@EaI16I}<$$&#--- Js   (B
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VP                  4       R8X  g   Q hR# u upi )z=Test the callable's cov factor for a multi-dimensional array.r   c                 s    R # )皙?r   r   r   r   callable_funZLTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.callable_fun  s    r   r   r	  Nr  )r    r   rx   r  r
  r   r   r    test_callable_covariance_datasetZ6TestGaussianKDECustom.test_callable_covariance_dataset  sn    
		w@EaI16I	}E$$&$... Js   (B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)rJ   rK   rL   rM   r   r   r   r  r  r  r  r  r  r  r  rN   rO   rP   rQ   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   rr   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`   ra   r   r   r   r   r   r    r   r  r   r   rr   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)rJ   rK   rL   rM   r  r  r  r  r  rN   rO   rP   rQ   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          ?Nr[   r   rd   r   r-   r   r   r   rW   r_   r   Nr   NNrz   r{   r    r_   r]   r   r_   r]   r_   r:   )r   ra   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  Nr[   r  r  r  r  r:   )r   ra   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   )r[   Ztwosidedr9   r:   )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   rZ   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   