
    !gC
                     ~    d Z ddlZddlmZmZ ddlmc mZ	 ddl
mZ  G d d      Z G d de      Z G d	 d
e      Zy)zTest 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                   (    e Zd Zed        Zd Zd Zy)CheckPanelLagMixinc           	          t        | j                        x| _        }t        d      D cg c]/  }|t	        j
                  | j                  ||j                        f1 c}| _        y c c}w )N   )	r   gindgrangeswlagged_groupsxgroupidxalla)clsr   lags      c/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_groups_sw.py	calculatezCheckPanelLagMixin.calculate   sV    ))$)!H.  "**355#qzzBC . .s   4A'c                     | j                   D ]:  \  }\  }}t        || j                  |   j                         t        |||z          < y N)r   r   alleT)selfr   y0ylags       r   test_valueszCheckPanelLagMixin.test_values   sC    #yy 	)OC"dTYYs^--.TCZ(	)    c                     | j                   }t        t        t        j                  | j
                  || j                  j                         y r   )mlagr   
ValueErrorr   r   r   r   r   )r   r    s     r   test_raiseszCheckPanelLagMixin.test_raises   s0    yyj""2"2DFFDffoo	'r   N)__name__
__module____qualname__classmethodr   r   r"    r   r   r   r      s    . .
)
'r   r   c                       e Zd Zed        Zy)TestBalancedc                    t        j                  g dd      | _        d| _        t        j                  d      }|d| j                  z  z  }|d d d f   | _        t        j                  g dg      t        j                  g dg      t        j                  g dg      t        j                  g dg      t        j                  g d	g      d
| _        | j                          y )Nr         r	      
   )r,   r-         r	   r.               n   o   p   q   r   )r-   r0   r1   r	   r2   r3   r4   r5   r7   r8   r9   r:   )	r0   r1   r	   r3   r4   r5   r8   r9   r:   )r1   r	   r4   r5   r9   r:   )r	   r5   r:   )r   r,   r-   r0   r1   	nprepeatr
   r    aranger   arrayr   r   )r   r   s     r   setup_classzTestBalanced.setup_class$   s    99Wa(IIbM	R\!D&	  4 5 6 % & 'GHI89:/*+ 	r   Nr#   r$   r%   r&   r@   r'   r   r   r)   r)   "   s     r   r)   c                       e Zd Zed        Zy)TestUnBalancedc           	         t        j                  g dg d      x| _        }d| _        t        j                  d      }|d|z  z  }|d d d f   | _        t        j                  g dg      t        j                  g dg      t        j                  g dg      t        j                  g dg      t        j                  g d	g      t        j                  g d
g      d| _        | j                          y )Nr+   )r0   r	   r/   r/   r4   )r,   r-   r0         r.   r2   r3   l   m   r6   r7   r8   r9   r:   s   t   u   )r-   r0   rF   r.   r2   r3   rH   r6   r7   r8   r9   r:   rI   rJ   rK   )r0   r.   r2   r3   r6   r7   r8   r9   r:   rI   rJ   rK   )	r2   r3   r7   r8   r9   r:   rI   rJ   rK   )r3   r8   r9   r:   rI   rJ   rK   )r9   r:   rI   rJ   rK   )r   r,   r-   r0   r1   r	   r;   )r   r
   r   s      r   r@   zTestUnBalanced.setup_class9   s    ))GZ884IIbM	RX!D&	  C D E 4 5 6 % & 'GHI=>?345
 	r   NrA   r'   r   r   rC   rC   7   s     r   rC   )__doc__numpyr<   numpy.testingr   r   %statsmodels.stats.sandwich_covariancestatssandwich_covariancer   statsmodels.tools.grouputilsr   r   r)   rC   r'   r   r   <module>rS      s?     5 2 2 4' '&% *' r   