
    !g                         d Z ddlZddlZddlmZ ddlmZ ddlm	Z
 ddlmZmZmZ ddlmZ ddlmZ dZdZd	Z G d
 d      Z G d de      Z G d de      Z G d de      Zy)z7Testing GenericLikelihoodModel variations on Poisson


    N)assert_almost_equalstats)PoissonGMLEPoissonOffsetGMLEPoissonZiGMLE)Poisson)ValueWarning      c                   \    e Zd Zd Zd Zd Zd Zej                  j                  d        Z
y)CompareMixinc                     t        | j                  j                  | j                  j                  t               t        | j                  j                  | j
                  j                  t               y N)r   resparamsres_glmDEC5res_discreteselfs    f/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/miscmodels/tests/test_poisson.pytest_paramszCompareMixin.test_params   s@    DHHOOT\\-@-@$GDHHOOT->->-E-EtL    c                    t        | j                  j                  | j                  j                  t               t        | j                  j                  | j
                  j                  t               t        | j                  j                  | j
                  j                  t               t        | j                  j                  | j
                  j                  t               y r   )
r   r   bser   r   r   tvaluesDEC4pvaluesDECr   s    r   test_cov_paramszCompareMixin.test_cov_params   s    DHHLL$,,*:*:DADHHLL$*;*;*?*?F 	DHH,,d.?.?.G.GNDHH,,d.?.?.G.GMr   c                    | j                   j                  t        j                  t	        | j                   j
                                    }ddlm} |j                  j                  t        j                  |j                              dz  }t        |j                  | j                   j                  t               t        || j                   j                  t               y )Nr   r      )r   t_testnpeyelenr   scipyr   normsfabstvaluer   r   r    r   )r   ttr   pvalues       r   
test_ttestzCompareMixin.test_ttest)   s    XX__RVVC$89:rvvbii01A5BIItxx'7'7=FDHH$4$4c:r   c                    | j                   }t        | dd      }|j                  j                  j                  \  }}|j
                  ||z
  |z
  k(  sJ |j                  |dz
  k(  sJ t        |j                        ||z   k(  sJ y )Nk_extrar      )	r   getattrmodelexogshapedf_residdf_modelr'   r   )r   r   r1   nobsk_varss        r   test_dfzCompareMixin.test_df0   s|    hh$	1-yy~~++f||tf}w6666||vz)))3::&7"2222r   c                 8    | j                   j                          y r   )r   summaryr   s    r   test_summaryzCompareMixin.test_summary8   s    r   N)__name__
__module____qualname__r   r!   r/   r;   pytestmarksmoker>    r   r   r   r      s6    MN;3 [[ r   r   c                   "    e Zd Zed        Zd Zy)TestPoissonMLEc                    t         j                  j                  d       d}t         j                  j                  |d      }|}t	        j
                  |d      }dd|j                  d      z  z   }t         j                  j                  t        j                  |            }t        ||      j                  d	      | _        t	        j                  ||t        j                  j                         
      }|j                         | _        t        ||      | _        | j                   j                  d| j                  j"                  z  dd      | _        y )Nn      Fprepend皙?r2   r   dispfamily?bfgsstart_paramsmethodrP   )r%   randomseedrandnsmadd_constantsumpoissonexpr	   fitr   GLMfamiliesr   r   modr   r   )clsr9   rvs	data_exogxbeta
data_endogmod_glms          r   setup_classzTestPoissonMLE.setup_class?   s     			x iiood1%	OOIu=	c#''!*n$YY&&rvve}5
 #:y9==1=E&&Yr{{7J7J7LMkkm j)4''++31A1A1H1H+H'-A  7r   c                 H   | j                   }| j                  }t        j                  t              5  |j                  |j                         d d d        	 ||_        |j                  |j                        }t        |t        j                  j                        sJ t        |j                         t        j                  |j                  j!                  |j"                              d       |j%                  d       y # 1 sw Y   xY w# |j%                  d       w xY w)N   result)r   rc   rB   raises
