o
    i                     @   s  d dl mZmZmZmZ d dlZd dlZd dlm	Z	 dd Z
G dd dZejjdd	d
gddgddejjdg dddejjdg dddddfdgdddddfg ddddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfg dddddfgg dddG dd  d Zd!d" ZG d#d$ d$ZG d%d& d&ZG d'd( d(Zd)d* Zd+d, ZdS )-    )assert_allcloseassert_almost_equalassert_array_equalassert_array_almost_equal_nulpN)mlabc                  C   s   t jd d} t j| d }t | }tt|| tt|| tt t	|| t
| tt t	|t
| d S )Nr     d   )nprandomseedstandard_normalonesr   r   window_noneZhanninglenwindow_hanning)nZrandr    r   i/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_mlab.pytest_window	   s   
r   c                   @   d   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )TestDetrendc                 C   s   t jd d}t dd|}t || _| jd | _t dd|| _||  | _	t j
|t |d t j |d   | _|  j| j 8  _d S )	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   xr   r   r   setup_method   s   &zTestDetrend.setup_methodc                 G   s   t |ddi d S )Natol:0yE>)r   )r$   argsr   r   r   allclose$   s   zTestDetrend.allclosec                 C   s  t ddks	J t jddddksJ t jddddksJ t jdt jddks+J d| j| j| j| j| j | j  t| j| j| j | j| j | j| j | j gt| j| j| j | j| j | j| j | j gj	fD ]}t
|tjrtt || qot ||ksJ qod S )Nr      axisnonekey      @)r   detrend_nonedetrendr   r   r#   tolistr	   vstackT
isinstanceZndarrayr   r$   sigr   r   r   test_detrend_none'   s,   



zTestDetrend.test_detrend_nonec                 C   s   dD ]"}t |dksJ t j|dddksJ t j|t jddks$J q| t | j| j | t | j| j | t | j| j | j | t | j| j | j| j  | t | j| j | j | j| j  d S )N)r   r1   r   r   r/   )	r   detrend_meanr3   r*   r   r#   r   r   r    r8   r   r   r   test_detrend_mean=   s    

zTestDetrend.test_detrend_meanc                 C   sh   | j | j | j }| j | j }| tj|dd| | t| | | tj| dd| d S Nr   r,   )r#   r   r   r    r*   r   r;   r4   r$   inputtargetr   r   r   4test_detrend_mean_1d_base_slope_off_list_andor_axis0M   s
   z@TestDetrend.test_detrend_mean_1d_base_slope_off_list_andor_axis0c                 C   s  t | j| j| j g}t | j| jg}| t|| | tj|d d| | tj|jd dj| | t	|| | tj	|d d| | tj	|jdd d|j t | j| j| j | j| j
 | j| j | j
 g}t | j| j| j| j | j| j g}| tj|jdd|j | tj|dd| | tj|dd| | tj	|ddd| | tj	|jddd|j | tj	|jtjdd|j d S )	Nr,   Zconstantr0   r-   r   r+   defaultr   )r	   r5   r   r#   r   r*   r   r;   r6   r3   r   r    r>   r   r   r   test_detrend_mean_2dT   s@   




z TestDetrend.test_detrend_mean_2dc              	   C   s   | j tj ddif| j tj ddifdddif| j ddif| j tj ddiffD ]"\}}tt tj|fi | W d    n1 sEw   Y  q(d S )	Nr0   spam   r1   r-   r   r+   r   )r   r	   newaxispytestraises
ValueErrorr   r3   r$   signalkwargsr   r   r   test_detrend_ValueErrorq   s   
z#TestDetrend.test_detrend_ValueErrorc              	   C   sv   dddif| j ddif| j tj ddiffD ]"\}}tt tj|fi | W d    n1 s3w   Y  qd S )Nr1   r-   r   r+   r   )r   r	   rH   rI   rJ   rK   r   r;   rL   r   r   r   test_detrend_mean_ValueError|   s   
z(TestDetrend.test_detrend_mean_ValueErrorc                 C   s   t ddks	J t ddksJ t jddddksJ t jdt jddks)J | j| j| j| j fD ]}| t || j q4d S )Nr   r1   linearr/   )r   detrend_linearr3   r   r   r*   r   r8   r   r   r   test_detrend_linear   s   
zTestDetrend.test_detrend_linearc                 C   sZ   | j | j }| j}| tj|dd| | tj|tjd| | t| | d S )NrQ   r/   )r   r   r   r*   r   r3   rR   r4   r>   r   r   r   test_detrend_str_linear_1d   s
   z&TestDetrend.test_detrend_str_linear_1dc                 C   s   t | j| j| j| j g}t | j| j| jg}| tj|jddd|j | tj|jtj	dd|j | tj|ddd| | tj|tj	dd| t
