
    iu                     |   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_frame_equalassert_series_equalmake_dataframeN)assert_assert_equalassert_raises)data)Logit)handle_formula_data)families)GLM)OLSc                   :    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      f/home/ubuntu/crypto_trading_bot/.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 	

T^^Y7	
 	

T^^V4doo	
 	

T^^U3T__	
r1   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_namesD   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_labelsI   s2     	

266$))"6"6$//"IJKr1   N)
__name__
__module____qualname__classmethodr0   r9   r;   rC   rE   rH    r1   r/   r   r      s/     @;
:
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_classQ   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_endogexogX   sK    


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


				:r1   )rI   rJ   rK   rL   r0   r;   __classcell__rT   s   @r/   rO   rO   P   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_origh   sO    


		 4 4djjA


		 3 3TYY5F5F5HIr1   )rI   rJ   rK   rL   r0   r9   rW   rX   s   @r/   rZ   rZ   ]   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_classn   sA   LL!1!1"!5wG	||BII,,W5u~NAw"&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 -

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   so    yy 	T^^Y7	
 	D,,T^^VDdooV4++DNNEBDOOTr1   N)rI   rJ   rK   rL   r0   r9   r;   rC   rM   r1   r/   r^   r^   m   s%    ( ((;BU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MM!3=O
 -

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   s=   II$$R(//1	||BII,,W5u~NAw"&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 -

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          ( (*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   sN   LL!1!1"!5wG	||BII,,W5d|LAw";;%%'&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 +

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      s    ) )*;@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   s0   II$$R(	||BII,,W5u~NAw"&&syy$7		((/3==E		((/3==

C		((%8MMt||
 -

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  sJ   LL!1!1"!5wG	||IIW%d|
 	Aw";;&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 +

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_endogexog1  r   r1   c                     t        | j                  j                  | j                         t        j
                  j                  | j                  j                  | j                         y r3   r   r7   s    r/   r9   zTestDataFrameArray.test_orig5  r   r1   Nr   rM   r1   r/   r   r     s    ) ).;@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_class;  s?   IIbii..r2?	||BII,,W5u~NAw"&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 -

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_origQ  s2    DII00$**=499..		:r1   N)rI   rJ   rK   rL   r0   r9   rM   r1   r/   r   r   :  s    ( (*;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_classW  s3   IIbii..r2?	yy))"-E:&&syy#((;		((/3==D		((/3==

C		((%8MM$))tyyk
 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_origl  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_endogexogp  s`    


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


				0@0@D0IJr1   N)rI   rJ   rK   rL   r0   r9   r;   rM   r1   r/   r   r   V  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   u  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 	

T^^Y7	
 	

T^^V4doo	
 	

T^^U3T__	
 	

T..94;M;M	
 	

T..=t?Q?Q	
r1   NrI   rJ   rK   rL   r0   rC   rM   r1   r/   r   r     s      
r1   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IIW%/K
 	
	E ||BII,,W5u~NAw"&&syy#((;		((/3==E		((/3==

C		((%8MMt||
 99++T4L9LLEMM5==
 99++UDM:LLDLL%--
 -
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T^^Y7	
 	D,,T^^VDdooV4++DNNEBDOOTT..94;M;M	
 	T..=t?Q?Q	
r1   Nr   rM   r1   r/   r   r     s    ( (>
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  s4     	BII,,R0"))2B2B72KWUr1   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     s\      [[V V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_class(  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_missing2  sK     	IIbii&&r*+LL))'23	
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_raise;  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_drop@  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_noneM  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_raiseS  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_dropX  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_endog^  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_labelsd  sT    
4 ""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  '  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_class  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 r@  r	   r    rB  r!   r"   r   r   r4   r   r  rC  rD  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   rG  rD  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 rJ  rA  rD  s      r/   test_array_noconstantz"TestConstant.test_array_noconstant  sl    yy~~""$""499??#9#94;;G


3


5r1   N)	rI   rJ   rK   rL   r0   rE  rH  rK  rM  rM   r1   r/   r<  r<    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   rR  rS  r   rQ   r   rT  )dtypeFr   r    )
r   r   randnr   r!   rW  r   boolr4   r   )	r8   arrr   r   r	   rZ  
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 rQ  )r   r   r   rV  r>   rp   r!   rW  r   r4   r   r   rX  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 rQ  )r   r   r   rV  r>   rp   r!   rW  r   r   r4   r   rX  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 )	NrR  rS  r   rQ   r  rT  r    r   )	r   r   r   rV  r>   r!   rW  r   r   rX  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]  rd  rf  rh  rj  rM   r1   r/   rO  rO    s    
2;	2	<2r1   rO  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   rC  getattrfitmodelr   linalgLinAlgError)r8   ru   resultrr  rn  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   seedr`  y_castypeinty_bincolumn_stackr   zerosarangefloatrp  rq  _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  sb    			q))//"%WWq[((-	__bggbk288B<89__biimd2BIIbMD4HIJQQRWX__biimRXXb\:;__biimRXXg->?@__bhhrlC"''"+,=>?ooryy}bggg.>?@ooryy}bggg.>.LMN__YYr]T!299R=4#7"F

&- 	 __YYr]T!299R=4#7'9JK

&- 	 RRc2r:	

 	r1   N)rI   rJ   rK   rz  rL   r0   rM   r1   r/   rl  rl    s    C( ) )r1   rl  c                       e Zd Zed        Zy)TestHasConstantOLSc                 <    t         | _        | j                  | _        y r3   )r   rr  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/   rr  zTestHasConstantGLM.mod/  s    1a 1 1 344r1   c                 &    | j                   | _        y r3   )r  r   r  s    r/   r  zTestHasConstantGLM._initialize3  s    		r1   N)rI   rJ   rK   staticmethodrr  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
   rr  r  r   rn  r  s    r/   r  z TestHasConstantLogit._initialize:  s    		r1   Nr  rM   r1   r/   r  r  8  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                  t              5  t        j                  ||       d d d        y # 1 sw Y   y xY w)N)(   r   r   r  sizeobjectrQ   constant)r   r   rh   ri   randintr  rk   r   r   r   r!   r"   )r   rY  r   s      r/   test_dtype_objectr  A  s     			!A	aBIIab)00:BqEBzN
		"))##AB#/0A	z	" #Ar"# # #s   :CC#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   )depthrU  r  )missing_idxrU  r  r   r   r  r+  r*  )r  r  )r   r   r)  r,  )r   r   r~  r`  rB  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  N  s   IINN1 			AIIq!f
		AIIq!fiiR(GllnO66OQC, *D <<!!$'DD%G0CdG1f1-]eTK
 #)*F $$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EF%%eT<V<KH(C-(+*;*;<(Z$5568H8HIH%ak2K4G4GH
dD'F
KC.1+MUD;
MM0MN*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C:.A
IJAffAdG"CA.ffAdG"CA.r1   )4statsmodels.compat.pandasr   r   r   numpyr   numpy.testingr   r   r   pandasrh   r   statsmodels.baser	   r!   #statsmodels.discrete.discrete_modelr
   statsmodels.formular   statsmodels.genmodr   +statsmodels.genmod.generalized_linear_modelr   #statsmodels.regression.linear_modelr   r   rO   rZ   r^   rs   r~   r   r   r   r   r   r   r   r   r   r   r  r<  rO  rl  r  r  r  r  r  r  rM   r1   r/   <module>r     sg     > >   , 5 3 ' ; 3.L .Lb
;
 
;Jz J &UZ &UR(> (2<
 <; ;@@ @@; ;@@ @D;. ;8K~ K>>*$
J $
N-
 -
`C= C=LY; Y;x6 6D92 92x@ @F) ) '+ '
#HJV/r1   