
    !g                     |   d dl mZmZmZ d dlZd dlmZmZm	Z	 d dl
Zd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ  G d
 d      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z  G d de      Z! G d de      Z" G d de      Z# G d de      Z$ G d  d!e      Z%d" Z& G d# d$e      Z' G d% d&e      Z( G d' d(      Z) G d) d*      Z* G d+ d,      Z+ G d- d.      Z, G d/ d0      Z- G d1 d2e-      Z. G d3 d4e-      Z/ G d5 d6e-      Z0d7 Z1d8 Z2d9 Z3y):    )assert_series_equalassert_frame_equalmake_dataframeN)assert_equalassert_assert_raises)data)handle_formula_data)OLS)GLM)families)Logitc                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)
TestArraysc                 z   t         j                  j                  d      | _        t         j                  t        j                  d      t         j                  j                  d      f   | _        t        j                  | j                  | j
                        | _        d}d}t         j                  j                  |      x| _	        | _
        t         j                  j                  |      x| _        | _        t         j                  j                  ||f      x| _        | _        g d| _        d| _        d | _        y )N
   r         constx1x2y)nprandomendogc_onesexogsm_datahandle_datar	   
col_result	col_input
row_result	row_input
cov_result	cov_inputxnamesynames
row_labels)clsnrowsnvarss      ]/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/base/tests/test_data.pysetup_classzTestArrays.setup_class    s    II$$R(	55bii&6&6w&??@&&syy#((;)+)9)9%)@@)+)9)9%)@@)+)9)95%.)II*

    c                     t         j                  j                  | j                  j                  | j
                         t         j                  j                  | j                  j                  | j                         y N)r   testingr   r	   
orig_endogr   	orig_exogr    selfs    r/   	test_origzTestArrays.test_orig.   sF    


		 4 4djjA


		 3 3TYY?r1   c                     t         j                  j                  | j                  j                  | j                         t         j                  j                  | j                  j
                  | j
                         y r3   )r   r4   r   r	   r   r    r7   s    r/   test_endogexogzTestArrays.test_endogexog2   sB    


		<


				:r1   c                    | j                   }t        j                  j                  |j	                  | j
                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         y Ncolumnsrowscov)r	   r   r4   r   wrap_outputr$   r#   r&   r%   r(   r'   r8   r	   s     r/   test_attachzTestArrays.test_attach6   s    yy 	

 0 0 K $	1


 0 0 H $	1


 0 0 G $	1r1   c                     | j                   }t        j                  j                  |j                  | j                         t        j                  j                  |j
                  | j
                         y r3   )r	   r   r4   r   r)   r*   rB   s     r/   
test_nameszTestArrays.test_namesA   sC    yy


T[[9


T[[9r1   c                     t         j                  j                  t        j                  | j                  j
                  | j
                  k(               y r3   )r   r4   r   allr	   r+   r7   s    r/   test_labelszTestArrays.test_labelsF   s2     	

266$))"6"6$//"IJKr1   N)
__name__
__module____qualname__classmethodr0   r9   r;   rC   rE   rH    r1   r/   r   r      s/     @;	1:
Lr1   r   c                   .     e Zd Ze fd       Zd Z xZS )TestArrays2dEndogc                 \   t         |           t        j                  j                  d      | _        t        j
                  t        j                  d      t        j                  j                  d      f   | _        t        j                  | j                  | j                        | _
        y )N)r      r   r   )superr0   r   r   r   r   r   r    r!   r"   r	   r,   	__class__s    r/   r0   zTestArrays2dEndog.setup_classN   sl    II$$W-	55bii&6&6w&??@&&syy#((;r1   c                    t         j                  j                  | j                  j                  | j                  j                                t         j                  j                  | j                  j                  | j                         y r3   )r   r4   r   r	   r   squeezer    r7   s    r/   r;   z TestArrays2dEndog.test_endogexogU   sK    


		1C1C1EF


				:r1   )rI   rJ   rK   rL   r0   r;   __classcell__rT   s   @r/   rO   rO   M   s    < <;r1   rO   c                   .     e Zd Ze fd       Zd Z xZS )TestArrays1dExogc                 ,   t         |           t        j                  j                  d      | _        t        j                  j                  d      }t        j                  | j                  |      | _        |d d d f   | _        dg| _	        d| _
        y )Nr   r   r   )rR   r0   r   r   r   r!   r"   r	   r    r)   r*   )r,   r    rT   s     r/   r0   zTestArrays1dExog.setup_class[   so    II$$R(	yy#&&syy$74=V

r1   c                    t         j                  j                  | j                  j                  | j
                         t         j                  j                  | j                  j                  | j                  j                                y r3   )	r   r4   r   r	   r5   r   r6   r    rV   r7   s    r/   r9   zTestArrays1dExog.test_orige   sO    


		 4 4djjA


		 3 3TYY5F5F5HIr1   )rI   rJ   rK   rL   r0   r9   rW   rX   s   @r/   rZ   rZ   Z   s     Jr1   rZ   c                   .    e Zd Zed        Zd Zd Zd Zy)TestDataFramesc                    t        j                  t        j                  j                  d      dg      | _        t        j                  t        j                  j                  d      ddg      }|j                  ddd	       || _        t        j                  | j                  | j                        | _	        d}d
}t        j                  j                  |      | _
        t        j                  | j                  |j                        | _        t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  ||f      | _        t        j                  | j"                  |j                  |j                        | _        g d| _        d| _        | j                  j                  | _        y )Nr   y_1r>   r   x_1x_2r   r   rQ   r   indexre   r>   r   rb   rc   )pd	DataFramer   r   r   insertr    r!   r"   r	   r$   Seriesr>   r#   r&   re   r%   r(   r'   r)   r*   r+   r,   r    r-   r.   s       r/   r0   zTestDataFrames.setup_classk   sK   LL!1!1"!5wG	||BII,,W5%*EN4Aw"&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< -

