U
    Kvf                     @   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!   G/tmp/pip-unpacked-wheel-2v6byqio/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	}t
|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   Zasarrayr   r   r   ZmeanZto_framer   r   r   Zto_dict)r   r   r   r   ZfvZ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_classZ   s    zTestPredictOLS.setup_classN)r*   r+   r,   classmethodrH   r!   r!   r!   r"   r-   X   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.   r/   r0   r   c                 S   s   g | ]}d | qS r1   r!   r2   r!   r!   r"   r5   q   s     z.TestPredictGLM.setup_class.<locals>.<listcomp>r6   r7   r8   r9   r:   )r   r;   r<   r=   r>   r?   r&   r'   r@   rA   rB   r   r   rC   rD   r   rE   r!   r!   r"   rH   k   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|jd	< t|j|jdd d S )
Nr   r	   r
   )offsetr   r   rK   )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   rK   r   r    Zdata2Z
fitted_nanr!   r!   r"   test_predict_offsety   s2     z"TestPredictGLM.test_predict_offsetN)r*   r+   r,   rI   rH   rN   r!   r!   r!   r"   rJ   i   s   
rJ   )__doc__Zstatsmodels.compat.pandasr   r   Znumpyr   Zpandasr&   Znumpy.testingr   r   Z#statsmodels.regression.linear_modelr   Z+statsmodels.genmod.generalized_linear_modelr   r   r-   rJ   r!   r!   r!   r"   <module>   s   H