U
    Kvf:…  ã                   @   s   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„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZ G dd„ deƒZ!G dd„ deƒZ"G dd„ deƒZ#G dd„ deƒZ$G d d!„ d!eƒZ%d"d#„ Z&G d$d%„ d%eƒZ'G d&d'„ d'eƒZ(G d(d)„ d)ƒZ)G d*d+„ d+ƒZ*G d,d-„ d-ƒZ+G d.d/„ d/ƒZ,G d0d1„ d1ƒZ-G d2d3„ d3e-ƒZ.G d4d5„ d5e-ƒZ/G d6d7„ d7e-ƒZ0d8d9„ Z1d:d;„ Z2d<d=„ Z3dS )>é    )Úassert_series_equalÚassert_frame_equalÚmake_dataframeN)Úassert_equalÚassert_Úassert_raises)Údata)Úhandle_formula_data)ÚOLS)ÚGLM)Úfamilies)ÚLogitc                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )Ú
TestArraysc                 C   s¢   t j d¡| _t jt  d¡t j d¡f | _t | j| j¡| _d}d}t j |¡ | _	| _
t j |¡ | _| _t j ||f¡ | _| _dddg| _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Únvars© r+   úD/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/base/tests/test_data.pyÚsetup_class    s    zTestArrays.setup_classc                 C   s,   t j | jj| j¡ t j | jj| j¡ d S ©N)r   Útestingr   r   Ú
orig_endogr   Ú	orig_exogr   ©Úselfr+   r+   r,   Ú	test_orig.   s    zTestArrays.test_origc                 C   s,   t j | jj| j¡ t j | jj| j¡ d S r.   )r   r/   r   r   r   r   r2   r+   r+   r,   Útest_endogexog2   s    zTestArrays.test_endogexogc                 C   sX   | j }tj | | jd¡| j¡ tj | | jd¡| j¡ tj | | j	d¡| j
¡ d S ©NÚcolumnsÚrowsÚcov)r   r   r/   r   Úwrap_outputr    r   r"   r!   r$   r#   ©r3   r   r+   r+   r,   Útest_attach6   s    ÿÿÿzTestArrays.test_attachc                 C   s.   | j }tj |j| j¡ tj |j| j¡ d S r.   )r   r   r/   r   r%   r&   r;   r+   r+   r,   Ú
test_namesA   s    zTestArrays.test_namesc                 C   s    t j t  | jj| jk¡¡ d S r.   )r   r/   r   Úallr   r'   r2   r+   r+   r,   Útest_labelsF   s    zTestArrays.test_labelsN)
Ú__name__Ú
__module__Ú__qualname__Úclassmethodr-   r4   r5   r<   r=   r?   r+   r+   r+   r,   r      s   
r   c                       s(   e Zd Ze‡ fdd„ƒZdd„ Z‡  ZS )ÚTestArrays2dEndogc                    sP   t t| ƒ ¡  tj d¡| _tjt d¡tj d¡f | _t	 
| j| j¡| _d S )N)r   é   r   r   )ÚsuperrD   r-   r   r   r   r   r   r   r   r   r   ©r(   ©Ú	__class__r+   r,   r-   N   s    zTestArrays2dEndog.setup_classc                 C   s0   t j | jj| j ¡ ¡ t j | jj| j¡ d S r.   )r   r/   r   r   r   Úsqueezer   r2   r+   r+   r,   r5   U   s    z TestArrays2dEndog.test_endogexog)r@   rA   rB   rC   r-   r5   Ú__classcell__r+   r+   rH   r,   rD   M   s   rD   c                       s(   e Zd Ze‡ fdd„ƒZdd„ Z‡  ZS )ÚTestArrays1dExogc                    s\   t t| ƒ ¡  tj d¡| _tj d¡}t | j|¡| _|d d …d f | _	dg| _
d| _d S )Nr   r   r   )rF   rL   r-   r   r   r   r   r   r   r   r%   r&   )r(   r   rH   r+   r,   r-   [   s    zTestArrays1dExog.setup_classc                 C   s0   t j | jj| j¡ t j | jj| j ¡ ¡ d S r.   )	r   r/   r   r   r0   r   r1   r   rJ   r2   r+   r+   r,   r4   e   s    zTestArrays1dExog.test_orig)r@   rA   rB   rC   r-   r4   rK   r+   r+   rH   r,   rL   Z   s   	rL   c                   @   s0   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	S )
ÚTestDataFramesc                 C   sð   t jtj d¡dgd| _t jtj d¡ddgd}| ddd	¡ || _t | j| j¡| _	d}d
}tj |¡| _
t j| j
|jd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j|jd| _dddg| _d| _| jj| _d S )Nr   Úy_1©r7   r   Úx_1Úx_2r   r   rE   r   ©Úindex©rS   r7   )ÚpdÚ	DataFramer   r   r   Úinsertr   r   r   r   r    ÚSeriesr7   r   r"   rS   r!   r$   r#   r%   r&   r'   ©r(   r   r)   r*   r+   r+   r,   r-   k   s2    ÿÿÿþzTestDataFrames.setup_classc                 C   s$   t | jj| jƒ t | jj| jƒ d S r.   )r   r   r0   r   r1   r   r2   r+   r+   r,   r4   ƒ   s    zTestDataFrames.test_origc                 C   s4   t j | jj| jj ¡ ¡ t j | jj| jj¡ d S r.   ©r   r/   r   r   r   ÚvaluesrJ   r   r2   r+   r+   r,   r5   ‡   s    zTestDataFrames.test_endogexogc                 C   sL   | j }t| | jd¡| jƒ t| | jd¡| jƒ t| | jd¡| j	ƒ d S r6   )
r   r   r:   r    r   r"   r!   r   r$   r#   r;   r+   r+   r,   r<   ‹   s    ÿÿÿzTestDataFrames.test_attachN)r@   rA   rB   rC   r-   r4   r5   r<   r+   r+   r+   r,   rM   j   s
   