r1   c                     t        | j                  j                  | j                         t        | j                  j                  | j
                         y r3   )r   r	   r5   r   r6   r    r7   s    r/   r9   zTestDataFrames.test_orig   s2    499//<499..		:r1   c                 @   t         j                  j                  | j                  j                  | j                  j
                  j                                t         j                  j                  | j                  j                  | j                  j
                         y r3   r   r4   r   r	   r   valuesrV   r    r7   s    r/   r;   zTestDataFrames.test_endogexog   sW    


		1B1B1J1J1LM


				0@0@Ar1   c                 <   | j                   }t        |j                  | j                  d      | j                         t        |j                  | j
                  d      | j                         t        |j                  | j                  d      | j                         y r=   )
r	   r   rA   r$   r#   r&   r%   r   r(   r'   rB   s     r/   rC   zTestDataFrames.test_attach   ss    yy 	D,,T^^YG OO	-D,,T^^VD OO	-4++DNNEB??	,r1   N)rI   rJ   rK   rL   r0   r9   r;   rC   rM   r1   r/   r^   r^   j   s$    ( (.;B	,r1   r^   c                       e Zd Zed        Zy)TestDataFramesWithMultiIndexc                    t        j                  t        j                  j                  d      dg      | _        t         j
                  j                  dgddgg      }t        j                  t        j                  j                  d      |      }t        j                  g d      }|j                  d	d
d       || _	        t        j                  | j                  | j                        | _        d}d}t        j                  j                  |      | _        t        j                  | j                  |      | _        t        j                  j                  |      | _        t        j                  | j                   |j"                        | _        t        j                  j                  ||f      | _        t        j                  | j&                  ||      | _        g d| _        d| _        | j                  j"                  | _        y )Nr   r`   ra   x12r   rg   r   r   rQ   r   rd   rf   )rh   ri   r   r   r   
MultiIndexfrom_productIndexrj   r    r!   r"   r	   r$   rk   r#   r&   re   r%   r(   r'   r)   r*   r+   )r,   mir    exog_flattened_idxr-   r.   s         r/   r0   z(TestDataFramesWithMultiIndex.setup_class   sc   LL!1!1"!5wG	]]''#c
(;<||BII,,W5rBXX&=>Aw"&&syy#((;		((/3==8JK		((/3==

C		((%8cmm,>.@B -

r1   N)rI   rJ   rK   rL   r0   rM   r1   r/   rs   rs      s    ( (r1   rs   c                   (     e Zd Ze fd       Z xZS )	TestListsc                    t         |           t        j                  j                  d      j	                         | _        t        j                  t        j                  d      t        j                  j                  d      f   j	                         | _        t        j                  | j
                  | j                        | _        y )Nr   r   )rR   r0   r   r   tolistr   r   r   r    r!   r"   r	   rS   s    r/   r0   zTestLists.setup_class   s~    II$$R(//1	55bii&6&6w&??@GGI&&syy#((;r1   )rI   rJ   rK   rL   r0   rW   rX   s   @r/   r~   r~      s    < <r1   r~   c                   (    e Zd Zed        Zd Zd Zy)TestListDataFramec                    t         j                  j                  d      j                         | _        t	        j
                  t         j                  j                  d      ddg      }|j                  ddd       || _        t        j                  | j                  | j                        | _
        d}d	}t         j                  j                  |      | _        t	        j                  | j                  |j                  
      | _        t         j                  j                  |      | _        t	        j                  | j                  |j                   
      | _        t         j                  j                  ||f      | _        t	        j
                  | j$                  |j                  |j                        | _        g d| _        d| _        | j                  j                   | _        y Nr   r   rb   rc   ra   r   r   rQ   r   rd   rf   rg   r   )r   r   r   r   rh   ri   rj   r    r!   r"   r	   r$   rk   r>   r#   r&   re   r%   r(   r'   r)   r*   r+   rl   s       r/   r0   zTestListDataFrame.setup_class   sG   II$$R(//1	||BII,,W5%*EN4Aw"&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< -

r1   c                    t         j                  j                  | j                  j                  | j                         t         j                  j                  | j                  j
                  | j
                  j                         y r3   r   r4   r   r	   r   r    rp   r7   s    r/   r;   z TestListDataFrame.test_endogexog   H    


		<


				0@0@Ar1   c                     t         j                  j                  | j                  j                  | j
                         t        | j                  j                  | j                         y r3   	r   r4   r   r	   r5   r   r   r6   r    r7   s    r/   r9   zTestListDataFrame.test_orig   <    


		 4 4djjA499..		:r1   NrI   rJ   rK   rL   r0   r;   r9   rM   r1   r/   r   r          ( (0B;r1   r   c                   (    e Zd Zed        Zd Zd Zy)TestDataFrameListc                    t        j                  t        j                  j                  d      dg      | _        t        j                  t        j                  j                  d      ddg      }|j                  ddd	       |j                  j                         | _        t        j                  | j                  | j                        | _        d}d
}t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  |      | _        t        j                  | j                   |j"                        | _        t        j                  j                  ||f      | _        t        j                  | j&                  |j                  |j                        | _        g d| _        d| _        | j                  j"                  | _        y Nr   r`   ra   r   r   r   r   r   rQ   r   rd   rf   r   )rh   ri   r   r   r   rj   rp   r   r    r!   r"   r	   r$   rk   r>   r#   r&   re   r%   r(   r'   r)   r*   r+   rl   s       r/   r0   zTestDataFrameList.setup_class   sX   LL!1!1"!5wG	||BII,,W5%)4L2Aw";;%%'&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< +

