U
    Kvf                     @   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{Gz?)nparanger   betaZcdfZ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   N/tmp/pip-unpacked-wheel-2v6byqio/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      @)coordsgvIh%<=)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st| 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st| 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st| 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	   gMbP?)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    r1   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)r/   r   r   ZevalbpZk_xZx2dr0   r   r   r   test_bernstein_2d   s&    
"
"
r4   )__doc__Znumpyr   Znumpy.testingr   r   Zscipyr   Zstatsmodels.distributions.toolsdistributionsZtoolsr   r   r%   r-   r1   r4   r   r   r   r   <module>   s   6