
    !g)                        d Z ddlmZ ddlmZ ddlZddlZddlZ	ddl
mZ ej                  Zd Z G d d      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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e      Z G d de      Z G d  d!e      Z G d" d#e      Zy)$z>

Created on Fri Mar 09 16:00:27 2012

Author: Josef Perktold
    )assert_series_equal)BytesIONc                     t               }t        j                  | |t        j                         |j	                         }|j                  dd       t        j                  |      }|j                          ||fS )N)protocolr   )r   pickledumpHIGHEST_PROTOCOLtellseekloadclose)objfhplenress       f/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/base/tests/test_shrink_pickle.pycheck_pickler      sW    	B
KKR&"9"9:779DGGAqM
++b/CHHJ9    c                   .    e Zd Zed        Zd Zd Zd Zy)RemoveDataPicklec                    d}t         j                  j                  d       t         j                  j                  |d      }t	        j
                  |      }|| _        dt        j                  d      z  | _        i | _	        d| _
        y )Ni  )          ?)      g?)nprandomseedrandnsmadd_constantexogonesxfpredict_kwdsreduction_factor)clsnobsxs      r   setup_classzRemoveDataPickle.setup_class!   sd    
		vIIOOD!$OOA'"r   c                 n   | j                   }| j                  }| j                  } |j                  |fi |}|j	                          |j                          t        |j                        \  }}|j                           |j                  |fi |}t        |t        j                        r't        |t        j                        rt        ||       ngt        |t        j                        r-t        |t        j                        r|j                  |      s"J t        j                   j#                  ||       t        |j                        \  }}|| _        d||fz  }	||| j&                  z  k  sJ |	        |j                  |fi |}
t        |t        j                        r't        |
t        j                        rt        ||
       y t        |t        j                        r.t        |
t        j                        r|j                  |
      sJ y t        j                   j#                  |
|       y )Nzpickle length not %d < %d)resultsr%   r&   predictsummarysummary2r   _resultsremove_data
isinstancepdSeriesr   	DataFrameequalsr   testingassert_equalr   r'   )selfr-   r%   	pred_kwdspred1r   orig_nbytespred2nbytesmsgpred3s              r   test_remove_data_picklez(RemoveDataPickle.test_remove_data_pickle,   s   ,,WW%%	0i0 ((8(89[ 	0i0eRYY'Jubii,Hu-r||,E<>LL2J<<&&&JJ##E51 #7#3#34V )V[,AAd&;&;;;@S@;0i0eRYY'Jubii,Hu-r||,E<>LL2J<<&&&JJ##E51r   c                 H    | j                   j                  j                  J y )N)r-   r2   __doc__r:   s    r   test_remove_data_docstringz+RemoveDataPickle.test_remove_data_docstring[   s    ||''//;;;r   c                    t               }| j                  j                  j                  |       |j	                  dd       | j                  j                  j
                  j                  |      }t        |      t        | j                  j                        u sJ |j	                  dd       | j                  j                  |       |j	                  dd       | j                  j
                  j                  |      }|j                          t        |      t        | j                        u sJ t        | j                  j                  j                               }t        |j                  j                               }||k(  sJ d|d|       t        | j                  j                  j                  j                               }t        |j                  j                  j                               }||k(  sJ d|d|       t        | j                  j                  j                  j                               }t        |j                  j                  j                               }||k(  sJ d|d|       t        | j                  j                  j                               }t        |j                  j                               }||k(  sJ d|d|       y )Nr   z
not equal z and )r   r-   r1   saver   	__class__r   typer   sorted__dict__keysmodel_cache)r:   r   res_unpickledbeforeafters        r   test_pickle_wrapperz$RemoveDataPickle.test_pickle_wrapper^   sG   Y 	""2&
1--77<<R@M"d4<<+@+@&AAAA 	1"
1..33B7

