U
    Kvf[
  ã                   @   sl   d Z ddlZddlmZmZ ddlm  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´Test for a helper function for PanelHAC robust covariance

the functions should be rewritten to make it more efficient

Created on Thu May 17 21:09:41 2012

Author: Josef Perktold
é    N)Úassert_equalÚassert_raises)ÚGroupSortedc                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚCheckPanelLagMixinc                    s.   t ˆ jƒ ˆ _‰‡ ‡fdd„tdƒD ƒˆ _d S )Nc                    s"   g | ]}|t  ˆ j|ˆj¡f‘qS © )ÚswÚlagged_groupsÚxÚgroupidx)Ú.0Úlag©ÚclsÚgr   úJ/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/stats/tests/test_groups_sw.pyÚ
<listcomp>   s   ÿz0CheckPanelLagMixin.calculate.<locals>.<listcomp>é   )r   Úgindr   ÚrangeÚalla)r   r   r   r   Ú	calculate   s    ÿzCheckPanelLagMixin.calculatec                 C   s8   | j D ],\}\}}t|| j| jƒ t||| ƒ qd S ©N)r   r   ÚalleÚT)Úselfr   Zy0Zylagr   r   r   Útest_values   s    zCheckPanelLagMixin.test_valuesc                 C   s"   | j }tttj| j|| jjƒ d S r   )Úmlagr   Ú
ValueErrorr   r   r	   r   r
   )r   r   r   r   r   Útest_raises   s    ÿzCheckPanelLagMixin.test_raisesN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r   r   r   r   r      s   
r   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestBalancedc                 C   sä   t  dddgd¡| _d| _t  d¡}|d| j 7 }|d d …d f | _t  ddddddd	d
dddddddgg¡t  ddddd	d
ddddddgg¡t  dddd
dddddg	g¡t  ddddddgg¡t  dddgg¡dœ| _|  ¡  d S )Nr   é   é   r   é   é
   é   é   é   é   é   é   én   éo   ép   éq   ér   )r   r$   r%   r(   r)   ©	ÚnpÚrepeatr   r   Zaranger	   Úarrayr   r   )r   r	   r   r   r   Úsetup_class%   s*    
    ÿ ÿù	zTestBalanced.setup_classN©r   r    r!   r"   r7   r   r   r   r   r#   #   s   r#   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestUnBalancedc                 C   s   t  dddgdddg¡ | _}d| _t  d¡}|d| 7 }|d d …d f | _t  ddddd	d
ddddddddddddgg¡t  ddd	d
dddddddddddgg¡t  dd
ddddddddddgg¡t  dddddddddg	g¡t  dddddddgg¡t  dddddgg¡dœ| _|  ¡  d S )Nr   r$   r%   r(   r   r'   r,   é   é   r&   r*   r+   él   ém   r.   r/   r0   r1   r2   és   ét   éu   )r   r$   r%   r(   r)   r   r3   )r   r   r	   r   r   r   r7   :   s>    
       ÿ    ÿ ÿ÷zTestUnBalanced.setup_classNr8   r   r   r   r   r9   8   s   r9   )Ú__doc__Znumpyr4   Znumpy.testingr   r   Z%statsmodels.stats.sandwich_covarianceÚstatsZsandwich_covariancer   Zstatsmodels.tools.grouputilsr   r   r#   r9   r   r   r   r   Ú<module>   s   