U
    ÃmœdØ  ã                   @   sf   d Z ddlZddlmZmZ ddlmZ ddlm	  m
Z dd„ Zdd„ Zd	d
„ Zdd„ Zdd„ ZdS )zM
Created on Fri Feb 12 10:42:00 2021

Author: Josef Perktold
License: BSD-3

é    N)Úassert_allcloseÚassert_equal)Ústatsc                  C   s8  d\} }t  | ¡| d  }t  |¡|d  }t dd¡}t dd¡}| |¡}| |¡}t j|dd�}t j|dd�}	|d d …d f | }
|d d …d f |	 }t |
¡}t |¡}t	||
d	d
� t	||d	d
� d}t j
 d¡ t  |j|d�|j|d�g¡}t  |||g¡}t	|dd …dd …f |d t|ƒ dd
� d S )N)é   é   é   é   r   é   r   r   )Úprependçê-�™—q=©Zatoliè  iƒ
 )Úsizeg{®Gáz”?)ÚnpÚaranger   ÚbetaZcdfÚdiffÚdtZcdf2prob_gridZprob2cdf_gridr   ÚrandomÚseedÚcolumn_stackÚrvsZhistogramddÚlen)Zk1Zk2Úxg1Úxg2Zdistr1Zdistr2Zcdf1Zcdf2Zprob1Zprob2Úcd2dZpd2dZprobsZcdfsZnobsr   Úhist© r   úc/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/distributions/tests/test_tools.pyÚ	test_grid   s(    



r   c                  C   s.  t  dd¡} t  d¡}| d d …d f | }t  dddgdddgg¡}tj|| |gd�}t||d	d
� tj|| |gdd�}t||d	d
� tj|| |gdd�}t||d	d
� tj|| |  ¡  || ¡  gd�}t|||  ¡  | ¡  d	d
� tj|| |  ¡  || ¡  gdd�}t|||  ¡  | ¡  d	d
� d S )Nr   r	   ç      è?g      @g      @g      ô?g      @)Úcoordsg‚vIhÂ%<=)ZrtolZslicing)r    Ú_methodZconvolve)r   r   Úarrayr   Zaverage_gridr   Úmax)Úx1Zx2ÚyZres1Zres0r   r   r   Útest_average_grid.   s$    
ÿ"ÿr&   c                  C   s  ddgt  dddg¡t  dddddg¡gt  dddddddddddddddgdddd	d
dddd	d
dddd	d
gg¡dœ} t ddg¡}t|j| d ƒ |js¦t| d ƒ‚t|j	| d j
dd� t|j| d j
ddg dd� tjddgdd�}t|j ¡ ddd� t|j ¡ ddd� t  |j¡}t| ¡ ddd� t| ¡ ddd� tjdgdd�}dgt  dddddg¡gt  dddd	d
gg¡dœ} t|j| d ƒ |j�sªt| d ƒ‚t|j	| d j
dd� t|j| d d d d …d f dd� tjdddgdd�}dddgt  dddg¡t  dddg¡t  ddg¡gt  ddddddddddddddddddgddddddddddddddddddgddddddddddddddddddgg¡dœ} t|j| d ƒ |j�sÎt| d ƒ‚t|j	| d j
dd� t|j| d j
dddg dd� d S )Nr   r   g        g      à?g      ð?g      Ð?r   g       @g      @g      @)Úk_gridÚ
x_marginalú
idx_flat.Tr'   r(   r)   r   r   r   r	   gü©ñÒMbP?)Zepsg+‡ÙÎ÷ï?r   r   )r   r"   r   Z_Gridr   r'   r(   ÚAssertionErrorr   Zidx_flatÚTZx_flatÚminr#   Zconcatenate)ÚresZggZxmfr   r   r   Útest_grid_classD   sl    ÿ  þýþ$þ  ÿ  ÿ  ÿûür.   c                  C   sŠ   d} t  | ¡| d  }t  d|  ¡d|  d  }t ||¡}t||dd� tj||dd�}t||dd� tj||dd�}t||dd� d S )	Nr   r   r   r   r   r   )ÚmethodZbpoly)r   r   r   Z_eval_bernstein_1dr   )Úkr   r   Úres_bpr   r   r   Útest_bernstein_1dz   s    r2   c               	   C   s*  d} t  | ¡| d  }|d d …d f | }tjtjfD ]î}d|  }t  t  t  || ¡||f¡¡ t¡}|| 	d¡ }|||ƒ}t
|t j|dd�dd� t  t  |¡|d  t  |¡f¡}|||ƒ}t
||d d …df dd� t  t  |¡t  |¡|d  f¡}|||ƒ}t
||d d …df dd� q6d S )Nr   r   r   r   )Zaxisr   r   )r   r   r   Z_eval_bernstein_2dZ_eval_bernstein_ddr   Zunravel_indexZastypeÚfloatr#   r   ÚprodZones)r0   r   r   ZevalbpZk_xZx2dr1   r   r   r   Útest_bernstein_2d‰   s&    ÿþ
"
"
r5   )Ú__doc__Únumpyr   Znumpy.testingr   r   Zscipyr   Zstatsmodels.distributions.toolsÚdistributionsZtoolsr   r   r&   r.   r2   r5   r   r   r   r   Ú<module>   s   6