rM   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestDataFramesWithMultiIndexc                 C   s  t jtj d¡dgd| _t j dgddgg¡}t jtj d¡|d}t  dd	d
g¡}| ddd¡ || _	t
 | j| j	¡| _d}d}tj |¡| _t j| j|d| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j||d| _dd	d
g| _d| _| j	j| _d S )Nr   rN   rO   ÚxÚ1Ú2r   r   rP   rQ   r   rE   r   rR   rT   )rU   rV   r   r   r   Z
MultiIndexZfrom_productÚIndexrW   r   r   r   r   r    rX   r   r"   rS   r!   r$   r#   r%   r&   r'   )r(   Úmir   Zexog_flattened_idxr)   r*   r+   r+   r,   r-   ˜   s*    þz(TestDataFramesWithMultiIndex.setup_classN)r@   rA   rB   rC   r-   r+   r+   r+   r,   r\   —   s   r\   c                       s    e Zd Ze‡ fdd„ƒZ‡  ZS )Ú	TestListsc                    sX   t t| ƒ ¡  tj d¡ ¡ | _tjt d¡tj d¡f  ¡ | _	t
 | j| j	¡| _d S )Nr   r   )rF   rb   r-   r   r   Útolistr   r   r   r   r   r   r   rG   rH   r+   r,   r-   ±   s    "zTestLists.setup_class)r@   rA   rB   rC   r-   rK   r+   r+   rH   r,   rb   °   s   rb   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestListDataFramec                 C   sè   t j d¡ ¡ | _tjt j d¡ddgd}| ddd¡ || _t 	| j| j¡| _
