
    M/Ph                        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 Z3dS ):    )assert_series_equalassert_frame_equalmake_dataframeN)assert_equalassert_assert_raises)data)handle_formula_data)OLS)GLM)families)Logitc                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )
TestArraysc                 b   t           j                            d          | _        t           j        t          j        d          t           j                            d          f         | _        t          j        | j        | j                  | _        d}d}t           j                            |          x| _	        | _
        t           j                            |          x| _        | _        t           j                            ||f          x| _        | _        g d| _        d| _        d | _        d S )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/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/base/tests/test_data.pysetup_classzTestArrays.setup_class    s    I$$R((	5bi&6&6w&?&??@&sy#(;;)+)9)9%)@)@@)+)9)9%)@)@@)+)9)95%.)I)II***

    c                     t           j                            | j        j        | j                   t           j                            | j        j        | j                   d S N)r   testingr   r	   
orig_endogr   	orig_exogr    selfs    r/   	test_origzTestArrays.test_orig.   sF    

	 4djAAA

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

	<<<

		:::::r1   c                    | j         }t          j                            |                    | j        d          | j                   t          j                            |                    | j        d          | j                   t          j                            |                    | j	        d          | j
                   d S 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    y 	
 0 0 K K $	1 	1 	1

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

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

T[999

T[99999r1   c                     t           j                            t          j        | j        j        | j        k                         d S r3   )r   r4   r   allr	   r+   r7   s    r/   test_labelszTestArrays.test_labelsF   s6     	
26$)"6$/"IJJKKKKKr1   N)
__name__
__module____qualname__classmethodr0   r9   r;   rC   rE   rH    r1   r/   r   r      s          [@ @ @; ; ;	1 	1 	1: : :
L L L L Lr1   r   c                   4     e Zd Ze fd            Zd Z xZS )TestArrays2dEndogc                 h   t                                                       t          j                            d          | _        t          j        t          j        d          t          j                            d          f         | _        t          j	        | j        | j                  | _
        d S )N)r      r   r   )superr0   r   r   r   r   r   r    r!   r"   r	   r,   	__class__s    r/   r0   zTestArrays2dEndog.setup_classN   sw    I$$W--	5bi&6&6w&?&??@&sy#(;;r1   c                     t           j                            | j        j        | j                                                   t           j                            | j        j        | j                   d S r3   )r   r4   r   r	   r   squeezer    r7   s    r/   r;   z TestArrays2dEndog.test_endogexogU   sP    

	1C1C1E1EFFF

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


r1   c                     t           j                            | j        j        | j                   t           j                            | j        j        | j                                                   d S r3   )	r   r4   r   r	   r5   r   r6   r    rV   r7   s    r/   r9   zTestArrays1dExog.test_orige   sR    

	 4djAAA

	 3TY5F5F5H5HIIIIIr1   )rI   rJ   rK   rL   r0   r9   rW   rX   s   @r/   rZ   rZ   Z   sX            [J J J J J J Jr1   rZ   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestDataFramesc                 v   t          j        t          j                            d          dg          | _        t          j        t          j                            d          ddg          }|                    ddd	           || _        t          j        | j        | j                  | _	        d}d
}t          j                            |          | _
        t          j        | j
        |j                  | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S )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   sn   L!1!1"!5!5wGGG	|BI,,W55%*EN4 4 4Aw"""&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < -,,

r1   c                     t          | j        j        | j                   t          | j        j        | j                   d S r3   )r   r	   r5   r   r6   r    r7   s    r/   r9   zTestDataFrames.test_orig   s6    49/<<<49.	:::::r1   c                     t           j                            | j        j        | j        j                                                   t           j                            | j        j        | j        j                   d S r3   r   r4   r   r	   r   valuesrV   r    r7   s    r/   r;   zTestDataFrames.test_endogexog   sV    

	1B1J1J1L1LMMM

		0@AAAAAr1   c                 (   | j         }t          |                    | j        d          | j                   t          |                    | j        d          | j                   t          |                    | j        d          | j	                   d S r=   )
