+
    i                     0   ^ 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                  B   \         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_nonehanninglenwindow_hanning)nrandr   s      z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/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                   b   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                   \         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   xs   &  r   setup_methodTestDetrend.setup_method   s    
		qKKC#!~~,T32&&(l II%%a(266!A#bee)QsU2C+DD 	++--r   c                    \        VR R/  R# )atol:0yE>N)r   )r'   argss   &*r   allcloseTestDetrend.allclose$   s    )D)r   c                   \         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   axisnonekey      @N)r   detrend_nonedetrendr    r!   r&   tolistr
   vstackT
isinstancendarrayr   r'   sigs   & r   test_detrend_none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                   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"   r5   N)r   r7   )	r   detrend_meanr9   r/   r   r&   r    r!   r#   r?   s   & r   test_detrend_mean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                   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   r2   N)r&   r!   r    r#   r/   r   rD   r:   r'   inputtargets   &  r   4test_detrend_mean_1d_base_slope_off_list_andor_axis0@TestDetrend.test_detrend_mean_1d_base_slope_off_list_andor_axis0M   s    .=!4!44d''A6?d''7@d''Q?Hr   c                P   \         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 # )Nr2   constantr6   r3   defaultr"   )r
   r;   r    r&   r   r/   r   rD   r<   r9   r!   r#   rH   s   &  r   test_detrend_mean_2d 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                   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   spamr7   r3   N)r!   r
   newaxispytestraises
ValueErrorr   r9   r'   signalkwargss   &  r   test_detrend_ValueError#TestDetrend.test_detrend_ValueErrorq   s    

+eV_=

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

+fa[9
NF z**V.v. +*
 +**s   *CC!c                8   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)r7   r3   N)r!   r
   rV   rW   rX   rY   r   rD   rZ   s   &  r   test_detrend_mean_ValueError(TestDetrend.test_detrend_mean_ValueError|   s}    vqk"&!-

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

 +**s   "BBc                   \         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   r7   linearr5   N)r   detrend_linearr9   r    r!   r/   r   r?   s   & r   test_detrend_linearTestDetrend.test_detrend_linear   s    ""2&",,,""3'2---||CX."444||CT%8%89R???-
C
 MM$--c2DNNC
r   c                |   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# )rc   r5   N)r!   r    r   r/   r   r9   rd   r:   rH   s   &  r   test_detrend_str_linear_1d&TestDetrend.test_detrend_str_linear_1d   st    -dll5h7@dll5d.A.ABFKd))%,,.96Br   c                   \         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)rc   rO   N)r
   r;   r    r!   r   r/   r   r9   r<   rd   rW   rX   rY   rV   rH   s   &  r   test_detrend_linear_2d"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/   rA   rE   rK   rR   r]   r`   re   rh   rk   __static_attributes____classdictcell____classdict__s   @r   r   r      sE     .*5,1 IL:	/4DC< <r   r   	iscomplexFTrealcomplexclass)idsscopesides)rz   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrum   i      i  c                     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*# )-TestSpectralrx   T)rz   autousec
                z	   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   Nr}   onesidedrP   F)numendpoint:NN   r   :   Nr   rw   )"r
   arangeintceillog2r   r   array
zeros_like	enumerater$   r%   astypeclsFsr{   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'   requestr   ru   r{   len_xr   r   r   r   r   r(   fstimr   nover_density_realpad_to_density_realpad_to_spectrum_realNFFT_spectrum_realr   r   r   r   r   NFFT_specgram_realnover_specgram_realr   r   r   t_startt_stopt_stepr   r   r   r   ir   s%   &&&&&&&&&&                           r   stim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                r   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'   vals	targfreqsresfreqsr   r   r   s   &&&&&  r   check_freqsTestSpectral.check_freqsd  s     A%%% CM!O333%8Ex'(//1A7TA#Y&&&7TA#Y&&& r   c                   \        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:NNNrQ   )	r   minr
   r   r   check_maxfreqcopyr   r   )
r'   specfspr   fspazeroindfstimstspectmaxindmaxfreqs
   &&&&      r   r   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                $   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)r   moderw   	magnitudeanglephaserU   r{   eggsNFFTnoverlapwindowr(   N )r   r
   r   rW   rX   rY   r   _spectral_helper)r'   r\   s   & r   test_spectral_helper_raises(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   rP   psdc                    \         P                  ! \        4      ;_uu_ 4        \        P                  ! V P
                  VR 7       RRR4       R#   + '       g   i     R# ; i))r(   r   N)rW   rX   rY   r   _single_spectrum_helperr   )r'   r   s   &&r   -test_single_spectrum_helper_unsupported_modes:TestSpectral.test_single_spectrum_helper_unsupported_modes  s4    ]]:&&((466= '&&&s   #AA!	z