ValueErrorpredict_distributionr5   rm   
isinstancer   _distn_infrastructure	rv_frozenr   meanr%   r_   dotr   __delattr__)r   r   r4   dists       r   test_predict_distributionz(TestPoissonMLE.test_predict_distributionV   s    hh]]:& 	3&&uzz2	3		(EL--ejj9DdE$?$?$I$IJJJ		 "uzz~~cjj'A B "$
 h'	3 	3 h's   DBD DD!N)r?   r@   rA   classmethodrj   rx   rE   r   r   rG   rG   =   s    7 7,(r   rG   c                   (    e Zd Zed        Zd Zd Zy)TestPoissonOffsetc                    t         j                  j                  d       d}t         j                  j                  |d      }|}t	        j
                  |d      }dd|j                  d      z  z   }t         j                  j                  t        j                  |            }t	        j                  ||t        j                  j                               }|j                         | _        t        ||      j                  d	
      | _        | j                  j                  d	   |d d d	f   z  }t        ||d d dd f   |      j                  d	
      | _        t	        j                  ||t        j                  j                               }|j                         | _        t!        ||d d dd f   |      }|j                  d| j                  j                  z  dd	      | _        y )NrI   rJ   rK   FrL   r2   rN   rQ   r   rO   offsetrS   rT   rU   )r%   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   r	   r`   r   r   r   r   r   )	rd   r9   re   rf   rg   rh   ri   r~   modos	            r   rj   zTestPoissonOffset.setup_classl   s    			x iiood1%	OOIu=	C
N"YY&&rvve}5
&&Yr{{7J7J7LMkkm #:y9==1=E!!((+i!n< #:y12+13363A3; 	 &&Yr{{7J7J7LMkkm !Yqt_VL((#c.>.>.E.E*E#)  3r   c                     t        | j                  j                  | j                  j                  dd  t               t        | j                  j                  | j
                  j                  t               y Nr2   )r   r   r   r   r    r   r   s    r   r   zTestPoissonOffset.test_params   sG    DHHOOT\\-@-@-DcJDHHOOT->->-E-EsKr   c                     t        | j                  j                  | j                  j                  dd  t        dz
         t        | j                  j                  | j
                  j                  t               y r   )r   r   r   r   r    r   r   r   s    r   r!   z!TestPoissonOffset.test_cov_params   sK    DHHLL$,,*:*:12*>AFDHHLL$*;*;*?*?Fr   N)r?   r@   rA   ry   rj   r   r!   rE   r   r   r{   r{   j   s!    3 3FLGr   r{   c                   .    e Zd Zed        Zd Zd Zd Zy)TestPoissonZic                    t         j                  j                  d       d}t         j                  j                  |d      }|}t	        j
                  |d      }dd|j                  d      z  z   }t         j                  j                  t        j                  |            }d| _	        t	        j                  ||t        j                  j                               }|j                         | _        t        ||      j                  d	
      | _        | j                  j                   d	   |d d d	f   z  }t        ||d d dd f   |      j                  d	
      | _        t#        ||d d dd f   |      j                  t         j$                  d| j                  j                   z  df   dd	      | _        d| _        y )NrI   rJ   rK   FrL   r2   rN   rQ   r   rO   r}   rS   
   rT   rU   r   )r%   rX   rY   rZ   r[   r\   r]   r^   r_   r1   ra   rb   r	   r`   r   r   r   r   r_r   decimal)rd   r9   re   rf   rg   rh   ri   r~   s           r   rj   zTestPoissonZi.setup_class   sr    			x iiood1%	OOIu=	C
N"YY&&rvve}5
&&Yr{{7J7J7LMkkm #:y9==1=E!!((+i!n< #:y12vNRRXYRZ  
IadOFKOO)+s33C3C3J3J/J2/M)N#) P 3 r   c                    t        | j                  j                  d d | j                  j                  dd  | j                         t        | j                  j                  d d | j
                  j                  | j                         y )Nr2   )r   r   r   r   r   r   r   s    r   r   zTestPoissonZi.test_params   s]    DHHOOCR0$,,2E2Eab2I4<<XDHHOOCR0$2C2C2J2JDLLYr   c                    t        | j                  j                  d d | j                  j                  dd  | j
                  dz
         t        | j                  j                  d d | j                  j                  | j
                  dz
         y )Nr   r2   r#   )r   r   bsejacr   r   r   r   r   s    r   r!   zTestPoissonZi.test_cov_params   si     	DHHOOCR0$,,2B2B122FUVWDHHOOCR0$2C2C2G2GVWXr   c                    | j                   j                  }t        |j                  |j                  |j
                        }ddlm} |j                  j                  dz  |j                  _	         |t        |j                  d       y )Nr}   r   )assert_warnsr#   rO   )r   r4   r   endogr5   r~   numpy.testingr   dataxnamesr
   r`   )r   rc   mod1r   s       r   test_exog_names_warningz%TestPoissonZi.test_exog_names_warning   sW    hhnn CHHSZZH.99++a/		\488!4r   N)r?   r@   rA   ry   rj   r   r!   r   rE   r   r   r   r      s&     BZY5r   r   )__doc__rB   numpyr%   r   r   r(   r   statsmodels.apiapir[   statsmodels.miscmodels.countr   r   r   #statsmodels.discrete.discrete_modelr	   statsmodels.tools.sm_exceptionsr
   r    r   r   r   rG   r{   r   rE   r   r   <module>r      so      -  & & 7 8 % %P*(\ *(Z,G ,Gf55L 55r   