r	   r   rA   r$   r#   r&   r%   r   r(   r'   rB   s     r/   rC   zTestDataFrames.test_attach   s    y 	D,,T^YGG O	- 	- 	-D,,T^VDD O	- 	- 	-4++DNEBB?	, 	, 	, 	, 	,r1   N)rI   rJ   rK   rL   r0   r9   r;   rC   rM   r1   r/   r^   r^   j   s]        ( ( [(.; ; ;B B B	, 	, 	, 	, 	,r1   r^   c                   $    e Zd Zed             ZdS )TestDataFramesWithMultiIndexc                    t          j        t          j                            d          dg          | _        t           j                            dgddgg          }t          j        t          j                            d          |          }t          j        g d          }|                    d	d
d           || _	        t          j        | j        | j	                  | _        d}d}t          j                            |          | _        t          j        | j        |          | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        ||          | _        g d| _        d| _        | j	        j        | _        d S )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   s   L!1!1"!5!5wGGG	]''#c
(;<<|BI,,W55rBBBX&=&=&=>>Aw"""&sy#(;;	((//3=8JKKK	((//3=
CCC	((%88cm,>.@B B 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                            d                                          | _        t          j        t          j        d          t          j                            d          f                                         | _        t          j
        | j        | j                  | _        d S )Nr   r   )rR   r0   r   r   tolistr   r   r   r    r!   r"   r	   rS   s    r/   r0   zTestLists.setup_class   s    I$$R((//11	5bi&6&6w&?&??@GGII&sy#(;;r1   )rI   rJ   rK   rL   r0   rW   rX   s   @r/   r~   r~      sB        < < < < [< < < < <r1   r~   c                   0    e Zd Zed             Zd Zd ZdS )TestListDataFramec                 p   t           j                            d                                          | _        t	          j        t           j                            d          ddg          }|                    ddd           || _        t          j	        | j        | j                  | _
        d}d	}t           j                            |          | _        t	          j        | j        |j        
          | _        t           j                            |          | _        t	          j        | j        |j        
          | _        t           j                            ||f          | _        t	          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S 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   si   I$$R((//11	|BI,,W55%*EN4 4 4Aw"""&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < -,,

r1   c                     t           j                            | j        j        | j                   t           j                            | j        j        | j        j                   d S r3   r   r4   r   r	   r   r    rp   r7   s    r/   r;   z TestListDataFrame.test_endogexog   G    

	<<<

		0@AAAAAr1   c                     t           j                            | j        j        | j                   t          | j        j        | j                   d S r3   	r   r4   r   r	   r5   r   r   r6   r    r7   s    r/   r9   zTestListDataFrame.test_orig   >    

	 4djAAA49.	:::::r1   NrI   rJ   rK   rL   r0   r;   r9   rM   r1   r/   r   r      N        ( ( [(0B B B; ; ; ; ;r1   r   c                   0    e Zd Zed             Zd Zd ZdS )TestDataFrameListc                    t          j        t          j                            d          dg          | _        t          j        t          j                            d          ddg          }|                    ddd	           |j                                        | _        t          j
        | j        | j                  | _        d}d
}t          j                            |          | _        t          j        | j        |j                  | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S 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   s|   L!1!1"!5!5wGGG	|BI,,W55%)4L2 2 2Aw""";%%''&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < +**

r1   c                     t           j                            | j        j        | j        j                                                   t           j                            | j        j        | j                   d S r3   ro   r7   s    r/   r;   z TestDataFrameList.test_endogexog   S    

	1B1J1J1L1LMMM

		:::::r1   c                     t          | j        j        | j                   t          j                            | j        j        | j                   d S r3   	r   r	   r5   r   r   r4   r   r6   r    r7   s    r/   r9   zTestDataFrameList.test_orig   >    49/<<<

	 3TY?????r1   Nr   rM   r1   r/   r   r      P        ) ) [)0; ; ;@ @ @ @ @r1   r   c                   0    e Zd Zed             Zd Zd ZdS )TestArrayDataFramec                 B   t           j                            d          | _        t          j        t           j                            d          ddg          }|                    ddd           || _        t          j        | j        |          | _	        d}d	}t           j                            |          | _
        t          j        | j
        |j        
          | _        t           j                            |          | _        t          j        | j        |j        
          | _        t           j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S 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[   I$$R((	|BI,,W55%*EN4 4 4Aw"""&sy$77	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < -,,

r1   c                     t           j                            | j        j        | j                   t           j                            | j        j        | j        j                   d S r3   r   r7   s    r/   r;   z!TestArrayDataFrame.test_endogexog  r   r1   c                     t           j                            | j        j        | j                   t          | j        j        | j                   d S r3   r   r7   s    r/   r9   zTestArrayDataFrame.test_orig  r   r1   Nr   rM   r1   r/   r   r      r   r1   r   c                   0    e Zd Zed             Zd Zd ZdS )TestDataFrameArrayc                    t          j        t          j                            d          dg          | _        t          j        t          j                            d          ddg          }|                    ddd	           |j        | _        t          j	        | j        | j                  | _
        d}d
}t          j                            |          | _        t          j        | j        |j                  | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S 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#  sp   L!1!1"!5!5wGGG	|BI,,W55%)4L2 2 2Aw""";&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < +**

r1   c                     t           j                            | j        j        | j        j                                                   t           j                            | j        j        | j                   d S r3   ro   r7   s    r/   r;   z!TestDataFrameArray.test_endogexog<  r   r1   c                     t          | j        j        | j                   t          j                            | j        j        | j                   d S 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dS )TestSeriesDataFramec                 t   t          j        t          j                            d          d          | _        t          j        t          j                            d          ddg          }|                    dd	d
           || _        t          j	        | j        | j                  | _
        d}d}t          j                            |          | _        t          j        | j        |j                  | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        d| _        | j        j        | _        d S )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  sl   Ibi..r22???	|BI,,W55%*EN4 4 4Aw"""&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < -,,

r1   c                     t          | j        j        | j                   t	          | j        j        | j                   d S r3   )r   r	   r5   r   r   r6   r    r7   s    r/   r9   zTestSeriesDataFrame.test_orig_  s6    DI0$*===49.	:::::r1   N)rI   rJ   rK   rL   r0   r9   rM   r1   r/   r   r   E  s<        ( ( [(0; ; ; ; ;r1   r   c                   0    e Zd Zed             Zd Zd ZdS )TestSeriesSeriesc                 F   t          j        t          j                            d          d          | _        t          j        t          j                            d          d          }|| _        t          j        | j        | j                  | _        d}d}t          j                            |          | _	        t          j        | j	        |j
        g          | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j
        g|j
        g          | _        dg| _        d| _        | j        j        | _        d S )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  sM   Ibi..r22???	y))"--E:::&sy#(;;	((//3=*.)6 6 6	((//3=)-5 5 5	((%88cm-1YK/3yk; ; ; W

r1   c                     t          | j        j        | j                   t          | j        j        | j                   d S r3   )r   r	   r5   r   r6   r    r7   s    r/   r9   zTestSeriesSeries.test_orig|  s6    DI0$*===DI/;;;;;r1   c                    t           j                            | j        j        | j        j                                                   t           j                            | j        j        | j        j        d d d f                    d S r3   ro   r7   s    r/   r;   zTestSeriesSeries.test_endogexog  sc    

	1B1J1J1L1LMMM

		0@D0IJJJJJr1   N)rI   rJ   rK   rL   r0   r9   r;   rM   r1   r/   r   r   d  sP        ( ( [(,< < <K K K K Kr1   r   c                  H   ddl m}   |             j        }dt          j        |d                                                                                   z  }dt          j        |d                                                                                   z  }|d         d d         }|}|                    |j        d	          }t          t          j
        |          ||
          }t          j        |          }t          j        j        t          t           g||fR   d S )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4;;===L)--2244;;===LY<DE ""4:g">>Gbl4((7FFFD<D JZ=t}======r1   c                   *    e Zd Zed             Zd ZdS )TestMultipleEqsArraysc                    t           j                            d          | _        t           j        t          j        d          t           j                            d          f         | _        t          j        | j        | j                  | _        d}d}d}t           j                            |          x| _	        | _
        t           j                            |          x| _        | _        t           j                            ||f          x| _        | _        t           j                            ||f          x| _        | _        t          j        ||f          x| _        | _        g d| _        g d| _        d | _        d S )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  s0   I$$W--	5bi&6&6w&?&??@&sy#(;;)+)9)9%)@)@@)+)9)9%)@)@@)+)9)95%.)I)II/1y/?/?t/M/MMC,/1xu/F/FFC,***
---
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                   d S 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   y 	
 0 0 K K $	1 	1 	1

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

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

 0 01BH M M $ 2	4 	4 	4

 0 01B1=!? !? $ 2	4 	4 	4 	4 	4r1   NrI   rJ   rK   rL   r0   rC   rM   r1   r/   r   r     s<          [ 4 4 4 4 4r1   r   c                   *    e Zd Zed             Zd ZdS )TestMultipleEqsDataFramesc                    t          j        t          j                            d          g d          x| _        }t          j        t          j                            d          ddg          }|                    ddd	           || _        t          j        | j        | j                  | _	        d
}d}d}t          j                            |          | _
        t          j        | j
        |j                  | _        t          j                            |          | _        t          j        | j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        t          j                            ||f          | _        t          j        | j        |j        |j                  | _        g d| _        g d| _        | j        j        | _        d S )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!   L)9)9')B)B1M1M1MO O O 	O	E|BI,,W55%*EN4 4 4Aw"""&sy#(;;	((//3=)-7 7 7	((//3=)-5 5 5	((%88cm,0L.2l< < < 9++T4L99L)9/4}16@ @ @ 9++UDM::L)9/3|16@ @ @ -,,