M"d4<<&8888--2245}--2245E*VJeE9 EE--66;;=>}--66;;=>E*VJeE9 EE**3388:;}**3388:;E*VJeE9 EE++0023}++0023E*VJeE9 EEr   N)__name__
__module____qualname__classmethodr+   rB   rF   rS    r   r   r   r      s%    # #-2^< Fr   r   c                       e Zd Zd Zy)TestRemoveDataPickleOLSc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y Nr      r   )r#   r   r   r   sumr    shaper!   OLSfitr-   r:   r*   ys      r   setup_methodz$TestRemoveDataPickleOLS.setup_method   a    II
		vEE!Hryyqwwqz22vva+//1r   NrT   rU   rV   rd   rX   r   r   rZ   rZ          2r   rZ   c                       e Zd Zd Zy)TestRemoveDataPickleWLSc           	      x   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                   t        j                  t        |                  j                         | _        y )Nr   r]   r   )weights)r#   r   r   r   r^   r    r_   r!   WLSr$   lenra   r-   rb   s      r   rd   z$TestRemoveDataPickleWLS.setup_method   so    II
		vEE!Hryyqwwqz22vvaBGGCFODHHJr   Nrf   rX   r   r   ri   ri      s    Kr   ri   c                       e Zd Zd Zy)TestRemoveDataPicklePoissonc                    | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                         z
              }t        j                  ||      }t        j                  g d      }|j                  |dd      | _        t        dd      | _        y )Nr   r]   )gc<sm?g&?g`C?gZ9(
?bfgsr   start_paramsmethoddisp)exposureoffset)r#   r   r   r   poissonexpr^   meanr!   Poissonarrayra   r-   dictr&   )r:   r*   y_countrN   rs   s        r   rd   z(TestRemoveDataPicklePoisson.setup_method   s    II
		v))##BFF1558affh+>$?@ 

7A& xx<>yyl6&' ! ) !!A6r   Nrf   rX   r   r   ro   ro      s    7r   ro   c                       e Zd Zd Zy)$TestRemoveDataPickleNegativeBinomialc                    t         j                  j                  d       t        j                  j
                  j                         }t        j                  |j                  |j                        }|j                  d      | _        y )Nr   r   )ru   )r   r   r   r!   datasetsrandhier   NegativeBinomialendogr#   ra   r-   )r:   datamods      r   rd   z1TestRemoveDataPickleNegativeBinomial.setup_method   sU    
		v{{""'')!!$**dii8wwAwr   Nrf   rX   r   r   r   r      s    'r   r   c                       e Zd Zd Zy)TestRemoveDataPickleLogitc                    | j                   }|j                  d   }t        j                  j	                  d       t        j                  j                  |      ddt        j                  |j                  d      |j                         z
        z   z  k  j                  t              }t        j                  ||      }t        j                  g d      }|j                  |dd      | _        y )Nr   r   g      ?r]   )gdb=}gu7$gGZHgzdrq   rr   )r#   r_   r   r   r   randry   r^   rz   astypeintr!   Logitr|   ra   r-   )r:   r*   r)   y_binrN   rs   s         r   rd   z&TestRemoveDataPickleLogit.setup_method   s    IIwwqz
		v%quuQx!&&(233)5 56<fSk 	 " xx@Byyl6&' ! )r   Nrf   rX   r   r   r   r      s    )r   r   c                       e Zd Zd Zy)TestRemoveDataPickleRLMc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y r\   )r#   r   r   r   r^   r    r_   r!   RLMra   r-   rb   s      r   rd   z$TestRemoveDataPickleRLM.setup_method   re   r   Nrf   rX   r   r   r   r      rg   r   r   c                       e Zd Zd Zd Zd Zy)TestRemoveDataPickleGLMc                 <   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                         | _
        y r\   )r#   r   r   r   r^   r    r_   r!   GLMra   r-   rb   s      r   rd   z$TestRemoveDataPickleGLM.setup_method   re   r   c                 h   | j                   }g d}|D ]  }t        ||        |D ]#  }||j                  v sJ |j                  |   #J  dd l}|j	                         5  |j                  dt               |j                          d d d        |D ]  }|j                  |   J  y # 1 sw Y   "xY w)N)resid_responseresid_devianceresid_pearsonresid_anscomber   ignore)r-   getattrrO   warningscatch_warningssimplefilterFutureWarningr2   )r:   r   namesnamer   s        r   test_cached_data_removedz0TestRemoveDataPickleGLM.test_cached_data_removed   s    ll4 	DC	  	0D3::%%%::d#///	0 	$$& 	!!(M:OO	
  	,D::d#+++	,	 	s    'B((B1c                 ~    | j                   }|j                  i k(  sJ |j                          d|j                  v sJ y )Naic)r-   rO   r2   )r:   r   s     r   test_cached_values_evaluatedz4TestRemoveDataPickleGLM.test_cached_values_evaluated   s;     llzzR

"""r   N)rT   rU   rV   rd   r   r   rX   r   r   r   r      s    2,*#r   r   c                       e Zd Zd Zy)"TestRemoveDataPickleGLMConstrainedc                 >   | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  || j                         j                  d      | _
        y )Nr   r]   r   zx1=x2)r#   r   r   r   r^   r    r_   r!   r   fit_constrainedr-   rb   s      r   rd   z/TestRemoveDataPickleGLMConstrained.setup_method   sc    II
		vEE!Hryyqwwqz22vva+;;GDr   Nrf   rX   r   r   r   r      s    Er   r   c                   .     e Zd Ze fd       Zd Z xZS )TestPickleFormulac                 z   t         |           d}t        j                  j	                  d       t        j                  j                  |d      }t        j                  |g d      | _        t        j                  dt        j                  d      z  | j                  j                        | _        d| _        y )	Ni'  r   r   )ABCcolumnsr   r   r         ?)superr+   r   r   r   r    r4   r6   r#   r$   r   r%   r'   )r(   r)   r*   rI   s      r   r+   zTestPickleFormula.setup_class  s}    
		vIIOOD!$<<?;dRWWV_4&)hh&6&68"r   c                    | j                   }t        j                  j                  d       |j	                  d      t        j                  j                  |j                  d         z   }t        j                  |d      }| j                   j                         }||d<   t        j                  j                  d|      j                         | _        y )N{   r]   r   Y)r   Y ~ A + B + Cr   )r#   r   r   r   r^   r    r_   r4   r5   copyr!   r`   from_formulara   r-   )r:   r*   rc   Xs       r   rd   zTestPickleFormula.setup_method  s    II
		sEE!Hryyqwwqz22IIac"IINN#vv**?*CGGIr   rT   rU   rV   rW   r+   rd   __classcell__rI   s   @r   r   r     s    # #Jr   r   c                   .     e Zd Ze fd       Zd Z xZS )TestPickleFormula2c                    t         |           d}t        j                  j	                  d       t        j                  j                  |d      }|d d dd f   j                  d      |d d df<   t        j                  |g d      | _	        t        j                  dt        j                  d	      z  | j                  j                  dd        | _        d