r1   c                 ,   t         j                  j                  | j                  j                  | j                  j
                  j                                t         j                  j                  | j                  j                  | j                         y r3   ro   r7   s    r/   r;   z TestDataFrameList.test_endogexog   Q    


		1B1B1J1J1LM


				:r1   c                     t        | j                  j                  | j                         t        j
                  j                  | j                  j                  | j                         y r3   	r   r	   r5   r   r   r4   r   r6   r    r7   s    r/   r9   zTestDataFrameList.test_orig   <    499//<


		 3 3TYY?r1   Nr   rM   r1   r/   r   r          ) )0;@r1   r   c                   (    e Zd Zed        Zd Zd Zy)TestArrayDataFramec                    t         j                  j                  d      | _        t        j                  t         j                  j                  d      ddg      }|j                  ddd       || _        t        j                  | j                  |      | _	        d}d	}t         j                  j                  |      | _
        t        j                  | j                  |j                  
      | _        t         j                  j                  |      | _        t        j                  | j                  |j                  
      | _        t         j                  j                  ||f      | _        t        j                  | j"                  |j                  |j                        | _        g d| _        d| _        | j                  j                  | _        y r   )r   r   r   rh   ri   rj   r    r!   r"   r	   r$   rk   r>   r#   r&   re   r%   r(   r'   r)   r*   r+   rl   s       r/   r0   zTestArrayDataFrame.setup_class   s:   II$$R(	||BII,,W5%*EN4Aw"&&syy$7		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< -

r1   c                    t         j                  j                  | j                  j                  | j                         t         j                  j                  | j                  j
                  | j
                  j                         y r3   r   r7   s    r/   r;   z!TestArrayDataFrame.test_endogexog  r   r1   c                     t         j                  j                  | j                  j                  | j
                         t        | j                  j                  | j                         y r3   r   r7   s    r/   r9   zTestArrayDataFrame.test_orig  r   r1   Nr   rM   r1   r/   r   r      r   r1   r   c                   (    e Zd Zed        Zd Zd Zy)TestDataFrameArrayc                    t        j                  t        j                  j                  d      dg      | _        t        j                  t        j                  j                  d      ddg      }|j                  ddd	       |j                  | _        t        j                  | j                  | j                        | _
        d}d
}t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  |      | _        t        j                  | j                  |j                         | _        t        j                  j                  ||f      | _        t        j                  | j$                  |j                  |j                        | _        g d| _        d| _        | j                  j                   | _        y r   )rh   ri   r   r   r   rj   rp   r    r!   r"   r	   r$   rk   r>   r#   r&   re   r%   r(   r'   r)   r*   r+   rl   s       r/   r0   zTestDataFrameArray.setup_class#  sO   LL!1!1"!5wG	||BII,,W5%)4L2Aw";;&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< +

r1   c                 ,   t         j                  j                  | j                  j                  | j                  j
                  j                                t         j                  j                  | j                  j                  | j                         y r3   ro   r7   s    r/   r;   z!TestDataFrameArray.test_endogexog<  r   r1   c                     t        | j                  j                  | j                         t        j
                  j                  | j                  j                  | j                         y r3   r   r7   s    r/   r9   zTestDataFrameArray.test_orig@  r   r1   Nr   rM   r1   r/   r   r   "  r   r1   r   c                   "    e Zd Zed        Zd Zy)TestSeriesDataFramec                    t        j                  t        j                  j                  d      d      | _        t        j
                  t        j                  j                  d      ddg      }|j                  dd	d
       || _        t        j                  | j                  | j                        | _
        d}d}t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  ||f      | _        t        j
                  | j"                  |j                  |j                        | _        g d| _        d| _        | j                  j                  | _        y )Nr   r`   namer   rb   rc   ra   r   r   rQ   r   rd   rf   rg   )rh   rk   r   r   r   ri   rj   r    r!   r"   r	   r$   r>   r#   r&   re   r%   r(   r'   r)   r*   r+   rl   s       r/   r0   zTestSeriesDataFrame.setup_classF  sI   IIbii..r2?	||BII,,W5%*EN4Aw"&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< -