111
r1   c                    | j         }t          |                    | j        d          | j                   t          |                    | j        d          | j                   t          |                    | j        d          | j	                   t          |                    | j
        d          | j                   t          |                    | j        d          | j                   d S r   )r	   r   rA   r$   r#   r&   r%   r   r(   r'   r   r   r   r   rB   s     r/   rC   z%TestMultipleEqsDataFrames.test_attach  s    yD,,T^YGG O	- 	- 	-D,,T^VDD O	- 	- 	-4++DNEBB?	, 	, 	,4++D,=xHH-	/ 	/ 	/4++D,=|L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dS )TestMissingArrayc                     t           j                            d          }t           j                            d          }t           j        |d<   t           j        |d<   t           j        |d<   ||c| _        | _        d S N)   r   r   r   )r   r   )   r   )r   r   nanr   Xr,   r   r   s      r/   r0   zTestMissingArray.setup_class  s`    IW%%IR  "&$6%!suuur1   c                     t          j        t          j                            d          t          j                            d          d           d S N   r   r   raise)r!   r"   r   r   r7   s    r/   test_raise_no_missingz&TestMissingArray.test_raise_no_missing  sJ     	BI,,R00")2B2B72K2K#	% 	% 	% 	% 	%r1   c                     t          j        t                    5  t          j        | j        | j        d           d d d            d S # 1 swxY w Y   d S Nr   pytestraises	Exceptionr!   r"   r   r   r7   s    r/   