t t	| jt j  W d    d S 1 siw   Y  d S )NrQ   r   rB   r+   )r	   r5   r   r   r   r*   r   r3   r6   rR   rI   rJ   rK   rH   r>   r   r   r   test_detrend_linear_2d   s.   
"z"TestDetrend.test_detrend_linear_2dN)__name__
__module____qualname__r&   r*   r:   r<   rA   rE   rO   rP   rS   rT   rU   r   r   r   r   r      s    	r   	iscomplexFTrealcomplexclass)Zidsscopesides)onesidedZtwosidedrD   )r]   zFfstims,len_x,NFFT_density,nover_density,pad_to_density,pad_to_spectrumrC      )r`   rG   
      i         !   i         )ZnosigZFs4ZFsAllZnosig_noNFFTZnosig_nopad_toZnosig_noNFFT_no_pad_toZ
nosig_trimZ	nosig_oddZnosig_oddlenZnosig_stretchZnosig_overlapc                   @   s  e Zd Zejddddd Zdd Zdd	 Zd
d Zej	
dddgdd Zej	
dg ddd Zdd Zdd Zdd Zej	
dejejfejdfejejfejdfgdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zej	
d*g d+d,d- Zej	
d.i ddiddidd/idd0idd1idd2igd3d4 Zd5d6 Zd7d8 Zej	
dddgd9d: Z ej	
d;d/ej!fd1ej"fd2d<d= fgd>d? Z#d@dA Z$dBS )CTestSpectralr\   T)r]   Zautousec
           $         s  d t ddd  }
|d ur|
d | }
 fdd|D }|d u r%d}n|dk r.d }}n|}|d u r7d}n|dk rB|d	  }}n|}|d u rK|}n|dk r^td	t t | }|}n|}|	d u rit|
}n|	dk rtt|
 }}	n|	}|	d u r| }}nt|
 }}d}|}|}|}|}|}|d
ks|dkr|s|d	 rt jd d	 |ddd d d	 }nt jd d	 |d	 d d}|d	 rt jd d	 |ddd d d	 }n`t jd d	 |d	 d d}nQ|d	 rt j  d	  d	 d	| dddd d	 }nt j  d	  d	 |dd}|d	 r%t j  d	  d	 d	| dddd d	 }nt j  d	  d	 |dd}|}|d	 }t|
|d	  d }|| }|
||| }|d	 r[|d  d	 7 }t|dkrlt |d	   g}t |d	   g}|}t |
} t	|D ]\}!}"| t 
|"|
 t j d	 d|!  7 } q|r| d} |j}# |#_||#_||#_||#_||#_||#_||#_||#_|	|#_||#_||#_||#_||#_||#_||#_| |#_||#_||#_||#_ ||#_!d S )Nr   r   ra   r+   c                    s   g | ]} | qS r   r   ).0fstimFsr   r   
<listcomp>       z%TestSpectral.stim.<locals>.<listcomp>rd   r   r   r_   rD   F)numZendpointro   r[   )"r	   arangeintceillog2r   r   array
zeros_like	enumerater!   r"   Zastypeclsrl   r^   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$   requestry   rY   r^   Zlen_xrz   r{   r|   r   r%   r   Znover_density_realZpad_to_density_realZpad_to_spectrum_realZNFFT_spectrum_realr}   r~   r   r   r   ZNFFT_specgram_realZnover_specgram_realr   r   r   Zt_startZt_stopZt_stepr   r   r   r   irj   rx   r   rk   r   stim   s   







