U
    Kvf¾  ã                   @   sœ   d Z ddlZddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlm  mZ ddlmZmZmZ dd	„ Zd
d„ ZG dd„ dƒZG dd„ deƒZdS )zM
Created on Wed Feb 17 23:44:18 2021

Author: Josef Perktold
License: BSD-3

é    N)Úassert_allcloseÚassert_array_less)Ústats)ÚCopulaDistributionÚArchimedeanCopula)Ú
transforms)ÚBernsteinDistributionÚBernsteinDistributionBVÚBernsteinDistributionUVc                  C   s¾  t  dg¡} | jdk}| j|   ¡ d | j|< d| j ¡  | j| jdk< t dd¡}| t | j¡¡}t	|ƒ}| | j¡}t
||dd tt t || ¡¡d	ƒ | t | j¡¡}| | j¡}t
||d
d tt t || ¡¡dƒ t | j¡}t|ƒ}	|	 |¡}
t
|
|dd |	 |¡}t
||dd |	j|dd}
t
|
|dd |	j|dd}t
||dd |	j|dd}
t
|
|dd |	j|dd}t
||dd | d¡}t|ƒdksºt‚d S )Niõ  r   é   é   é   é   ç{®Gázt?©Úatolçü©ñÒMbP?g{®Gáz”?ç{®Gáz„?ç‚vIhÂ%<=Úbeta)ÚmethodZbpolyéd   )ÚdtÚ_GridÚx_flatÚminr   r   ÚcdfÚnpZsqueezer   r   r   ÚmedianÚabsÚpdfr
   ÚrvsÚlenÚAssertionError)ÚgridÚlocÚdistrÚcdf_gÚbpdÚcdf_bpÚpdfvÚpdf_bpZxfZbpd1Zcdf_bp1Zpdf_bp1r!   © r,   úR/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/distributions/tests/test_bernstein.pyÚtest_bernstein_distribution_1d   s<    



r.   c                  C   s  t  ddg¡} tj}d}t|ƒ ƒ}tj}tj}t|||g|d}| | j	|¡}| 
| j¡}t|ƒ}	|	 | j	¡}
t|
|dd tt t |
| ¡¡dƒ t jddgdd}| |j	¡}|	 |j	¡}t||d	d
d tt t || ¡¡dƒ t t ddd¡t d¡f¡}|	 |¡}t||d d …df dd t t d¡t ddd¡f¡}|	 |¡}t||d d …df dd t ddd¡}|d d …d f }|	 d¡}| |¡}t||dd | |¡}t|t t|ƒ¡dd |	 d¡}| |¡}t||dd | |¡}t|t t|ƒ¡dd d S )Né3   ©r   ©Zcop_argsr   r   r   g:Œ0âŽyE>©Zepsr   g{®Gáz¤?©r   Zrtolçš™™™™™©?r   r   r   r   )r   r   ÚtraÚTransfFrankr   r   Úuniformr   r   r   ÚreshapeÚk_gridr   r   r   r   r   r   r    Zcolumn_stackZlinspaceZonesZget_marginalr"   )r$   Úcop_trÚargsÚcaÚdistr1Údistr2ÚcadÚcdfvr'   r(   r)   Úgrid_epsr*   r+   ZxxZcdf_m1Zcdf_m2Zxx_Zbpd_m1Zpdf_m1Zbpd_mZcdf_mZpdf_mr,   r,   r-   Útest_bernstein_distribution_2dA   sH    








rB   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestBernsteinBeta2dc           
      C   s†   t  ddg¡}tj}d}t|ƒ ƒ}t dd¡}t dd¡}t|||g|d}| |j	|¡}| 
|j¡}	|| _|| _|| _t|	ƒ| _d S ©Né[   ée   r0   é   r   r1   )r   r   r5   r6   r   r   r   r   r   r   r8   r9   r$   r@   r&   r	   r(   ©
Úclsr$   r:   r;   r<   r=   r>   r?   r@   r'   r,   r,   r-   Úsetup_classs   s    
zTestBernsteinBeta2d.setup_classc           	      C   sö   | j }| j}| j}| j}|jjd dk r\| |j¡}t||dd tt	 
t	 || ¡¡dƒ tjddgdd}| |j¡}| |j¡}t||ddd tt	 
t	 || ¡¡dƒ | |j¡}| |j¡}t||d	d
d tt	 
t	 || ¡¡dƒ d S )Nr   i)
  r4   r   r   r/   r2   r3   g¸…ëQ¸®?gš™™™™™¹?)r(   r$   r@   r&   r   Úshaper   r   r   r   r   r   r   r   r    )	Úselfr(   r$   r@   r&   r)   rA   r*   r+   r,   r,   r-   Ú
test_basic…   s"    zTestBernsteinBeta2d.test_basicc                 C   s    | j  d¡}t|ƒdkst‚d S )Nr   )r(   r!   r"   r#   )rL   r!   r,   r,   r-   Útest_rvs›   s    zTestBernsteinBeta2d.test_rvsN)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodrJ   rM   rN   r,   r,   r,   r-   rC   q   s   
rC   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestBernsteinBeta2ddc           
      C   s†   t  ddg¡}tj}d}t|ƒ ƒ}t dd¡}t dd¡}t|||g|d}| |j	|¡}| 
|j¡}	|| _|| _|| _t|	ƒ| _d S rD   )r   r   r5   r6   r   r   r   r   r   r   r8   r9   r$   r@   r&   r   r(   rH   r,   r,   r-   rJ   £   s    
z TestBernsteinBeta2dd.setup_classN)rO   rP   rQ   rR   rJ   r,   r,   r,   r-   rS   ¡   s   rS   )Ú__doc__Znumpyr   Znumpy.testingr   r   Zscipyr   Z$statsmodels.distributions.copula.apir   r   r   r5   Zstatsmodels.distributions.toolsÚdistributionsZtoolsr   Z#statsmodels.distributions.bernsteinr   r	   r
   r.   rB   rC   rS   r,   r,   r,   r-   Ú<module>   s   +00