
    M/Ph)                        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dS )$z>

Created on Fri Mar 09 16:00:27 2012

Author: Josef Perktold
    )assert_series_equal)BytesIONc                    t                      }t          j        | |t          j                   |                                }|                    dd           t          j        |          }|                                 ||fS )N)protocolr   )r   pickledumpHIGHEST_PROTOCOLtellseekloadclose)objfhplenress       i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/base/tests/test_shrink_pickle.pycheck_pickler      sg    	B
KR&"9::::7799DGGAqMMM
+b//CHHJJJ9    c                   6    e Zd Zed             Zd Zd Zd ZdS )RemoveDataPicklec                    d}t           j                            d           t           j                            |d          }t	          j        |          }|| _        dt          j        d          z  | _        i | _	        d| _
        d S )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!   sp    
	vIOOD!$$OA'"r   c                 l   | j         }| j        }| j        } |j        |fi |}|                                 |                                 t          |j                  \  }}|                                  |j        |fi |}t          |t          j                  r+t          |t          j                  rt          ||           nlt          |t          j                  r2t          |t          j                  r|                    |          sJ n t          j                            ||           t          |j                  \  }}|| _        d||fz  }	||| j        z  k     s
J |	             |j        |fi |}
t          |t          j                  r,t          |
t          j                  rt          ||
           d S t          |t          j                  r3t          |
t          j                  r|                    |
          sJ d S t          j                            |
|           d S )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,   sA   ,W%	00i00 ((899[ 	00i00eRY'' 	2Jubi,H,H 	2u----r|,, 	2E<>L2J 2J 	2<<&&&&&&J##E5111 #7#344V )V[,AAd&;;;;;S;;;00i00eRY'' 	2Jubi,H,H 	2u-----r|,, 	2E<>L2J 2J 	2<<&&&&&&&J##E511111r   c                 ,    | j         j        j        J d S )N)r-   r2   __doc__r:   s    r   test_remove_data_docstringz+RemoveDataPickle.test_remove_data_docstring[   s    |'/;;;;;r   c                    t                      }| j        j                            |           |                    dd           | j        j        j                            |          }t          |          t          | j        j                  u sJ |                    dd           | j                            |           |                    dd           | j        j                            |          }|                                 t          |          t          | j                  u sJ t          | j        j
                                                  }t          |j
                                                  }||k    sJ d|d|            t          | j        j        j
                                                  }t          |j        j
                                                  }||k    sJ d|d|            t          | j        j        j
                                                  }t          |j        j
                                                  }||k    sJ d|d|            t          | j        j                                                  }t          |j                                                  }||k    sJ d|d|            d S )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^   s   YY 	""2&&&
1-7<<R@@M""d4<+@&A&AAAAA 	1"
1.33B77