(

zTestSpectral.stimc                 C   s   |  dksJ | t|d ksJ t||dd |D ]#}t||   }|| ||d  ks4J || ||d  ks@J qd S )Nr   r+   ư>r'   r   )argminargmaxr   r   r	   abs)r$   valsZ	targfreqsZresfreqsry   rj   r   r   r   r   check_freqsd  s   zTestSpectral.check_freqsc           
      C   s   t |dkrd S | dk r7t|}| }| |d | |d | | | ||d  ||d  | d S |d d  }| }|rc| }|| }	t|	|d  |d= d||d |d < |sCd S d S )Nr   rC   rG   )	r   minr	   r   r   check_maxfreqcopyr   r   )
r$   specfspry   fspaZzeroindZfstimstZspectZmaxindZmaxfreqr   r   r   r   m  s"   
zTestSpectral.check_maxfreqc                 C   s   | j d dd| j d dd| j d dd| j d ddddi| j d	d
| j dddddd| j dtddf	D ]"}tt tjdd| j i| W d    n1 sVw   Y  q9d S )Nr+   r[   )r   mode	magnitudeanglephaser   rF   eggs)r   r^   ra      )r   NFFTnoverlap)r   r   	   )r   r   windowr%   r   )r   r	   r   rI   rJ   rK   r   _spectral_helper)r$   rN   r   r   r   test_spectral_helper_raises  s"   
z(TestSpectral.test_spectral_helper_raisesr   rD   psdc                 C   s@   t t tj| j|d W d    d S 1 sw   Y  d S )N)r%   r   )rI   rJ   rK   r   Z_single_spectrum_helperr   )r$   r   r   r   r   -test_single_spectrum_helper_unsupported_modes  s   "z:TestSpectral.test_single_spectrum_helper_unsupported_modesz
mode, case))r   Zdensity)r   specgram)r   Zspectrumc              
   C   s   t | d| }tj| j| jt | d| | jt | d| t | d| | j|d\}}}t||dd t|t | d| dd |jd	 |jd	 ksNJ |jd
 t | d| jd	 ks`J d S )NZfreqs_ZNFFT_Znover_Zpad_to_)r%   r   r   rl   r   pad_tor^   r   r   r   Zt_r   r+   )getattrr   r   r   rl   r^   r   shape)r$   r   casefreqsr   r   tr   r   r   test_spectral_helper_psd  s   	(z%TestSpectral.test_spectral_helper_psdc              	   C   sV   | j }tj| j| jd | j| j| j| j| jd\}}t	||dd |j
|j
ks)J d S )Nr+   r%   r   r   rl   r   r   r^   r   r   )r   r   csdr   rz   rl   r{   r|   r^   r   r   r$   r   r   r   r   r   r   test_csd  s   
zTestSpectral.test_csdc                 C   s   | j du rdS t| j| jd | jtj| jd}tjdd| j i|\}}tjdd| j d i|\}}tt	
t	|| jt	
t	|d | d j dS )zTest zero padding of csd().Nr+   )r%   r   rl   r   r^   r   r   r   )rz   dictr   rl   r   r   r^   r   r   r	   sum	conjugaterZ   )r$   ZsargsZspec0_Zspec1r   r   r   test_csd_padding  s   
zTestSpectral.test_csd_paddingc                 C   sR   | j }tj| j| j| j| j| j| jd\}}|j	|j	ksJ | 
|||| j d S )Nr%   r   rl   r   r   r^   )r   r   r   r   rz   rl   r{   r|   r^   r   r   ry   r   r   r   r   test_psd  s   
zTestSpectral.test_psdzmake_data, detrendr   rQ   c                 C   s  | j d u rd S || j }|d }|d }t||g}t|d}|j }| }t|}tj|| j | j	d| j
|d\}}	tj|| j | j	d| j
|d\}
}tj|| j | j	d| j
d\}}t|	| t|| t||dd tt t|
|dd W d    d S 1 sw   Y  d S )	NrG   ffffff
@r   r+   r   )r%   r   rl   r   r^   r3   )r%   r   rl   r   r^   r(   r   )rz   r	   r5   tiler6   flattenrv   r   r   rl   r^   r   r   rI   rJ   AssertionError)r$   Z	make_datar3   ydataydata1ydata2ydatabycontrolspec_gfsp_gspec_bfsp_bspec_cfsp_cr   r   r   test_psd_detrend  sH   








"zTestSpectral.test_psd_detrendc                 C   sx  | j d u rd S t| j }|d }|d }tt|}|| }t|}t||g}t||g}t|d}t|d}|j	 }|	 }	|	 }tj
|	| j | jd| jtjd\}
}tj
|| j | jd| jtjd\}}tj
|| j | jd| jtjd\}}|t||d   9 }t|| t|| t|
|dd tt t||dd W d    d S 1 sw   Y  d S )	NrG   r   r   r   r%   r   rl   r   r^   r   r   r(   r   )rz   r	   rq   r   r   	ones_liker5   r   r6   r   r   rl   r^   r   r   r   r   r   rI   rJ   r   )r$   r   r   r   
windowVals	ycontrol1	ycontrol2r   r   ydatafr   r   r   r   r   r   r   r   r   test_psd_window_hanning  sV   







"z$TestSpectral.test_psd_window_hanningc              	   C   s  | j d u rd S t| j }t| j }|d }|d }|}|}tt|}|| }t|}t||g}t||g}t|d}t|d}|j	
 }|
 }	|
 }tj|	| j | jd| jtjtjd\}
}tj|| j | jd| jtjtjd\}}tj|| j | jd| jtjd\}}|t||d   9 }t|| t|| t|
|dd	 tt t||dd	 W d    d S 1 sw   Y  d S )
NrG   r   r   r   )r%   r   rl   r   r^   r3   r   r   r   r(   r   )rz   r	   rq   r   r   r   r   r5   r   r6   r   r   rl   r^   rR   r   r   r   r   r   rI   rJ   r   )r$   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   &test_psd_window_hanning_detrend_linear#  s`   