d}d	}t j |¡| _tj| j|jd
| _t j |¡| _tj| j|jd
| _t j ||f¡| _tj| j|j|jd| _dddg| _d| _| jj| _d S ©Nr   r   rP   rQ   rO   r   r   rE   r   rR   rT   r   )r   r   rc   r   rU   rV   rW   r   r   r   r   r    rX   r7   r   r"   rS   r!   r$   r#   r%   r&   r'   rY   r+   r+   r,   r-   º   s2    ÿÿÿþzTestListDataFrame.setup_classc                 C   s.   t j | jj| j¡ t j | jj| jj¡ d S r.   ©r   r/   r   r   r   r   r[   r2   r+   r+   r,   r5   Ó   s    z TestListDataFrame.test_endogexogc                 C   s(   t j | jj| j¡ t| jj| jƒ d S r.   ©	r   r/   r   r   r0   r   r   r1   r   r2   r+   r+   r,   r4   ×   s    zTestListDataFrame.test_origN©r@   rA   rB   rC   r-   r5   r4   r+   r+   r+   r,   rd   ¹   s   
rd   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestDataFrameListc                 C   sö   t jtj d¡dgd| _t jtj d¡ddgd}| ddd	¡ |j ¡ | _t	 
| j| j¡| _d}d
}tj |¡| _t j| j|jd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j|jd| _dddg| _d| _| jj| _d S ©Nr   rN   rO   r   r   r   r   r   rE   r   rR   rT   )rU   rV   r   r   r   rW   r[   rc   r   r   r   r   r    rX   r7   r   r"   rS   r!   r$   r#   r%   r&   r'   rY   r+   r+   r,   r-   Ý   s2    ÿÿÿþzTestDataFrameList.setup_classc                 C   s2   t j | jj| jj ¡ ¡ t j | jj| j¡ d S r.   rZ   r2   r+   r+   r,   r5   ö   s    z TestDataFrameList.test_endogexogc                 C   s(   t | jj| jƒ tj | jj| j¡ d S r.   ©	r   r   r0   r   r   r/   r   r1   r   r2   r+   r+   r,   r4   ú   s    zTestDataFrameList.test_origNrh   r+   r+   r+   r,   ri   Ü   s   
ri   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestArrayDataFramec                 C   sâ   t j d¡| _tjt j d¡ddgd}| ddd¡ || _t | j|¡| _	d}d	}t j |¡| _
tj| j
|jd
| _t j |¡| _tj| j|jd
| _t j ||f¡| _tj| j|j|jd| _dddg| _d| _| jj| _d S re   )r   r   r   rU   rV   rW   r   r   r   r   r    rX   r7   r   r"   rS   r!   r$   r#   r%   r&   r'   rY   r+   r+   r,   r-      s2    ÿÿÿþzTestArrayDataFrame.setup_classc                 C   s.   t j | jj| j¡ t j | jj| jj¡ d S r.   rf   r2   r+   r+   r,   r5     s    z!TestArrayDataFrame.test_endogexogc                 C   s(   t j | jj| j¡ t| jj| jƒ d S r.   rg   r2   r+   r+   r,   r4     s    zTestArrayDataFrame.test_origNrh   r+   r+   r+   r,   rl   ÿ   s   
rl   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestDataFrameArrayc                 C   sò   t jtj d¡dgd| _t jtj d¡ddgd}| ddd	¡ |j| _t 	| j| j¡| _
d}d
}tj |¡| _t j| j|jd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j|jd| _dddg| _d| _| jj| _d S rj   )rU   rV   r   r   r   rW   r[   r   r   r   r   r    rX   r7   r   r"   rS   r!   r$   r#   r%   r&   r'   rY   r+   r+   r,   r-   #  s2    ÿÿÿþzTestDataFrameArray.setup_classc                 C   s2   t j | jj| jj ¡ ¡ t j | jj| j¡ d S r.   rZ   r2   r+   r+   r,   r5   <  s    z!TestDataFrameArray.test_endogexogc                 C   s(   t | jj| jƒ tj | jj| j¡ d S r.   rk   r2   r+   r+   r,   r4   @  s    zTestDataFrameArray.test_origNrh   r+   r+   r+   r,   rm   "  s   
rm   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestSeriesDataFramec                 C   sî   t jtj d¡dd| _t jtj d¡ddgd}| dd	d
¡ || _t 	| j| j¡| _
d}d}tj |¡| _t j| j|jd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j|jd| _d	ddg| _d| _| jj| _d S )Nr   rN   ©Únamer   rP   rQ   rO   r   r   rE   r   rR   rT   )rU   rX   r   r   r   rV   rW   r   r   r   r   r    r7   r   r"   rS   r!   r$   r#   r%   r&   r'   rY   r+   r+   r,   r-   F  s2    ÿÿÿþzTestSeriesDataFrame.setup_classc                 C   s$   t | jj| jƒ t| jj| jƒ d S r.   )r   r   r0   r   r   r1   r   r2   r+   r+   r,   r4   _  s    zTestSeriesDataFrame.test_origN)r@   rA   rB   rC   r-   r4   r+   r+   r+   r,   rn   E  s   
rn   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestSeriesSeriesc                 C   sÞ   t jtj d¡dd| _t jtj d¡dd}|| _t | j| j¡| _d}d}tj |¡| _	t j| j	|j
gd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j
g|j
gd| _dg| _d| _| jj| _d S )Nr   rN   ro   rP   rE   rR   rT   )rU   rX   r   r   r   r   r   r   r   r    rp   r   r"   rS   r!   r$   rV   r#   r%   r&   r'   rY   r+   r+   r,   r-   e  s,    ÿÿþzTestSeriesSeries.setup_classc                 C   s$   t | jj| jƒ t | jj| jƒ d S r.   )r   r   r0   r   r1   r   r2   r+   r+   r,   r4   |  s    zTestSeriesSeries.test_origc                 C   s@   t j | jj| jj ¡ ¡ t j | jj| jjd d …d f ¡ d S r.   rZ   r2   r+   r+   r,   r5   €  s    zTestSeriesSeries.test_endogexogN)r@   rA   rB   rC   r-   r4   r5   r+   r+   r+   r,   rq   d  s   
rq   c            	      C   s¦   ddl m}  | ƒ j}dt |d ¡ ¡  ¡  }dt |d ¡ ¡  ¡  }|d d d… }|}|j|jdd	}t	t 
|¡||d
}t |¡}tjjttf||fžŽ  d S )Nr   ©Úload_pandasi  ZrealinvÚrealgdpZrealintéÿÿÿÿZbfill)Úmethod)r   ZlrealgdpÚlint)Zstatsmodels.datasets.macrodatars   r   r   ÚlogZdiffÚdropnaZreindexrS   ÚdictZ	ones_likerU   rV   r/   r   Ú
ValueErrorr
   )	rs   ÚdZgs_l_realinvZgs_l_realgdprw   r   rt   r   r   r+   r+   r,   Útest_alignment…  s    
