U
    Ãmœd$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   ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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@çœÄ °rÎmÀç–C‹lçY`@ç·zNzßð;@çÃGÄÔh„@g9µ3Lm%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ØcÀg�ÚÄÉýÒTÀg]þCúí_d@r   g–C‹lçY`Àg·zNzßð;À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@gÈA	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úí_dÀr   rP   g>yX¨5á„@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<1ëÅP†3@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 )
Ngv‹ÀXßð;@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   )Ú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,    ÿ