"z3TestSpectral.test_psd_window_hanning_detrend_linearc           	   	   C   s   g d}t t j t j| j}t | j}tt|D ]}||| t ||  7 }qtj	| j
| j| jd| j|dd\}}tj	| j
| j| jd| j|d\}}t|| d  || j |d   dd d S )	N)g^M?g+?g<?g'ne?gt|?r   F)r%   r   rl   r   r^   r   scale_by_freqr   r   r(   r   )r	   r   r"   r   r   ranger   cosr   r   r   rz   rl   r^   r   r   )	r$   aZfacwinkr   r   Zspec_aZfsp_ar   r   r   test_psd_window_flattopR  s0   


z$TestSpectral.test_psd_window_flattopc              
   C   sX   | j }tj| j| j| j| j| j| jt	
| jd\}}t||dd |j|jks*J d S )Nr%   r   rl   r   r   r^   r   r   r   )r   r   r   r   rz   rl   r{   r|   r^   r	   r   r   r   r   r   r   r   r   test_psd_windowarraym  s   

z!TestSpectral.test_psd_windowarrayc              
   C   s   t t| j}t j| j| j| j| j	| j
| jt jd\}}t j| j| j| j| j	| j
| jt jdd\}}t j| j| j| j| j	| j
| jt jdd\}}t|| t|| t|| t||d   || j | d  dd d S )Nr   T)r%   r   rl   r   r   r^   r   r   Fr   r(   r   )r   r   r	   r   r   r   r   rz   rl   r{   r|   r^   r   r   r   )r$   r   r   r   Zspec_sZfsp_sZspec_nZfsp_nr   r   r   "test_psd_windowarray_scale_by_freqy  sD   






z/TestSpectral.test_psd_windowarray_scale_by_freqkind)r[   r   r   r   c                 C   s~   | j }tt| d| j| j| j| jd\}}t||dd |j|jks&J |dkr=| 	||| j
 | |||| j
 d S d S )NZ	_spectrum)r%   rl   r^   r   r   r   r   )r   r   r   r   rl   r^   r   r   r   r   ry   r   )r$   r   r   r   r   r   r   r   test_spectrum  s   
