
    M/Ph1                        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          Zej	         eej        d          cZZ G d d          Z G d	 d
          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          ZdS )    N)load_pandas)OaxacaBlinder)add_constantF)prependc                   *    e Zd Zed             Zd ZdS )
TestOaxacac                 F    t          t          t          d          | _        d S )N   r   endogexogmodelclss    c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/stats/tests/test_oaxaca.pysetup_classzTestOaxaca.setup_class   s    !%q11			    c                    t           j                            d           t          j        g d          }t          j        g d          }t          j        g d          }| 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@g	R@ rmr   gClY`@gzNz;@)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_pooledstata_results_stdendowcoefintergapunexpexp	endow_varcoef_var	inter_vars                r   test_resultszTestOaxaca.test_results   s   
	q!J!J!JKK!x(F(F(FGGH%H%H%HII"&*"7"7"9"9"@tUC*--//6sC)-)>)>t)D)D)H&	8Y

&&sM!,<a@@@

&&umA.>BBB

&&t]1-=qAAA

&&umA.>BBB

&&s,@,CQGGG

&&s,@,CQGGG

&&u.B1.EqIII

&&y2CA2FJJJ

&&x1B11EqIII

&&y2CA2FJJJJJr   N__name__
__module____qualname__classmethodr   r4    r   r   r   r      sA        2 2 [2K K K K Kr   r   c                   *    e Zd Zed             Zd ZdS )TestOaxacaNoSwapc                 J    t          t          t          dd          | _        d S )Nr
   Fswapr   r   s    r   r   zTestOaxacaNoSwap.setup_class3   s    !%qu===			r   c                 
   t          j        g d          }t          j        g d          }| 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 N)d]FcgTg]C_d@r   )rB   gClY`gzNz;r   r
   r   r   r   r    r   r!   r"   r#   r%   r&   	r'   r(   r)   r+   r,   r-   r.   r/   r0   s	            r   r4   zTestOaxacaNoSwap.test_results7   L   !L!L!LMM!x(I(I(IJJ"&*"7"7"9"9"@tUC*--//6sC

&&sM!,<a@@@

&&umA.>BBB

&&t]1-=qAAA

&&umA.>BBB

&&s,@,CQGGG

&&s,@,CQGGG

&&u.B1.EqIIIIIr   Nr5   r:   r   r   r<   r<   2   sA        > > [>J J J J Jr   r<   c                   *    e Zd Zed             Zd ZdS )TestOaxacaPandasc                 F    t          t          t          d          | _        d S )NOWNRENTr   pd_endogpd_exogr   r   s    r   r   zTestOaxacaPandas.setup_classG   s    !(GY??			r   c                 
   t          j        g d          }t          j        g d          }| 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   rC   rD   s	            r   r4   zTestOaxacaPandas.test_resultsK   L   !J!J!JKK!x(F(F(FGG"&*"7"7"9"9"@tUC*--//6sC

&&sM!,<a@@@

&&umA.>BBB

&&t]1-=qAAA

&&umA.>BBB

&&s,@,CQGGG

&&s,@,CQGGG

&&u.B1.EqIIIIIr   Nr5   r:   r   r   rG   rG   F   sD        @ @ [@J J J J Jr   rG   c                   *    e Zd Zed             Zd ZdS )TestOaxacaPandasNoSwapc                 J    t          t          t          dd          | _        d S )NrI   Fr>   rJ   r   s    r   r   z"TestOaxacaPandasNoSwap.setup_class[   s    !(GYUKKK			r   c                 
   t          j        g d          }t          j        g d          }| 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 rA   rC   rD   s	            r   r4   z#TestOaxacaPandasNoSwap.test_results_   rE   r   Nr5   r:   r   r   rQ   rQ   Z   sD        L L [LJ J J J Jr   rQ   c                   *    e Zd Zed             Zd ZdS )TestOaxacaNoConstPassedc                 r    t          t          j        j        t          j        j        dd          | _        d S )Nr
   Fhasconstr   	pandas_dfr   valuesr   r   r   s    r   r   z#TestOaxacaNoConstPassed.setup_classo   s/    !O"IN$91u
 
 
			r   c                 
   t          j        g d          }t          j        g d          }| 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 rN   rC   rD   s	            r   r4   z$TestOaxacaNoConstPassed.test_resultsu   rO   r   Nr5   r:   r   r   rU   rU   n   A        
 
 [

J J J J Jr   rU   c                   *    e Zd Zed             Zd ZdS )TestOaxacaNoSwapNoConstPassedc                 t    t          t          j        j        t          j        j        ddd          | _        d S )Nr
   FrX   r?   rY   r   s    r   r   z)TestOaxacaNoSwapNoConstPassed.setup_class   s5    !O"N!
 
 
			r   c                 
   t          j        g d          }t          j        g d          }| 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 rA   rC   rD   s	            r   r4   z*TestOaxacaNoSwapNoConstPassed.test_results   rE   r   Nr5   r:   r   r   r_   r_      A        
 
 [
J J J J Jr   r_   c                   *    e Zd Zed             Zd ZdS )TestOaxacaPandasNoConstPassedc                 ^    t          t          j        t          j        dd          | _        d S )NrI   FrW   r   rZ   r   r   r   r   s    r   r   z)TestOaxacaPandasNoConstPassed.setup_class   s)    !OY^Y
 
 
			r   c                 
   t          j        g d          }t          j        g d          }| 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 rN   rC   rD   s	            r   r4   z*TestOaxacaPandasNoConstPassed.test_results   rO   r   Nr5   r:   r   r   re   re      r]   r   re   c                   *    e Zd Zed             Zd ZdS )#TestOaxacaPandasNoSwapNoConstPassedc                 `    t          t          j        t          j        ddd          | _        d S )NrI   Fra   rg   r   s    r   r   z/TestOaxacaPandasNoSwapNoConstPassed.setup_class   s/    !ON
 
 
			r   c                 
   t          j        g d          }t          j        g d          }| 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 rA   rC   rD   s	            r   r4   z0TestOaxacaPandasNoSwapNoConstPassed.test_results   rE   r   Nr5   r:   r   r   rj   rj      rc   r   rj   c                   *    e Zd Zed             Zd ZdS )TestOneModelc                     t           j                            d           t          t          j        t          j        dd                              ddd          | _        d S )	Nr   rI   FrW   Tself_submittedr   two_fold_typesubmitted_weight)	r   r   r   r   rZ   r   r   r#   	one_modelr   s    r   r   zTestOneModel.setup_class   sT    
	q%OY^Y
 
 

