
    !gp                        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e      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d d      Zej2                  j4                   G d de             Z G d d      Z G d de      Z G d d      Z G d d      Z G d d      Z y)    )PLATFORM_LINUX32N)assert_assert_allcloseassert_array_equalassert_equal   )RandHIE)CheckModelMixinc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  d        Zy)CheckGenericc                 r    t        | j                  j                  | j                  j                  dd       y Nh㈵>atolrtolr   res1paramsres2selfs    h/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/discrete/tests/test_count_model.pytest_paramszCheckGeneric.test_params   s$    		(($))*:*:DQ    c                 r    t        | j                  j                  | j                  j                  dd       y r   )r   r   llfr   r   s    r   test_llfzCheckGeneric.test_llf        		tyy}}4dKr   c                 z    t        | j                  j                         | j                  j                  dd       y )NMbP?r   r   )r   r   conf_intr   r   s    r   test_conf_intzCheckGeneric.test_conf_int   s(    		**,dii.@.@tRVWr   c                 r    t        | j                  j                  | j                  j                  dd       y Nr!   r   )r   r   bser   r   s    r   test_bsezCheckGeneric.test_bse   r   r   c                 r    t        | j                  j                  | j                  j                  dd       y )N{Gz?r   r   r   aicr   r   s    r   test_aiczCheckGeneric.test_aic    r   r   c                 r    t        | j                  j                  | j                  j                  dd       y )N皙?r   r*   r   s    r   test_biczCheckGeneric.test_bic#   r   r   c                     t        j                  | j                  j                  j                        }| j                  j                  |      }t        | j                  j                  |j                         y N	npidentityr   r   sizet_testr   tvaluestvaluer   unit_matrixr6   s      r   test_tzCheckGeneric.test_t&   L    kk$))"2"2"7"78!!+.		))6==9r   c                 2   | j                   j                  }t        j                  t	        | j                   j
                              }d|dd  |j                  |dz  dd      }t        |j
                  dd  | j                   j
                  dd  dd	       y )
Nr   r)   F  alphadispmaxiter   皙?r   r   modelr3   oneslenr   fit_regularizedr   r   rG   rA   res_regs       r   test_fit_regularizedz!CheckGeneric.test_fit_regularized+       		DII,,-.bc
''eDjuc'Rqr*DII,<,<QR,@D	"r   c                    | j                   j                  j                         }t        t	        |j                               t	        | j                               | j                  j                         D ]  \  }}t        ||   |        y r1   )	r   rG   _get_init_kwdsr   setkeys	init_keys	init_kwdsitems)r   rT   keyvalues       r   test_init_keyszCheckGeneric.test_init_keys5   se    IIOO224	S)*C,?@....0 	0JC3/	0r   c                    | j                   j                   | j                   j                  j                  j                  }| j                   j                  j                  j
                  }t        |j                  t        | j                   j                  j                        df       t        t        j                  |      d       t        t        j                  |      d       y )Nr   r   )r   llnullres_nullrG   exog	exog_inflr   shaperI   r   r3   ptp)r   	exog_nullexog_infl_nulls      r   	test_nullzCheckGeneric.test_null;   s    		II&&,,11	++11;;>//$))//../3	5RVVI&*RVVN+Q/r   c                 V    | j                   j                         }dt        |      v sJ y )NzCovariance Type:)r   summarystr)r   summs     r   test_summaryzCheckGeneric.test_summaryF   s&    yy  "!SY...r   N)__name__
