U
    Kvf.*  ã                   @   s@  d Z ddlmZ ddlmZ ddlZddlZddlZ	ddl
mZ ejZdd„ 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G dd „ d eƒZG d!d"„ d"eƒZG d#d$„ d$eƒZdS )%z>

Created on Fri Mar 09 16:00:27 2012

Author: Josef Perktold
é    )Úassert_series_equal)ÚBytesIONc                 C   sF   t ƒ }tj| |tjd | ¡ }| dd¡ t |¡}| ¡  ||fS )N)Úprotocolr   )r   ÚpickleÚdumpÚHIGHEST_PROTOCOLÚtellÚseekÚloadÚclose)ÚobjÚfhÚplenÚres© r   úM/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/base/tests/test_shrink_pickle.pyÚcheck_pickle   s    
r   c                   @   s0   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	S )
ÚRemoveDataPicklec                 C   sN   d}t j d¡ t j |d¡}t |¡}|| _dt  d¡ | _i | _	d| _
d S )Niè  é) é   ç      Ð?)é   é   gš™™™™™¹?)ÚnpÚrandomÚseedÚrandnÚsmZadd_constantÚexogÚonesÚxfÚpredict_kwdsÚreduction_factor©ÚclsÚnobsÚxr   r   r   Úsetup_class"   s    
zRemoveDataPickle.setup_classc                 C   sZ  | j }| j}| j}|j|f|Ž}| ¡  | ¡  t|jƒ\}}| ¡  |j|f|Ž}t	|t
jƒrxt	|t
jƒrxt||ƒ n6t	|t
jƒr t	|t
jƒr | |¡s®t‚ntj ||¡ t|jƒ\}}|| _d||f }	||| j k sät|	ƒ‚|j|f|Ž}
t	|t
jƒrt	|
t
jƒrt||
ƒ n<t	|t
jƒrHt	|
t
jƒrH| |
¡sVt‚ntj |
|¡ d S )Nzpickle length not %d < %d)Úresultsr    r!   ZpredictÚsummaryZsummary2r   Ú_resultsÚremove_dataÚ
isinstanceÚpdÚSeriesr   Ú	DataFrameÚequalsÚAssertionErrorr   ZtestingZassert_equalr   r"   )Úselfr(   r    Z	pred_kwdsZpred1r   Zorig_nbytesZpred2ÚnbytesÚmsgZpred3r   r   r   Útest_remove_data_pickle-   s8    ÿÿz(RemoveDataPickle.test_remove_data_picklec                 C   s   | j jjd k	st‚d S )N)r(   r+   Ú__doc__r1   ©r2   r   r   r   Útest_remove_data_docstring\   s    z+RemoveDataPickle.test_remove_data_docstringc                 C   s‚  t ƒ }| jj |¡ | dd¡ | jjj |¡}t|ƒt| jjƒksHt‚| dd¡ | j |¡ | dd¡ | jj |¡}| 	¡  t|ƒt| jƒks˜t‚t
| jj ¡ ƒ}t
|j ¡ ƒ}||ksÎtd||f ƒ‚t
| jjj ¡ ƒ}t
|jj ¡ ƒ}||ks
td||f ƒ‚t
| jjj ¡ ƒ}t
|jj ¡ ƒ}||ksFtd||f ƒ‚t
| jj ¡ ƒ}t
|j ¡ ƒ}||ks~td||f ƒ‚d S )Nr   znot equal %r and %r)r   r(   r*   Úsaver	   Ú	__class__r
   Útyper1   r   ÚsortedÚ__dict__ÚkeysÚmodelÚ_cache)r2   r   Zres_unpickledÚbeforeÚafterr   r   r   Útest_pickle_wrapper_   s.    z$RemoveDataPickle.test_pickle_wrapperN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr'   r5   r8   rC   r   r   r   r   r       s
   