r1   c                     t        | j                  j                  | j                         t	        | j                  j
                  | j                         y r3   )r   r	   r5   r   r   r6   r    r7   s    r/   r9   zTestSeriesDataFrame.test_orig_  s2    DII00$**=499..		:r1   N)rI   rJ   rK   rL   r0   r9   rM   r1   r/   r   r   E  s    ( (0;r1   r   c                   (    e Zd Zed        Zd Zd Zy)TestSeriesSeriesc                    t        j                  t        j                  j                  d      d      | _        t        j                  t        j                  j                  d      d      }|| _        t        j                  | j                  | j
                        | _        d}d}t        j                  j                  |      | _	        t        j                  | j                  |j                  g      | _        t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  ||f      | _        t        j                   | j                  |j                  g|j                  g      | _        dg| _        d| _        | j
                  j                  | _        y )Nr   r`   r   rb   rQ   rd   rf   )rh   rk   r   r   r   r    r!   r"   r	   r$   r   r#   r&   re   r%   r(   ri   r'   r)   r*   r+   rl   s       r/   r0   zTestSeriesSeries.setup_classe  s:   IIbii..r2?	yy))"-E:&&syy#((;		((/3==*.))6		((/3==)-5		((%8cmm-1YYK/3yyk; W

r1   c                     t        | j                  j                  | j                         t        | j                  j                  | j
                         y r3   )r   r	   r5   r   r6   r    r7   s    r/   r9   zTestSeriesSeries.test_orig|  s2    DII00$**=DII//;r1   c                 N   t         j                  j                  | j                  j                  | j                  j
                  j                                t         j                  j                  | j                  j                  | j                  j
                  d d d f          y r3   ro   r7   s    r/   r;   zTestSeriesSeries.test_endogexog  s`    


		1B1B1J1J1LM


				0@0@D0IJr1   N)rI   rJ   rK   rL   r0   r9   r;   rM   r1   r/   r   r   d  s    ( (,<Kr1   r   c                     ddl m}   |        j                  }dt        j                  |d         j                         j                         z  }dt        j                  |d         j                         j                         z  }|d   d d }|}|j                  |j                  d	      }t        t        j                  |      ||
      }t        j                  |      }t        j                  j                  t        t         g||f  y )Nr   load_pandasi  realinvrealgdprealintbfill)method)r   lrealgdplint)statsmodels.datasets.macrodatar   r	   r   logdiffdropnareindexre   dict	ones_likerh   ri   r4   r   
ValueErrorr   )	r   dgs_l_realinvgs_l_realgdpr   r   r   r	   r    s	            r/   test_alignmentr     s    :A)-224;;==L)-224;;==LY<DE ""4::g">Gbll4(7FD<<D JJZ=t}=r1   c                   "    e Zd Zed        Zd Zy)TestMultipleEqsArraysc                 "   t         j                  j                  d      | _        t         j                  t        j                  d      t         j                  j                  d      f   | _        t        j                  | j                  | j
                        | _        d}d}d}t         j                  j                  |      x| _	        | _
        t         j                  j                  |      x| _        | _        t         j                  j                  ||f      x| _        | _        t         j                  j                  ||f      x| _        | _        t        j"                  ||f      x| _        | _        g d| _        g d| _        d | _        y )Nr      r   r   r   r   r   )y1y2y3y4)r   r   r   r   r   r    r!   r"   r	   r#   r$   r%   r&   r'   r(   cov_eq_resultcov_eq_inputarraycol_eq_resultcol_eq_inputr)   r*   r+   )r,   r-   r.   neqss       r/   r0   z!TestMultipleEqsArrays.setup_class  s   II$$W-	55bii&6&6w&??@&&syy#((;)+)9)9%)@@)+)9)9%)@@)+)9)95%.)II/1yy/?/?t/MMC,/1xxu/FFC,*
-
r1   c                    | j                   }t        j                  j                  |j	                  | j
                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         t        j                  j                  |j	                  | j                  d      | j                         y Nr>   r?   r@   cov_eq
columns_eq)r	   r   r4   r   rA   r$   r#   r&   r%   r(   r'   r   r   r   r   rB   s     r/   rC   z!TestMultipleEqsArrays.test_attach  s    yy 	

 0 0 K $	1


 0 0 H $	1


 0 0 G $	1


 0 01B1BH M $ 2 2	4


 0 01B1B1=!? $ 2 2	4r1   NrI   rJ   rK   rL   r0   rC   rM   r1   r/   r   r     s      4r1   r   c                   "    e Zd Zed        Zd Zy)TestMultipleEqsDataFramesc                 x   t        j                  t        j                  j                  d      g d      x| _        }t        j                  t        j                  j                  d      ddg      }|j                  ddd	       || _        t        j                  | j                  | j                        | _	        d
}d}d}t        j                  j                  |      | _
        t        j                  | j                  |j                        | _        t        j                  j                  |      | _        t        j                  | j                  |j                        | _        t        j                  j                  ||f      | _        t        j                  | j"                  |j                  |j                        | _        t        j                  j                  ||f      | _        t        j                  | j&                  |j                  |j                        | _        t        j                  j                  ||f      | _        t        j                  | j*                  |j                  |j                        | _        g d| _        g d| _        | j                  j                  | _        y )Nr   )r`   y_2y_3y_4ra   r   rb   rc   r   r   rQ   r   r   r   rd   rf   rg   )rh   ri   r   r   r   rj   r    r!   r"   r	   r$   rk   r>   r#   r&   re   r%   r(   r'   r   r   r   r   r)   r*   r+   )r,   r   r    r-   r.   r   s         r/   r0   z%TestMultipleEqsDataFrames.setup_class  s   LL)9)9')B1MO 	O	E||BII,,W5%*EN4Aw"&&syy#((;		((/3==)-7		((/3==)-5		((%8cmm,0LL.2ll< 99++T4L9LL)9)9/4}}16@ 99++UDM:LL)9)9/3||16@ -