mode, caser   c                   \        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# )	freqs_NFFT_nover_pad_to_)r(   r   r   r   r   pad_tor{   r   r   r   t_N)getattrr   r   r   r   r{   r   shape)r'   r   casefreqsr   r   ts   &&&    r   test_spectral_helper_psd%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           
     J   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(   r   r   r   r   r   r{   r   r   N)r   r   csdr   r   r   r   r   r{   r   r   r'   r   r   r   s   &   r   test_csdTestSpectral.test_csd  sx    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 	/zzU[[(((r   c           	     v   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(   r   r   r   r{   r   r   )r   dictr   r   r   r   r{   r   r   r
   sum	conjugaterv   )r'   sargsspec0_spec1s   &    r   test_csd_padding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           	     D   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   r   r   r   r{   N)r   r   r   r   r   r   r   r   r{   r   r   r   r   s   &   r   test_psdTestSpectral.test_psd  sx    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::/	 zzU[[(((c;;7r   zmake_data, detrendr"   rc   c           	        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   r   r   r{   r9   )r(   r   r   r   r{   r-   r      r   )r   r
   r;   tiler<   flattenr   r   r   r   r{   r   r   rW   rX   AssertionError)r'   	make_datar9   ydataydata1ydata2ydatabycontrolspec_gfsp_gspec_bfsp_bspec_cfsp_cs   &&&           r   test_psd_detrend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           	     <   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   r   r   r{   r   r-   r   r  )r   r
   r   r   r   	ones_liker;   r  r<   r  r   r   r{   r   r   r   r   r   rW   rX   r  )r'   r  r  r	  
windowVals	ycontrol1	ycontrol2r  r
  ydatafr  r  r  r  r  r  s   &               r   test_psd_window_hanning$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           
        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   r   r   r{   r9   r   r  r-   r   r  )r   r
   r   r   r   r   r  r;   r  r<   r  r   r   r{   rd   r   r   r   r   r   rW   rX   r  )r'   r  r  r  r	  r  r  r  r
  r  r  r  r  r  r  r  s   &               r   &test_psd_window_hanning_detrend_linear3TestSpectral.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           
     &   . 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   r   r   r{   r   scale_by_freqr  r-   r   N)r!  g+?g<?g'ne?gt|?)r
   r   r%   r   r   ranger   cosr   r   r   r   r   r{   r   r   )	r'   afacwinkr   r   spec_afsp_as	   &        r   test_psd_window_flattop$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                d   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   r   r   r   r{   r   r   r   N)r   r   r   r   r   r   r   r   r{   r
   r   r   r   r   r   s   &   r   test_psd_windowarray!TestSpectral.test_psd_windowarraym  s    ""HHtvv"&"3"3 $&*&8&8$($7$7#'::$&GGD,B,B$CE	 	/zzU[[(((r   c                   \         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   r   r   r   r{   r   r"  Fr-   r   N)r   r   r
   r   r   r   r   r   r   r   r   r{   r   r   r   )r'   r'  r   r   spec_sfsp_sspec_nfsp_ns   &       r   "test_psd_windowarray_scale_by_freq/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   kindrw   r   r   c                   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# )	_spectrum)r(   r   r{   r   r   r   r   N)r   r   r   r   r   r{   r   r   r   r   r   r   )r'   r8  r   r   r   s   &&   r   test_spectrumTestSpectral.test_spectrum  s     ##DTF)"45ffwwdjj1E1EG	 	/zzU[[(((;t$++6T#{{; r   r\   c                   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   r   r   r   r{   r   rw   r2   r   r   g{Gz?Nr   )rw   r   r   )r   r   )r   r   specgramr   r   r   r   r   r{   getr
   r   r"   r   r   r   maxdiffr   r   )r'   r\   r   r   r   r   specms   &&     r   test_specgram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                   \         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)match)r(   r   r   N)rW   warnsUserWarningr   r>  r   r   r   r'   s   &r   test_specgram_warn_only1seg(TestSpectral.test_specgram_warn_only1seg  sD    \\+-MNNMMDFFTVVA ONNNs   AA00B	c           
        \         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   r   r   r   r   r   r{   r   r   r   )r'   PxxfreqsxxPxyfreqsxys   &    r   test_psd_csd_equalTestSpectral.test_psd_csd_equal  s    xx$&&%)%6%6#'77)-););'+':':&*jj2 xx$&&DFF%)%6%6#'77)-););'+':':&*jj2 	's07,r   c           
        \         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   r   r   r   r{   r   N)	r   r>  r   r   r   r   r   r{   r   )r'   r   speca	freqspecataspecb	freqspecbtbs   &&      r   $test_specgram_auto_default_psd_equal1TestSpectral.test_specgram_auto_default_psd_equal  s      $}}tvv262D2D046:6I6I484H4H37:: ?"  $}}tvv262D2D046:6I6I484H4H37::26 8" 	5(902"r   z
