U
    Kvf$1                     @   s  d dl Zd dlmZ d dlmZ d dlmZ e Zej	j
Z	eejj
ddZej	eejdd ZZG dd dZG d	d
 d
ZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZdS )    N)load_pandas)OaxacaBlinder)add_constantF)prependc                   @   s    e Zd Zedd Zdd ZdS )
TestOaxacac                 C   s   t ttd| _d S )N   r   endogexogmodelcls r   G/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/stats/tests/test_oaxaca.pysetup_class   s    zTestOaxaca.setup_classc                 C   sD  t jd t ddddg}t dddg}t dd	d
g}| j j\}}}}| j j\}}	}| jdj\}
}}t j	
||d d t j	
||d d t j	
||d d t j	
||d d t j	
||d d t j	
|	|d d t j	
||d d t j	
|
|d d t j	
||d d t j	
||d d d S )Nr   d]Fc@-t@	R@ rmClY`@zNz;@Gh@g93Lm%P@gLBx@Tr         )nprandomseedarrayr   
three_foldparamstwo_foldstdtestingassert_almost_equal)selfstata_resultsstata_results_pooledZstata_results_stdendowcoefintergapunexpexpZ	endow_varZcoef_varZ	inter_varr   r   r   test_results   s"    zTestOaxaca.test_resultsN__name__
__module____qualname__classmethodr   r-   r   r   r   r   r      s   
r   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaNoSwapc                 C   s   t ttddd| _d S )Nr   Fswapr   r   r   r   r   r   4   s    zTestOaxacaNoSwap.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S Ngd]FcgTg]C_d@r   gClY`gzNz;r   r   r   r   r   r   r   r   r   r    r"   r#   	r$   r%   r&   r'   r(   r)   r*   r+   r,   r   r   r   r-   8   s    zTestOaxacaNoSwap.test_resultsNr.   r   r   r   r   r3   3   s   
r3   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaPandasc                 C   s   t ttd| _d S )NOWNRENTr   pd_endogpd_exogr   r   r   r   r   r   H   s    zTestOaxacaPandas.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S Nr   r   r   r   r   r   r   r   r   r   r7   r8   r   r   r   r-   L   s    zTestOaxacaPandas.test_resultsNr.   r   r   r   r   r9   G   s   
r9   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaPandasNoSwapc                 C   s   t ttddd| _d S )Nr:   Fr4   r;   r   r   r   r   r   \   s    z"TestOaxacaPandasNoSwap.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S r6   r7   r8   r   r   r   r-   `   s    z#TestOaxacaPandasNoSwap.test_resultsNr.   r   r   r   r   r?   [   s   
r?   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaNoConstPassedc                 C   s   t tjjtjjddd| _d S )Nr   Fhasconstr   	pandas_dfr	   valuesr
   r   r   r   r   r   r   p   s       z#TestOaxacaNoConstPassed.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S r>   r7   r8   r   r   r   r-   v   s    z$TestOaxacaNoConstPassed.test_resultsNr.   r   r   r   r   r@   o   s   
r@   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaNoSwapNoConstPassedc                 C   s    t tjjtjjdddd| _d S )Nr   FrB   r5   rC   r   r   r   r   r      s    z)TestOaxacaNoSwapNoConstPassed.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S r6   r7   r8   r   r   r   r-      s    z*TestOaxacaNoSwapNoConstPassed.test_resultsNr.   r   r   r   r   rF      s   
	rF   c                   @   s    e Zd Zedd Zdd ZdS )TestOaxacaPandasNoConstPassedc                 C   s   t tjtjddd| _d S )Nr:   FrA   r   rD   r	   r
   r   r   r   r   r   r      s       z)TestOaxacaPandasNoConstPassed.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S r>   r7   r8   r   r   r   r-      s    z*TestOaxacaPandasNoConstPassed.test_resultsNr.   r   r   r   r   rH      s   