__module____qualname__r   r   r#   r'   r,   r/   r;   rM   rX   rb   pytestmarksmokerg    r   r   r   r      sX    RLXLLL:
"0	0 [[/ /r   r   c                       e Zd Zed        Zy)TestZeroInflatedModel_logitc                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        t        j                  |j                  d d ddf   d      }t        j                  |j                  d d df   d      }t        j                  |j                  ||d      j                  dd	d
      | _        d| j                  j                  _        g d| _        ddi| _        t         j"                  }|| _        y )Nr      Fprependr   logitr]   	inflationnewtonr?   methodrC   rB   Tr]   exposurerw   offsetrw   )smdatasetsrandhieloadr3   asarrayendogr\   add_constantZeroInflatedPoissonfitr   _results_attach_nullmodelrS   rT   r	   zero_inflated_poisson_logitr   clsdatar\   r]   r   s        r   setup_classz'TestZeroInflatedModel_logit.setup_classM   s    {{""'')JJtzz*	JJtyy)	tyy1Q3/?OODIIacNEB	))$**d7447CxQT=B 58 5D 	 /3+H$g.22r   N)rh   ri   rj   classmethodr   rn   r   r   rp   rp   L   s     r   rp   c                   n     e Zd Zed        Zej                  j                  ed       fd       Z	 xZ
S )TestZeroInflatedModel_probitc                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        t        j                  |j                  d d ddf   d      }t        j                  |j                  d d df   d      }t        j                  |j                  ||d      j                  dd	d
      | _        d| j                  j                  _        g d| _        ddi| _        t         j"                  }|| _        y )Nr   rr   Frs   r   probitrv   rx   r?   ry   Tr{   rw   )r~   r   r   r   r3   r   r   r\   r   r   r   r   r   r   rS   rT   r	   zero_inflated_poisson_probitr   r   s        r   r   z(TestZeroInflatedModel_probit.setup_class_   s    {{""'')JJtzz*	JJtyy)	tyy1Q3/?OODIIacNEB	))$**d8558SRU>C 69 6E 	 /3+H$h/33r   zFails on 32-bit Linux)reasonc                 "    t         |           y r1   )superrM   )r   	__class__s    r   rM   z1TestZeroInflatedModel_probit.test_fit_regularizedp   s    $&r   )rh   ri   rj   r   r   rk   rl   skipifr   rM   __classcell__)r   s   @r   r   r   ^   s@       [[(1HI' J'r   r   c                   "    e Zd Zed        Zd Zy)TestZeroInflatedModel_offsetc                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        t        j                  |j                  d d ddf   d      }t        j                  |j                  d d df   d      }t        j                  |j                  |||j                  d d df         j                  dd	d
      | _        d| j                  j                  _        g d| _        ddi| _        t         j"                  }|| _        y )Nr   rr   Frs   r      )r]   r}   rx   r?   ry   Tr{   rw   ru   )r~   r   r   r   r3   r   r   r\   r   r   r   r   r   r   rS   rT   r	   zero_inflated_poisson_offsetr   r   s        r   r   z(TestZeroInflatedModel_offset.setup_classu   s    {{""'')JJtzz*	JJtyy)	tyy1Q3/?OODIIacNEB	))$**d		!A#88;8DGAF 9< 9H 	
 /3+H$g.33r   c                    | j                   j                  }|j                  }t        j                  |j
                  |j                  |j                  t        j                  |            }|j                  | j                   j                  ddd      }t        |j                  | j                   j                  dd       | j                   j                         }|j                         }t        ||dd       |j                  }|j                  }|j                  }| j                   j                  |||j                               }	|j                  ||t        j                  |      	      }
t        |
|	dd       |j                  d d
d   }|j                  d d
d   }|d d
d   }| j                   j                  |||      }|j                  ||t        j                  |      	      }t        ||dd       t        ||d d
d   dd       t        ||d d
d   dd       | j                   j                  ||      }|j                  ||      }t        ||dd       y )N)r]   r|   rx   r?   Fstart_paramsrz   rC   rB   ư>r   )r\   r]   r}   )r\   r]   r|   
   rD   r\   r]   )r   rG   r}   r~   r   r   r\   r]   r3   expr   r   r   predicttolist)r   model1r}   model3res3fitted1fitted3exex_infl	fitted1_0	fitted3_0	fitted1_2	fitted3_2	fitted1_3	fitted3_3s                  r   test_exposurez*TestZeroInflatedModel_offset.test_exposure   s#    ''fkk&&Azztyy'7'7!)3U  D 	TYY%5%5DtL))##%,,.t$?[[""II%%2-3]]_ & >	LLbG*,&&. ! :		94dC[["Q""5Bq5)A II%%2-3 & 5	LLbG*,&&. ! :		94dC	75Bq5>4H	75Bq5>4H II%%2%A	LLbGL<		94dCr   N)rh   ri   rj   r   r   r   rn   r   r   r   r   t   s     "-Dr   r   c                   "    e Zd Zed        Zd Zy)TestZeroInflatedModelPandasc                    t         j                  j                  j                         }|j                  | _        || _        t        j                  |j                  j                  d d ddf   d      }t        j                  |j                  j                  d d df   d      }t        j                  g d      }t        j                  |j                  ||d      }|j                  |d	d
