
    i                         d Z ddlZddlm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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)z4Testing GenericLikelihoodModel variations on Poisson    N)assert_almost_equalstats)Poisson)PoissonGMLEPoissonOffsetGMLEPoissonZiGMLE)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    o/home/ubuntu/crypto_trading_bot/.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_df2   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_summary:   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_classA   s    			x iioodA&	OOIu=	cCGGAJ&&YY&&rvve}5
 #:y9==1=E&&Yr{{7J7J7LMkkm j)4''++s//666vA  
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_distributionY   s    hh]]:& 	3&&uzz2	3	(EL--ejj9DdE$?$?$I$IJJJ		RVVEJJNN3::4N-OQST h'	3 	3 h's   DBD DD!N)r?   r@   rA   classmethodrj   rx   rE   r   r   rG   rG   ?   s    
 
.(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_classm   s    			x iioodA&	OOIu=	C#''!*$$YY&&rvve}5
&&Yr{{7J7J7LMkkm #:y9==1=E!!((+i1o= #:yAB/?OSS T 
 &&Yr{{7J7J7LMkkm !Yq!"u-=fM((s//666vA  
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HDHHLL$*;*;*?*?Fr   N)r?   r@   rA   ry   rj   r   r!   rE   r   r   r{   r{   k   s!    !
 !
F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   sz    			x iioodA&	OOIu=	C#''!*$$YY&&rvve}5
&&Yr{{7J7J7LMkkm #:y9==1=E!!((+i1o= #:yAB/?OSS T 

  
Iae,<VLPPsS%5%5%<%<<b@A&WX Q 
 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HHOOCR $"3"3":":DLL	
r   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   sq     	HHOOCR $,,"2"212"6q8H	
 	HHOOCR $"3"3"7"79I	
r   c                 X   | j                   j                  }t        |j                  |j                  |j
                        }|j                  j                  dz  |j                  _        t        j                  t              5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr}   r#   r   rO   )r   r4   r   endogr5   r~   dataxnamesrB   warnsr
   r`   )r   rc   mod1s      r   test_exog_names_warningz%TestPoissonZi.test_exog_names_warning   ss    hhnn CHHSZZH99++a/		\\,' 	HH!H	 	 	s   B  B)N)r?   r@   rA   ry   rj   r   r!   r   rE   r   r   r   r      s$    ! !F

r   r   )__doc__numpyr%   numpy.testingr   rB   r(   r   statsmodels.apiapir[   #statsmodels.discrete.discrete_modelr   statsmodels.miscmodels.countr   r   r	   statsmodels.tools.sm_exceptionsr
   r    r   r   r   rG   r{   r   rE   r   r   <module>r      sk    :  -    7 
 9& &R)(\ )(X,G ,Gf<L <r   