rH   c                   @   s    e Zd Zedd Zdd ZdS )#TestOaxacaPandasNoSwapNoConstPassedc                 C   s   t tjtjdddd| _d S )Nr:   FrG   rI   r   r   r   r   r      s    z/TestOaxacaPandasNoSwapNoConstPassed.setup_classc           	      C   s   t ddddg}t dddg}| j j\}}}}| j j\}}}t j||d d t j||d	 d t j||d
 d t j||d d t j||d d t j||d	 d t j||d
 d d S r6   r7   r8   r   r   r   r-      s    z0TestOaxacaPandasNoSwapNoConstPassed.test_resultsNr.   r   r   r   r   rJ      s   
	rJ   c                   @   s    e Zd Zedd Zdd ZdS )TestOneModelc                 C   s2   t jd ttjtjdddjdddd| _d S )	Nr   r:   FrA   Tself_submittedr   two_fold_typeZsubmitted_weight)	r   r   r   r   rD   r	   r
   r    	one_modelr   r   r   r   r      s         zTestOneModel.setup_classc                 C   s   | j j\}}}| j j\}}tdddg}tddg}tj||d d tj||d d tj||d	 d tj||d d tj||d d d S )
Ng~k	R@g~oӟT@3c@gA	3m%P@g/Q@r   r   r   r   )rO   r   r!   r   r   r"   r#   )r$   r+   r,   r*   	unexp_stdexp_stdZone_params_stata_resultsZone_std_stata_resultsr   r   r   r-      s    zTestOneModel.test_resultsNr.   r   r   r   r   rK      s   
rK   c                   @   s    e Zd Zedd Zdd ZdS )TestZeroModelc                 C   s2   t jd ttjtjdddjdddd| _d S )Nr   r:   FrA   TrL   rM   )	r   r   r   r   rD   r	   r
   r    
zero_modelr   r   r   r   r      s         zTestZeroModel.setup_classc                 C   s   | j j\}}}| j j\}}tdddg}tddg}tj||d d tj||d d tj||d	 d tj||d d tj||d d d S )
Ng]C_dr   rP   g>yX5@r   r   r   r   r   )rT   r   r!   r   r   r"   r#   )r$   r+   r,   r*   rQ   rR   Zzero_params_stata_resultsZzero_std_stata_resultsr   r   r   r-      s    zTestZeroModel.test_resultsNr.   r   r   r   r   rS      s   
rS   c                   @   s    e Zd Zedd Zdd ZdS )TestOmegaModelc                 C   s0   t jd ttjtjdddjddd| _d S )Nr   r:   FrA   TZnuemark)rN   )	r   r   r   r   rD   r	   r
   r    omega_modelr   r   r   r   r      s        zTestOmegaModel.setup_classc                 C   s   | j j\}}}| j j\}}tdddg}tddg}tj||d d tj||d d tj||d	 d tj||d d tj||d d d S )
Ng<1P3@g`9ga@rP   g}͍M@gC H@r   r   r   r   )rV   r   r!   r   r   r"   r#   )r$   r+   r,   r*   rQ   rR   Znue_params_stata_resultsZnue_std_stata_resultsr   r   r   r-     s    zTestOmegaModel.test_resultsNr.   r   r   r   r   rU      s   
rU   c                   @   s    e Zd Zedd Zdd ZdS )TestPooledModelc                 C   s,   t jd ttjtjdddd| _d S )Nr   r:   FrA   T)	r   r   r   r   rD   r	   r
   r    pooled_modelr   r   r   r   r     s       zTestPooledModel.setup_classc                 C   s   | j j\}}}| j j\}}tdddg}tddg}tj||d d tj||d d tj||d	 d tj||d d tj||d d d S )
NgvX;@g
Y`@rP   g{)<hMV@g'
bNM@r   r   r   r   )rX   r   r!   r   r   r"   r#   )r$   r+   r,   r*   rQ   rR   Zpool_params_stata_resultsZpool_std_stata_resultsr   r   r   r-     s    zTestPooledModel.test_resultsNr.   r   r   r   r   rW     s   
rW   )Znumpyr   Zstatsmodels.datasets.ccard.datar   Zstatsmodels.stats.oaxacar   Zstatsmodels.tools.toolsr   rD   r	   rE   r
   r<   r=   r   r3   r9   r?   r@   rF   rH   rJ   rK   rS   rU   rW   r   r   r   r   <module>
   s,    