1
r1   c                    | j                   }t        |j                  | j                  d      | j                         t        |j                  | j
                  d      | j                         t        |j                  | j                  d      | j                         t        |j                  | j                  d      | j                         t        |j                  | j                  d      | j                         y r   )r	   r   rA   r$   r#   r&   r%   r   r(   r'   r   r   r   r   rB   s     r/   rC   z%TestMultipleEqsDataFrames.test_attach  s    yyD,,T^^YG OO	-D,,T^^VD OO	-4++DNNEB??	,4++D,=,=xH--	/4++D,=,=|L--	/r1   Nr   rM   r1   r/   r   r     s    ( (B/r1   r   c                       e Zd Zed        Zej                  j                  d        Zd Z	d Z
d Zd Zd Zd Zd	 Zd
 Zy)TestMissingArrayc                    t         j                  j                  d      }t         j                  j                  d      }t         j                  |d<   t         j                  |d<   t         j                  |d<   ||c| _        | _        y N)   r   r   r   )r   r   )   r   )r   r   nanr   Xr,   r   r   s      r/   r0   zTestMissingArray.setup_class  s`    IIW%IIR "&&$66%!sur1   c                     t        j                  t        j                  j                  d      t        j                  j                  d      d       y N   r   r   raise)r!   r"   r   r   r7   s    r/   test_raise_no_missingz&TestMissingArray.test_raise_no_missing  s7     	BII,,R0"))2B2B72K#	%r1   c                     t        j                  t              5  t        j                  | j
                  | j                  d       d d d        y # 1 sw Y   y xY wNr   pytestraises	Exceptionr!   r"   r   r   r7   s    r/   
test_raisezTestMissingArray.test_raise  =    ]]9% 	98	9 	9 	9   ,AAc                    | j                   }| j                  }t        j                  ||f   }t        j                  |      j                  d       }||   }||   }t        j                  | j                   | j                  d      }t        j                  j                  |j                  |       t        j                  j                  |j                  |       y NrQ   axisdrop)r   r   r   r   isnananyr!   r"   r4   assert_array_equalr   r    r8   r   r   combinedidxr	   s         r/   	test_dropzTestMissingArray.test_drop  s    FFFF55A;xx!%%1%--cFcF""4664666:


%%djj!4


%%dii3r1   c                 P   t        j                  | j                  | j                  dd      }t        j
                  j                  |j                  | j                         t        j
                  j                  |j                  | j                         |j                  dk(  sJ y NnoneF)hasconstr   )
r!   r"   r   r   r   r4   r   r   r    
k_constantrB   s     r/   	test_nonezTestMissingArray.test_none  sj    ""4664666EJ


%%djj$&&9


%%dii8!###r1   c                     t        j                  t              5  t        j                  | j
                  d d       d d d        y # 1 sw Y   y xY wr   r   r   r   r!   r"   r   r7   s    r/   test_endog_only_raisez&TestMissingArray.test_endog_only_raise  9    ]]9% 	7g6	7 	7 	7   "AAc                     | j                   }|t        j                  |          }t        j                  | j                   d d      }t        j
                  j                  |j                  |       y Nr   )r   r   r   r!   r"   r4   r   r   r8   r   r	   s      r/   test_endog_only_dropz%TestMissingArray.test_endog_only_drop  sN    FFrxx{lO""46648


%%djj!4r1   c                    | j                   }|t        j                  |      j                  d          }t	        j
                  | j                   d d      }t        j                  j                  |j                  |       y r   )	r   r   r   r   r!   r"   r4   r   r   r  s      r/   test_mv_endogzTestMissingArray.test_mv_endog  s[    FFrxx{A&&'""46648


%%djj!4r1   c                    t         j                  j                  d      }||j                  z   t        j                  t        j                  |            z
  }t	        j
                  | j                  | j                  d|      }t        j                  t         j                  | j                  | j                  f         j                  d       }||   d d |f   }t         j                  j                  |j                  |       y )N)r   r   r   )sigmarQ   r   )r   r   Tdiagr!   r"   r   r   r   r   r   r4   r   r  )r8   r  r	   r   s       r/   test_extra_kwargs_2dz%TestMissingArray.test_extra_kwargs_2d%  s    		  *"''"''%."99""4664666Gxxdffdffn-.222::c
1c6"


%%djj%8r1   c                    t         j                  j                  d      }t        j                  | j                  | j
                  d|      }t        j                  t         j                  | j                  | j
                  f         j                  d       }||   }t         j                  j                  |j                  |       y )Nr   r   )weightsrQ   r   )r   r   r!   r"   r   r   r   r   r   r4   r   r  )r8   r  r	   r   s       r/   test_extra_kwargs_1dz%TestMissingArray.test_extra_kwargs_1d-  s    ))""2&""46646667Kxxdffdffn-.222::#,


%%dllG<r1   N)rI   rJ   rK   rL   r0   r   marksmoker   r   r  r  r
  r  r  r  r  rM   r1   r/   r   r     sZ      [[% %
9
	4$7
559=r1   r   c                   ~    e Zd Zed        Zej                  j                  d        Zd Z	d Z
d Zd Zd Zd Zd	 Zy
)TestMissingPandasc                 Z   t         j                  j                  d      }t         j                  j                  d      }t         j                  |d<   t         j                  |d<   t         j                  |d<   t        j                  |      | _        t        j                  |      | _        y r   )r   r   r   rh   rk   r   ri   r   r   s      r/   r0   zTestMissingPandas.setup_class6  so    IIW%IIR "&&$66%		!Qr1   c                     t        j                  t        j                  t        j
                  j                  d            t        j                  t        j
                  j                  d            d       y r   )r!   r"   rh   rk   r   r   ri   r7   s    r/   r   z'TestMissingPandas.test_raise_no_missing@  sJ     	BIIbii&6&6r&:;LL)9)9')BC#	%r1   c                     t        j                  t              5  t        j                  | j
                  | j                  d       d d d        y # 1 sw Y   y xY wr   r   r7   s    r/   r   zTestMissingPandas.test_raiseG  r   r   c                    | j                   }| j                  }t        j                  ||f   }t        j                  |      j                  d       }|j                  |   }|j                  |   }t        j                  | j                   | j                  d      }t        j                  j                  |j                  |j                         t        |j                  | j                   j                  |          t        j                  j                  |j                  |j                         t!        |j"                  | j                  j                  |          y r   )r   r   r   r   r   r   locr!   r"   r4   r   r   rp   r   r5   r    r   r6   r   s         r/   r  zTestMissingPandas.test_dropL  s    FFFF55A;xx!%%1%--EE#JEE#J""4664666:


%%djj!((;DOOTVVZZ_=


%%dii:4>>466::c?;r1   c                 x   t        j                  | j                  | j                  dd      }t        j
                  j                  |j                  | j                  j                         t        j
                  j                  |j                  | j                  j                         |j                  dk(  sJ y r  )r!   r"   r   r   r   r4   r   r   rp   r    r  rB   s     r/   r  zTestMissingPandas.test_noneY  sr    ""4664666EJ


%%djj$&&--@


%%dii?!###r1   c                     t        j                  t              5  t        j                  | j
                  d d       d d d        y # 1 sw Y   y xY wr   r	  r7   s    r/   r
  z'TestMissingPandas.test_endog_only_raise_  r  r  c                     | j                   }|j                         }t        j                  | j                   d d      }t        j
                  j                  |j                  |j                         y r  )	r   r   r!   r"   r   r4   r   r   rp   r  s      r/   r  z&TestMissingPandas.test_endog_only_dropd  sJ    FFHHJ""46648


%%djj!((;r1   c                 @   | j                   }|j                  t        j                  |j                        j                  d          }t        j                  | j                   d d      }t        j                  j                  |j                  |j                         y r   )r   r#  r   r   rp   r   r!   r"   r4   r   r   r  s      r/   r  zTestMissingPandas.test_mv_endogj  sk    FFEE288AHH%))q)112""46648


%%djj!((;r1   c                     t        j                  g d      }t        j                  | j                  | j
                  d      }t        j                  j                  |j                  j                  |             y )N)r   rQ   r   r               	                           r               r   )rh   rz   r!   r"   r   r   r   r4   r   r+   equals)r8   labelsr	   s      r/   rH   zTestMissingPandas.test_labelsp  sS     ? @""4664666:


4??11&9:r1   N)rI   rJ   rK   rL   r0   r   r  r  r   r   r  r  r
  r  r  rH   rM   r1   r/   r  r  5  sU        [[% %9
<$7
<<;r1   r  c                   4    e Zd Zed        Zd Zd Zd Zd Zy)TestConstantc                 (    ddl m}  |       | _        y )Nr   r   )statsmodels.datasets.longleyr   r	   )r,   r   s     r/   r0   zTestConstant.setup_classx  s    <=r1   c                 z   | j                   j                  j                         }d|d<   t        j                  | j                   j
                  j                  |j                        }t        j                  j                  |j                  d       t        j                  j                  |j                  d       y NrQ   r   r*  r	   r    copyr!   r"   r   rp   r   r4   r   r  	const_idxr8   r    r	   s      r/   test_array_constantz TestConstant.test_array_constant}  su    yy~~""$W""499??#9#94;;G


3


2r1   c                 R   | j                   j                  j                         }d|d<   t        j                  | j                   j
                  |      }t        j                  j                  |j                  d       t        j                  j                  |j                  d       y rA  r	   r    rC  r!   r"   r   r   r4   r   r  rD  rE  s      r/   test_pandas_constantz!TestConstant.test_pandas_constant  sk    yy~~""$W""499??D9


3


2r1   c                 H   | j                   j                  j                         }t        j                  | j                   j
                  |      }t        j                  j                  |j                  d       t        j                  j                  |j                  d        y Nr   rH  rE  s      r/   test_pandas_noconstantz#TestConstant.test_pandas_noconstant  sb    yy~~""$""499??D9


3


5r1   c                 p   | j                   j                  j                         }t        j                  | j                   j
                  j                  |j                        }t        j                  j                  |j                  d       t        j                  j                  |j                  d        y rK  rB  rE  s      r/   test_array_noconstantz"TestConstant.test_array_noconstant  sl    yy~~""$""499??#9#94;;G


3


5r1   N)	rI   rJ   rK   rL   r0   rF  rI  rL  rN  rM   r1   r/   r=  r=  w  s(    ! !3366r1   r=  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestHandleMissingc                    t               }t        j                  |j                  g dg df<   ||j                  d      ||j                  dd     }}t        j                  ||d      \  }}|j                         }||j                  d      ||j                  dd     }}t        |d   |       t        |d   |       y 	Nr   r)  r   r   r   rQ   r   rQ   r   missingr    r   )
r   r   r   ilocr>   r!   handle_missingr   r   r   r8   dfr   r   r	   _y_expX_exps           r/   test_pandaszTestHandleMissing.test_pandas  s    )+
I%&"**Q- "RZZ^"41((Av>aYY["**Q-("RZZ^*<u4</DM51r1   c                    t         j                  j                  dd      }t         j                  |g dg df<   |d d df   |d d dd f   }}t	        j
                  ||d      \  }}t        j                  dt        	      }d
|g d<   ||df   }||dd f   }t         j                  j                  |d   |       t         j                  j                  |d   |       y )Nr   r   rS  rT  r   rQ   r   rU  )dtypeFr   r    )
r   r   randnr   r!   rX  r   boolr4   r   )	r8   arrr   r   r	   r[  
bools_maskr\  r]  s	            r/   test_arrayszTestHandleMissing.test_arrays  s    iioob!$%'VVJ	!"1a4y#ae*1((Av>aWWRt,
!&
:JM"JN#


%%d7mU;


%%d6lE:r1   c                    t               }t        j                  |j                  g dg df<   ||j                  d      ||j                  dd     j
                  }}t        j                  ||d      \  }}|j                         }||j                  d      ||j                  dd     j
                  }}t        j                  j                  |d   |       t        |d   |       y rR  )r   r   r   rW  r>   rp   r!   rX  r   r4   r   r   rY  s           r/   test_pandas_arrayz#TestHandleMissing.test_pandas_array  s    )+
I%&"**Q- "RZZ^"4";";1((Av>aYY["**Q-("RZZ^*<*C*Cu


%%d6lE:DM51r1   c                    t               }t        j                  |j                  g dg df<   ||j                  d      j
                  ||j                  dd     }}t        j                  ||d      \  }}|j                         }||j                  d      j
                  ||j                  dd     }}t        |d   |       t        j                  j                  |d   |       y rR  )r   r   r   rW  r>   rp   r!   rX  r   r   r4   r   rY  s           r/   test_array_pandasz#TestHandleMissing.test_array_pandas  s    )+
I%&"**Q- ''BJJqrN);1((Av>aYY["**Q-(//BJJqrN1Cu4</


%%d7mU;r1   c                 `   t               }t        j                  |j                  g dg df<   ||j                  d      ||j                  dd     }}t        j                  ||d      \  }}||j                  d      ||j                  dd     }}t        |d   |       t        |d   |       y )	NrS  rT  r   rQ   r  rU  r    r   )	r   r   r   rW  r>   r!   rX  r   r   rY  s           r/   	test_noopzTestHandleMissing.test_noop  s    )+
I%&"**Q- "RZZ^"41((Av>a"**Q-("RZZ^*<u4</DM51r1   N)rI   rJ   rK   r^  re  rg  ri  rk  rM   r1   r/   rP  rP    s    
2;	2	<2r1   rP  c                   "    e Zd Zd Zed        Zy)CheckHasConstantc                    t        | j                  | j                        D ]  \  }}| j                  | j                  |      }t        |j                  |d          t        |j                  j                  |d          |d   "t        |j                  j                  d u        n#t        |j                  j                  |d          t        | di       }	  |j                  di |}t        |j                  j                  |d          t        |j                  j                  j                  |d           y # t        j                  j                  $ r Y =w xY w)Nr   rQ   fit_kwdsrM   )zipexogsresultsmodr   r   r  r	   r   rD  getattrfitmodelr   linalgLinAlgError)r8   ru   resultrs  ro  ress         r/   test_hasconstzCheckHasConstant.test_hasconst  s   TZZ6 	CIAv((4661%C3,,fQi8ay **d23SXX//; tZ4HCcgg)) SYY116!9=SYY^^66q	B#	C 99(( s   D>>EEc           	         t         j                  j                  d       t         j                  j                  d      | _        | j                  dkD  j                  t              | _        t        j                  t        j                  d      t        j                  d      f      }d}t        j                  t        j                  d      dk  t        j                  d      dkD  f      j                  t              }d}t        j                  t        j                  d      t        j                  d      f      }d}t        j                  t        j                  d      t        j                  d      f      }d}t        j                  t        j                  d      dt        j                  d      z  f      }	d	}
t        j                  t        j                  d      t        j                  d
      f      }d	}t        j                  t        j                  d      t        j                  d
      g dz  f      }d}t        j                  t        j                  d      dk  t        j                  d      dkD  t        j                  d      f      j                  t              }d}t        j                  t        j                  d      dk  t        j                  d      dkD  t        j                  d      f      j                  t              }d}|||||	||||f	| _        |||||
