U
    Ãmœdp  ã                   @   s"  d dl mZ d dlZd dlmZmZmZmZ d dl	Z
d dlZd dlmZ ddlmZ ddlmZ G dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZejjG dd„ deƒƒZG dd„ dƒZG dd„ deƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZ dS )é    )ÚPLATFORM_LINUX32N)Úassert_Úassert_allcloseÚassert_array_equalÚassert_equalé   )ÚRandHIE)ÚCheckModelMixinc                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zejjdd„ ƒZdS )ÚCheckGenericc                 C   s   t | jj| jjddd� d S ©Nçñhãˆµøä>©ÚatolÚrtol©r   Úres1ÚparamsÚres2©Úself© r   úd/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/discrete/tests/test_count_model.pyÚtest_params   s    zCheckGeneric.test_paramsc                 C   s   t | jj| jjddd� d S r   )r   r   Zllfr   r   r   r   r   Útest_llf   s    zCheckGeneric.test_llfc                 C   s   t | j ¡ | jjddd� d S )Nçü©ñÒMbP?r   r   )r   r   Zconf_intr   r   r   r   r   Útest_conf_int   s    zCheckGeneric.test_conf_intc                 C   s   t | jj| jjddd� d S ©Nr   r   )r   r   Úbser   r   r   r   r   Útest_bse   s    zCheckGeneric.test_bsec                 C   s   t | jj| jjddd� d S )Nç{®Gáz„?r   ©r   r   Zaicr   r   r   r   r   Útest_aic    s    zCheckGeneric.test_aicc                 C   s   t | jj| jjddd� d S )Nçš™™™™™¹?r   r    r   r   r   r   Útest_bic#   s    zCheckGeneric.test_bicc                 C   s0   t  | jjj¡}| j |¡}t| jj|jƒ d S ©N©	ÚnpÚidentityr   r   ÚsizeÚt_testr   ZtvaluesZtvalue©r   Zunit_matrixr)   r   r   r   Útest_t&   s    zCheckGeneric.test_tc                 C   sd   | j j}t t| j jƒ¡}d|dd …< |j|d ddd�}t|jdd … | j jdd … ddd	� d S )
Nr   éþÿÿÿr   Féô  ©ÚalphaÚdispÚmaxiteré   çš™™™™™©?r   ©r   Úmodelr&   ÚonesÚlenr   Zfit_regularizedr   ©r   r5   r/   Zres_regr   r   r   Útest_fit_regularized+   s     ÿz!CheckGeneric.test_fit_regularizedc                 C   sJ   | j j ¡ }tt| ¡ ƒt| jƒƒ | j ¡ D ]\}}t|| |ƒ q.d S r$   )	r   r5   Z_get_init_kwdsr   ÚsetÚkeysÚ	init_keysÚ	init_kwdsÚitems)r   r=   ÚkeyÚvaluer   r   r   Útest_init_keys5   s    zCheckGeneric.test_init_keysc                 C   s^   | j j | j jjj}| j jjj}t|jt| j jjƒdfƒ t	t
 |¡dƒ t	t
 |¡dƒ d S )Nr   r   )r   ZllnullZres_nullr5   ÚexogÚ	exog_inflr   Úshaper7   r   r&   Zptp)r   Z	exog_nullZexog_infl_nullr   r   r   Ú	test_null;   s    ÿzCheckGeneric.test_nullc                 C   s   | j  ¡ }dt|ƒkst‚d S )NzCovariance Type:)r   ÚsummaryÚstrÚAssertionError)r   Zsummr   r   r   Útest_summaryF   s    
zCheckGeneric.test_summaryN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r!   r#   r+   r9   rA   rE   ÚpytestÚmarkZsmokerI   r   r   r   r   r
      s   
r
   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestZeroInflatedModel_logitc                 C   s¸   t jj ¡ }t |j¡| _t |j¡|_t j|jd d …dd…f dd�}t j|jd d …df dd�}t j	|j||dd�j