zTestSpectral.test_spectrumrN   r   r[   r   r   c              	   C   s  | j }tjd| j| j| j| j| j| jd|\}}}|	ddkr't
|}t
j|dd}t||dd t|| jdd |jd |jd ksIJ |jd | jjd ksVJ |	dd	vr{t
| dkr{tt
j|dd t
|  dd
d |	ddvr| |||| j d S d S )Nr   r   r[   r+   r,   r   r   r   )r[   r   r   g{Gz?)r   r   r   )r   r   r   r   r   rl   r   r   r^   getr	   r   r   r   r   r   maxdiffr   ry   )r$   rN   r   r   r   r   specmr   r   r   test_specgram  s4   

 zTestSpectral.test_specgramc                 C   sN   t jtdd tj| jt| j| jd W d   dS 1 s w   Y  dS )z+Warning should be raised if len(x) <= NFFT.zOnly one segment is calculated)match)r%   r   rl   N)rI   ZwarnsUserWarningr   r   r   r   rl   r$   r   r   r   test_specgram_warn_only1seg  s   "z(TestSpectral.test_specgram_warn_only1segc              	   C   sh   t j| j| j| j| j| j| jd\}}t j| j| j| j| j| j| j| jd\}}t	|| t
|| d S )Nr   r   )r   r   r   rz   rl   r{   r|   r^   r   r   r   )r$   ZPxxZfreqsxxZPxyZfreqsxyr   r   r   test_psd_csd_equal  s    


zTestSpectral.test_psd_csd_equalc              	   C   st   t j| j| j| j| j| j| jd\}}}t j| j| j| j| j| j| j|d\}}}t|| t|| t|| dS )zr
        Test that mlab.specgram without mode and with mode 'default' and 'psd'
        are all the same.
        r   r%   r   rl   r   r   r^   r   N)	r   r   r   r   rl   r   r   r^   r   )r$   r   specaZ	freqspecataspecbZ	freqspecbtbr   r   r   $test_specgram_auto_default_psd_equal  s$   

z1TestSpectral.test_specgram_auto_default_psd_equalz
mode, convc                 C   s   t jt | ddS r=   )r	   unwrapr   r%   r   r   r   <lambda>  rn   zTestSpectral.<lambda>c           	   	   C   s~   t j| j| j| j| j| j| jdd\}}}t j| j| j| j| j| j| j|d\}}}t|| t|| t	|||dd d S )Nr[   r   r   r   )
r   r   r   r   rl   r   r   r^   r   r   )	r$   r   convZspeccZ	freqspeccZtcr   Z	freqspecmtmr   r   r    test_specgram_complex_equivalent  s&   

z-TestSpectral.test_specgram_complex_equivalentc              	   C   s|   t t| j}t j| j| j| j| j	| j
| j|d\}}t j| j| j| j| j	| j
| jd\}}t|| t||dd d S )Nr   r   r(   r   )r   r   r	   r   r   r   r   rz   rl   r{   r|   r^   r   r   )r$   r   r   r   r   Zfspbr   r   r   test_psd_windowarray_equal  s$   


z'TestSpectral.test_psd_windowarray_equalN)%rV   rW   rX   rI   Zfixturer   r   r   r   markparametrizer   r   r   r   r   r	   r   r   r;   rq   rR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh      sd    "
 	


#*/!




rh   c                  C   s   d} t jd t j| }t |d}t j|t dd dd}tj||ddd	d
\}}t	t 
|ddd t t 
|sAJ d S )Nrb   i!N,r   g      4@Zsame)r   rd   r   rc   )r   rl   r   gbX9?gMbP?r   )r	   r
   r   randnZrollZconvolver   r   Zcoherer   r   Zisreal)Nr%   r   Zcohsqfr   r   r   test_cohere!  s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestGaussianKDEc                 C   s6   t d}t|}g d}t jj|||dd dS )zRegression test for #1181.rG   )B\A?筱ES?g
f?r   r      decimalN)r	   rq   r   GaussianKDEtestingassert_array_almost_equal)r$   x1kde
y_expectedr   r   r   test_kde_integer_input6  s   