| _        y )Ni  r   r   r]   r   )r   r   r   r   r   r   r   r   )r   r+   r   r   r   r    r^   r4   r6   r   r$   r   r%   r'   )r(   r)   r   rI   s      r   r+   zTestPickleFormula2.setup_class  s    
		vyytQ'!QR%[__Q'QT
<<.BCdRWWV_4&)hh&6&6qr&:<"r   c                     t         j                  j                  d| j                        j	                         | _        y )Nr   r   r!   r`   r   r   ra   r-   rE   s    r   rd   zTestPickleFormula2.setup_method&  0    vv**?04		 + ;;>35 	r   r   r   s   @r   r   r     s    	# 	#Ar   r   c                       e Zd Zd Zy)TestPickleFormula3c                     t         j                  j                  d| j                        j	                         | _        y )NzY ~ A + B * Cr   r   rE   s    r   rd   zTestPickleFormula3.setup_method-  r   r   Nrf   rX   r   r   r   r   +      Ar   r   c                       e Zd Zd Zy)TestPickleFormula4c                     t         j                  j                  d| j                        j	                         | _        y )NzY ~ np.log(abs(A) + 1) + B * Cr   r   rE   s    r   rd   zTestPickleFormula4.setup_method4  s1    vv**+K04		 + ;;>35 	r   Nrf   rX   r   r   r   r   2  r   r   r   c                       e Zd Zd Zy)TestPickleFormula5c                     t         j                  j                  d| j                        j	                         | _        y )NzY ~ log(abs(A) + 1) + B * Cr   r   rE   s    r   rd   zTestPickleFormula5.setup_method>  s1    vv**+H04		 + ;;>35 	r   Nrf   rX   r   r   r   r   <  r   r   r   c                       e Zd Zd Zy)&TestRemoveDataPicklePoissonRegularizedc                 \   | j                   }t        j                  j                  d       t        j                  j	                  t        j
                  |j                  d      |j                         z
              }t        j                  ||      }|j                  ddd      | _        y )Nr   r]   l1r   
   )rt   ru   alpha)r#   r   r   r   rx   ry   r^   rz   r!   r{   fit_regularizedr-   )r:   r*   r~   rN   s       r   rd   z3TestRemoveDataPicklePoissonRegularized.setup_methodE  st    II
		v))##BFF1558affh+>$?@

7A&,,Dq,Kr   Nrf   rX   r   r   r   r   C  s    Lr   r   )rD   statsmodels.compat.pandasr   ior   r   numpyr   pandasr4   statsmodels.apiapir!   logr   r   rZ   ri   ro   r   r   r   r   r   r   r   r   r   r   r   rX   r   r   <module>r      s   :      	ff_F _FD2. 2K. K7"2 7*'+; ') 0 )(2. 2$#. $#NE)9 EJ( J,A) A$A+ AA+ AA+ AL-= Lr   