test_raisezTestMissingArray.test_raise      ]9%% 	9 	9888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9   !AAAc                    | j         }| j        }t          j        ||f         }t          j        |                              d           }||         }||         }t          j        | j         | j        d          }t          j        	                    |j
        |           t          j        	                    |j        |           d S 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    FF5A;x!!%%1%---cFcF"46466::

%%dj!444

%%di33333r1   c                    t          j        | j        | j        dd          }t          j                            |j        | j                   t          j                            |j        | j                   |j	        dk    sJ d S NnoneF)hasconstr   )
r!   r"   r   r   r   r4   r   r   r    
k_constantrB   s     r/   	test_nonezTestMissingArray.test_none  sp    "46466EJJJ

%%dj$&999

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

%%dj!44444r1   c                     | j         }|t          j        |                              d                    }t	          j        | j         d d          }t          j                            |j        |           d S r   )	r   r   r   r   r!   r"   r4   r   r   r  s      r/   test_mv_endogzTestMissingArray.test_mv_endog  sb    Frx{{A&&&'"46488

%%dj!44444r1   c                    t           j                            d          }||j        z   t          j        t          j        |                    z
  }t	          j        | j        | j        d|          }t          j        t           j	        | j        | j        f                   
                    d           }||         d d |f         }t           j                            |j        |           d S )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9"46466GGGxdfdfn-..222:::c
