U
    Ãmœdà  ã                   @   sz   d Z ddlmZ ddlZddlZddlm	Z	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dS )z
Tests for Results.predict
é    )ÚtestingN)Úassert_allcloseÚassert_equal)ÚOLS)ÚGLMc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚCheckPredictReturnsc                 C   s¬   | j }| j}|jjddd… }| |jddd… ¡}t |j|j¡ t|j	|j	dd t
t|j|jddd… j	jƒƒ}| |¡}t|jt t|ƒ¡ƒ t|j	|j	dd d S )Né   é
   é   ç‚vIhÂ%<=©Zrtol)ÚresÚdataÚfittedvaluesÚilocÚpredictÚpdtÚassert_index_equalÚindexr   ÚvaluesÚdictÚzipÚcolumnsÚTr   ÚnpÚarangeÚlen)Úselfr   r   ÚfittedÚpredÚxd© r!   ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/base/tests/test_predict.pyÚtest_2d   s     
zCheckPredictReturns.test_2dc                 C   sú   | j }| j}| |jd d… ¡}t |j|jd d… j¡ t|j|j	d dd |j	 
¡ }| 
¡ }| | ¡ j¡}t|jt d¡ƒ t||dd | | 
¡ ¡}t|jt d¡ƒ t|j|dd | | 
¡  ¡ ¡}t|jt d¡ƒ t|j|dd d S )Nr   r   r   r   )r   r   r   r   r   r   r   r   r   r   ZmeanZto_framer   r   r   r   Úto_dict)r   r   r   r   ZfittedmZxmeanr!   r!   r"   Útest_1d"   s     
zCheckPredictReturns.test_1dc                 C   s  | j }| j}|jjddd… }|j|jjddd… dd}t||jdd t	j
|jjddd… |jddd… |jjd}| |¡}t |j|j¡ t|j|jdd |j|jjd dd}t||jd	 dd | |jd	 ¡}t |j|jd d… ¡ t|jd	 |jd	 dd d S )
Nr   r	   r
   F)Z	transformr   r   )r   r   r   )r   r   r   r   r   ÚmodelZexogr   r   ÚpdÚ	DataFramer   Z
exog_namesr   r   )r   r   r   r   r   Úxr!   r!   r"   Útest_nopatsy<   s"    þ
z CheckPredictReturns.test_nopatsyN)Ú__name__Ú
__module__Ú__qualname__r#   r%   r*   r!   r!   r!   r"   r      s   r   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPredictOLSc                 C   sˆ   d}t j d¡ t j |d¡}| d¡t j |¡ }dd„ t|ƒD ƒ}tjt  t  	||f¡d¡d 
¡ |d	| _tjd
| jd ¡ | _d S )Né   éø é   r   c                 S   s   g | ]}d | ‘qS ©zobs%02dr!   ©Ú.0Úir!   r!   r"   Ú
<listcomp>_   s     z.TestPredictOLS.setup_class.<locals>.<listcomp>é   úy var1 var2 var3©r   r   úy ~ var1 + var2©r   )r   ÚrandomÚseedÚrandnÚsumÚranger'   r(   ÚroundÚcolumn_stackÚsplitr   r   Úfrom_formulaÚfitr   ©ÚclsZnobsr)   Úyr   r!   r!   r"   Úsetup_classY   s    þzTestPredictOLS.setup_classN)r+   r,   r-   ÚclassmethodrI   r!   r!   r!   r"   r.   W   s   r.   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestPredictGLMc                 C   sˆ   d}t j d¡ t j |d¡}| d¡t j |¡ }dd„ t|ƒD ƒ}tjt  t  	||f¡d¡d 
¡ |d	| _tjd
| jd ¡ | _d S )Nr/   r0   r1   r   c                 S   s   g | ]}d | ‘qS r2   r!   r3   r!   r!   r"   r6   p   s     z.TestPredictGLM.setup_class.<locals>.<listcomp>r7   r8   r9   r:   r;   )r   r<   r=   r>   r?   r@   r'   r(   rA   rB   rC   r   r   rD   rE   r   rF   r!   r!   r"   rI   j   s    þzTestPredictGLM.setup_classc           	      C   sˆ  | j }| j}|jjddd… }t t|ƒ¡}|| }|j|jddd… |d}t 	|j
|j
¡ t|j|jdd tt|j|jddd… jjƒƒ}|j||d}t|j
t t|ƒ¡ƒ t|j|jdd |jddd…  ¡ }||d< |j||d d}t 	|j
|j
¡ t|j|jdd |jddd…  ¡ }||d< tj|jd< |j||d d}t 	|j
|j
¡ | ¡ }tj|d	< t|j|jdd d S )
Nr   r	   r
   )Úoffsetr   r   rL   )r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚcopyÚnan)	r   r   r   r   rL   r   r    Zdata2Z
fitted_nanr!   r!   r"   Útest_predict_offsetx   s2     
z"TestPredictGLM.test_predict_offsetN)r+   r,   r-   rJ   rI   rO   r!   r!   r!   r"   rK   h   s   
rK   )Ú__doc__Zstatsmodels.compat.pandasr   r   Únumpyr   Zpandasr'   Znumpy.testingr   r   Z#statsmodels.regression.linear_modelr   Z+statsmodels.genmod.generalized_linear_modelr   r   r.   rK   r!   r!   r!   r"   Ú<module>   s   G