dd	dd
�| _d| jj_ddddg| _ddi| _tj}|| _d S )Nr   é   F©Úprependr   Úlogit©rC   Ú	inflationÚnewtonr-   ©Úmethodr1   r0   TrC   ÚexposurerU   Úoffset)ÚsmÚdatasetsÚrandhieÚloadr&   ÚasarrayÚendogrB   Úadd_constantÚZeroInflatedPoissonÚfitr   Ú_resultsÚ_attach_nullmodelr<   r=   r   Úzero_inflated_poisson_logitr   ©ÚclsÚdatarB   rC   r   r   r   r   Úsetup_classM   s$     
 ÿ þ

z'TestZeroInflatedModel_logit.setup_classN)rJ   rK   rL   Úclassmethodrj   r   r   r   r   rO   L   s   rO   c                       s8   e Zd Zedd„ ƒZejjedd�‡ fdd„ƒZ	‡  Z
S )ÚTestZeroInflatedModel_probitc                 C   s¸   t jj ¡ }t |j¡| _t |j¡|_t j|jd d …dd…f dd�}t j|jd d …df dd�}t j	|j||dd�j
dd	dd
�| _d| jj_ddddg| _ddi| _tj}|| _d S )Nr   rP   FrQ   r   ÚprobitrT   rV   r-   rW   TrC   rY   rU   rZ   )r[   r\   r]   r^   r&   r_   r`   rB   ra   rb   rc   r   rd   re   r<   r=   r   Zzero_inflated_poisson_probitr   rg   r   r   r   rj   _   s$     
 ÿ þ

z(TestZeroInflatedModel_probit.setup_classzFails on 32-bit Linux)Úreasonc                    s   t ƒ  ¡  d S r$   )Úsuperr9   r   ©Ú	__class__r   r   r9   p   s    z1TestZeroInflatedModel_probit.test_fit_regularized)rJ   rK   rL   rk   rj   rM   rN   Zskipifr   r9   Ú__classcell__r   r   rp   r   rl   ^   s   
rl   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestZeroInflatedModel_offsetc                 C   sÆ   t jj ¡ }t |j¡| _t |j¡|_t j|jd d …dd…f dd�}t j|jd d …df dd�}t j	|j|||jd d …df d�j
dd	dd
�| _d| jj_ddddg| _ddi| _tj}|| _d S )Nr   rP   FrQ   r   é   )rC   rZ   rV   r-   rW   TrC   rY   rU   rZ   rS   )r[   r\   r]   r^   r&   r_   r`   rB   ra   rb   rc   r   rd   re   r<   r=   r   Zzero_inflated_poisson_offsetr   rg   r   r   r   rj   u   s$     
 ÿý