111c6"

%%dj%88888r1   c                 l   t           j                            d          }t          j        | j        | j        d|          }t          j        t           j        | j        | j        f                                       d           }||         }t           j	        
                    |j        |           d S )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&&"464667KKKxdfdfn-..222:::#,

%%dlG<<<<<r1   N)rI   rJ   rK   rL   r0   r   marksmoker   r   r  r  r
  r  r  r  r  rM   r1   r/   r   r     s          [ [% % %
9 9 9
	4 	4 	4$ $ $7 7 7
5 5 55 5 59 9 9= = = = =r1   r   c                   x    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
S )TestMissingPandasc                 @   t           j                            d          }t           j                            d          }t           j        |d<   t           j        |d<   t           j        |d<   t          j        |          | _        t          j        |          | _        d S r   )r   r   r   rh   rk   r   ri   r   r   s      r/   r0   zTestMissingPandas.setup_class6  so    IW%%IR  "&$6%	!Qr1   c                     t          j        t          j        t          j                            d                    t          j        t          j                            d                    d           d S r   )r!   r"   rh   rk   r   r   ri   r7   s    r/   r   z'TestMissingPandas.test_raise_no_missing@  s_     	BIbi&6&6r&:&:;;L)9)9')B)BCC#	% 	% 	% 	% 	%r1   c                     t          j        t                    5  t          j        | j        | j        d           d d d            d S # 1 swxY w Y   d S r   r   r7   s    r/   r   zTestMissingPandas.test_raiseG  r   r   c                 L   | j         }| j        }t          j        ||f         }t          j        |                              d           }|j        |         }|j        |         }t          j        | j         | j        d          }t          j	        
                    |j        |j                   t          |j        | j         j        |                    t          j	        
                    |j        |j                   t!          |j        | j        j        |                    d S 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    FF5A;x!!%%1%---E#JE#J"46466::

%%dj!(;;;DOTVZ_===

%%di:::4>46:c?;;;;;r1   c                     t          j        | j        | j        dd          }t          j                            |j        | j        j                   t          j                            |j	        | j        j                   |j
        dk    sJ d S r  )r!   r"   r   r   r   r4   r   r   rp   r    r  rB   s     r/   r  zTestMissingPandas.test_noneY  st    "46466EJJJ

%%dj$&-@@@

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

%%dj!(;;;;;r1   c                    | j         }|j        t          j        |j                                      d                    }t          j        | j         d d          }t          j        	                    |j
        |j                   d S r   )r   r#  r   r   rp   r   r!   r"   r4   r   r   r  s      r/   r  zTestMissingPandas.test_mv_endogj  sm    FE28AH%%))q)1112"46488