(4'7!(
L
L 	r   c                 "   | j         j        \  }}}| j         j        \  }}t          j        g d          }t          j        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 )N)g~k	R@g~oӟT@3c@gA	3m%P@g/Q@r   r
   r   r   )rt   r"   r$   r   r    r%   r&   )r'   r/   r0   r.   	unexp_stdexp_stdone_params_stata_resultsone_std_stata_resultss           r   r4   zTestOneModel.test_results   s    ./sC!^/	7#%8,K,K,K#L#L  "(H)= > >

&&u.Fq.I1MMM

&&s,DQ,GKKK

&&s,DQ,GKKK

&&y2G2JANNN

&&w0Ea0H!LLLLLr   Nr5   r:   r   r   rn   rn      sD        M M [MM M M M Mr   rn   c                   *    e Zd Zed             Zd ZdS )TestZeroModelc                     t           j                            d           t          t          j        t          j        dd                              ddd          | _        d S )Nr   rI   FrW   Trp   rq   )	r   r   r   r   rZ   r   r   r#   
zero_modelr   s    r   r   zTestZeroModel.setup_class   sT    
	q&OY^Y
 
 

(4'7!(
L
L 	r   c                 "   | j         j        \  }}}| j         j        \  }}t          j        g d          }t          j        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 )N)g]C_dr   rv   g>yX5@r   r   r
   r   r   )r~   r"   r$   r   r    r%   r&   )r'   r/   r0   r.   rw   rx   zero_params_stata_resultszero_std_stata_resultss           r   r4   zTestZeroModel.test_results   s    /0sC!_0	7$&H-M-M-M$N$N!!#8Y*?!@!@

&&u.G.JANNN

&&s,Ea,H!LLL

&&s,Ea,H!LLL

&&y2H2KQOOO

&&w0Fq0I1MMMMMr   Nr5   r:   r   r   r|   r|      sD        M M [MN N N N Nr   r|   c                   *    e Zd Zed             Zd ZdS )TestOmegaModelc                     t           j                            d           t          t          j        t          j        dd                              dd          | _        d S )Nr   rI   FrW   Tnuemark)rr   )	r   r   r   r   rZ   r   r   r#   omega_modelr   s    r   r   zTestOmegaModel.setup_class   sQ    
	q'OY^Y
 
 

(4y(
1
1 	r   c                 "   | j         j        \  }}}| j         j        \  }}t          j        g d          }t          j        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 )N)g<1P3@g`9ga@rv   g}͍M@gC H@r   r
   r   r   )r   r"   r$   r   r    r%   r&   )r'   r/   r0   r.   rw   rx   nue_params_stata_resultsnue_std_stata_resultss           r   r4   zTestOmegaModel.test_results  s    *1sC!-1	7#%8,L,L,L#M#M  "(H)= > >

&&u.Fq.I1MMM

&&s,DQ,GKKK

&&s,DQ,GKKK

&&y2G2JANNN

&&w0Ea0H!LLLLLr   Nr5   r:   r   r   r   r      sA        2 2 [2M M M M Mr   r   c                   *    e Zd Zed             Zd ZdS )TestPooledModelc                     t           j                            d           t          t          j        t          j        dd                              d          | _        d S )Nr   rI   FrW   T)	r   r   r   r   rZ   r   r   r#   pooled_modelr   s    r   r   zTestPooledModel.setup_class  sN    
	q(OY^Y
 
 

(4.. 	r   c                 "   | j         j        \  }}}| j         j        \  }}t          j        g d          }t          j        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 )N)gvX;@g
Y`@rv   g{)<hMV@g'
bNM@r   r
   r   r   )r   r"   r$   r   r    r%   r&   )r'   r/   r0   r.   rw   rx   pool_params_stata_resultspool_std_stata_resultss           r   r4   zTestPooledModel.test_results  s    +2sC!.2	7$&H...%
 %
! "$9i*@!A!A

&&u.G.JANNN

&&s,Ea,H!LLL

&&s,Ea,H!LLL

&&y2H2KQOOO

&&w0Fq0I1MMMMMr   Nr5   r:   r   r   r   r     sA          [N N N N Nr   r   )numpyr   statsmodels.datasets.ccard.datar   statsmodels.stats.oaxacar   statsmodels.tools.toolsr   rZ   r   r[   r   rK   rL   r   r<   rG   rQ   rU   r_   re   rj   rn   r|   r   r   r:   r   r   <module>r      s       7 7 7 7 7 7 2 2 2 2 2 2 0 0 0 0 0 0KMM	|IN)5999O\\NE& & & '
K K K K K K K K6J J J J J J J J(J J J J J J J J(J J J J J J J J(J J J J J J J J,J J J J J J J J4J J J J J J J J,J J J J J J J J4M M M M M M M M,N N N N N N N N,M M M M M M M M,N N N N N N N N N Nr   