/r   c                   @   s   e Zd Zdd„ ZdS )ÚTestRemoveDataPickleOLSc                 C   sF   | j }tj d¡ | d¡tj |jd ¡ }t || j ¡ 	¡ | _
d S ©Nr   é   r   )r   r   r   r   Úsumr   Úshaper   ÚOLSÚfitr(   ©r2   r&   Úyr   r   r   Úsetup_method„   s    z$TestRemoveDataPickleOLS.setup_methodN©rD   rE   rF   rQ   r   r   r   r   rH   ‚   s   rH   c                   @   s   e Zd Zdd„ ZdS )ÚTestRemoveDataPickleWLSc                 C   sT   | j }tj d¡ | d¡tj |jd ¡ }tj|| j t 	t
|ƒ¡d ¡ | _d S )Nr   rJ   r   )Úweights)r   r   r   r   rK   r   rL   r   ZWLSr   ÚlenrN   r(   rO   r   r   r   rQ   Ž   s    z$TestRemoveDataPickleWLS.setup_methodNrR   r   r   r   r   rS   Œ   s   rS   c                   @   s   e Zd Zdd„ ZdS )ÚTestRemoveDataPicklePoissonc                 C   st   | j }tj d¡ tj t | d¡| ¡  ¡¡}t 	||¡}t 
ddddg¡}|j|ddd	| _tddd
| _d S )Nr   rJ   gc<s¤mè?gÞò&ùðÐï?g` ŽCð?gZ9(
ð?Úbfgsr   ©Ústart_paramsÚmethodÚdisp)ZexposureÚoffset)r   r   r   r   ÚpoissonÚexprK   Úmeanr   ÚPoissonÚarrayrN   r(   Údictr!   )r2   r&   Úy_countr?   rY   r   r   r   rQ   ˜   s     
ÿÿz(TestRemoveDataPicklePoisson.setup_methodNrR   r   r   r   r   rV   –   s   rV   c                   @   s   e Zd Zdd„ ZdS )Ú$TestRemoveDataPickleNegativeBinomialc                 C   s:   t j d¡ tjj ¡ }t |j|j	¡}|j
dd| _d S )Nr   r   )r[   )r   r   r   r   ZdatasetsZrandhier
   ZNegativeBinomialZendogr   rN   r(   )r2   ÚdataÚmodr   r   r   rQ   ­   s    z1TestRemoveDataPickleNegativeBinomial.setup_methodNrR   r   r   r   r   rd   «   s   rd   c                   @   s   e Zd Zdd„ ZdS )ÚTestRemoveDataPickleLogitc                 C   s‚   | j }|jd }tj d¡ tj |¡ddt | d¡| ¡  ¡  k  	t
¡}t ||¡}t ddddg¡}|j|d	dd
| _d S )Nr   r   g      ð?rJ   gd·b=}ç¿gu€7í$ð¿gG‰†ZHï¿gÜzd€›î¿rW   rX   )r   rL   r   r   r   Zrandr^   rK   r_   ZastypeÚintr   ZLogitra   rN   r(   )r2   r&   r%   Zy_binr?   rY   r   r   r   rQ   ·   s    
ÿÿ
ÿÿz&TestRemoveDataPickleLogit.setup_methodNrR   r   r   r   r   rg   µ   s   rg   c                   @   s   e Zd Zdd„ ZdS )ÚTestRemoveDataPickleRLMc                 C   sF   | j }tj d¡ | d¡tj |jd ¡ }t || j ¡ 	¡ | _
d S rI   )r   r   r   r   rK   r   rL   r   ZRLMrN   r(   rO   r   r   r   rQ   Ë   s    z$TestRemoveDataPickleRLM.setup_methodNrR   r   r   r   r   ri   É   s   ri   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestRemoveDataPickleGLMc                 C   sF   | j }tj d¡ | d¡tj |jd ¡ }t || j ¡ 	¡ | _
d S rI   )r   r   r   r   rK   r   rL   r   ÚGLMrN   r(   rO   r   r   r   rQ   Õ   s    z$TestRemoveDataPickleGLM.setup_methodc              	   C   s    | j }ddddg}|D ]}t||ƒ q|D ]$}||jks<t‚|j| d k	s*t‚q*dd l}| ¡  | dt¡ | ¡  W 5 Q R X |D ]}|j| d ks„t‚q„d S )NZresid_responseZresid_devianceZresid_pearsonZresid_anscomber   Úignore)	r(   Úgetattrr@   r1   ÚwarningsÚcatch_warningsÚsimplefilterÚFutureWarningr+   )r2   r   ÚnamesÚnamern   r   r   r   Útest_cached_data_removedÜ   s      ÿ
z0TestRemoveDataPickleGLM.test_cached_data_removedc                 C   s.   | j }|ji kst‚| ¡  d|jks*t‚d S )NZaic)r(   r@   r1   r+   )r2   r   r   r   r   Útest_cached_values_evaluatedñ   s    z4TestRemoveDataPickleGLM.test_cached_values_evaluatedN)rD   rE   rF   rQ   rt   ru   r   r   r   r   rj   Ó   s   rj   c                   @   s   e Zd Zdd„ ZdS )Ú"TestRemoveDataPickleGLMConstrainedc                 C   sH   | j }tj d¡ | d¡tj |jd ¡ }t || j ¡ 	d¡| _
d S )Nr   rJ   r   zx1=x2)r   r   r   r   rK   r   rL   r   rk   Zfit_constrainedr(   rO   r   r   r   rQ   ü   s    z/TestRemoveDataPickleGLMConstrained.setup_methodNrR   r   r   r   r   rv   ú   s   rv   c                       s(   e Zd Ze‡ fdd„ƒZdd„ Z‡  ZS )ÚTestPickleFormulac                    sj   t t| ƒ ¡  d}tj d¡ tj |d¡}tj|dddgd| _	tjdt 
d	¡ | j	jd| _d
| _d S )Ni'  r   r   ÚAÚBÚC©Úcolumnsr   ©r   r   ç      à?)Úsuperrw   r'   r   r   r   r   r-   r/   r   r   r|   r    r"   r#   ©r:   r   r   r'     s    ÿzTestPickleFormula.setup_classc                 C   sh   | j }tj d¡ | d¡tj |jd ¡ }tj|dd}| j  	¡ }||d< t
jjd|d ¡ | _d S )Né{   rJ   r   ÚY)rs   úY ~ A + B + C©re   )r   r   r   r   rK   r   rL   r-   r.   Úcopyr   rM   Úfrom_formularN   r(   )r2   r&   rP   ÚXr   r   r   rQ     s    
zTestPickleFormula.setup_method©rD   rE   rF   rG   r'   rQ   Ú__classcell__r   r   r€   r   rw     s   
rw   c                       s(   e Zd Ze‡ fdd„ƒZdd„ Z‡  ZS )ÚTestPickleFormula2c                    sš   t t| ƒ ¡  d}tj d¡ tj |d¡}|d d …dd …f  d¡|d d …df< tj	|dddd	gd
| _
tj	dt d¡ | j
jdd … d
| _d| _d S )Niô  r   r   rJ   r   r‚   rx   ry   rz   r{   r   r}   r~   )r   rŠ   r'   r   r   r   r   rK   r-   r/   re   r   r|   r    r"   )r$   r%   re   r€   r   r   r'     s    &ÿzTestPickleFormula2.setup_classc                 C   s   t jjd| jd ¡ | _d S )Nrƒ   r„   ©r   rM   r†   re   rN   r(   r7   r   r   r   rQ   '  s    ÿzTestPickleFormula2.setup_methodrˆ   r   r   r€   r   rŠ     s   rŠ   c                   @   s   e Zd Zdd„ ZdS )ÚTestPickleFormula3c                 C   s   t jjd| jd ¡ | _d S )NzY ~ A + B * Cr„   r‹   r7   r   r   r   rQ   .  s    ÿzTestPickleFormula3.setup_methodNrR   r   r   r   r   rŒ   ,  s   rŒ   c                   @   s   e Zd Zdd„ ZdS )ÚTestPickleFormula4c                 C   s   t jjd| jd ¡ | _d S )NzY ~ np.log(abs(A) + 1) + B * Cr„   r‹   r7   r   r   r   rQ   5  s    ÿzTestPickleFormula4.setup_methodNrR   r   r   r   r   r   3  s   r   c                   @   s   e Zd Zdd„ ZdS )ÚTestPickleFormula5c                 C   s   t jjd| jd ¡ | _d S )NzY ~ log(abs(A) + 1) + B * Cr„   r‹   r7   r   r   r   rQ   ?  s    ÿzTestPickleFormula5.setup_methodNrR   r   r   r   r   rŽ   =  s   rŽ   c                   @   s   e Zd Zdd„ ZdS )Ú&TestRemoveDataPicklePoissonRegularizedc                 C   sT   | j }tj d¡ tj t | d¡| ¡  ¡¡}t 	||¡}|j
dddd| _d S )Nr   rJ   Úl1r   é
   )rZ   r[   Úalpha)r   r   r   r   r]   r^   rK   r_   r   r`   Zfit_regularizedr(   )r2   r&   rc   r?   r   r   r   rQ   F  s
     z3TestRemoveDataPicklePoissonRegularized.setup_methodNrR   r   r   r   r   r   D  s   r   )r6   Zstatsmodels.compat.pandasr   Úior   r   Znumpyr   Zpandasr-   Zstatsmodels.apiÚapir   Úlogr   r   rH   rS   rV   rd   rg   ri   rj   rv   rw   rŠ   rŒ   r   rŽ   r   r   r   r   r   Ú<module>   s.   
b



'