r}   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestMultipleEqsArraysc                 C   sÜ   t j d¡| _t jt  d¡t j d¡f | _t | j| j¡| _d}d}d}t j |¡ | _	| _
t j |¡ | _| _t j ||f¡ | _| _t j ||f¡ | _| _t  ||f¡ | _| _dddg| _d	d
ddg| _d | _d S )N©r   é   r   r   r   r€   r   r   r   Úy1Úy2Zy3Z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*   Úneqsr+   r+   r,   r-   ›  s    z!TestMultipleEqsArrays.setup_classc                 C   sŒ   | 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 ©Nr7   r8   r9   Zcov_eqZ
columns_eq)r   r   r/   r   r:   r    r   r"   r!   r$   r#   r„   rƒ   r‡   r†   r;   r+   r+   r,   r<   ¬  s$    ÿÿÿÿÿþz!TestMultipleEqsArrays.test_attachN©r@   rA   rB   rC   r-   r<   r+   r+   r+   r,   r~   š  s   
r~   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestMultipleEqsDataFramesc                 C   sZ  t jtj d¡ddddgd | _}t jtj d¡dd	gd}| d
dd¡ || _t | j| j¡| _	d}d}d}tj |¡| _
t j| j
|jd| _tj |¡| _t j| j|jd| _tj ||f¡| _t j| j|j|jd| _tj ||f¡| _t j| j|j|jd| _tj ||f¡| _t j| j|j|jd| _ddd	g| _ddddg| _| jj| _d S )Nr   rN   Zy_2Zy_3Zy_4rO   r   rP   rQ   r   r   rE   r   r   r€   rR   rT   )rU   rV   r   r   r   rW   r   r   r   r   r    rX   r7   r   r"   rS   r!   r$   r#   r„   rƒ   r‡   r†   r%   r&   r'   )r(   r   r   r)   r*   rˆ   r+   r+   r,   r-   ¾  sL    
ÿÿÿÿþþþz%TestMultipleEqsDataFrames.setup_classc                 C   sx   | 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   r:   r    r   r"   r!   r   r$   r#   r„   rƒ   r‡   r†   r;   r+   r+   r,   r<   à  s     ÿÿÿÿÿz%TestMultipleEqsDataFrames.test_attachNrŠ   r+   r+   r+   r,   r‹   ½  s   
!r‹   c                   @   sh   e Zd Zedd„ ƒZejjdd„ ƒZdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestMissingArrayc                 C   sH   t j d¡}t j d¡}t j|d< t j|d< t j|d< || | _| _d S ©N)é   r€   rŽ   r   )r   r   )é   r   )r   r   Únanr   ÚX©r(   r‘   r   r+   r+   r,   r-   ï  s    


zTestMissingArray.setup_classc                 C   s"   t  tj d¡tj d¡d¡ d S ©Né   ©r”   r   Úraise)r   r   r   r   r2   r+   r+   r,   Útest_raise_no_missingø  s    ÿz&TestMissingArray.test_raise_no_missingc              	   C   s,   t  t¡ t | j| jd¡ W 5 Q R X d S ©Nr–   ©ÚpytestÚraisesÚ	Exceptionr   r   r   r‘   r2   r+   r+   r,   Ú
test_raiseþ  s    zTestMissingArray.test_raisec                 C   st   | j }| j}tj||f }t |¡jdd }|| }|| }t | j | jd¡}tj 	|j
|¡ tj 	|j|¡ d S ©NrE   ©ZaxisÚdrop)r   r‘   r   r   ÚisnanÚanyr   r   r/   Úassert_array_equalr   r   ©r3   r   r‘   ZcombinedÚidxr   r+   r+   r,   Ú	test_drop  s    zTestMissingArray.test_dropc                 C   sL   t j| j| jddd}tj |j| j¡ tj |j| j¡ |j	dksHt
‚d S ©NÚnoneF)Úhasconstr   )r   r   r   r‘   r   r/   r£   r   r   Ú
k_constantÚAssertionErrorr;   r+   r+   r,   Ú	test_none  s    zTestMissingArray.test_nonec              	   C   s*   t  t¡ t | jd d¡ W 5 Q R X d S r˜   ©rš   r›   rœ   r   r   r   r2   r+   r+   r,   Útest_endog_only_raise  s    z&TestMissingArray.test_endog_only_raisec                 C   s:   | j }|t |¡  }t | j d d¡}tj |j|¡ d S ©Nr    )r   r   r¡   r   r   r/   r£   r   ©r3   r   r   r+   r+   r,   Útest_endog_only_drop  s    z%TestMissingArray.test_endog_only_dropc                 C   sB   | j }|t |¡jdd  }t | j d d¡}tj |j|¡ d S rž   )	r‘   r   r¡   r¢   r   r   r/   r£   r   r°   r+   r+   r,   Útest_mv_endog  s    zTestMissingArray.test_mv_endogc                 C   s†   t j d¡}||j t  t  |¡¡ }tj| j| jd|d}t  t j	| j| jf ¡j
dd }|| d d …|f }t j |j|¡ d S )N)rŽ   rŽ   r    )ÚsigmarE   rŸ   )r   r   ÚTZdiagr   r   r   r‘   r¡   r   r¢   r/   r£   r³   )r3   r³   r   r¥   r+   r+   r,   Útest_extra_kwargs_2d%  s    "z%TestMissingArray.test_extra_kwargs_2dc                 C   s`   t j d¡}tj| j| jd|d}t  t j| j| jf ¡jdd }|| }t j	 
|j|¡ d S )NrŽ   r    )ÚweightsrE   rŸ   )r   r   r   r   r   r‘   r¡   r   r¢   r/   r£   r¶   )r3   r¶   r   r¥   r+   r+   r,   Útest_extra_kwargs_1d-  s
    "z%TestMissingArray.test_extra_kwargs_1dN)r@   rA   rB   rC   r-   rš   ÚmarkÚsmoker—   r   r¦   r¬   r®   r±   r²   rµ   r·   r+   r+   r+   r,   rŒ   î  s   

