U
    Ãmœd.*  ã                   @   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   úb/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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   Ú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   ©r3   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)r3   r   Zres_unpickledÚbeforeÚafterr   r   r   Útest_pickle_wrapper_   s.    z$RemoveDataPickle.test_pickle_wrapperN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr'   r6   r9   rD   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(   ©r3   r&   Úyr   r   r   Úsetup_method„   s    z$TestRemoveDataPickleOLS.setup_methodN©rE   rF   rG   rR   r   r   r   r   rI   ‚   s   rI   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   rK   r   )Úweights)r   r   r   r   rL   r   rM   r   ZWLSr   ÚlenrO   r(   rP   r   r   r   rR   Ž   s    z$TestRemoveDataPickleWLS.setup_methodNrS   r   r   r   r   rT   Œ   s   rT   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   rK   gc<s¤mè?gÞò&ùðÐï?g` ŽCð?gZ9(
ð?Úbfgsr   ©Ústart_paramsÚmethodÚdisp)ZexposureÚoffset)r   r   r   r   ÚpoissonÚexprL   Úmeanr   ÚPoissonÚarrayrO   r(   Údictr!   )r3   r&   Úy_countr@   rZ   r   r   r   rR   ˜   s     
ÿÿz(TestRemoveDataPicklePoisson.setup_methodNrS   r   r   r   r   rW   –   s   rW   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   rO   r(   )r3   ÚdataÚmodr   r   r   rR   ­   s    z1TestRemoveDataPickleNegativeBinomial.setup_methodNrS   r   r   r   r   re   «   s   re   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      ð?rK   gd·b=}ç¿gu€7í$ð¿gG‰†ZHï¿gÜzd€›î¿rX   rY   )r   rM   r   r   r   Zrandr_   rL   r`   ZastypeÚintr   ZLogitrb   rO   r(   )r3   r&   r%   Zy_binr@   rZ   r   r   r   rR   ·   s    
ÿÿ
ÿÿz&TestRemoveDataPickleLogit.setup_methodNrS   r   r   r   r   rh   µ   s   rh   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 rJ   )r   r   r   r   rL   r   rM   r   ZRLMrO   r(   rP   r   r   r   rR   Ë   s    z$TestRemoveDataPickleRLM.setup_methodNrS   r   r   r   r   rj   É   s   rj   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 rJ   )r   r   r   r   rL   r   rM   r   ÚGLMrO   r(   rP   r   r   r   rR   Õ   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(   ÚgetattrrA   r1   ÚwarningsÚcatch_warningsÚsimplefilterÚFutureWarningr+   )r3   r   ÚnamesÚnamero   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(   rA   r1   r+   )r3   r   r   r   r   Útest_cached_values_evaluatedñ   s    z4TestRemoveDataPickleGLM.test_cached_values_evaluatedN)rE   rF   rG   rR   ru   rv   r   r   r   r   rk   Ó   s   rk   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   rK   r   zx1=x2)r   r   r   r   rL   r   rM   r   rl   Zfit_constrainedr(   rP   r   r   r   rR   ü   s    z/TestRemoveDataPickleGLMConstrained.setup_methodNrS   r   r   r   r   rw   ú   s   rw   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   ç      à?)Úsuperrx   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é{   rK   r   ÚY)rt   úY ~ A + B + C©rf   )r   r   r   r   rL   r   rM   r-   r.   Úcopyr   rN   Úfrom_formularO   r(   )r3   r&   rQ   ÚXr   r   r   rR     s    
zTestPickleFormula.setup_method©rE   rF   rG   rH   r'   rR   Ú__classcell__r   r   r   r   rx     s   
rx   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   rK   r   rƒ   ry   rz   r{   r|   r   r~   r   )r€   r‹   r'   r   r   r   r   rL   r-   r/   rf   r   r}   r    r"   )r$   r%   rf   r   r   r   r'     s    &ÿzTestPickleFormula2.setup_classc                 C   s   t jjd| jd ¡ | _d S )Nr„   r…   ©r   rN   r‡   rf   rO   r(   r8   r   r   r   rR   '  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Œ   r8   r   r   r   rR   .  s    ÿzTestPickleFormula3.setup_methodNrS   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Œ   r8   r   r   r   rR   5  s    ÿzTestPickleFormula4.setup_methodNrS   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Œ   r8   r   r   r   rR   ?  s    ÿzTestPickleFormula5.setup_methodNrS   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   rK   Úl1r   é
   )r[   r\   Úalpha)r   r   r   r   r^   r_   rL   r`   r   ra   Zfit_regularizedr(   )r3   r&   rd   r@   r   r   r   rR   F  s
     z3TestRemoveDataPicklePoissonRegularized.setup_methodNrS   r   r   r   r   r   D  s   r   )r7   Zstatsmodels.compat.pandasr   Úior   r   Únumpyr   Zpandasr-   Zstatsmodels.apiÚapir   Úlogr   r   rI   rT   rW   re   rh   rj   rk   rw   rx   r‹   r   rŽ   r   r   r   r   r   r   Ú<module>   s.   
b



'