mode, convc                Z    \         P                  ! \         P                  ! V 4      ^ R7      # )r   r2   )r
   unwrapr   r(   s   &r   <lambda>TestSpectral.<lambda>  s    		"((1+A >r   c           
        \         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# )rw   rT  r   r   N)
r   r>  r   r   r   r   r   r{   r   r   )	r'   r   convspecc	freqspecctcrB  	freqspecmtms	   &&&      r    test_specgram_complex_equivalent-TestSpectral.test_specgram_complex_equivalent  s      $}}tvv262D2D046:6I6I484H4H37::2; ="  $}}tvv262D2D046:6I6I484H4H37::26 8" 	902"UU7r   c           
        \         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   r   r   r   r   r   r   r   r{   r   r   )r'   r'  rU  r   rX  fspbs   &     r   test_psd_windowarray_equal'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   density)r   r>  )r   spectrum)rw   r   r   r   )(rm   rn   ro   rp   rW   fixturer   r   r   r   markparametrizer   r   r   r   r   r
   r   r   rD   r   rd   r  r  r  r+  r/  r6  r;  rC  rJ  rQ  r[  r   r   ri  rm  rq   rr   rs   s   @r   r   r      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   r   c                     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
# )r|   i!N,g      4@same)r   r}   )r   r   r   gbX9?gMbP?r   N)r
   r   r   randnrollconvolver   r   coherer   r"   isreal)Nr(   r   cohsqfs        r   test_coherer~  !  s    AIINN8
		A
2A
Arwwr{S(v6A{{1ca#>HEBGGENE699RWWU^$$$$r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestGaussianKDEi4  c                    \         P                  ! ^4      p\        P                  ! V4      p. ROp\         P                  P                  V! V4      V^R7       R# )zRegression test for #1181.decimalN)B\A?筱ES?g
f?r  r  )r
   r   r   GaussianKDEtestingassert_array_almost_equal)r'   x1kde
y_expecteds   &   r   test_kde_integer_input&TestGaussianKDE.test_kde_integer_input6  sC    YYq\r""



,,SWj!,Lr   c                    \         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# )	   )dtyper   scottr  Nr         i)g>L\9?gp4=?gH꟫?g8(H	MT?gĲCR?)r
   r   floatr   r   r  r  r  )r'   r  xsr  kde2y2s   &     r   $test_gaussian_kde_covariance_caching4TestGaussianKDE.test_gaussian_kde_covariance_caching>  s`    XX'u5[[ba("
 G,"X


,,ZQ,Gr   c                L   \         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  	bw_methodNr  )
r
   r   r   rv  r   r  factorr   evaluateall)
r'   n_basesamplexngkdegkde2gkde3r  kdepdfkdepdf2kdepdf3s
   &         r   test_kde_bandwidth_method)TestGaussianKDE.test_kde_bandwidth_methodL  s    
		wYY__\* #  W-  {{;[[Q#r"..$zz|w{{},,,..$zz|w{{},,,r   r   N)	rm   rn   ro   rp   r  r  r  rq   rr   rs   s   @r   r  r  4  s     MH- -r   r  c                   b   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                    \         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rW   rX   rY   r   r  rI  s   &r   test_no_data"TestGaussianKDECustom.test_no_datab  s.    ]]:&&R  '&&&s   AA	c                    \         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  rI  s   &r   test_single_dataset_element1TestGaussianKDECustom.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     r     	   r
   r   rW   rX   linalgLinAlgErrorr   r  r'   r  s   & r   test_silverman_multidim_dataset5TestGaussianKDECustom.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  mygaussr  s   &   r    test_silverman_singledim_dataset6TestGaussianKDECustom.test_silverman_singledim_datasetr  s=    XX'(""2{3(
G557QGr   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)z2Test scott's output for a multi-dimensional array.r  Nr  r  r  r  r  s   & r   test_scott_multidim_dataset1TestGaussianKDECustom.test_scott_multidim_datasety  sO    XXy)Y78]]2990011R) 2111r  c                    \         P                  ! . RO4      p\        P                  ! VR4      pRp\	        VP                  4       V^4       R# )z/Test scott's output a single-dimensional array.r  g	e1?Nr  r  r  s   &   r   test_scott_singledim_dataset2TestGaussianKDECustom.test_scott_singledim_dataset  s=    XX'(""2w/(
G557QGr   c                    \         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  rI  s   &r   test_scalar_empty_dataset/TestGaussianKDECustom.test_scalar_empty_dataset  s0    ]]:&&R1- '&&&s   AA	c                   \         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#  rv  r   r  r  )r'   r  r   multidim_datar  s   &    r   test_scalar_covariance_dataset4TestGaussianKDECustom.test_scalar_covariance_dataset  sk    
		w@EaI16I}<$$&#--- Js   (B
c                "   \         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                     R # )皙?r   r_  s   &r   callable_funLTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.callable_fun  s    r   r  r  Nr  )r'   r  r   r  r  r  s   &     r    test_callable_covariance_dataset6TestGaussianKDECustom.test_callable_covariance_dataset  sn    
		w@EaI16I	}E$$&$... Js   (Bc                    \         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   rv  r   r  r   r  )r'   r  r  r  r  s   &    r   test_callable_singledim_dataset5TestGaussianKDECustom.test_callable_singledim_dataset  sU    
		w		5}D(
C113ZCr   c                4   \         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  invalidr  N)	r
   r   r   rv  rW   rX   rY   r   r  )r'   r  datas   &  r   test_wrong_bw_method*TestGaussianKDECustom.test_wrong_bw_method  sW    
		wyy|,]]:&&TY7 '&&&s   #BB	r   N)rm   rn   ro   rp   r  r  r  r  r  r  r  r  r  r  r  rq   rr   rs   s   @r   r  r  a  sD     !
