
    !g                         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
c mZ g dZddgZ G d d	      Z G d
 de      Z G d de      Zy)zM
Created on Mon Mar  8 16:18:21 2021

Author: Josef Perktold
License: BSD-3

    N)assert_allcloseassert_array_less)stats))gamma皙?)gamma2r   )invgammag{Gz?)invgauss{Gz?)recipinvgaussr   )bsr   )lognormr   )weibullr   )beta{Gzt?)beta2r   c                       e Zd Zd Zd Zd Zy)CheckKernelsc           	         |\  }}| j                   }| j                  }g }g }|D ]P  }|j                  t        j                  ||||             |j                  t        j
                  ||||             R t        j                  |      }t        j                  |      }|| j                  z
  dz  j                         }	t        |	| j                         || j                  z
  dz  j                         }	t        |	| j                         y )N   )rvsx_plotappendkernpdf_kernel_asymcdf_kernel_asymnpasarraypdf_dgpmeanr   amse_pdfcdf_dgpamse_cdf)
selfcasenamebwr   r   kdekcexiamses
             l/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/nonparametric/tests/test_asymmetric.pytest_kernelszCheckKernels.test_kernels#   s    bhh 	@BJJt++BR>?JJt++BR>?	@ jjojjo t||#a'--/$.t||#a'--/$.    c           	         |\  }}| j                   }| j                  }g }g }|D ]P  }|j                  t        j                  ||||             |j                  t        j
                  ||||             R t        j                  |      }t        j                  |      }t        j                  ||||      }	t        j
                  ||||      }
t        |	|d       t        |
|d       y )N-q=rtol)	r   r   r   r   r   r   r   r   r   )r$   r%   r&   r'   r   r   r(   r)   r*   kde1kce1s              r,   test_kernels_vectorizedz$CheckKernels.test_kernels_vectorized8   s    bhh 	@BJJt++BR>?JJt++BR>?	@ jjojjo##FCT:##FCT:c.c.r.   c                 |   |\  }}| j                   }| j                  }t        j                  ||||      }t        j                  ||||      }t        |      }t        j                  |      |z  }	t        j                  |||||	      }
t        j                  |||||	      }t        |
|d       t        ||d       t        |      }t        j                  |      |z  dz  }	t        j                  |||||	      }
t        j                  |||||	      }t        |
|dz  d       t        ||dz  d       y )N)weightsr0   r1   r   )	r   r   r   r   r   lenr   onesr   )r$   r%   r&   r'   r   xkde2kce2nwr3   r4   s               r,   test_kernels_weightsz!CheckKernels.test_kernels_weightsM   s   bhhKK##AsB5##AsB5HGGAJN##AsBa@##AsBa@d/d/ HGGAJNQ##AsBa@##AsBa@dQhU3dQhU3r.   N)__name__
__module____qualname__r-   r5   r?    r.   r,   r   r   !   s    /*/*4r.   r   c                        e Zd Zed        Zej                  j                  de       fd       Z	ej                  j                  de       fd       Z
ej                  j                  de       fd       Z xZS )TestKernelsRplusc                 d   d}d}t         j                  j                  d       d}t        j                  ||      }|j                  |      }t        j                  ddd	      d
z   }|| _        || _        |j                  |      | _	        |j                  |      | _        d| _        d| _        y )Nr   g      ?     )scalesizeg      ?   3   gvIh%<=g-C6?gMb@?)r   randomseedr   r   r   linspacer   pdfr   cdfr"   r!   r#   )clsbrI   nobsdistr0r   r   s          r,   setup_classzTestKernelsRplus.setup_classi   s    
		qQe,jjdj#S"b)E1
jj(jj(r.   r%   c                 $    t         |   |       y Nsuperr-   r$   r%   	__class__s     r,   r-   zTestKernelsRplus.test_kernelsz       T"r.   c                 $    t         |   |       y rY   r[   r5   r\   s     r,   r5   z(TestKernelsRplus.test_kernels_vectorized~       '-r.   c                 $    t         |   |       y rY   r[   r?   r\   s     r,   r?   z%TestKernelsRplus.test_kernels_weights       $T*r.   )r@   rA   rB   classmethodrW   pytestmarkparametrizekernels_rplusr-   r5   r?   __classcell__r]   s   @r,   rE   rE   g   s       [[V]3# 4# [[V]3. 4. [[V]3+ 4+r.   rE   c                        e Zd Zed        Zej                  j                  de       fd       Z	ej                  j                  de       fd       Z
ej                  j                  de       fd       Z xZS )TestKernelsUnitc                 T   t         j                  j                  d       d}t        j                  dd      }|j                  |      }t        j                  ddd      }|| _        || _        |j                  |      | _	        |j                  |      | _        d	| _        d
| _        y )Ni@ rH   r      rJ   g|=rG   rM   r   r   )r   rN   rO   r   r   r   rP   r   rQ   r   rR   r"   r!   r#   )rS   rU   rV   r   r   s        r,   rW   zTestKernelsUnit.setup_class   s    
		vAq!jjdj#UAr*
jj(jj(r.   r%   c                 $    t         |   |       y rY   rZ   r\   s     r,   r-   zTestKernelsUnit.test_kernels   r^   r.   c                 $    t         |   |       y rY   r`   r\   s     r,   r5   z'TestKernelsUnit.test_kernels_vectorized   ra   r.   c                 $    t         |   |       y rY   rc   r\   s     r,   r?   z$TestKernelsUnit.test_kernels_weights   rd   r.   )r@   rA   rB   re   rW   rf   rg   rh   kernels_unitr-   r5   r?   rj   rk   s   @r,   rm   rm      s      [[V\2# 3# [[V\2. 3. [[V\2+ 3+r.   rm   )__doc__numpyr   numpy.testingr   r   scipyr   rf   ,statsmodels.nonparametric.kernels_asymmetricnonparametrickernels_asymmetricr   ri   rs   r   rE   rm   rC   r.   r,   <module>r{      sZ     <   ; ;   
C4 C4L+| +@+l +r.   