rŒ   c                   @   s`   e Zd Zedd„ ƒZejjdd„ ƒZdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestMissingPandasc                 C   sR   t j d¡}t j d¡}t j|d< t j|d< t j|d< t |¡| _t |¡| _d S r   )r   r   r   rU   rX   r   rV   r‘   r’   r+   r+   r,   r-   6  s    


zTestMissingPandas.setup_classc                 C   s.   t  t tj d¡¡t tj d¡¡d¡ d S r“   )r   r   rU   rX   r   r   rV   r2   r+   r+   r,   r—   @  s    þz'TestMissingPandas.test_raise_no_missingc              	   C   s,   t  t¡ t | j| jd¡ W 5 Q R X d S r˜   r™   r2   r+   r+   r,   r   G  s    zTestMissingPandas.test_raisec                 C   s¤   | j }| j}tj||f }t |¡jdd }|j| }|j| }t | 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   r/   r£   r   r[   r   r0   r   r   r1   r¤   r+   r+   r,   r¦   L  s    

zTestMissingPandas.test_dropc                 C   sP   t j| j| jddd}tj |j| jj¡ tj |j	| jj¡ |j
dksLt‚d S r§   )r   r   r   r‘   r   r/   r£   r   r[   r   rª   r«   r;   r+   r+   r,   r¬   Y  s    zTestMissingPandas.test_nonec              	   C   s*   t  t¡ t | jd d¡ W 5 Q R X d S r˜   r­   r2   r+   r+   r,   r®   _  s    z'TestMissingPandas.test_endog_only_raisec                 C   s4   | j }| ¡ }t | j d d¡}tj |j|j¡ d S r¯   )	r   ry   r   r   r   r/   r£   r   r[   r°   r+   r+   r,   r±   d  s    z&TestMissingPandas.test_endog_only_dropc                 C   sH   | j }|jt |j¡jdd  }t | j d d¡}tj 	|j
|j¡ d S rž   )r‘   r»   r   r¡   r[   r¢   r   r   r/   r£   r   r°   r+   r+   r,   r²   j  s    zTestMissingPandas.test_mv_endogc                 C   s`   t  ddddddddd	d
ddddddddddddg¡}t | j| jd¡}tj |j	 
|¡¡ d S )Nr   rE   r   r€   é   é   é   é   é	   é   é   é   é   é   é   é   é   r”   é   é   é   é   r    )rU   r`   r   r   r   r‘   r   r/   r   r'   Úequals)r3   Úlabelsr   r+   r+   r,   r?   p  s            ÿzTestMissingPandas.test_labelsN)r@   rA   rB   rC   r-   rš   r¸   r¹   r—   r   r¦   r¬   r®   r±   r²   r?   r+   r+   r+   r,   rº   5  s   
	
rº   c                   @   s8   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestConstantc                 C   s   ddl m} |ƒ | _d S )Nr   rr   )Zstatsmodels.datasets.longleyrs   r   )r(   rs   r+   r+   r,   r-   x  s    zTestConstant.setup_classc                 C   sL   | j j ¡ }d|d< t | j jj|j¡}tj 	|j
d¡ tj 	|jd¡ d S ©NrE   r   r½   ©r   r   Úcopyr   r   r   r[   r   r/   r   rª   Ú	const_idx©r3   r   r   r+   r+   r,   Útest_array_constant}  s
    z TestConstant.test_array_constantc                 C   sH   | j j ¡ }d|d< t | j j|¡}tj |j	d¡ tj |j
d¡ d S rÐ   ©r   r   rÒ   r   r   r   r   r/   r   rª   rÓ   rÔ   r+   r+   r,   Útest_pandas_constant„  s
    z!TestConstant.test_pandas_constantc                 C   s@   | j j ¡ }t | j j|¡}tj |j	d¡ tj |j
d ¡ d S ©Nr   rÖ   rÔ   r+   r+   r,   Útest_pandas_noconstant‹  s    z#TestConstant.test_pandas_noconstantc                 C   sD   | j j ¡ }t | j jj|j¡}tj 	|j
d¡ tj 	|jd ¡ d S rØ   rÑ   rÔ   r+   r+   r,   Útest_array_noconstant‘  s    z"TestConstant.test_array_noconstantN)	r@   rA   rB   rC   r-   rÕ   r×   rÙ   rÚ   r+   r+   r+   r,   rÏ   w  s   
rÏ   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestHandleMissingc                 C   s¢   t ƒ }tj|jdddgdddgf< ||jd  ||jdd …   }}tj||dd\}}| ¡ }||jd  ||jdd …   }}t|d	 |ƒ t	|d
 |ƒ d S ©Nr   r¼   r   r   rE   r   r    ©Úmissingr   r   )
r   r   r   Úilocr7   r   Úhandle_missingry   r   r   ©r3   Údfr   r‘   r   Ú_Úy_expÚX_expr+   r+   r,   Útest_pandasš  s    ""zTestHandleMissing.test_pandasc           	      C   sÂ   t j dd¡}t j|dddgdddgf< |d d …df |d d …dd …f  }}tj||d	d
\}}t jdtd}d|dddg< ||df }||dd …f }t j 	|d |¡ t j 	|d |¡ d S )Nr”   r€   r   r¼   r   r   rE   r   r    rÝ   )ZdtypeFr   r   )
r   r   Úrandnr   r   rà   r   Úboolr/   r£   )	r3   Zarrr   r‘   r   rã   Z
bools_maskrä   rå   r+   r+   r,   Útest_arrays¦  s    &zTestHandleMissing.test_arraysc                 C   sª   t ƒ }tj|jdddgdddgf< ||jd  ||jdd …  j }}tj||dd\}}| ¡ }||jd  ||jdd …  j }}tj	 
|d	 |¡ t|d
 |ƒ d S rÜ   )r   r   r   rß   r7   r[   r   rà   ry   r/   r£   r   rá   r+   r+   r,   Útest_pandas_array³  s    $$z#TestHandleMissing.test_pandas_arrayc                 C   sª   t ƒ }tj|jdddgdddgf< ||jd  j||jdd …   }}tj||dd\}}| ¡ }||jd  j||jdd …   }}t	|d	 |ƒ tj
 |d
 |¡ d S rÜ   )r   r   r   rß   r7   r[   r   rà   ry   r   r/   r£   rá   r+   r+   r,   Útest_array_pandas¾  s    $$z#TestHandleMissing.test_array_pandasc                 C   sš   t ƒ }tj|jdddgdddgf< ||jd  ||jdd …   }}tj||dd\}}||jd  ||jdd …   }}t|d	 |ƒ t|d
 |ƒ d S )Nr   r¼   r   r   rE   r   r¨   rÝ   r   r   )	r   r   r   rß   r7   r   rà   r   r   rá   r+   r+   r,   Ú	test_noopÉ  s    ""zTestHandleMissing.test_noopN)r@   rA   rB   ræ   ré   rê   rë   rì   r+   r+   r+   r,   rÛ   ˜  s
   rÛ   c                   @   s    e Zd Zdd„ Zedd„ ƒZdS )ÚCheckHasConstantc              	   C   sØ   t | j| jƒD ]Ä\}}|  | j|¡}t|j|d ƒ t|jj|d ƒ |d d krdt|jj	d kƒ nt|jj	|d ƒ t
| di ƒ}z|jf |Ž}W n tjjk
rª   Y qX t|jj|d ƒ t|jjj|d ƒ qd S )Nr   rE   Úfit_kwds)ÚzipÚexogsÚresultsÚmodr   r   rª   r   r   rÓ   ÚgetattrZfitr   ZlinalgZLinAlgErrorÚmodel)r3   r]   Úresultrò   rî   Úresr+   r+   r,   Útest_hasconstÖ  s    zCheckHasConstant.test_hasconstc              	   C   s¾  t j d¡ t j d¡| _| jdk t¡| _t  t  	d¡t  
d¡f¡}d}t  t  d¡dk t  d¡dkf¡ t¡}d}t  t  d¡t  
d¡f¡}d}t  t  d¡t  
d¡f¡}d}t  t  
d¡dt  	d¡ f¡}	d	}
t  t  d¡t  	d
¡f¡}d	}t  t  d¡t  	d
¡dddg f¡}d}t  t  d¡dk t  d¡dkt  
d¡f¡ t¡}d}t  t  d¡dk t  d¡dkt  
d¡f¡ t¡}d}|||||	||||f	| _|||||
||||f	| _|  ¡  d S )Nr   r”   )rE   r   g      %@)rE   N)r   Nr•   ç      à?©rE   rE   )r”   r   rE   )rE   r   )r   r   Úseedrç   Úy_cÚastypeÚintÚy_binZcolumn_stackr   ÚzerosÚarangeÚfloatrð   rñ   Ú_initialize)r(   r   Zresult1r   Zresult2Zx3Zresult3Zx4Zresult4Zx5Zresult5Zx5bZresult5bZx5cZresult5cZx6Zresult6Zx7Zresult7r+   r+   r,   r-   ê  sT    ÿÿ$þþþþ  ÿzCheckHasConstant.setup_classN)r@   rA   rB   r÷   rC   r-   r+   r+   r+   r,   rí   Ô  s   rí   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestHasConstantOLSc                 C   s   t | _| j| _d S r.   )r
   rò   rû   r   rG   r+   r+   r,   r    s    zTestHasConstantOLS._initializeN©r@   rA   rB   rC   r  r+   r+   r+   r,   r    s   r  c                   @   s$   e Zd Zedd„ ƒZedd„ ƒZdS )ÚTestHasConstantGLMc                 C   s   t | |t ¡ dS )N)Úfamily)r   r   ZBinomial)r   r]   r+   r+   r,   rò     s    zTestHasConstantGLM.modc                 C   s   | j | _d S r.   )rþ   r   rG   r+   r+   r,   r    s    zTestHasConstantGLM._initializeN)r@   rA   rB   Ústaticmethodrò   rC   r  r+   r+   r+   r,   r    s   
r  c                   @   s   e Zd Zedd„ ƒZdS )ÚTestHasConstantLogitc                 C   s   t | _| j| _ddi| _d S )NZdispF)r   rò   rþ   r   rî   rG   r+   r+   r,   r  %  s    z TestHasConstantLogit._initializeNr  r+   r+   r+   r,   r  #  s   r  c                  C   sf   t j d¡} t | ¡}t jjddd d¡|d< d|d< t t jjddd¡}t j t	t
j||¡ d S )N)é(   r   r   r	  ©ÚsizeÚobjectrE   Úconstant)r   r   rU   rV   Úrandintrü   rX   r/   r   r{   r   r   )r‘   râ   r   r+   r+   r,   Útest_dtype_object,  s    
r  c                  C   s*  t j d¡ t j d¡} |  ¡ }t j|ddg< t j d¡}| ¡ }t j|ddg< t jjdd}| ¡ }t j|dg< t j d¡}| |||||d	œ}tj 	|¡}d|d
< d}t
|d |ddd\\}	}
}}|d|d dœ}tj|	|
f|Ž}| ¡ }t|d j|jƒ t|d
dg j|jƒ t|d j|jƒ t
|d |ddd}|\\}	}
}}t j dd¡}t j|ddgddgf< | ||dœ¡ tj|	|
f|Ž}ddddg}t|j|df |jƒ t|j|d
dgf |jƒ t|| d d …|f |jƒ t
|d |ddd}|\\}	}
}}| ||dœ¡ tttj|	|
f|Ž d S )NrE   r   r   r¼   r   r
  r½   rÂ   )r   r‘   Ú	y_missingÚ	X_missingr¶   Úweights_missingr  zy_missing ~ X_missingr    )ÚdepthrÞ   r  )Úmissing_idxrÞ   r¶   r   r‘   r¶   r¿   r¾   )r¶   r  r   r€   rÀ   )r   r   rú   rç   rÒ   r   ÚuniformrU   rV   Ú	from_dictr	   r   r   ry   r   r[   r   r   r¶   Úupdater»   r   r{   )r   r  r‘   r  r¶   r  Zweights_wrong_sizer   Zformular   r   r  Zdesign_infoÚkwargsZ
model_dataZ	data_nonaÚtmpZ
weights_2dZmodel_data2Zgood_idxr+   r+   r,   Ú!test_formula_missing_extra_arrays9  sl    ûþÿ ÿÿÿr  c                  C   s|   ddl m}  t d¡d d …d f ddg }t ddddd	d
ddddg
¡}tj|d< t| t||ƒ tj|d< t| t||ƒ d S )Nr   )ÚMissingDataErrorr   g        g      ð?g333333ã¿gš™™™™™¹¿gffffffæ¿g      à¿rø   gš™™™™™¹?gš™™™™™é¿g       Àgš™™™™™ñ?rù   )	Zstatsmodels.tools.sm_exceptionsr  r   r   r…   Úinfr   r
   r   )r  r]   r   r+   r+   r,   Útest_raise_nonfinite_exog‚  s    

r  )4Zstatsmodels.compat.pandasr   r   r   Znumpyr   Znumpy.testingr   r   r   ZpandasrU   rš   Zstatsmodels.baser   r   Zstatsmodels.formular	   Z#statsmodels.regression.linear_modelr
   Z+statsmodels.genmod.generalized_linear_modelr   Zstatsmodels.genmodr   Z#statsmodels.discrete.discrete_modelr   r   rD   rL   rM   r\   rb   rd   ri   rl   rm   rn   rq   r}   r~   r‹   rŒ   rº   rÏ   rÛ   rí   r  r  r  r  r  r  r+   r+   r+   r,   Ú<module>   sH   .-	####!#1GB!<;		I