
    M/Ph                         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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皙?)gamma2r   )invgammag{Gz?)invgauss{Gz?)recipinvgaussr   )bsr   )lognormr   )weibullr   )beta{Gzt?)beta2r   c                        e Zd Zd Zd Zd ZdS )CheckKernelsc           	         |\  }}| j         }| j        }g }g }|D ]V}|                    t          j        ||||                     |                    t          j        ||||                     Wt          j        |          }t          j        |          }|| j        z
  dz  	                                }	t          |	| j                   || j        z
  dz  	                                }	t          |	| j                   d S )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
             o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/nonparametric/tests/test_asymmetric.pytest_kernelszCheckKernels.test_kernels#   s    bh 	@ 	@BJJt+BR>>???JJt+BR>>????joojoo t|#a'--//$...t|#a'--//$.....    c           	         |\  }}| j         }| j        }g }g }|D ]V}|                    t          j        ||||                     |                    t          j        ||||                     Wt          j        |          }t          j        |          }t          j        ||||          }	t          j        ||||          }
t          |	|d           t          |
|d           d S )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h 	@ 	@BJJt+BR>>???JJt+BR>>????joojoo#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           d S )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   sR   bhK#AsB55#AsB55HHGAJJN#AsBa@@@#AsBa@@@d////d//// HHGAJJNQ#AsBa@@@#AsBa@@@dQhU3333dQhU333333r.   N)__name__
__module____qualname__r-   r5   r?    r.   r,   r   r   !   sA        / / /*/ / /*4 4 4 4 4r.   r   c                       e Zd Zed             Zej                            de           fd            Z	ej                            de           fd            Z
ej                            de           fd            Z xZS )TestKernelsRplusc                 z   d}d}t           j                            d           d}t          j        ||          }|                    |          }t          j        ddd	          d
z   }|| _        || _        |                    |          | _	        |
                    |          | _        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brI   nobsdistr0r   r   s          r,   setup_classzTestKernelsRplus.setup_classi   s    
	qQe,,,jjdj##S"b))E1
jj((jj((r.   r%   c                 J    t                                          |           d S Nsuperr-   r$   r%   	__class__s     r,   r-   zTestKernelsRplus.test_kernelsz   !    T"""""r.   c                 J    t                                          |           d S rY   r[   r5   r\   s     r,   r5   z(TestKernelsRplus.test_kernels_vectorized~   !    ''-----r.   c                 J    t                                          |           d S 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3# # # # 43# [V]33. . . . 43. [V]33+ + + + 43+ + + + +r.   rE   c                       e Zd Zed             Zej                            de           fd            Z	ej                            de           fd            Z
ej                            de           fd            Z xZS )TestKernelsUnitc                 j   t           j                            d           d}t          j        dd          }|                    |          }t          j        ddd          }|| _        || _        |                    |          | _	        |
                    |          | _        d	| _        d
| _        d S )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                 J    t                                          |           d S rY   rZ   r\   s     r,   r-   zTestKernelsUnit.test_kernels   r^   r.   c                 J    t                                          |           d S rY   r`   r\   s     r,   r5   z'TestKernelsUnit.test_kernels_vectorized   ra   r.   c                 J    t                                          |           d S 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2# # # # 32# [V\22. . . . 32. [V\22+ + + + 32+ + + + +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{      s        < < < < < < < <        ; ; ; ; ; ; ; ; ;     
C4 C4 C4 C4 C4 C4 C4 C4L+ + + + +| + + +@+ + + + +l + + + + +r.   