
    h                        S SK JrJrJrJr  S SKrS SKrS SKJ	r	  S r
 " S S5      r\R                  R                  SSS	/S
S/SS9\R                  R                  S/ SQSS9\R                  R                  S/ SSSSS4S/SSSSS4/ SQSSSSS4/ SSSSS4/ SSSSS4/ SSSSS4/ SSSSS4/ SSSSS4/ SSSSS4/ SSSSS4/ SSSSS4// SQSS9 " S S5      5       5       5       rS  r " S! S"5      r " S# S$5      r " S% S&5      rS' rS( rg))    )assert_allcloseassert_almost_equalassert_array_equalassert_array_almost_equal_nulpN)mlabc                  0   [         R                  R                  S5        Sn [         R                  R                  U 5      S-   n[         R                  " U 5      n[        [        R                  " U5      U5        [        [        R                  " U5      U5        [        [         R                  " [        U5      5      U-  [        R                  " U5      5        [        [         R                  " [        U5      5      [        R                  " U5      5        g )Nr     d   )nprandomseedstandard_normalonesr   r   window_nonehanninglenwindow_hanning)nrandr   s      L/var/www/html/env/lib/python3.13/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                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestDetrend   c                 @   [         R                  R                  S5        Sn[         R                  " SSU5      n[         R                  " U5      U l        U R
                  S-   U l        [         R                  " SSU5      U l        X"R                  5       -
  U l	        [         R                  R                  U5      [         R                  " US-  [         R                  -  US-  -  5      -   U l        U =R                  U R                  R                  5       -  sl        g )	Nr   r	           r
         Y@g      $g     V@   )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                     [        USS06  g )Natol:0yE>)r   )r*   argss     r   allcloseTestDetrend.allclose$   s    )D)r   c                 X   [         R                  " S5      S:X  d   e[         R                  " SSS9S:X  d   e[         R                  " SSS9S:X  d   e[         R                  " S[         R                  S9S:X  d   eSU R                  U R                  U R
                  U R
                  U R                  -   U R                  -   R                  5       [        R                  " U R
                  U R
                  U R                  -   U R
                  U R                  -   U R
                  U R                  -   U R                  -   /5      [        R                  " U R
                  U R
                  U R                  -   U R
                  U R                  -   U R
                  U R                  -   U R                  -   /5      R                  4 H`  n[        U[        R                  5      (       a"  [        [         R                  " U5      U5        MD  [         R                  " U5      U:X  a  M`   e   g )Nr      axisnonekey      @)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                    S Hc  n[         R                  " U5      S:X  d   e[         R                  " USS9S:X  d   e[         R                  " U[         R                  S9S:X  a  Mc   e   U R                  [         R                  " U R                  5      U R                  5        U R                  [         R                  " U R
                  5      U R
                  5        U R                  [         R                  " U R
                  U R                  -   5      U R
                  5        U R                  [         R                  " U R
                  U R                  -   5      U R
                  U R                  -   5        U R                  [         R                  " U R
                  U R                  -   U R                  -   5      U R
                  U R                  -   5        g )N)r   r;   r   r%   r9   )	r   detrend_meanr=   r2   r"   r)   r#   r$   r&   rC   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                    U R                   U R                  -   U R                  -   nU R                   U R                  -   nU R	                  [
        R                  " USS9U5        U R	                  [
        R                  " UR                  5       5      U5        U R	                  [
        R                  " UR                  5       SS9U5        g Nr   r6   )r)   r$   r#   r&   r2   r   rH   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                    [         R                  " U R                  U R                  U R                  -   /5      n[         R                  " U R                  U R                  /5      nU R                  [        R                  " U5      U5        U R                  [        R                  " US S9U5        U R                  [        R                  " UR                  S S9R                  U5        U R                  [        R                  " U5      U5        U R                  [        R                  " US S9U5        U R                  [        R                  " UR                  SS S9UR                  5        [         R                  " U R                  U R                  U R                  -   U R                  U R                  -   U R                  U R                  -   U R                  -   /5      n[         R                  " U R                  U R                  U R                  U R                  -   U R                  U R                  -   /5      nU R                  [        R                  " UR                  SS9UR                  5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USSS9U5        U R                  [        R                  " UR                  SSS9UR                  5        U R                  [        R                  " UR                  [        R                  SS9UR                  5        g )	Nr6   constantr:   r7   r   r5   defaultr%   )r   r?   r#   r)   r"   r2   r   rH   r@   r=   r$   r&   rM   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                    U R                   [        R                     SS04U R                   [        R                     SS04SSS04U R                   SS04U R                   [        R                     SS044 H?  u  p[        R                  " [
        5         [        R                  " U40 UD6  S S S 5        MA     g ! , (       d  f       MS  = f)	Nr:   spam   r;   r7   r   r5   r   )r$   r   newaxispytestraises
ValueErrorr   r=   r*   signalkwargss      r   test_detrend_ValueError#TestDetrend.test_detrend_ValueErrorq   s    

+eV_=

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

+fa[9
NF z*V.v. +*
 +*s   B;;
C
	c                    SSS04U R                   SS04U R                   [        R                     SS044 H?  u  p[        R                  " [
        5         [        R                  " U40 UD6  S S S 5        MA     g ! , (       d  f       MS  = f)Nr;   r7   r   r5   r   )r$   r   r\   r]   r^   r_   r   rH   r`   s      r   test_detrend_mean_ValueError(TestDetrend.test_detrend_mean_ValueError|   sw    vqk"&!-

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

 +*s   A;;
B
	c                    [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " SSS9S:X  d   e[         R                  " S[         R                  S9S:X  d   eU R                  U R                  U R                  U R                  -   4 H3  nU R                  [         R                  " U5      U R                  5        M5     g )Nr   r;   linearr9   )r   detrend_linearr=   r#   r$   r2   r"   rC   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                 f   U R                   U R                  -   nU R                  nU R                  [        R
                  " USS9U5        U R                  [        R
                  " U[        R                  S9U5        U R                  [        R                  " UR                  5       5      U5        g )Nri   r9   )r$   r#   r"   r2   r   r=   rj   r>   rM   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                 |   [         R                  " U R                  U R                  U R                  U R                  -   /5      n[         R                  " U R                  U R                  U R                  /5      nU R                  [        R                  " UR                  SSS9UR                  5        U R                  [        R                  " UR                  [        R                  SS9UR                  5        U R                  [        R                  " USSS9U5        U R                  [        R                  " U[        R                  SS9U5        [        R                  " [        5         [        R                  " U R                  [         R                     5        S S S 5        g ! , (       d  f       g = f)Nri   r   rT   r5   )r   r?   r#   r$   r"   r2   r   r=   r@   rj   r]   r^   r_   r\   rM   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   22F--
F;)r)   r#   r$   r&   r"   N)__name__
__module____qualname____firstlineno__r,   r2   rE   rI   rP   rW   rc   rf   rk   rn   rq   __static_attributes__ r   r   r   r      s=    .*5,1 IL:	/4DC<r   r   	iscomplexFTrealcomplexclass)idsscopesides)onesidedtwosidedrV   )r~   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrumrU      )r   r[   
      i         !   i         )nosigFs4FsAllnosig_noNFFTnosig_nopad_tonosig_noNFFT_no_pad_to
nosig_trim	nosig_oddnosig_oddlennosig_stretchnosig_overlapc                   t   \ rS rSr\R
                  " SSS9S 5       rS rS rS r	\R                  R                  S	S
S/5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS r\R                  R                  S\R$                  \R(                  4\R$                  S4\R*                  \R,                  4\R*                  S4/5      S 5       rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S0 S	S
0S	S0S	S 0S	S!0S	S"0S	S#0/5      S$ 5       rS% rS& r \R                  R                  S	S
S/5      S' 5       r!\R                  R                  S(S \RD                  4S"\RF                  4S#S) 4/5      S* 5       r$S+ r%S,r&g-).TestSpectral   r|   T)r~   autousec
                    Sn
[         R                  " SSSU
-  5      nUb  US U nU Vs/ s H  oU-  PM	     nnUc  SnOUS:  a  S=pOUnUc  SnOUS:  a  US-  =pOUnUc  UnOAUS:  a9  [        S[         R                  " [         R                  " U5      5      -  5      nUnOUnU	c  [        U5      nOU	S:  a  [        U5      =nn	OU	nU	c  U=nnO[        U5      =nnSnUnUnUnUnUnUS:X  d  US	:X  a  U(       d  US-  (       a!  [         R                  " SU
S-  US
S9S S S2   nO[         R                  " SU
S-  US-  S-   S9nUS-  (       a!  [         R                  " SU
S-  US
S9S S S2   nO[         R                  " SU
S-  US-  S-   S9nOUS-  (       a(  [         R                  " U
* S-  U
S-  SU-  S
S9SS S2   nO[         R                  " U
* S-  U
S-  US
S9nUS-  (       a(  [         R                  " U
* S-  U
S-  SU-  S
S9SS S2   nO[         R                  " U
* S-  U
S-  US
S9nUnUS-  n[        U5      US-  -
  S-   nUU-
  nUUUU2   nUS-  (       a  USU
-  S-  -  n[        U5      S:X  a  [         R                  " USU
-  -  /5      n[         R                  " USU
-  -  /5      n Un![         R                  " U5      n"[        U5       H;  u  n#nU"[         R                  " X-  [         R                  -  S-  5      SU#-  -  -  n"M=     U(       a  U"R                  S5      n"UR                  n$U
U$l        UU$l        UU$l        UU$l        UU$l        UU$l        UU$l        UU$l        U	U$l        UU$l        UU$l        UU$l        UU$l        U!U$l        U U$l        U"U$l        UU$l        UU$l        UU$l         UU$l!        g s  snf )Nr   r   r   r5   r   r
   r   r   rV   F)numendpointr   r{   )"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   ry   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:!<<?aC!A !#ArAv0Cq0H10L!N
 $a'!#QQ1E6;"==@qS"B "$QQ1E1JQ1N"P
 #Q& "RC!GR!V014G0G5:!<<=DqD!B !#RC!GR!V0C5:!< $a'!#bS1Wb1f125I1I6;"==>TT"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   Oc                 "   UR                  5       S:X  d   eUR                  5       [        U5      S-
  :X  d   e[        X2SS9  U HG  n[        R
                  " X5-
  5      R                  5       nX   XS-      :  d   eX   XS-
     :  a  MG   e   g )Nr   r5   ư>r/   r   )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                    [        U5      S:X  a  g UR                  5       S:  aW  [        R                  " U5      nUR	                  5       nU R                  US U US U U5        U R                  XS  XES  U5        g US S  nUR                  5       nU(       a9  UR                  5       nX(   n	[        XS   5        US	 SXxS-
  US-   & U(       a  M8  g g )Nr   rU   r[   )	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$ gr   c                    U R                   S-   SS.U R                   S-   SS.U R                   S-   SS.U R                   S-   SS.SS0U R                   S	S
.U R                   SSS.SSS.U R                   S[        R                  " S5      S.4	 HH  n[        R                  " [
        5         [        R                  " SSU R                   0UD6  S S S 5        MJ     g ! , (       d  f       M\  = f)Nr5   r{   )r   mode	magnitudeanglephaser   rZ   eggs)r   r   r   r   )r   NFFTnoverlap)r   r   	   )r   r   windowr+   rx   )r   r   r   r]   r^   r_   r   _spectral_helper)r*   rb   s     r   test_spectral_helper_raises(TestSpectral.test_spectral_helper_raises  s     &&(I.&&(K0&&(G,&&(G,V&&6*&&""5R(&&"wwqz#
F z*%%99&9 +*
 +*s   +#C
C*	r   rV   psdc                     [         R                  " [        5         [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)N)r+   r   )r]   r^   r_   r   _single_spectrum_helperr   )r*   r   s     r   -test_single_spectrum_helper_unsupported_modes:TestSpectral.test_single_spectrum_helper_unsupported_modes  s.    ]]:&((466= '&&s    A
Az
mode, case))r   density)r   specgram)r   spectrumc                    [        U SU 35      n[        R                  " U R                  U R                  [        U SU 35      U R                  [        U SU 35      [        U SU 35      U R
                  US9u  pEn[        XSSS9  [        U[        U SU 35      SS9  UR                  S	   UR                  S	   :X  d   eUR                  S
   [        U SU 35      R                  S	   :X  d   eg )Nfreqs_NFFT_nover_pad_to_)r+   r   r   r   r   pad_tor   r   r   r   t_r   r5   )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           
      2   U R                   n[        R                  " U R                  U R                  S-   U R                  U R
                  U R                  U R                  U R                  S9u  p#[        X1SS9  UR                  UR                  :X  d   eg )Nr5   r+   r   r   r   r   r   r   r   r   )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           	      :   U R                   c  g[        U R                  U R                  S-   U R                  [        R
                  U R                  S9n[        R                  " SSU R                   0UD6u  p#[        R                  " SSU R                   S-  0UD6u  pC[        [        R                  " [        R                  " U5      U-  5      R                  [        R                  " [        R                  " US-  5      U-  S-  5      R                  5        g)zTest zero padding of csd().Nr5   )r+   r   r   r   r   r   r   rx   )r   dictr   r   r   r   r   r  r   r   sum	conjugaterz   )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           	      :   U R                   n[        R                  " U R                  U R                  U R
                  U R                  U R                  U R                  S9u  p#UR                  UR                  :X  d   eU R                  X!X0R                  5        g )Nr+   r   r   r   r   r   )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%   ri   c           	      D   U R                   c  g U" U R                   5      nUS-   nUS-   n[        R                  " XE/5      n[        R                  " US5      nUR                  R                  5       nUR                  5       n[        R                  " U5      n[        R                  " UU R                   U R                  SU R                  US9u  p[        R                  " UU R                   U R                  SU R                  US9u  p[        R                  " UU R                   U R                  SU R                  S9u  p[        X5        [        X5        [        XSS9  [        R                  " [        5         [        XSS9  S S S 5        g ! , (       d  f       g = f)	Nr[   ffffff
@r   r5   r   )r+   r   r   r   r   r=   )r+   r   r   r   r   r0   r   )r   r   r?   tiler@   flattenr   r   r   r   r   r   r   r]   r^   AssertionError)r*   	make_datar=   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  sK   
 $$++,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   =F
Fc           	         U R                   c  g [        R                  " U R                   5      nUS-   nUS-   n[        R                  " [        R
                  " U5      5      nX$-  n[        R                  " U5      n[        R                  " X#/5      n[        R                  " XV/5      n[        R                  " US5      n[        R                  " US5      nUR                  R                  5       nUR                  5       n	UR                  5       n[        R                  " U	U R                   U R                  SU R                  [        R                  S9u  p[        R                  " UU R                   U R                  SU R                  [        R                  S9u  p[        R                  " UU R                   U R                  SU R                  [        R                  S9u  pU[        U5      US-  R                  5       -  -  n[!        X5        [!        X5        [#        XSS9  [$        R&                  " [(        5         [#        XSS9  S S S 5        g ! , (       d  f       g = f)	Nr[   r  r  r   r+   r   r   r   r   r   r   r0   r   )r   r   r   r   r   	ones_liker?   r  r@   r  r   r   r   r   r   r  r   r   r]   r^   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   I
I&c           
      V   U R                   c  g [        R                  " U R                   5      n[        R                  " U R                   5      nUS-   nUS-   nUnUn[        R
                  " [        R                  " U5      5      nXW-  n[        R
                  " U5      n[        R                  " X4/5      n[        R                  " XV/5      n[        R                  " US5      n[        R                  " US5      nUR                  R                  5       nUR                  5       n	UR                  5       n[        R                  " U	U R                   U R                  SU R                  [        R                  [        R
                  S9u  p[        R                  " UU R                   U R                  SU R                  [        R                  [        R
                  S9u  p[        R                  " UU R                   U R                  SU R                  [        R                  S9u  pU[!        U5      US-  R#                  5       -  -  n[%        X5        [%        X5        ['        XSS	9  [(        R*                  " [,        5         ['        XSS	9  S S S 5        g ! , (       d  f       g = f)
Nr[   r  r  r   )r+   r   r   r   r   r=   r   r,  r   r0   r   )r   r   r   r!   r   r   r-  r?   r  r@   r  r   r   r   rj   r   r   r  r   r   r]   r^   r  )r*   r  r"  r  r   r/  r0  r.  r!  r1  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   J
J(c           
         / SQn[         R                  " [         R                  * [         R                  U R                  5      n[         R                  " U R                  5      n[        [        U5      5       H#  nX1U   [         R                  " XB-  5      -  -  nM%     [        R                  " U R                  U R                  U R                  SU R                  USS9u  pV[        R                  " U R                  U R                  U R                  SU R                  US9u  px[        XSR                  5       S-  -  XpR                  -  US-  R                  5       -  SS9  g )	N)g^M?g+?g<?g'ne?gt|?r   F)r+   r   r   r   r   r   scale_by_freqr,  r   r0   r   )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                 T   U R                   n[        R                  " U R                  U R                  U R
                  U R                  U R                  U R                  [        R                  " U R                  5      S9u  p#[        X1SS9  UR                  UR                  :X  d   eg )Nr+   r   r   r   r   r   r   r   r   )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                    [         R                  " [        R                  " U R                  5      5      n[         R
                  " U R                  U R                  U R                  U R                  U R                  U R                  [         R                  S9u  p#[         R
                  " U R                  U R                  U R                  U R                  U R                  U R                  [         R                  SS9u  pE[         R
                  " U R                  U R                  U R                  U R                  U R                  U R                  [         R                  SS9u  pg[        X55        [        X75        [        X$5        [        XAS-  R                  5       -  X`R                  -  UR                  5       S-  -  SS9  g )NrD  T)r+   r   r   r   r   r   r   r8  Fr   r0   r   )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   kind)r{   r   r   r   c                 n   U R                   n[        [        U S35      " U R                  U R                  U R
                  U R                  S9u  p4[        XBSS9  UR                  UR                  :X  d   eUS:X  a9  U R                  X4U R                  5        U R                  X2X@R                  5        g g )N	_spectrum)r+   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r*   rN  r   r   r   s        r   test_spectrumTestSpectral.test_spectrum  s     ##DTF)"45ffwwdjj1E1EG	 	/zzU[[(((;t$++6T#{{; r   rb   r   r{   r   r   c           
         U R                   n[        R                  " SU R                  U R                  U R
                  U R                  U R                  U R                  S.UD6u  p4nUR                  S5      S:X  a  [        R                  " U5      n[        R                  " USS9n[        XBSS9  [        XPR                  SS9  UR                  S   UR                  S   :X  d   eUR                  S   U R                  R                  S   :X  d   eUR                  S5      S	;  ay  [        R                  " UR!                  5       5      S:w  aQ  [        [        R"                  " USS9R!                  5       [        R                  " UR!                  5       5      -  SS
S9  UR                  S5      S;  a  U R%                  XbX@R&                  5        g g )Nr  r   r{   r5   r6   r   r   r   )r{   r   r   g{Gz?)r   r   rx   )r   r   r   r   r   r   r   r   r   getr   r   r%   r   r   r   maxdiffr   r   )r*   rb   r   r   r   r   specms          r   test_specgramTestSpectral.test_specgram  sx   
 ##}} /tvv*.*<*<(,.2.A.A,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                     [         R                  " [        SS9   [        R                  " U R
                  [        U R
                  5      U R                  S9  SSS5        g! , (       d  f       g= f)z+Warning should be raised if len(x) <= NFFT.zOnly one segment is calculated)match)r+   r   r   N)r]   warnsUserWarningr   r   r   r   r   r*   s    r   test_specgram_warn_only1seg(TestSpectral.test_specgram_warn_only1seg  s>    \\+-MNMMDFFTVVA ONNs   >A!!
A/c           
         [         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  S9u  p[         R                  " U R                  U R                  U R                  U R                  U R
                  U R                  U R                  S9u  p4[        X5        [        X$5        g )Nr  r  )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           
         [         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  S9u  p#n[         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  US9u  pVn[        X%5        [        X65        [        XG5        g)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                 T    [         R                  " [         R                  " U 5      SS9$ rL   )r   unwrapr   r+   s    r   <lambda>TestSpectral.<lambda>  s    		"((1+A >r   c           
         [         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  SS9u  p4n[         R                  " U R                  U R                  U R                  U R
                  U R                  U R                  US9u  pgn[        XG5        [        XX5        [        U" U5      USS9  g )Nr{   ri  r   r   )
r   r   r   r   r   r   r   r   r   r   )	r*   r   convspecc	freqspecctcrW  	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           
         [         R                  " [        R                  " U R                  5      5      n[         R
                  " U R                  U R                  U R                  U R                  U R                  U R                  US9u  p#[         R
                  " U R                  U R                  U R                  U R                  U R                  U R                  S9u  pE[        X55        [        X$SS9  g )NrD  r  r0   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r*   r=  rj  r   rm  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   rx   N)'rs   rt   ru   rv   r]   fixturer   r   r   r   markparametrizer   r  r  r  r  r   r!   r   rH   r   rj   r)  r2  r5  rA  rE  rL  rQ  rX  r_  rf  rp  r   r   r~  r  rw   rx   r   r   r   r      s)   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(2r   r   c                     Sn [         R                  R                  S5        [         R                  R                  U 5      n[         R                  " US5      n[         R
                  " U[         R                  " S5      S-  SS9n[        R                  " XSSS	S
9u  p4[        [         R                  " U5      SSS9  [         R                  " [         R                  " U5      5      (       d   eg )Nr   i!N,r   g      4@same)r   r   r   r   )r   r   r   gbX9?gMbP?r   )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                   &    \ rS rSrS rS rS rSrg)TestGaussianKDEi4  c                     [         R                  " S5      n[        R                  " U5      n/ SQn[         R                  R                  U" U5      USS9  g)zRegression test for #1181.r[   )B\A?筱ES?g
f?r  r     decimalN)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                     [         R                  " / SQ[        S9n[         R                  " SSSS9n/ SQn[        R
                  " US5      nU" U5      n[         R                  R                  X5S	S
9  g )Nr5   r   r[   )dtypeir   r[   r   )g>L\9?gp4=?gH꟫?g8(H	MT?gĲCR?scott   r  )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                 @   [         R                  R                  S5        Sn[         R                  R                  U5      n[        R
                  " U5      n[        R
                  " US5      n[        R
                  " X#R                  S9n[         R                  " SSS5      nUR                  U5      nUR                  U5      nUR                  5       UR                  5       :X  d   eUR                  U5      n	UR                  5       U	R                  5       :X  d   eg )N 2   r  	bw_methodr  r  3   )
r   r   r   r  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   rx   N)rs   rt   ru   rv   r  r  r  rw   rx   r   r   r  r  4  s    MH-r   r  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestGaussianKDECustomia  c                     [         R                  " [        5         [        R                  " / 5        SSS5        g! , (       d  f       g= f)z(Pass no data into the GaussianKDE class.Nr]   r^   r_   r   r  r^  s    r   test_no_data"TestGaussianKDECustom.test_no_datab  s(    ]]:&R  '&&s	   ;
A	c                     [         R                  " [        5         [        R                  " S/5        SSS5        g! , (       d  f       g= f)z9Pass a single dataset element into the GaussianKDE class.*   Nr  r^  s    r   test_single_dataset_element1TestGaussianKDECustom.test_single_dataset_elementg  s*    ]]:&bT" '&&s	   <
A
c                     [         R                  " / SQ/ SQ/ SQ/5      n[        R                  " [         R                  R
                  5         [        R                  " US5        SSS5        g! , (       d  f       g= f)z/Test silverman's for a multi-dimensional array.r5   r      r   r[   r  r     r   	silvermanNr   r   r]   r^   linalgLinAlgErrorr   r  r*   r  s     r   test_silverman_multidim_dataset5TestGaussianKDECustom.test_silverman_multidim_datasetl  sI    XXy)Y78]]299001R- 211   A//
A=c                     [         R                  " / SQ5      n[        R                  " US5      nSn[	        UR                  5       US5        g)z4Test silverman's output for a single dimension list.r  r  g/?r  N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                     [         R                  " / SQ/ SQ/ SQ/5      n[        R                  " [         R                  R
                  5         [        R                  " US5        SSS5        g! , (       d  f       g= f)z2Test scott's output for a multi-dimensional array.r  r  r  r  Nr  r  s     r   test_scott_multidim_dataset1TestGaussianKDECustom.test_scott_multidim_datasety  sI    XXy)Y78]]299001R) 211r  c                     [         R                  " / SQ5      n[        R                  " US5      nSn[	        UR                  5       US5        g)z/Test scott's output a single-dimensional array.r  r  g	e1?r  Nr  r  s       r   test_scott_singledim_dataset2TestGaussianKDECustom.test_scott_singledim_dataset  s=    XX'(""2w/(
G557QGr   c                     [         R                  " [        5         [        R                  " / SS9  SSS5        g! , (       d  f       g= f)z0Test the scalar's cov factor for an empty array.r[   r  Nr  r^  s    r   test_scalar_empty_dataset/TestGaussianKDECustom.test_scalar_empty_dataset  s*    ]]:&R1- '&&s	   :
Ac                    [         R                  R                  S5        Sn[        S5       Vs/ s H"  n[         R                  R	                  U5      PM$     nn[
        R                  " USS9nUR                  5       S:X  d   egs  snf )zTest a scalar's cov factor.r  r  r[   g      ?r  Nr   r   r   r9  r  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                    [         R                  R                  S5        Sn[        S5       Vs/ s H"  n[         R                  R	                  U5      PM$     nnS n[
        R                  " X4S9nUR                  5       S:X  d   egs  snf )z=Test the callable's cov factor for a multi-dimensional array.r  r  r[   c                     g)N皙?rx   rt  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                     [         R                  R                  S5        Sn[         R                  R                  U5      n[        R
                  " USS9nSn[        UR                  5       US5        g)z>Test the callable's cov factor for a single-dimensional array.r  r  r  r  g}B8 ?r  N)r   r   r   r  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                    [         R                  R                  S5        Sn[         R                  R                  U5      n[        R
                  " [        5         [        R                  " USS9  SSS5        g! , (       d  f       g= f)z@Test the error message that should be called when bw is invalid.r  r  invalidr  N)	r   r   r   r  r]   r^   r_   r   r  )r*   r  datas      r   test_wrong_bw_method*TestGaussianKDECustom.test_wrong_bw_method  sQ    
		wyy|,]]:&TY7 '&&s   A::
Brx   N)rs   rt   ru   rv   r  r  r  r  r  r  r  r  r  r  r  rw   rx   r   r   r  r  a  s<    !
#
.H*H.
.	/D8r   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestGaussianKDEEvaluatei  c                     [         R                  " SSS5      n[        R                  " U5      n[         R                  " SSS5      n/ SQnUR	                  U5      n[         R
                  R                  XTS5        g)zZ
Test the evaluate method when the dim's of dataset and points have
different dimensions.
r  r   r      )X]?AG$?r  r  g;]?r  N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                 J   [         R                  R                  S5        Sn[         R                  R                  U5      n[        R
                  " U5      nS/S/S//n[        R                  " [        5         UR                  U5        SSS5        g! , (       d  f       g= f)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  r  r5   r   r  N)
r   r   r   r  r   r  r]   r^   r_   r  )r*   r  r  r  r  s        r   test_evaluate_inv_dim-TestGaussianKDEEvaluate.test_evaluate_inv_dim  sp    
 			w		5}-cA3_]]:&LL '&&   9B
B"c                     [         R                  " SSS5      n[         R                  " S/5      n[        R                  " U5      nS/nUR                  U5      n[         R                  R                  XTS5        g)z-Tests if evaluated against a one by one arrayr  r   r   r  r  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                 J   [         R                  " SSS5      n[         R                  " SSS5      [         R                  " SSS5      /n[        R                  " U5      n[        R
                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr  r   r   )r   r   r   r  r]   r^   r_   r  )r*   r  r  r  s       r   test_evaluate_point_dim_not_one7TestGaussianKDEEvaluate.test_evaluate_point_dim_not_one  sl    YYq"a ii2q!299QA#67r"]]:&LL '&&r  c                     [         R                  " SSS5      n[         R                  " SSS5      n[        R                  " U5      n/ SQnUR	                  U5      n[         R
                  R                  XTS5        g )Nr  r   r   r  )r  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   rx   N)
rs   rt   ru   rv   r  r	  r  r  r  rw   rx   r   r   r  r    s    ???r   r  c                     [         R                  " / SQ5      n Sn[         R                  " [         R                  R                  U 5      U-  5      S-  XR                  -  -  n[
        R                  " X R                  SU-  [
        R                  [
        R                  SS S SS9	u  p4[         R                  " US   /USS USS  S S S	2   -   5      n[        X5S
S9  g )Nr   r5   r   r  r5   r   r5         ?r   r5   r   r   r   r   r   r=   r   r   r8  r   r   rU   r   r   )r   r   r   fftsizer   r   r   r<   appendr   udtSuPr  Su_1sides         r   test_psd_onesided_normr#    s    
&'A	B	

1"	#Q	&"vv+	6B88AFFqtD4D4D --$"&$&DA yy"Q%"Qq'BqrF4R4L"89HAe,r   c                     [         R                  " / SQ5      n Sn[         R                  " [         R                  R                  U 5      U-  5      S-  XR                  -  -  n[
        R                  " X R                  S-  SU-  [
        R                  [
        R                  SSSSS9	u  p4[         R                  " US   /USS	 US	S SSS
2   -   5      n[        [         R                  " U5      [         R                  " U5      5        g)z&Test the case len(x) < NFFT for psd().r  r  r   r5   r   Nr   r  r   rU   )r   r   r   r  r  r   r   r   r<   r  r   r  r  s         r   test_psd_oversamplingr%    s    
&'A	B	

1"	#Q	&"vv+	6B88AFF1H2d6F6F --$"&$&DA yy"Q%"Qq'BqrF4R4L"89Hq	266(#34r   )numpy.testingr   r   r   r   numpyr   r]   
matplotlibr   r   r   r  r  r   r  r  r  r  r#  r%  rx   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   