d      | _        d| j                  j                  _        g d| _        ddi| _        t$        j&                  }|| _        y )Nr   rr   Frs   r   )g̥ w?gNr(Xg.
g?gA~Wpg`·?ru   rv   rx   r?   r   Tr{   rw   )r~   r   r   load_pandasr   r   r   r\   ilocr3   r   r   r   r   r   r   rS   rT   r	   r   r   )r   r   r\   r]   r   rG   r   s          r   r   z'TestZeroInflatedModelPandas.setup_class   s    {{""..0JJ	tyy~~a!e4eDOODIINN1Q3$7G	zz #N O &&tzz47499,x%(u  6 /3+H$g.22r   c                    g d}t        | j                  j                  j                  |       t        | j                  j                  j
                  j                         |       t        | j                  j                  j
                  j                         |       t        j                  | j                  j                  j                  d d ddf   d      }t        j                  | j                  j                  j                  d d df   d      }g d}t        j                  | j                  j                  ||d	      }t        |j                  |       y )
N)inflate_lncoinsinflate_constidplpifmdeconstr   rr   Trs   r   )r   r   r   r   r   r   ru   rv   )r   r   rG   
exog_namesr   indexr   r&   r~   r   r   r\   r   r   r   )r   param_namesr\   r]   rG   s        r   
test_namesz&TestZeroInflatedModelPandas.test_names   s    (499??55{C499++1188:KH499==..557Etyy~~221QqS594HOODIINN$7$7!$<dK	&&&tyy745++[9r   N)rh   ri   rj   r   r   r   rn   r   r   r   r      s     *:r   r   c                   4    e Zd Zed        Zd Zd Zd Zd Zy)TestZeroInflatedPoisson_predictc                    ddg}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   |j	                  |      }t
        j                  j                  j                  |d|j                        | _
        t        j                  | j                  |      }|j                  dd	d
      | _        |d|g| _        y )Nr         ?    rD   rE   r5   bfgs  Fry   )r3   randomseedrH   dotr~   distributions	zipoissonrvsr^   r   r   r   resparams_truer   expected_paramsnobsr\   mu_truerG   s         r   r   z+TestZeroInflatedPoisson_predict.setup_class   s    c(
		swway!XdAgXq[((?+$$..227D8? 3 G	&&syy$7))64e)D"T40r   c                     d } || j                    }t        | j                  j                         j	                         | j
                  j	                         |d       y )Nc                    d|| z  z   }|d|z
  z  | z  j                         }|d|z
  | z  dz  j                         z  }|d|z
  | z  j                         dz  z  }t        j                  |      }d|z  t        j                  |      z  }|S Nr   rD   meanr3   sqrt)mu	prob_inflr   dispersion_factorvarstdconf_intv_95s          r   compute_conf_interval_95zKTestZeroInflatedPoisson_predict.test_mean.<locals>.compute_conf_interval_95   s     !IN 2 %a	k225;;=Ca	k2%)//11Ca	k2%++-11C''#,Cs7RWWT]2Lr   r   r   r   r   r   r   r   r   r   r   conf_interval_95s      r   	test_meanz)TestZeroInflatedPoisson_predict.test_mean   sL    
	  4T5E5EF((*//14::??3D-A	7r   c                     d }| j                   } ||j                  |j                  d      |j                  d            }t        |j	                         | j
                  j                         dd       y )Nc                     d|z
  }| d|z
  z  |z  j                         }|d|z
  |z  dz  j                         z  }|d|z
  |z  j                         dz  z  }|S r   r   r   	prob_mainr   r   r   s        r   compute_mixture_varzETestZeroInflatedPoisson_predict.test_var.<locals>.compute_mixture_var   sp    
 )I$a	k225;;=Ca	k2%)//11Ca	k2%++-11CJr   	prob-mainwhich	mean-mainrE   r   r   _dispersion_factorr   r   r   r   r   r   r   r   
var_fitteds       r   test_varz(TestZeroInflatedPoisson_predict.test_var   sg    		 hh()?)?),;)G),;)GI
 	
)

(t$	@r   c                 2   | j                   }|j                  d      }t        j                  j                  j                  t        j                  |j                  d         d d d f   |j                         d      j                  }t        ||dd       y )Nprobr   r   rE   r   r   )r   r   r~   r   r   pmfr3   aranger^   Tr   r   r   prpr2s       r   test_predict_probz1TestZeroInflatedPoisson_predict.test_predict_prob  su    hh[[v[&((,,RYYrxx{-CAtG-L-0[[]DBBC! 	Cd6r   c                 N   | j                   }d}|j                  d      }|j                  |j                  j                  d | d      }t	        ||d | d       |j                         }|j                  |j                  j                  d |       }t	        ||d | d       y )N   r   r   )r\   r   绽|=r   )r\   )r   r   rG   r\   r   )r   r   npr1pr0r   fitted0s          r   test_predict_optionsz4TestZeroInflatedPoisson_predict.test_predict_options  s    hhkkk'kksyy~~bq1k@S!W51++-++399>>"1#5+6!59r   N)	rh   ri   rj   r   r   r   r   r  r  rn   r   r   r   r      s)    1 17"@(7
:r   r   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)"TestZeroInflatedGeneralizedPoissonc                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        t        j                  |j                  d d ddf   d      }t        j                  |j                  d d df   d      }t        j                  |j                  ||d      j                  ddd	      | _        d
| j                  j                  _        g d| _        ddd| _        t         j"                  }|| _        y )Nr   rr   Frs   r   r]   prx   r?   ry   Tr]   r|   rw   r}   r  ru   rw   r  )r~   r   r   r   r3   r   r   r\   r   ZeroInflatedGeneralizedPoissonr   r   r   r   rS   rT   r	   !zero_inflated_generalized_poissonr   r   s        r   r   z.TestZeroInflatedGeneralizedPoisson.setup_class*  s    {{""'')JJtzz*	JJtyy)	tyy1Q3/?OODIIacNEB	44TZZ1&&)c3Uc&S 	 /3+M&-A688r   c                      y r1   rn   r   s    r   r'   z+TestZeroInflatedGeneralizedPoisson.test_bse:      r   c                      y r1   rn   r   s    r   r#   z0TestZeroInflatedGeneralizedPoisson.test_conf_int=  r  r   c                      y r1   rn   r   s    r   r/   z+TestZeroInflatedGeneralizedPoisson.test_bic@  r  r   c                     t        j                  | j                  j                  j                        }| j                  j                  |      }t        | j                  j                  |j                         y r1   r2   r9   s      r   r;   z)TestZeroInflatedGeneralizedPoisson.test_tC  r<   r   c                    | j                   j                  }| j                   j                  d   }|j                  |dddd      }t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd
	       t        |j                  d   du        |j                  |dddd      }t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd
	       t        |j                  d   du        t        j                  j                  d      }d|i} |j                  d|dddd ddd|}t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd
	       y )Nr   minimize	trust-ncgr?   Fr   rz   
min_methodrC   rB   r!   g{Gz?r   g333333?	convergedTdogleg~jth?r   r   basinhoppingr.   )r   rz   niterstepsizeniter_successrB   interval-C6?rn   )r   rG   mle_settingsr   r   r   r   r&   r   mle_retvalsr3   r   RandomState)	r   reset_randomstaterG   r   res_ncgres_dograndom_stater   res_bhs	            r   test_minimizez0TestZeroInflatedGeneralizedPoisson.test_minimizeH  s   		yy--n=))#-+$'e  5 			(8(8!	.TYY]]!	-##K0D89))#-($'e  5 			(8(8!	.TYY]]!	-##K0D89 yy,,Q/% O"0c)-EAOIMO 	tyy'7'7!	.

DIIMM!	-r   N)
rh   ri   rj   r   r   r'   r#   r/   r;   r2  rn   r   r   r  r  (  s-     :
$-r   r  c                   .    e Zd Zed        Zd Zd Zd Zy)*TestZeroInflatedGeneralizedPoisson_predictc                    g d}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   |j	                  |d d       }t
        j                  j                  j                  ||d   dd|j                        | _
        t        j                  | j                  |d	      }|j                  d
dd      | _        ||d   dd|g| _        y )N)r   r   r   r   r   rD   r   r   r   r  r   r   Fry   )r3   r   r   rH   r   r~   r   zigenpoissonr   r^   r   r  r   r   r   r   s         r   r   z6TestZeroInflatedGeneralizedPoisson_predict.setup_classq  s    '
		swway!XdAgXq[((?3B/0$$1155gr?R677== 6 R	11#))TQG))64e)D"OB$7S$Gr   c                     d } || j                    }t        | j                  j                         j	                         | j
                  j	                         |d       y )Nc                 :   |dz
  }d|| |z  z  z   dz  || z  z   }|d|z
  z  | z  j                         }|d|z
  | z  dz  j                         z  }|d|z
  | z  j                         dz  z  }t        j                  |      }d|z  t        j                  |      z  }|S r   r   	r   rA   r  r   r   r   r   r   r   s	            r   r   zVTestZeroInflatedGeneralizedPoisson_predict.test_mean.<locals>.compute_conf_interval_95  s    !A!"URU]!2Q 6R G %a	k225;;=Ca	k2%)//11Ca	k2%++-11C''#,Cs7RWWT]2Lr   r   r   r   r   s      r   r   z4TestZeroInflatedGeneralizedPoisson_predict.test_mean  sL    	  4T5E5EF((*//14::??3D-A	7r   c                     d }| j                   } ||j                  |j                  d      |j                  d            }t        |j	                         | j
                  j                         dd       y )Nc                     d|z
  }| d|z
  z  |z  j                         }|d|z
  |z  dz  j                         z  }|d|z
  |z  j                         dz  z  }|S r   r   r   s        r   r   zPTestZeroInflatedGeneralizedPoisson_predict.test_var.<locals>.compute_mixture_var  sn    )I$a	k225;;=Ca	k2%)//11Ca	k2%++-11CJr   r   r   r   rE   r.   r   r   r   s       r   r   z3TestZeroInflatedGeneralizedPoisson_predict.test_var  sf    	 hh()?)?),;)G),;)GI
 	
)

(t#	?r   c                 6   | j                   }|j                  d      }t        j                  j                  j                  t        j                  |j                  d         d d d f   |j                         ddd      j                  }t        ||dd       y )	Nr   r   r   r   rD   g{Gz?rE   r   )r   r   r~   r   zinegbinr   r3   r   r^   r   r   r  s       r   r  z<TestZeroInflatedGeneralizedPoisson_predict.test_predict_prob  sy    hh[[v[&''++BIIbhhqk,B1d7,K,/KKM33HHI 	Cd6r   N)rh   ri   rj   r   r   r   r   r  rn   r   r   r4  r4  p  s%    H H7$? 7r   r4  c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)!TestZeroInflatedNegativeBinomialPc                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        t        j                  |j                  d d df   d      }t        j                  |j                  d d df   d      }t	        j                  g d      }t        j                  |j                  ||d      j                  |dd	d
d      | _        d| j                  j                  _        g d| _        ddd| _        t"        j$                  }|| _        y )Nr   Frs   r   )gGz?g(\$gɿg=
ףp=?gq=
ףp?rD   r  nmr   r   )r   rz   xtolrC   rB   Tr  ru   r  )r~   r   r   r   r3   r   r   r\   r   arrayZeroInflatedNegativeBinomialPr   r   r   r   rS   rT   r	   zero_inflated_negative_binomialr   )r   r   r\   r]   spr   s         r   r   z-TestZeroInflatedNegativeBinomialP.setup_class  s   {{""'')JJtzz*	JJtyy)	tyy1~u=OODIIacNEB	 XX7833DJJ1&&)cr$/3T '* 'O 	 /3+M&-A666r   c                 r    t        | j                  j                  | j                  j                  dd       y r%   r   r   s    r   r   z-TestZeroInflatedNegativeBinomialP.test_params  s'    		(($))*:*:!	.r   c                      y r1   rn   r   s    r   r#   z/TestZeroInflatedNegativeBinomialP.test_conf_int  r  r   c                      y r1   rn   r   s    r   r/   z*TestZeroInflatedNegativeBinomialP.test_bic  r  r   c                 2   | j                   j                  }t        j                  t	        | j                   j
                              }d|dd  |j                  |dz  dd      }t        |j
                  dd  | j                   j
                  dd  dd	       y )
Nr   r>   r)   Fr?   r@   rD   r.   r   rF   rK   s       r   rM   z6TestZeroInflatedNegativeBinomialP.test_fit_regularized  rN   r   c                 j   | j                   j                  }| j                   j                  d   }|j                  |dddd      }t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd
	       t        |j                  d   du        |j                  |dddd      }t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd	       t        |j                  d   du        |j                  |dddd      }t	        |j
                  | j                  j
                  dd	       t	        |j                  | j                  j                  dd	       y )Nr   r  r  r?   Fr  r!   gQ?r   gQ?r!  Tr"  r#  gy&1|?r$     )r   rz   rC   r'  rB   r)  ga2U0*3?)
r   rG   r*  r   r   r   r   r&   r   r+  )r   r-  rG   r   r.  r/  r1  s          r   r2  z/TestZeroInflatedNegativeBinomialP.test_minimize  sj   		yy--n=))#-+$'e  5 			(8(8!	.TYY]]!	.##K0D89))#-($'e  5 			(8(8!	.TYY]]!	.##K0D89"0#)*  8 	tyy'7'7!	.

DIIMM!	.r   N)
rh   ri   rj   r   r   r   r#   r/   rM   r2  rn   r   r   rA  rA    s-     &."!.r   rA  c                   4    e Zd Zed        Zd Zd Zd Zd Zy))TestZeroInflatedNegativeBinomialP_predictc                    g d}t         j                  j                  d       d}t        j                  |df      }d|d |dz  df<   d}t        j                  |j                  |d d             }t        j                  j                  j                  ||d   d||j                  	      | _        t        j                  | j                  |d
      }|j                  ddd      | _        || _        ||d   d||g| _        y )N)r   r   r   r   r   rD   r   r   g333333?r6  r   r7  r   Fry   )r3   r   r   rH   r   r   r~   r   r?  r   r^   r   rF  r   r   r   r   )r   r   r   r\   r   r   rG   s          r   r   z5TestZeroInflatedNegativeBinomialP_predict.setup_class  s     &
		swway!XdAgXq[	&&/#2"678$$--11'#B'IGMM 2 K	00DAF))64e)D ""OB$7YMr   c                     d } || j                    }d| j                  z
  | j                   d   z  j                         }t        | j                  j                         j                         ||d       y )Nc                 0   d|| |dz
  z  z  z   || z  z   }|d|z
  z  | z  j                         }|d|z
  | z  dz  j                         z  }|d|z
  | z  j                         dz  z  }t        j                  |      }d|z  t        j                  |      z  }|S r   r   r;  s	            r   r   zUTestZeroInflatedNegativeBinomialP_predict.test_mean.<locals>.compute_conf_interval_95  s     !EB1I$5 5	B F %a	k225;;=Ca	k2%)//11Ca	k2%++-11C''#,Cs7RWWT]2Lr   r   r   r   )r   r   r   r   r   r   )r   r   r   	mean_trues       r   r   z3TestZeroInflatedNegativeBinomialP_predict.test_mean  sj    
	  4T5E5EF&(8(8(;;AAC	((*//1!(8q	Br   c                     d }| j                   } ||j                  |j                  d      |j                  d            }t        |j	                         | j
                  j                         d       y )Nc                     d|z
  }| d|z
  z  |z  j                         }|d|z
  |z  dz  j                         z  }|d|z
  |z  j                         dz  z  }|S r   r   r   s        r   r   zOTestZeroInflatedNegativeBinomialP_predict.test_var.<locals>.compute_mixture_var$  sn    II$I6;AACCa)mr)a/5577Ca)mr)//1a77CJr   r   r   r   皙?r  r   r   s       r   r   z2TestZeroInflatedNegativeBinomialP_predict.test_var"  sd    	 hh()?)?),;)G),;)GI
 	
)

(s	4r   c                    | j                   }|j                  j                  }|j                  d      }t        j
                  j                  j                  t        j                  |j                  d         d d d f   |j                         dd| j                        j                  }t        ||dd       |j                  d      }|j                  d      }t        j                  |j!                  t"                    t%        |      z  }t        ||z
  dz  j                         dd	d
       t        ||z
  dz  j                         dd	d       y )Nr   r   r   r   rD   r.   r   r   r  gMb@?r)  )r   rG   r   r   r~   r   r?  r   r3   r   r^   r   r   r   r   bincountastypeintrI   )r   r   r   r  r  prmpr2mfreqs           r   r  z;TestZeroInflatedNegativeBinomialP_predict.test_predict_prob3  s   hh		[[v[&''++BIIbhhqk,B1T6,JKKM34>>3341 	Cc4ggajxx{{{5<<,-E
:$*q..0!%dK#*q..0!%dKr   c           
         | j                   }| j                  }| j                   j                  j                  }| j                  }t        |      }t        j                  |j                  t                    t        |      z  }|j                  d      }|j                  d      }t        ||d       |j                  ddgddggt        j                  dgdgg      d      }	|d|dz
  g   }
t        |	|
d       |j                  ddgddggt        j                  dgdgg      d	      }t        ||
d d df   d
       |j                  ddgddggt        j                  dgdgg      d      }|j                  d      }|ddg    t        ||ddg   d
       t        |d|z
  d       |j                  ddgddggt        j                  dgdgg            }||d d df   dk(     j                         ||d d df   dk(     j                         f}t        ||d
       |j                  ddgddggt        j                  dgdgg      d      }t        |t        j                  t        j                  |j                   dd             d
       ||d d df   dk(  |dkD  z     j                         ||d d df   dk(  |dkD  z     j                         f}|j                  ddgddggt        j                  dgdgg      d      }t        ||d
       |j                  ddgddggt        j                  dgdgg      d      }t        |t        j                  |j                   dd       d
       y )Nr   r   r   {Gz?r   r   )r\   r]   r   r  	prob-zeror  r   r6  r)   r   rE   r   rN  mean-nonzerolinear)r   r   rG   r\   r   rI   r3   rY  rZ  r[  r   r   r   r   r   cumsumr   )r   r   r   r\   r   r   r^  probsprobsmprobs_uniqueprobs_unique2probs0_uniqueprobs_main_unique
probs_mainpredpred1pred_main_uniquemean_nzpred_nonzero_uniquepred_lin_uniques                       r   test_predict_generic_zizATestZeroInflatedNegativeBinomialP_predict.test_predict_generic_ziA  s    hh

xx~~""NN	5z{{5<<,-E
:&)Af40{{!Q!Q(8-/ZZ!qc
-C)/ # 1 q$q&k*m%@1a&1a&)9.0jj1#s.D*5 $ 7 	}QT':GKKq!fq!f-=24**qcA3Z2H.9 ( ; [[{[3
Ab6):qf+=UK)1y=tD{{!Q!Q 0%'ZZ!qc
%;  =d1a4jAo&++-uT!Q$Z1_/E/J/J/LLe$/;;aVaV,<13aS1#J1G-8 ' : 	("&&3::a?1K*L"	$ $q!t*/eai89>>@$q!t*/eai89>>@B!kkAA/?46JJaSz4JR` * b+W4@++QFQF+;02

QC!:0F,4 & 6 	3::a?)C%Pr   N)	rh   ri   rj   r   r   r   r   r  rs  rn   r   r   rP  rP    s.    N N&B$4"L@Qr   rP  c                   (    e Zd Zed        Zd Zd Zy)*TestZeroInflatedNegativeBinomialP_predict2c                    t         j                  j                  j                         }t	        j
                  |j                        | _        t	        j
                  |j                        |_        |j                  }t	        j                  g d      }t        j                  | j                  ||d      }|j                  |ddd      }|| _        y )N)gmg%ZUg9ig5g