||||f	| _        | j                          y )Nr   r   )rQ   r   g      %@)rQ   N)r   Nr         ?rQ   rQ   )r   r   )r}  rQ   rQ   )rQ   r   )r   r   seedra  y_castypeinty_bincolumn_stackr   zerosarangefloatrq  rr  _initialize)r,   r   result1r   result2x3result3x4result4x5result5x5bresult5bx5cresult5cx6result6x7result7s                      r/   r0   zCheckHasConstant.setup_class  sd    			q))//"%WWq[((-	__bggbk288B<89__biimd2 iimd24 55;VE] 	__biimRXXb\:;__biimRXXg->?@__bhhrlC"''"+,=>?ooryy}bggg.>?@ooryy}bggg.>.LMN__biimd2 iimd2 hhrl, --3VE] 	 __biimd2 iimd2 hhw/1 228&- 	 RRc2r:	'7H'3r1   N)rI   rJ   rK   r{  rL   r0   rM   r1   r/   rm  rm    s    C( ! !r1   rm  c                       e Zd Zed        Zy)TestHasConstantOLSc                 <    t         | _        | j                  | _        y r3   )r   rs  r  r   r,   s    r/   r  zTestHasConstantOLS._initialize  s     r1   NrI   rJ   rK   rL   r  rM   r1   r/   r  r    s     r1   r  c                   ,    e Zd Zed        Zed        Zy)TestHasConstantGLMc                 B    t        | |t        j                               S )N)family)r   r   Binomial)r   ru   s     r/   rs  zTestHasConstantGLM.mod  s    1a 1 1 344r1   c                 &    | j                   | _        y r3   )r  r   r  s    r/   r  zTestHasConstantGLM._initialize  s    		r1   N)rI   rJ   rK   staticmethodrs  rL   r  rM   r1   r/   r  r    s(    5 5  r1   r  c                       e Zd Zed        Zy)TestHasConstantLogitc                 N    t         | _        | j                  | _        ddi| _        y )NdispF)r   rs  r  r   ro  r  s    r/   r  z TestHasConstantLogit._initialize%  s    		r1   Nr  rM   r1   r/   r  r  #  s    ' 'r1   r  c                     t         j                  j                  d      } t        j                  |       }t         j                  j	                  dd      j                  d      |d<   d|d<   t        j                  t         j                  j	                  dd            }t         j                  j                  t        t        j                  ||       y )N)(   r   r   r  sizeobjectrQ   constant)r   r   rh   ri   randintr  rk   r4   r   r   r!   r"   )r   rZ  r   s      r/   test_dtype_objectr  ,  s     			!A	aBIIab)00:BqEBzN
		"))##AB#/0AJJZ)<)<aDr1   c                  P   t         j                  j                  d       t         j                  j                  d      } | j	                         }t         j
                  |ddg<   t         j                  j                  d      }|j	                         }t         j
                  |ddg<   t         j                  j                  d      }|j	                         }t         j
                  |dg<   t         j                  j                  d      }| |||||d	}t        j                  j                  |      }d|d