z(TestZeroInflatedModel_offset.setup_classc                 C   s”  | j j}|j}tj|j|j|jt 	|¡d�}|j
| j jdddd�}t|j| j jddd� | j  ¡ }| ¡ }t||ddd� |j}|j}|j}| j j||| ¡ d�}	|j||t 	|¡d	�}
t|
|	ddd� |jd d
d… }|jd d
d… }|d d
d… }| j j|||d�}|j||t 	|¡d	�}t||ddd� t||d d
d… ddd� t||d d
d… ddd� | j j||d�}|j||d�}t||ddd� d S )N)rC   rY   rV   r-   F©Ústart_paramsrX   r1   r0   ç�íµ ÷Æ°>r   )rB   rC   rZ   )rB   rC   rY   é
   r2   ©rB   rC   )r   r5   rZ   r[   rb   r`   rB   rC   r&   Úexprc   r   r   ÚpredictÚtolist)r   Zmodel1rZ   Zmodel3Zres3Úfitted1Zfitted3ÚexZex_inflZ	fitted1_0Z	fitted3_0Z	fitted1_2Z	fitted3_2Z	fitted1_3Z	fitted3_3r   r   r   Útest_exposure‡   sP     ÿ
  ÿ

ÿÿ
ÿÿz*TestZeroInflatedModel_offset.test_exposureN)rJ   rK   rL   rk   rj   r   r   r   r   r   rs   t   s   
rs   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestZeroInflatedModelPandasc                 C   sÊ   t jj ¡ }|j| _|| _t j|jjd d …dd…f dd�}t j|jjd d …df dd�}t	 
dddd	d
dg¡}t j|j||dd�}|j|dddd�| _d| jj_ddddg| _ddi| _tj}|| _d S )Nr   rP   FrQ   r   gÊÌ¥Ö wº?gNr(X¼ð¿g.¿‰¬ì
µ¿gõˆ˜·Œ�?g’AÞ~Wp›¿g«`…Â·÷?rS   rT   rV   r-   ru   TrC   rY   rU   rZ   )r[   r\   r]   Zload_pandasr`   ri   ra   rB   Úilocr&   r_   rb   rc   r   rd   re   r<   r=   r   rf   r   )rh   ri   rB   rC   rv   r5   r   r   r   r   rj   ¸   s0    "  þ
 ÿ ÿ

z'TestZeroInflatedModelPandas.setup_classc                 C   sÂ   ddddddg}t | jjj|ƒ t | jjj ¡ |ƒ t | jjj ¡ |ƒ tj	| j
jjd d …dd…f d	d
�}tj	| j
jjd d …df d	d
�}ddddddg}tj| j
j||dd�}t |j|ƒ d S )NZinflate_lncoinsZinflate_constZidpZlpiZfmdeÚconstr   rP   TrQ   r   rS   rT   )r   r   r5   Z
exog_namesr   Úindexr|   r   r[   ra   ri   rB   r�   rb   r`   )r   Zparam_namesrB   rC   r5   r   r   r   Ú
test_namesÎ   s$     ÿ$  ÿ ÿz&TestZeroInflatedModelPandas.test_namesN)rJ   rK   rL   rk   rj   r„   r   r   r   r   r€   ·   s   
r€   c                   @   s8   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestZeroInflatedPoisson_predictc                 C   sŒ   ddg}t j d¡ d}t  |df¡}d|d |d …df< | |¡}tjjj|d|j	d�| _
t | j
|¡}|jdd	d
d�| _|d|g| _d S )Nr   ç      à?éç  éÐ  r2   r3   ©r(   Úbfgséˆ  FrW   )r&   ÚrandomÚseedr6   Údotr[   ÚdistributionsÚ	zipoissonÚrvsrD   r`   rb   rc   ÚresÚparams_true©rh   Úexpected_paramsÚnobsrB   Úmu_truer5   r   r   r   rj   ß   s    
ÿz+TestZeroInflatedPoisson_predict.setup_classc                 C   s6   dd„ }|| j Ž }t| j ¡  ¡ | j ¡ |dd� d S )Nc                 S   sp   d||   }|d|  |    ¡ }|d| |  d   ¡ 7 }|d| |    ¡ d 8 }t |¡}d| t |¡ }|S ©Nr   r2   ©Úmeanr&   Úsqrt)ÚmuÚ	prob_inflr–   Údispersion_factorÚvarÚstdÚconf_intv_95r   r   r   Úcompute_conf_interval_95ï   s    
zKTestZeroInflatedPoisson_predict.test_mean.<locals>.compute_conf_interval_95r   r   ©r“   r   r’   r{   rš   r`   ©r   r¢   Úconf_interval_95r   r   r   Ú	test_meanî   s    
 ÿz)TestZeroInflatedPoisson_predict.test_meanc                 C   sJ   dd„ }| j }||j|jdd�|jdd�ƒ}t| ¡ | j ¡ ddd� d S )Nc                 S   sP   d| }| d|  |   ¡ }|d| | d   ¡ 7 }|d| |   ¡ d 8 }|S r˜   ©rš   ©rž   Z	prob_mainrœ   r�   rŸ   r   r   r   Úcompute_mixture_var   s
    zETestZeroInflatedPoisson_predict.test_var.<locals>.compute_mixture_varú	prob-main©Úwhichú	mean-mainr3   r   ©r’   Z_dispersion_factorr{   r   rš   r`   rŸ   ©r   r©   r’   Z
var_fittedr   r   r   Útest_varÿ   s    

þ  ÿz(TestZeroInflatedPoisson_predict.test_varc                 C   sV   | j }|jdd�}tjj t |jd ¡d d …d f | ¡ d¡j	}t
||ddd� d S )NÚprobr«   r   r3   ©r   r   )r’   r{   r[   r�   r�   Úpmfr&   ÚarangerD   ÚTr   ©r   r’   ÚprÚpr2r   r   r   Útest_predict_prob  s    " ÿz1TestZeroInflatedPoisson_predict.test_predict_probc                 C   s€   | j }d}|jdd�}|j|jjd |… dd�}t||d |… dd� | ¡ }|j|jjd |… d�}t||d |… dd� d S )Né   r±   r«   )rB   r¬   ç»½×Ùß|Û=©r   )rB   )r’   r{   r5   rB   r   )r   r’   ÚnZpr1Zpr0r}   Zfitted0r   r   r   Útest_predict_options  s    z4TestZeroInflatedPoisson_predict.test_predict_optionsN)	rJ   rK   rL   rk   rj   r¦   r°   r¹   r¾   r   r   r   r   r…   Þ   s   
r…   c                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )Ú"TestZeroInflatedGeneralizedPoissonc                 C   s¼   t jj ¡ }t |j¡| _t |j¡|_t j|jd d …dd…f dd�}t j|jd d …df dd�}t j	|j||dd�j
dddd	�| _d
| jj_dddddg| _dddœ| _tj}|| _d S )Nr   rP   FrQ   r   ©rC   ÚprV   r-   rW   TrC   rY   rU   rZ   rÁ   rS   ©rU   rÁ   )r[   r\   r]   r^   r&   r_   r`   rB   ra   ÚZeroInflatedGeneralizedPoissonrc   r   rd   re   r<   r=   r   Z!zero_inflated_generalized_poissonr   rg   r   r   r   rj   *  s$     
 ÿ  ÿ
z.TestZeroInflatedGeneralizedPoisson.setup_classc                 C   s   d S r$   r   r   r   r   r   r   :  s    z+TestZeroInflatedGeneralizedPoisson.test_bsec                 C   s   d S r$   r   r   r   r   r   r   =  s    z0TestZeroInflatedGeneralizedPoisson.test_conf_intc                 C   s   d S r$   r   r   r   r   r   r#   @  s    z+TestZeroInflatedGeneralizedPoisson.test_bicc                 C   s0   t  | jjj¡}| j |¡}t| jj|jƒ d S r$   r%   r*   r   r   r   r+   C  s    z)TestZeroInflatedGeneralizedPoisson.test_tc           	   
   C   s  | j j}| j jd }|j|ddddd�}t|j| jjddd	� t|j| jjdd