z&TestGaussianKDE.test_kde_integer_inputc                 C   sT   t jg dtd}t jdddd}g d}t|d}||}t jj||d	d
 d S )Nr+   r`   rG   )Zdtypeira   rG   rp   )g>L\9?gp4=?gH꟫?g8(H	MT?gĲCR?scott   r  )r	   ru   floatr   r   r  r  r  )r$   r  xsr	  Zkde2y2r   r   r   $test_gaussian_kde_covariance_caching>  s   z4TestGaussianKDE.test_gaussian_kde_covariance_cachingc           
      C   s   t jd d}t j|}t|}t|d}tj||jd}t ddd}||}||}|	 |	 ks<J ||}	|	 |		 ksKJ d S )N 2   r  Z	bw_methodr  r  3   )
r	   r
   r   r   r   r  factorr   evaluateall)
r$   n_basesampleZxnZgkdeZgkde2Zgkde3r  ZkdepdfZkdepdf2Zkdepdf3r   r   r   test_kde_bandwidth_methodL  s   



z)TestGaussianKDE.test_kde_bandwidth_methodN)rV   rW   rX   r
  r  r  r   r   r   r   r   4  s    r   c                   @   r   )TestGaussianKDECustomc                 C   s:   t t tg  W d   dS 1 sw   Y  dS )z(Pass no data into the GaussianKDE class.NrI   rJ   rK   r   r  r   r   r   r   test_no_datab  s   "z"TestGaussianKDECustom.test_no_datac                 C   s<   t t tdg W d   dS 1 sw   Y  dS )z9Pass a single dataset element into the GaussianKDE class.*   Nr  r   r   r   r   test_single_dataset_elementg  s   "z1TestGaussianKDECustom.test_single_dataset_elementc                 C   \   t g dg dg dg}tt jj t|d W d   dS 1 s'w   Y  dS )z/Test silverman's for a multi-dimensional array.r+   r      r`   rG   r  r     r   	silvermanNr	   ru   rI   rJ   ZlinalgZLinAlgErrorr   r  r$   r  r   r   r   test_silverman_multidim_datasetl     "z5TestGaussianKDECustom.test_silverman_multidim_datasetc                 C   2   t g d}t|d}d}t| |d dS )z4Test silverman's output for a single dimension list.r  r(  g/?r  Nr	   ru   r   r  r   covariance_factorr$   r  Zmygaussr	  r   r   r    test_silverman_singledim_datasetr     z6TestGaussianKDECustom.test_silverman_singledim_datasetc                 C   r"  )z2Test scott's output for a multi-dimensional array.r#  r%  r&  r  Nr)  r*  r   r   r   test_scott_multidim_datasety  r,  z1TestGaussianKDECustom.test_scott_multidim_datasetc                 C   r-  )z/Test scott's output a single-dimensional array.r  r  g	e1?r  Nr.  r0  r   r   r   test_scott_singledim_dataset  r2  z2TestGaussianKDECustom.test_scott_singledim_datasetc                 C   s>   t t tjg dd W d   dS 1 sw   Y  dS )z0Test the scalar's cov factor for an empty array.rG   r  Nr  r   r   r   r   test_scalar_empty_dataset  s   "z/TestGaussianKDECustom.test_scalar_empty_datasetc                    sH   t jd d  fddtdD }tj|dd}| dks"J dS )	zTest a scalar's cov factor.r  r  c                       g | ]}t j qS r   r	   r
   r   ri   r   r  r   r   rm         zHTestGaussianKDECustom.test_scalar_covariance_dataset.<locals>.<listcomp>rG   g      ?r  Nr	   r
   r   r   r   r  r/  )r$   multidim_datar  r   r9  r   test_scalar_covariance_dataset  s
   z4TestGaussianKDECustom.test_scalar_covariance_datasetc                    sP   t jd d  fddtdD }dd }tj||d}| d	ks&J d