%%dj!(;;;;;r1   c                     t          j        g d          }t          j        | j        | j        d          }t          j                            |j	        
                    |                     d S )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  sh     ? ? ? @ @"46466::

4?11&9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  s            [  [% % %9 9 9
< < <$ $ $7 7 7
< < << < <; ; ; ; ;r1   r  c                   <    e Zd Zed             Zd Zd Zd Zd ZdS )TestConstantc                 0    ddl m}  |            | _        d S )Nr   r   )statsmodels.datasets.longleyr   r	   )r,   r   s     r/   r0   zTestConstant.setup_classx  s%    <<<<<<;==r1   c                 2   | j         j                                        }d|d<   t          j        | j         j        j        |j                  }t          j        	                    |j
        d           t          j        	                    |j        d           d S 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    y~""$$W"49?#94;GG

333

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

333

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

333

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

333

55555r1   N)	rI   rJ   rK   rL   r0   rF  rI  rL  rN  rM   r1   r/   r=  r=  w  si        ! ! [!3 3 33 3 36 6 66 6 6 6 6r1   r=  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestHandleMissingc                    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         |           d S 	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    )+


III%&"*Q- "RZ^"41(Av>>>aYY[["*Q-("RZ^*<u4<///DM511111r1   c                    t           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        	                    |d         |           t           j        	                    |d         |           d S )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    ioob!$$%'VJJJ			!"111a4y#aaae*1(Av>>>aWRt,,,
!&
:::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        d                  ||j        dd                   j        }}t          j	        
                    |d         |           t          |d         |           d S rR  )r   r   r   rW  r>   rp   r!   rX  r   r4   r   r   rY  s           r/   test_pandas_arrayz#TestHandleMissing.test_pandas_array  s    )+


III%&"*Q- "RZ^"4";1(Av>>>aYY[["*Q-("RZ^*<*Cu

%%d6lE:::DM511111r1   c                    t                      }t          j        |j        g dg df<   ||j        d                  j        ||j        dd                   }}t          j        ||d          \  }}|                                }||j        d                  j        ||j        dd                   }}t          |d         |           t          j
                            |d         |           d S rR  )r   r   r   rW  r>   rp   r!   rX  r   r   r4   r   rY  s           r/   test_array_pandasz#TestHandleMissing.test_array_pandas  s    )+


III%&"*Q- 'BJqrrN);1(Av>>>aYY[["*Q-(/BJqrrN1Cu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         |           d S )	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    )+


III%&"*Q- "RZ^"41(Av>>>a"*Q-("RZ^*<u4<///DM511111r1   N)rI   rJ   rK   r^  re  rg  ri  rk  rM   r1   r/   rP  rP    s_        
2 
2 
2; ; ;	2 	2 	2	< 	< 	<2 2 2 2 2r1   rP  c                   *    e Zd Zd Zed             ZdS )CheckHasConstantc                 |   t          | j        | j                  D ]\  }}|                     | 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                    # t          j        j        $ r Y w xY wd S )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  sC   TZ66 	C 	CIAv((461%%C333,fQi888ay *d23333SX/;;; tZ44HCcg)))) SY16!9===SY^6q	BBBB	 9(   	C 	Cs   D!!D98D9c           	         t           j                            d           t           j                            d          | _        | j        dk                        t                    | _        t          j        t          j	        d          t          j
        d          f          }d}t          j        t          j        d          dk     t          j        d          dk    f                              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k    t          j
        d          f                              t                    }d}t          j        t          j        d          dk     t          j        d          dk    t          j
        d          f                              t                    }d}|||||	||||f	| _        |||||