d	� t|j	d dkƒ |j|ddddd�}t|j| jjddd	� t|j| jjdd
d	� t|j	d dkƒ t
j d¡}d|i}|jf |dddd dddœ|—Ž}t|j| jjddd	� t|j| jjdd
d	� d S )Nrv   Úminimizeú	trust-ncgr-   F©rv   rX   Z
min_methodr1   r0   r   g{®Gáz¤?r   g333333ã?Ú	convergedTÚdoglegçú~j¼t“h?r   r�   Úbasinhoppingr"   )rv   rX   ZniterZstepsizeÚniter_successr0   Úintervalç-Cëâ6?)r   r5   Úmle_settingsrc   r   r   r   r   r   Úmle_retvalsr&   rŒ   ZRandomState)	r   Úreset_randomstater5   rv   Úres_ncgÚres_dogZrandom_stater�   Úres_bhr   r   r   Útest_minimizeH  sh      þ ÿ ÿ  þ ÿ ÿ    þþ ÿ ÿz0TestZeroInflatedGeneralizedPoisson.test_minimizeN)
rJ   rK   rL   rk   rj   r   r   r#   r+   rÔ   r   r   r   r   r¿   (  s   
r¿   c                   @   s0   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	S )
Ú*TestZeroInflatedGeneralizedPoisson_predictc                 C   sª   dddg}t j d¡ d}t  |df¡}d|d |d …df< | |d d… ¡}tjjj||d dd|j	d�| _
tj| j
|dd�}|jd	d
dd�| _||d dd|g| _d S )Nr   r†   r‡   rˆ   r2   éÿÿÿÿr‰   ©rÁ   rŠ   r‹   FrW   )r&   rŒ   r�   r6   rŽ   r[   r�   Zzigenpoissonr‘   rD   r`   rÃ   rc   r’   r“   r”   r   r   r   rj   q  s    
  ÿz6TestZeroInflatedGeneralizedPoisson_predict.setup_classc                 C   s6   dd„ }|| j Ž }t| j ¡  ¡ | j ¡ |dd� d S )Nc           	      S   sˆ   |d }d|| |   d ||   }|d|  |    ¡ }|d| |  d   ¡ 7 }|d| |    ¡ d 8 }t |¡}d| t |¡ }|S r˜   r™   ©	rœ   r/   rÁ   r�   r–   rž   rŸ   r    r¡   r   r   r   r¢   �  s    
zVTestZeroInflatedGeneralizedPoisson_predict.test_mean.<locals>.compute_conf_interval_95r   r   r£   r¤   r   r   r   r¦   €  s    
 ÿz4TestZeroInflatedGeneralizedPoisson_predict.test_meanc                 C   sJ   dd„ }| j }||j|jdd�|jdd�ƒ}t| ¡ | j ¡ ddd� d S )	Nc                 S   sP   d| }| d|  |   ¡ }|d| | d   ¡ 7 }|d| |   ¡ d 8 }|S r˜   r§   r¨   r   r   r   r©   “  s
    zPTestZeroInflatedGeneralizedPoisson_predict.test_var.<locals>.compute_mixture_varrª   r«   r­   r3   r"   r   r®   r¯   r   r   r   r°   ’  s    

þ  ÿz3TestZeroInflatedGeneralizedPoisson_predict.test_varc                 C   sZ   | j }|jdd�}tjj t |jd ¡d d …d f | ¡ ddd¡j	}t
||ddd� d S )	Nr±   r«   r   r†   r2   g{®Gáz´?r3   r²   )r’   r{   r[   r�   Úzinegbinr³   r&   r´   rD   rµ   r   r¶   r   r   r   r¹   ¢  s    "   ÿz<TestZeroInflatedGeneralizedPoisson_predict.test_predict_probN)rJ   rK   rL   rk   rj   r¦   r°   r¹   r   r   r   r   rÕ   p  s
   
rÕ   c                   @   s@   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dS )Ú!TestZeroInflatedNegativeBinomialPc                 C   sÐ   t jj ¡ }t |j¡| _t |j¡|_t j|jd d …df dd�}t j|jd d …df dd�}t 	ddddd	g¡}t j
|j||d
d�j|ddddd�| _d| jj_dddddg| _dd
dœ| _tj}|| _d S )Nr   FrQ   r   g®Gázþ?g�Âõ(\�$Àgš™™™™™É¿g=
×£p=ò?gq=
×£põ?r2   rÀ   Únmrw   r‹   )rv   rX   Zxtolr1   r0   TrC   rY   rU   rZ   rÁ   rS   rÂ   )r[   r\   r]   r^   r&   r_   r`   rB   ra   ÚarrayÚZeroInflatedNegativeBinomialPrc   r   rd   re   r<   r=   r   Zzero_inflated_negative_binomialr   )rh   ri   rB   rC   Úspr   r   r   r   rj   ¬  s*    
 ÿ   þ