#
.H*H.
.	/D8 8r   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	TestGaussianKDEEvaluatei  c                    \         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  r   s   &     r   test_evaluate_diff_dim.TestGaussianKDEEvaluate.test_evaluate_diff_dim  sc    
 YYq"a r"YYq"a 

 LL


,,QA>r   c                b   \         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   rv  r   r  rW   rX   rY   r  )r'   r  r  r  r  s   &    r   test_evaluate_inv_dim-TestGaussianKDEEvaluate.test_evaluate_inv_dim  sv    
 			w		5}-cA3_]]:&&LL '&&&   BB.	c                    \         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  r   s   &     r   test_evaluate_dim_and_num1TestGaussianKDEEvaluate.test_evaluate_dim_and_num  s\    YYq"a XXqc]r" \
LL


,,QA>r   c                b   \         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  rW   rX   rY   r  )r'   r  r  r  s   &   r   test_evaluate_point_dim_not_one7TestGaussianKDEEvaluate.test_evaluate_point_dim_not_one  sr    YYq"a ii2q!299QA#67r"]]:&&LL '&&&r  c                    \         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  s   &     r   "test_evaluate_equal_dim_and_num_lt:TestGaussianKDEEvaluate.test_evaluate_equal_dim_and_num_lt  s]    YYq"a YYq!Qr"9
LL


,,QA>r   r   N)rm   rn   ro   rp   r  r  r  r  r   rq   rr   rs   s   @r   r  r    s#     ??? ?r   r  c                     \         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   r   r   r9   r   r   r"  r{   r   r  Nr  NNr   r   r   r   r   r  r   r   r   rQ   )r
   r   r   fftsizer   r   r   r8   appendr   udtSuPr}  Su_1sides         r   test_psd_onesided_normr    s    
&'A	B	

1"	#Q	&"vv+	6B88AFFqtD4D4D --$"&$&DA yy"Q%"S'BrF4R4L"89HAe,r   c                 v   \         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  rQ   )r
   r   r   r  r	  r   r   r   r8   r
  r   r   r  s         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   twosidedrP   rQ   )r  r  
   )nosigFs4FsAllnosig_noNFFTnosig_nopad_tonosig_noNFFT_no_pad_to
nosig_trim	nosig_oddnosig_oddlennosig_stretchnosig_overlap)numpy.testingr   r   r   r   numpyr
   rW   
matplotlibr   r   r   rr  rs  r   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   