U
    KvfJ                     @   s   d Z ddlZddlmZmZ ddlmZ ddlZddl	m
  mZ ddddd	d
ddgZddgZG dd dZG dd deZG dd deZdS )zM
Created on Mon Mar  8 16:18:21 2021

Author: Josef Perktold
License: BSD-3

    N)assert_allcloseassert_array_less)stats)gamma皙?)Zgamma2r   )Zinvgammag{Gz?)Zinvgauss{Gz?)Zrecipinvgaussr   )bsr   )Zlognormr   )Zweibullr   )beta{Gzt?)Zbeta2r
   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )CheckKernelsc           
   	   C   s   |\}}| j }| j}g }g }|D ]0}|t|||| |t|||| q t|}t|}|| j d 	 }	t
|	| j || j d 	 }	t
|	| j d S )N   )rvsx_plotappendkernpdf_kernel_asymcdf_kernel_asymnpasarraypdf_dgpZmeanr   amse_pdfcdf_dgpamse_cdf)
selfcasenamebwr   r   kdekcexiZamse r    S/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/nonparametric/tests/test_asymmetric.pytest_kernels$   s    

zCheckKernels.test_kernelsc              	   C   s   |\}}| j }| j}g }g }|D ]0}|t|||| |t|||| q t|}t|}t||||}	t||||}
t|	|dd t|
|dd d S )N-q=Zrtol)	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   kde1kce1r    r    r!   test_kernels_vectorized9   s    

z$CheckKernels.test_kernels_vectorizedc                 C   s   |\}}| j }| j}t||||}t||||}t|}t|| }	tj|||||	d}
tj|||||	d}t|
|dd t||dd t|}t|| d }	tj|||||	d}
tj|||||	d}t|
|d dd t||d dd d S )N)weightsr#   r$   r   )	r   r   r   r   r   lenr   Zonesr   )r   r   r   r   r   xZkde2Zkce2nwr%   r&   r    r    r!   test_kernels_weightsN   s"    z!CheckKernels.test_kernels_weightsN)__name__
__module____qualname__r"   r'   r-   r    r    r    r!   r   "   s   r   c                       sj   e Zd Zedd Zejde fddZ	ejde fddZ
ejde fdd	Z  ZS )
TestKernelsRplusc                 C   sx   d}d}t jd d}tj||d}|j|d}t ddd	d
 }|| _|| _||| _	|
|| _d| _d| _d S )Nr   g      ?     )scalesizeg      ?   3   gvIh%<=g-C6?gMb@?)r   randomseedr   r   r   linspacer   pdfr   cdfr   r   r   )clsbr4   nobsdistr0r   r   r    r    r!   setup_classj   s    zTestKernelsRplus.setup_classr   c                    s   t t| | d S N)superr1   r"   r   r   	__class__r    r!   r"   {   s    zTestKernelsRplus.test_kernelsc                    s   t t| | d S rC   )rD   r1   r'   rE   rF   r    r!   r'      s    z(TestKernelsRplus.test_kernels_vectorizedc                    s   t t| | d S rC   )rD   r1   r-   rE   rF   r    r!   r-      s    z%TestKernelsRplus.test_kernels_weights)r.   r/   r0   classmethodrB   pytestmarkparametrizekernels_rplusr"   r'   r-   __classcell__r    r    rF   r!   r1   h   s   
r1   c                       sj   e Zd Zedd Zejde fddZ	ejde fddZ
ejde fdd	Z  ZS )
TestKernelsUnitc                 C   sj   t jd d}tdd}|j|d}t ddd}|| _|| _||| _	|
|| _d	| _d
| _d S )Ni@ r3   r      r5   g|=r2   r8   r   r
   )r   r9   r:   r   r	   r   r;   r   r<   r   r=   r   r   r   )r>   r@   rA   r   r   r    r    r!   rB      s    zTestKernelsUnit.setup_classr   c                    s   t t| | d S rC   )rD   rN   r"   rE   rF   r    r!   r"      s    zTestKernelsUnit.test_kernelsc                    s   t t| | d S rC   )rD   rN   r'   rE   rF   r    r!   r'      s    z'TestKernelsUnit.test_kernels_vectorizedc                    s   t t| | d S rC   )rD   rN   r-   rE   rF   r    r!   r-      s    z$TestKernelsUnit.test_kernels_weights)r.   r/   r0   rH   rB   rI   rJ   rK   kernels_unitr"   r'   r-   rM   r    r    rF   r!   rN      s   
rN   )__doc__Znumpyr   Znumpy.testingr   r   Zscipyr   rI   Z,statsmodels.nonparametric.kernels_asymmetricZnonparametricZkernels_asymmetricr   rL   rP   r   r1   rN   r    r    r    r!   <module>   s(   	
F 