z-TestZeroInflatedNegativeBinomialP.setup_classc                 C   s   t | jj| jjddd� d S r   r   r   r   r   r   r   À  s     ÿz-TestZeroInflatedNegativeBinomialP.test_paramsc                 C   s   d S r$   r   r   r   r   r   r   Ä  s    z/TestZeroInflatedNegativeBinomialP.test_conf_intc                 C   s   d S r$   r   r   r   r   r   r#   Ç  s    z*TestZeroInflatedNegativeBinomialP.test_bicc                 C   sd   | j j}t t| j jƒ¡}d|dd …< |j|d ddd�}t|jdd … | j jdd … ddd	� d S )
Nr   r,   r   Fr-   r.   r2   r"   r   r4   r8   r   r   r   r9   Ê  s     ÿz6TestZeroInflatedNegativeBinomialP.test_fit_regularizedc                 C   sü   | j j}| j jd }|j|ddddd�}t|j| jjddd	� t|j| jjdd
d	� t|j	d dkƒ |j|ddddd�}t|j| jjddd	� t|j| jjddd	� t|j	d dkƒ |j|ddddd�}t|j| jjddd	� t|j| jjddd	� d S )Nrv   rÄ   rÅ   r-   FrÆ   r   g¸…ëQ¸ž?r   g¸…ëQ¸®?rÇ   TrÈ   rÉ   gyé&1¬|?rÊ   é   )rv   rX   r1   rË   r0   rÍ   ga2U0*©3?)
r   r5   rÎ   rc   r   r   r   r   r   rÏ   )r   rÐ   r5   rv   rÑ   rÒ   rÓ   r   r   r   rÔ   Õ  s\      þ ÿ ÿ  þ ÿ ÿ  þ ÿ ÿz/TestZeroInflatedNegativeBinomialP.test_minimizeN)
rJ   rK   rL   rk   rj   r   r   r#   r9   rÔ   r   r   r   r   rÚ   «  s   
rÚ   c                   @   s8   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú)TestZeroInflatedNegativeBinomialP_predictc                 C   sº   dddg}t j d¡ d}t  |df¡}d|d |d …df< d}t  | |d d… ¡¡}tjjj	||d d||j
d	�| _tj| j|dd
�}|jdddd�| _|| _||d d||g| _d S )Nr   r†   r‡   r‹   r2   r   g333333Ã?rÖ   r‰   r×   rŠ   FrW   )r&   rŒ   r�   r6   rz   rŽ   r[   r�   rÙ   r‘   rD   r`   rÝ   rc   r’   r�   r“   )rh   r•   r–   rB   r�   r—   r5   r   r   r   rj   ü  s"    

   ÿz5TestZeroInflatedNegativeBinomialP_predict.setup_classc                 C   sH   dd„ }|| j Ž }d| j | j d   ¡ }t| j ¡  ¡ ||dd� d S )Nc           	      S   s€   d|| |d    ||   }|d|  |    ¡ }|d| |  d   ¡ 7 }|d| |    ¡ d 8 }t |¡}d| t |¡ }|S r˜   r™   rØ   r   r   r   r¢     s    
zUTestZeroInflatedNegativeBinomialP_predict.test_mean.<locals>.compute_conf_interval_95r   r   r   )r“   r�   rš   r   r’   r{   )r   r¢   r¥   Z	mean_truer   r   r   r¦     s    
  ÿz3TestZeroInflatedNegativeBinomialP_predict.test_meanc                 C   sH   dd„ }| j }||j|jdd�|jdd�ƒ}t| ¡ | j ¡ dd� d S )Nc                 S   sP   d| }| d|  |   ¡ }|d| | d   ¡ 7 }|d| |   ¡ d 8 }|S r˜   r§   r¨   r   r   r   r©   $  s
    zOTestZeroInflatedNegativeBinomialP_predict.test_var.<locals>.compute_mixture_varrª   r«   r­   çš™™™™™É?r¼   r®   r¯   r   r   r   r°   "  s    

þ ÿz2TestZeroInflatedNegativeBinomialP_predict.test_varc                 C   sÈ   | j }|jj}|jdd�}tjj t 	|j
d ¡d d …d f | ¡ dd| j¡j}t||ddd� | d¡}| d¡}t | t¡¡t|ƒ }t|| d  ¡ dd	d
d� t|| d  ¡ dd	dd� d S )Nr±   r«   r   r†   r2   r"   r²   r   r»   gü©ñÒMb@?rÍ   )r’   r5   r`   r{   r[   r�   rÙ   r³   r&   r´   rD   r�   rµ   r   rš   ÚbincountÚastypeÚintr7   )r   r’   r`   r·   r¸   ZprmZpr2mÚfreqr   r   r   r¹   3  s    "   ÿ

z;TestZeroInflatedNegativeBinomialP_predict.test_predict_probc              	   C   sÞ  | j }| j}| j jj}| j}t|ƒ}t | t	¡¡t|ƒ }|j
dd�}| d¡}t||dd� |j
ddgddggt dgdgg¡dd�}	|d|d g }
t|	|
dd� |j
ddgddggt dgdgg¡d	d�}t||
d d …df dd
� |j
ddgddggt dgdgg¡dd�}|j
dd�}|ddg  t||ddg dd
� t|d| dd� |j
ddgddggt dgdgg¡d�}||d d …df dk  ¡ ||d d …df dk  ¡ f}t||dd
� |j
ddgddggt dgdgg¡dd�}t|t t |jdd… ¡¡dd
� ||d d …df dk|dk@   ¡ ||d d …df dk|dk@   ¡ f}|j
ddgddggt dgdgg¡dd�}t||dd
� |j
ddgddggt dgdgg¡dd�}t|t |jdd… ¡dd
� d S )Nr±   r«   r   ç{®Gáz”?©r   r   )rB   rC   r¬   r»   ú	prob-zeror¼   rª   rÖ   r   ry   r3   r­   rß   úmean-nonzeroZlinear)r’   r`   r5   rB   r�   r7   r&   râ   rã   rä   r{   rš   r   r_   rz   Zcumsumr   )r   r’   r`   rB   r�   r–   rå   ZprobsZprobsmZprobs_uniqueZprobs_unique2Zprobs0_uniqueZprobs_main_uniqueZ
probs_mainÚpredZpred1Zpred_main_uniqueZmean_nzZpred_nonzero_uniqueZpred_lin_uniquer   r   r   Útest_predict_generic_ziA  sj    

þþþÿ8þÿ	""ÿ ÿþzATestZeroInflatedNegativeBinomialP_predict.test_predict_generic_ziN)	rJ   rK   rL   rk   rj   r¦   r°   r¹   rë   r   r   r   r   rà   û  s   
rà   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )Ú*TestZeroInflatedNegativeBinomialP_predict2c                 C   sŽ   t jj ¡ }t |j¡| _t |j¡|_|j}t ddddddddd	d
dddddddddg¡}t j	| j||dd�}|j
|dddd�}|| _d S )NgmÊôÏü·Àg%ZU£‡Àg9ÊúiÀgž5ª™Àg
¡AÀg}<™$;{ÀgK’	(wÀgHº°è·Àg³ÄVÑ–À¿gTéÄq"ò¬¿g}·õª %Ë¿g˜Ì%¿{¶?gøçýÚU£ž¿gr•þ�DPÍ?g©>F/YË¯?g÷séãÊn±?gkvî‡éŒµ?gz›©¾Ç?gèO¸ª.Øõ?r2   rÀ   rŠ   iè  Fru   )r[   r\   r]   r^   r&   r_   r`   rB   rÜ   rÝ   rc   r’   )rh   ri   rB   rv   Úmodr’   r   r   r   rj   …  sH                   ü   ÿ ÿz6TestZeroInflatedNegativeBinomialP_predict2.setup_classc                 C   s"   t | j ¡  ¡ | j ¡ dd� d S )Nræ   rç   )r   r’   r{   rš   r`   r   r   r   r   r¦   ˜  s    ÿz4TestZeroInflatedNegativeBinomialP_predict2.test_meanc                 C   sD   | j  ¡ }d| jjdd� ¡  | jjdd� ¡  }t||dd� d S )Nr   rè   r«   ré   rá   rç   )r`   rš   r’   r{   r   )r   Zmean1Zmean2r   r   r   Útest_zero_nonzero_meanœ  s
    
ÿzATestZeroInflatedNegativeBinomialP_predict2.test_zero_nonzero_meanN)rJ   rK   rL   rk   rj   r¦   rî   r   r   r   r   rì   „  s   
rì   c                   @   s   e Zd Zdd„ ZdS )ÚTestPandasOffsetc                 C   s¨   t  ddddddgi¡}t  dddddgdddddgdœ¡}t  dddddg¡}t  dddddg¡}tj|||d� ¡  dd	g}|D ]}tj||d
 ||d� ¡  q„d S )NÚFg        g      ð?)ÚIÚCr   r2   )r`   rB   rZ   rS   rm   rñ   )r`   rB   rY   rU   )ÚpdZ	DataFrameZSeriesr[   ZPoissonrc   rb   )r   r`   rB   rY   rZ   Z
inflationsrU   r   r   r   Útest_pd_offset_exposure¥  s    ÿþz(TestPandasOffset.test_pd_offset_exposureN)rJ   rK   rL   rô   r   r   r   r   rï   £  s   rï   )!Zstatsmodels.compat.platformr   Únumpyr&   Znumpy.testingr   r   r   r   Zpandasró   rM   Zstatsmodels.apiÚapir[   Zresults.results_discreter   Ztest_discreter	   r
   rO   rl   rs   r€   r…   rN   Zslowr¿   rÕ   rÚ   rà   rì   rï   r   r   r   r   Ú<module>   s*   9C'JG;P 