S )z=Test the callable's cov factor for a multi-dimensional array.r  r  c                    r6  r   r7  r8  r9  r   r   rm     r:  zJTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.<listcomp>rG   c                 S   s   dS )N皙?r   r   r   r   r   callable_fun  s   zLTestGaussianKDECustom.test_callable_covariance_dataset.<locals>.callable_funr  r>  Nr;  )r$   r<  r?  r  r   r9  r    test_callable_covariance_dataset  s   z6TestGaussianKDECustom.test_callable_covariance_datasetc                 C   sB   t jd d}t j|}tj|dd}d}t| |d dS )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	  r   r   r   test_callable_singledim_dataset  s   z5TestGaussianKDECustom.test_callable_singledim_datasetc                 C   sZ   t jd d}t j|}tt tj|dd W d   dS 1 s&w   Y  dS )z@Test the error message that should be called when bw is invalid.r  r  invalidr  N)	r	   r
   r   r   rI   rJ   rK   r   r  )r$   r  datar   r   r   test_wrong_bw_method  s   "z*TestGaussianKDECustom.test_wrong_bw_methodN)rV   rW   rX   r  r!  r+  r1  r3  r4  r5  r=  r@  rA  rD  r   r   r   r   r  a  s    	
r  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestGaussianKDEEvaluatec                 C   sL   t ddd}t|}t ddd}g d}||}t j||d dS )zr
        Test the evaluate method when the dim's of dataset and points have
        different dimensions.
        r$  ra   r      )X]?AG$?rH  rG  g;]?r  Nr	   rq   r   r  r  r  r  )r$   r  r  x2r	  r   r   r   r   test_evaluate_diff_dim  s   

z.TestGaussianKDEEvaluate.test_evaluate_diff_dimc                 C   sp   t jd d}t j|}t|}dgdgdgg}tt |	| W d   dS 1 s1w   Y  dS )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  r+   r   r$  N)
r	   r
   r   r   r   r  rI   rJ   rK   r  )r$   r  r<  r  rJ  r   r   r   test_evaluate_inv_dim  s   
"z-TestGaussianKDEEvaluate.test_evaluate_inv_dimc                 C   sH   t ddd}t dg}t|}dg}||}t j||d dS )z-Tests if evaluated against a one by one arrayr$  ra   r   rG  r  N)r	   rq   ru   r   r  r  r  r  r$   r  rJ  r  r	  r   r   r   r   test_evaluate_dim_and_num  s   

z1TestGaussianKDEEvaluate.test_evaluate_dim_and_numc                 C   sn   t ddd}t dddt dddg}t|}tt || W d    d S 1 s0w   Y  d S )Nr$  ra   r   )r	   rq   r   r  rI   rJ   rK   r  )r$   r  rJ  r  r   r   r   test_evaluate_point_dim_not_one  s   
"z7TestGaussianKDEEvaluate.test_evaluate_point_dim_not_onec                 C   sL   t ddd}t ddd}t|}g d}||}t j||d d S )Nr$  ra   r   r'  )rG  rH  rH  r  rI  rM  r   r   r   "test_evaluate_equal_dim_and_num_lt  s   

z:TestGaussianKDEEvaluate.test_evaluate_equal_dim_and_num_ltN)rV   rW   rX   rK  rL  rN  rO  rP  r   r   r   r   rE    s    	rE  c                  C   s   t g d} d}t t j| | d || j  }tj| | jd| tjtjdd d dd	\}}t 	|d g|dd |dd  d d d	  }t
||d
d d S )Nr   r+   r   r$  r+   r   r+         ?r   r+   r   r_   r   rl   r   r3   r   r   r   r^   r`   rC   r   r   )r	   ru   r   fftsizer   r   r   r2   appendr   udtZSuPr   ZSu_1sider   r   r   test_psd_onesided_norm  s   $
0r[  c                  C   s   t g d} d}t t j| | d || j  }tj| | jd d| tjtjddddd	\}}t 	|d g|dd	 |d	d ddd
  }t
t |t | dS )z&Test the case len(x) < NFFT for psd().rQ  rR  r   r+   r   Nr_   rS  r`   rC   )r	   ru   r   rT  rU  r   r   r   r2   rV  r   r   rW  r   r   r   test_psd_oversampling  s   $
0r\  )Znumpy.testingr   r   r   r   numpyr	   rI   Z
matplotlibr   r   r   r   r   rh   r   r   r  rE  r[  r\  r   r   r   r   <module>   sR         W-Q6