M""d4<&8&88888-224455}-224455 EV E EE E E-6;;==>>}-6;;==>> EV E EE E E*388::;;}*388::;; EV E EE E E+002233}+002233 EV E EE E Er   N)__name__
__module____qualname__classmethodr+   rB   rF   rS    r   r   r   r      s`        # # [#-2 -2 -2^< < < F  F  F  F  Fr   r   c                       e Zd Zd ZdS )TestRemoveDataPickleOLSc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S Nr      r   )r#   r   r   r   sumr    shaper!   OLSfitr-   r:   r*   ys      r   setup_methodz$TestRemoveDataPickleOLS.setup_method   j    I
	vEE!HHryqwqz222va++//11r   NrT   rU   rV   rd   rX   r   r   rZ   rZ      #        2 2 2 2 2r   rZ   c                       e Zd Zd ZdS )TestRemoveDataPickleWLSc           	      v   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j         t          j	        t          |                                                              | _        d S )Nr   r]   r   )weights)r#   r   r   r   r^   r    r_   r!   WLSr$   lenra   r-   rb   s      r   rd   z$TestRemoveDataPickleWLS.setup_method   s}    I
	vEE!HHryqwqz222vaBGCFFOODDDHHJJr   Nrf   rX   r   r   ri   ri      s(        K K K K Kr   ri   c                       e Zd Zd ZdS )TestRemoveDataPicklePoissonc                    | j         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j	        ||          }t          j
        g d          }|                    |dd          | _        t          dd          | _        d S )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    I
	v)##BF15588affhh+>$?$?@@ 
7A&& x<<<> >yyl6&' ! ) ) !!A666r   Nrf   rX   r   r   ro   ro      s#        7 7 7 7 7r   ro   c                       e Zd Zd ZdS )$TestRemoveDataPickleNegativeBinomialc                     t           j                            d           t          j        j                                        }t          j        |j        |j	                  }|
                    d          | _        d S )Nr   r   )ru   )r   r   r   r!   datasetsrandhier   NegativeBinomialendogr#   ra   r-   )r:   datamods      r   rd   z1TestRemoveDataPickleNegativeBinomial.setup_method   sY    
	v{"''))!$*di88wwAwr   Nrf   rX   r   r   r   r      s#        ' ' ' ' 'r   r   c                       e Zd Zd ZdS )TestRemoveDataPickleLogitc                    | j         }|j        d         }t          j                            d           t          j                            |          ddt          j        |                    d          |                                z
            z   z  k     	                    t                    }t          j        ||          }t          j        g d          }|                    |dd          | _        d S )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    Iwqz
	v%%quuQxx!&&((2333)5 56<fSkk 	 "" x@@@B Byyl6&' ! ) )r   Nrf   rX   r   r   r   r      s#        ) ) ) ) )r   r   c                       e Zd Zd ZdS )TestRemoveDataPickleRLMc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S 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dS )TestRemoveDataPickleGLMc                 4   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                                | _
        d S r\   )r#   r   r   r   r^   r    r_   r!   GLMra   r-   rb   s      r   rd   z$TestRemoveDataPickleGLM.setup_method   re   r   c                 j   | j         }g d}|D ]}t          ||           |D ]}||j        v sJ |j        |         J dd l}|                                5  |                    dt                     |                                 d d d            n# 1 swxY w Y   |D ]}|j        |         J d S )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;   l4 4 4 	 	DC 	0 	0D3:%%%%:d#////$$&& 	 	!!(M:::OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  	, 	,D:d#++++	, 	,s   0BBBc                 l    | j         }|j        i k    sJ |                                 d|j        v sJ d S )Naic)r-   rO   r2   )r:   r   s     r   test_cached_values_evaluatedz4TestRemoveDataPickleGLM.test_cached_values_evaluated   sG     lzR
""""""r   N)rT   rU   rV   rd   r   r   rX   r   r   r   r      sA        2 2 2, , ,*# # # # #r   r   c                       e Zd Zd ZdS )"TestRemoveDataPickleGLMConstrainedc                 6   | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        || j                   	                    d          | _
        d S )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   sl    I
	vEE!HHryqwqz222va++;;GDDr   Nrf   rX   r   r   r   r      s(        E E E E Er   r   c                   4     e Zd Ze fd            Zd Z xZS )TestPickleFormulac                    t                                                       d}t          j                            d           t          j                            |d          }t          j        |g d          | _        t          j        dt          j	        d          z  | j        j
                  | _        d| _        d S )	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IOOD!$$<???;;;dRWV__4&)h&68 8 8"r   c                    | j         }t          j                            d           |                    d          t          j                            |j        d                   z   }t          j        |d          }| j         	                                }||d<   t          j                            d|                                          | _        d S )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    I
	sEE!HHryqwqz222Iac"""INN#v**?*CCGGIIr   rT   rU   rV   rW   r+   rd   __classcell__rI   s   @r   r   r     sX        # # # # [#J J J J J J Jr   r   c                   4     e Zd Ze fd            Zd Z xZS )TestPickleFormula2c                    t                                                       d}t          j                            d           t          j                            |d          }|d d dd f                             d          |d d df<   t          j        |g d          | _	        t          j        dt          j
        d	          z  | j	        j        dd                    | _        d
| _        d S )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ytQ''!!!QRR%[__Q''QQQT
<.B.B.BCCCdRWV__4&)h&6qrr&:< < <"r   c                     t           j                            d| j                                                  | _        d S )Nr   r   r!   r`   r   r   ra   r-   rE   s    r   rd   zTestPickleFormula2.setup_method&  7    v**?04	 + ; ;;>355 	r   r   r   s   @r   r   r     sX        	# 	# 	# 	# [	#A A A A A A Ar   r   c                       e Zd Zd ZdS )TestPickleFormula3c                     t           j                            d| j                                                  | _        d S )NzY ~ A + B * Cr   r   rE   s    r   rd   zTestPickleFormula3.setup_method-  r   r   Nrf   rX   r   r   r   r   +  (        A A A A Ar   r   c                       e Zd Zd ZdS )TestPickleFormula4c                     t           j                            d| j                                                  | _        d S )NzY ~ np.log(abs(A) + 1) + B * Cr   r   rE   s    r   rd   zTestPickleFormula4.setup_method4  s8    v**+K04	 + ; ;;>355 	r   Nrf   rX   r   r   r   r   2  r   r   r   c                       e Zd Zd ZdS )TestPickleFormula5c                     t           j                            d| j                                                  | _        d S )NzY ~ log(abs(A) + 1) + B * Cr   r   rE   s    r   rd   zTestPickleFormula5.setup_method>  s8    v**+H04	 + ; ;;>355 	r   Nrf   rX   r   r   r   r   <  r   r   r   c                       e Zd Zd ZdS )&TestRemoveDataPicklePoissonRegularizedc                 h   | j         }t          j                            d           t          j                            t          j        |                    d          |                                z
                      }t          j	        ||          }|
                    ddd          | _        d S )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  s    I
	v)##BF15588affhh+>$?$?@@
7A&&,,Dq,KKr   Nrf   rX   r   r   r   r   C  s(        L L L L 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`    : 9 9 9 9 9                      	f  _F _F _F _F _F _F _F _FD2 2 2 2 2. 2 2 2K K K K K. K K K7 7 7 7 7"2 7 7 7*' ' ' ' '+; ' ' ') ) ) ) ) 0 ) ) )(2 2 2 2 2. 2 2 2$# $# $# $# $#. $# $# $#NE E E E E)9 E E EJ J J J J( J J J,A A A A A) A A A$A A A A A+ A A AA A A A A+ A A AA A A A A+ A A AL L L L L-= L L L L Lr   