Ag}<$;{gK	(wgHgVіgTq"g} %˿g%{?gUgrDP?g>F/Y˯?gsn?gkv錵?gz?gO.?rD   r  r   i  Fr   )r~   r   r   r   r3   r   r   r\   rE  rF  r   r   )r   r   r\   r   modr   s         r   r   z6TestZeroInflatedNegativeBinomialP_predict2.setup_class  s    {{""'')JJtzz*	JJtyy)	yyxx !? @
 ..IIttq2gg<"  0 r   c                     t        | j                  j                         j                         | j                  j                         d       y )Nr`  ra  )r   r   r   r   r   r   s    r   r   z4TestZeroInflatedNegativeBinomialP_predict2.test_mean  s2    ((*//14::??3D!	#r   c                    | j                   j                         }d| j                  j                  d      j                         z
  | j                  j                  d      j                         z  }t	        ||d       y )Nr   rb  r   rc  rW  ra  )r   r   r   r   r   )r   mean1mean2s      r   test_zero_nonzero_meanzATestZeroInflatedNegativeBinomialP_predict2.test_zero_nonzero_mean  sf    

!dhh&&[&9>>@@!!!7<<>?u3/r   N)rh   ri   rj   r   r   r   r|  rn   r   r   ru  ru    s     $#0r   ru  c                       e Zd Zd Zy)TestPandasOffsetc                    t        j                  dg di      }t        j                  g dg dd      }t        j                  g d      }t        j                  g d      }t        j                  |||      j                          d	d
g}|D ],  }t        j                  ||d   ||      j                          . y )NF)        r  r  r        ?)r  r  r  r  r  )r  r  r  r  r  )IC)r  r   r   rD   r   )r   r   r   rD   r   )r   r\   r}   ru   r   r  )r   r\   r|   rw   )pd	DataFrameSeriesr~   Poissonr   r   )r   r   r\   r|   r}   
inflationsrw   s          r   test_pd_offset_exposurez(TestPandasOffset.test_pd_offset_exposure  s    c#<=>||";";= >99-.?+


T&9==?x(
# 	>I""T#Y,4-688;	>r   N)rh   ri   rj   r  rn   r   r   r~  r~    s    >r   r~  )!statsmodels.compat.platformr   numpyr3   numpy.testingr   r   r   r   pandasr  rk   statsmodels.apiapir~   results.results_discreter	   test_discreter
   r   rp   r   r   r   r   rl   slowr  r4  rA  rP  ru  r~  rn   r   r   <module>r     s    8      - *7/? 7/r, $'< ',@D< @DF$:, $:NG: G:T C- C- C-N87 87vK. K.`FQ FQR0 0>> >r   