<   d}t        |d |dd      \  \  }	}
}}|d|d   d}t        j                  |	|
fi |}|j                         }t        |d   j                  |j                          t        |d
dg   j                  |j"                         t        |d   j                  |j$                         t        |d |dd      }|\  \  }	}
}}t         j                  j                  dd      }t         j
                  |ddgddgf<   |j'                  ||d       t        j                  |	|
fi |}g d}t        |j(                  |df   |j                          t        |j(                  |d
dgf   |j"                         t        ||   d d |f   |j$                         t        |d |dd      }|\  \  }	}
}}|j'                  ||d       t+        t,        t        j                  |	|
fi | y )NrQ   r   r   r)  r   r  r*  r/  )r   r   	y_missing	X_missingr  weights_missingr  zy_missing ~ X_missingr   )depthrV  r  )missing_idxrV  r  r   r   r  r,  r+  )r  r  )r   r   r*  r-  )r   r   r  ra  rC  r   uniformrh   ri   	from_dictr
   r!   r"   r   r   rp   r   r    r  updater#  r   r   )r   r  r   r  r  r  weights_wrong_sizer	   formular   r    r  design_infokwargs
model_data	data_nonatmp
weights_2dmodel_data2good_idxs                       r/   !test_formula_missing_extra_arraysr  9  s   IINN1 			AIIq!f
		AIIq!fiiR(GllnO66OQC,"".0D <<!!$'DD%G "5T4;<=C"E]eT+ )V/02F $$UD;F;JI3&&
(8(89J,-44jooF9%,,j.@.@A
dD'F
KC.1+MUD;R(J!#J1v1v~
MMj"-/ 0 %%eT<V<KH(C-(+*;*;<(Z$5568H8HIH%ak2K4G4GH
dD'F
KC.1+MUD;
MM0"-/ 0*g115$I&Ir1   c                     ddl m}  t        j                  d      d d d f   ddgz  }t        j                  g d      }t        j
                  |d<   t        | t        ||       t        j                  |d<   t        | t        ||       y )Nr   )MissingDataErrorr           g      ?)
g333333gr  gffffffg      r}  g?gg       g?r~  )	statsmodels.tools.sm_exceptionsr  r   r  r   infr   r   r   )r  ru   r   s      r/   test_raise_nonfinite_exogr    sk    @
		"ag"b*A
GHAffAdG"CA.ffAdG"CA.r1   )4statsmodels.compat.pandasr   r   r   numpyr   numpy.testingr   r   r   pandasrh   r   statsmodels.baser	   r!   statsmodels.formular
   #statsmodels.regression.linear_modelr   +statsmodels.genmod.generalized_linear_modelr   statsmodels.genmodr   #statsmodels.discrete.discrete_modelr   r   rO   rZ   r^   rs   r~   r   r   r   r   r   r   r   r   r   r   r  r=  rP  rm  r  r  r  r  r  r  rM   r1   r/   <module>r     sc     > >   , 3 3 ; ' 5+L +L\
;
 
;Jz J *,Z *,Z(> (2<
 < ;  ;F @  @F ;  ;F @  @F;. ;>K~ KB>* 4J  4F./ ./bD= D=N?; ?;D6 6B92 92x8 8v) ) '+ '
EFJR
/r1   