U
    Kvf                     @   sj   d dl Zd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZ G dd dZdd Zd	d
 ZdS )    N)assert_almost_equal)stats)
lillieforsget_lilliefors_table
kstest_fitksstatc                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
dd Zdd ZdS )TestLillieforsc                 C   s   t jd tjjdd}t|ddd\}}t|t |  d ddd\}}t	|d	d
d t	|dd
d t	|dd
d t	|dd
d d S )N    sizenormapproxdist
pvalmethodgMbP?exphx?   decimalK7?gF~Xʍ?)
nprandomseedr   r   rvsr   absminr   )selfx_n	d_ks_normp_normd_ks_expp_exp r$   K/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/stats/tests/test_lilliefors.pytest_normal   s     
zTestLilliefors.test_normalc                 C   sL   t jd tjjdd}t|ddd\}}t|ddd	 t|d
dd	 d S )Nr	   r
   r   r   tabler   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r    r!   r$   r$   r%   test_normal_table&   s
    z TestLilliefors.test_normal_tablec                 C   sz   t jd tjjdd}t|ddd\}}t|ddd\}}t|dd	d
 t|dd	d
 t|dd	d
 t|dd	d
 d S )Nr	   r
   r   r   r   r   r   g1?r   r   gOd@<gL?gz6?)r   r   r   r   exponr   r   r   )r   Zx_er    r!   r"   r#   r$   r$   r%   
test_expon/   s    zTestLilliefors.test_exponc                 C   sx   t jtdd d }t|ddd\}}t jtdd d }t|ddd\}}t|dd	d
 t|dd	d
 d S )Ng      $@g      ?
   r   r   r   r   gGz?   r   )r   r   Zppfr   aranger   r)   r   )r   xZd_ks_nZp_nZd_ks_eZp_er$   r$   r%   test_pval_boundsA   s    zTestLilliefors.test_pval_boundsc              	   C   s`   t d}tt t|ddd W 5 Q R X t d}tt t|ddd W 5 Q R X d S )Ng      @r   r   r   g       @r   )r   r-   pytestraises
ValueErrorr   )r   r.   r$   r$   r%   test_min_nobsJ   s    

zTestLilliefors.test_min_nobsc                 C   s   t jd}t|dd d S )Ni'  r   )r   )r   r   Zrandnr   )r   reset_randomstater.   r$   r$   r%   test_large_sampleR   s    z TestLilliefors.test_large_samplec              	   C   sf  t jd tjjdd}|}t|ddd\}}t|ddd	 t|d
dd	 |dd}t|ddd\}}t|ddd	 t|d
dd	 t 	||gj
}tt t|ddd W 5 Q R X tj|d}t|ddd\}}t|ddd	 t|d
dd	 tj||gd}tt t|ddd W 5 Q R X tj|ddj
d}tt t|ddd W 5 Q R X d S )Nr	   r
   r   r   r   r   r   r   r   r      )data)r   r   r   r   r   r   r   r   ZreshapearrayTr0   r1   r2   pdZ	DataFrame)r   r   r8   r    r!   r$   r$   r%   test_x_dimsW   s.    zTestLilliefors.test_x_dimsN)__name__
__module____qualname__r&   r(   r*   r/   r3   r0   markZsmoker5   r<   r$   r$   r$   r%   r      s   		
r   c              	   C   sP   t t tdd W 5 Q R X t t ttjdddd W 5 Q R X d S )Nunknown)r   d   r'   r   )r0   r1   r2   r   r   r   r   Zstandard_normal)r4   r$   r$   r%   test_get_lilliefors_errors}   s    rC   c                 C   sd   t jddd}t|ddd}t|ddd}t|tjdd}t||| ||ksTt||ks`td S )	Nr   r7   rB   uniform	two_sided)alternativegreaterlower)r   r   rD   r   r   printAssertionError)r4   r.   rE   rG   rH   r$   r$   r%   test_ksstat   s    rK   )Znumpyr   Zpandasr;   r0   Znumpy.testingr   Zscipyr   Zstatsmodels.stats._lillieforsr   r   r   r   r   rC   rK   r$   r$   r$   r%   <module>   s   r