||||f	| _        |                                  d S )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  s    		q)//"%%Wq[((--	_bgbkk28B<<899_bimmd2 immd24 5 55;VE]] 	_bimmRXb\\:;;_bimmRXg->->?@@_bhrllC"'"++,=>??ory}}bgg.>.>?@@ory}}bgg.>.>.LMNN_bimmd2 immd2 hrll, - --3VE]] 	 _bimmd2 immd2 hw//1 2 228&-- 	 RRc2r:	'7H'3r1   N)rI   rJ   rK   r{  rL   r0   rM   r1   r/   rm  rm    sA        C C C( ! ! [! ! !r1   rm  c                   $    e Zd Zed             ZdS )TestHasConstantOLSc                 6    t           | _        | j        | _        d S 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dS )TestHasConstantGLMc                 H    t          | |t          j                              S )N)family)r   r   Binomial)r   ru   s     r/   rs  zTestHasConstantGLM.mod  s     1a 1 3 34444r1   c                     | j         | _        d S r3   )r  r   r  s    r/   r  zTestHasConstantGLM._initialize  s    	r1   N)rI   rJ   rK   staticmethodrs  rL   r  rM   r1   r/   r  r    sH        5 5 \5   [  r1   r  c                   $    e Zd Zed             ZdS )TestHasConstantLogitc                 H    t           | _        | j        | _        ddi| _        d S )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                            d          } t          j        |           }t           j                            dd                              d          |d<   d|d<   t          j        t           j                            dd                    }t           j                            t          t          j        ||           d S )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Iab))00::BqEBzN
	")##AB#//00AJZ)<aDDDDDr1   c                  X   t           j                            d           t           j                            d          } |                                 }t           j        |ddg<   t           j                            d          }|                                }t           j        |ddg<   t           j                            d          }|                                }t           j        |dg<   t           j                            d          }| |||||d	}t          j        	                    |          }d|d
<   d}t          |d |dd          \  \  }	}
}}|d|d         d}t          j        |	|
fi |}|                                }t          |d         j        |j                   t          |d
dg         j        |j                   t          |d         j        |j                   t          |d |dd          }|\  \  }	}
}}t           j                            dd          }t           j        |ddgddgf<   |                    ||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          }|\  \  }	}
}}|                    ||d           t+          t,          t          j        |	|
fi | d S )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  sH   INN1 		AIIq!f
	AIIq!fiR((GllnnO6OQC,,"".0 0D <!!$''DD%G "5T4;<=C"E "E "E]eT+ )V/02 2F $UD;;F;;JI3&
(8999J,-4joFFF9%,j.@AAA
dD'F
K
K
KC.1+MUD;R((J!#J1v1v~
MMj"-/ / 0 0 0 %eT<<V<<K||H(C-(+*;<<<(Z$5568HIIIH%aaak2K4GHHH
dD'F
K
K
KC.1+MUD;
MM0"-/ / 0 0 0*g15$II&III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          ||           d S )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    s    @@@@@@
	"aaag"b*A
GGGHHAfAdG"CA...fAdG"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     s                > > > > > > > > > >      , , , , , , 3 3 3 3 3 3 3 3 3 3 3 3 ; ; ; ; ; ; ' ' ' ' ' ' 5 5 5 5 5 5+L +L +L +L +L +L +L +L\
; 
; 
; 
; 
;
 
; 
; 
;J J J J Jz J J J *, *, *, *, *,Z *, *, *,Z( ( ( ( (> ( ( (2< < < < <
 < < < ;  ;  ;  ;  ;  ;  ;  ;F @  @  @  @  @  @  @  @F ;  ;  ;  ;  ;  ;  ;  ;F @  @  @  @  @  @  @  @F; ; ; ; ;. ; ; ;>K K K K K~ K K KB> > >* 4  4  4  4  4J  4  4  4F./ ./ ./ ./ ./ ./ ./ ./bD= D= D= D= D= D= D= D=N?; ?; ?; ?; ?; ?; ?; ?;D6 6 6 6 6 6 6 6B92 92 92 92 92 92 92 92x8 8 8 8 8 8 8 8v    )       )   ' ' ' ' '+ ' ' '
E 
E 
EFJ FJ FJR
/ 
/ 
/ 
/ 
/r1   