
    M/Ph                     B    d Z ddlZddlmZmZ ddlZd Zd Z	d Z
d ZdS )zTesting helper functions

Warning: current status experimental, mostly copy paste

Warning: these functions will be changed without warning as the need
during refactoring arises.

The first group of functions provide consistency checks

    N)assert_allcloseassert_c                    | }t          j        t          |j                            }|                    |          }t          |j        |j        d           t          t          j        |j                  |j	        d           t          t          j        |j
                  |j        d           t          |j        |j        d           t          |                                |                                d           t          j        |j        |j	        |j        |j        |                                f          }|                                j        }t          ||d           t%          t'          |d                     |                    |d                   }|                                 t          j        |j                  }t          |j        |d         d           d S )N-q=rtolg|=&.>use_tr   )npeyelenparamst_testr   effectsqueezesdbsetvaluetvaluespvaluepvaluesconf_intcolumn_stacksummary_framevaluesr   hasattrsummaryasarray)resultsresmattt	table_restable2r   s          Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tools/_testing.pycheck_ttest_tvaluesr&      s   
C
&SZ
!
!C	CBBIsz6666BJru%%swU;;;;BJry))3;UCCCCBIs{7777BKKMM3<<>>>>>> SWck!$cllnn!> ? ?I&FFIE2222 GC!!"""	CF		BJJLLLj%%GBIwqz666666    c                    | j         t          j                  fdt                    D             }t	          |j        dd           fdt                    D             }t	          |j        dd           du rdnd}t                                                    }t          ||v            	 t          	                                          }t          ||v            d	S # t          $ r Y d	S w xY w)
aN  
    Check that the outputs of `res.wald_test` produces pvalues that
    match res.pvalues.

    Check that the string representations of `res.summary()` and (possibly)
    `res.summary2()` correctly label either the t or z-statistic.

    Parameters
    ----------
    results : Results

    Raises
    ------
    AssertionError
    c                 z    g | ]7}                     t          j                  |         d           j        8S )T)use_fscalar	wald_testr   r   r   ).0kk_varsr    r
   s     r%   
<listcomp>z'check_ftest_pvalues.<locals>.<listcomp>C   sK     % % % ]]26&>>!,E$]GGN % % %r'   r	   g}:)r   atolc                 x    g | ]6}                     t          j                  |         d           j        7S )T)r+   r,   )r.   r/   r0   r    s     r%   r1   z'check_ftest_pvalues.<locals>.<listcomp>H   sI     % % % ]]26&>>!,T]::A % % %r'   FzP>|z|zP>|t|N)r
   r   r   ranger   r   strr   r   summary2AttributeError)r   pvalsstring_use_tsummsumm2r0   r    r
   s        @@@r%   check_ftest_pvaluesr<   /   sQ     CIE__F% % % % % %Fmm% % %EE3;U????% % % % %Fmm% % %EE3;U???? $unn77'Ls{{}}DLD !!!'CLLNN## 	%&&&&&    s   !C9 9
DDc                 X   dd l }ddlm} ddlm} t          | d|           } t          | ||f          r%|                    dt          |                       | }|j	        }t          |j        j        |z
  |j        d           t          ||                                d           d S )Nr   
GLMResultsDiscreteResults_resultszNot supported for r   r   )pytest+statsmodels.genmod.generalized_linear_modelr?   #statsmodels.discrete.discrete_modelrA   getattr
isinstanceskiptypefittedvaluesr   modelendogresidpredict)r   rC   r?   rA   r    fitteds         r%   check_fittedrP   [   s    MMM GFFFFFCCCCCC gz733G'J899 :8g88999
CFCIOf,cieDDDDFCKKMM666666r'   c                 X   | }t          j        t          j        |j        j        dd                             }ddlm} ddlm} ddl	m
}m} t          | d|           } t          | ||f          rk|                    |           |                    |                                           |                    |d                                                    dS |j        dd         }t#          ||                    |          d	           t#          ||                    t          j        |                                                    d	           t#          |dd
         |                    |d                                                   d	           t#          |dd
         |                    |d                   d	           t%          t'          |                    }|                    |          }	|j        d
k    rt*          j        nt*          j        }
|                     |
||                    }|	j        d
k    rt*          j        nt*          j        }
 |
|	|          }t          |t*          j                  r |||           dS  |||           dS )z
    Check that the `predict` method of the given results object produces the
    correct output type.

    Parameters
    ----------
    results : Results

    Raises
    ------
    AssertionError
    N   r   r>   r@   )assert_frame_equalassert_series_equalrB   r   r      )index)r   r   r   rK   exogrD   r?   rE   rA   statsmodels.compat.pandasrS   rT   rF   rG   rN   tolistrJ   r   r4   r   ndimpdSeries	DataFrame)r   r    p_exogr?   rA   rS   rT   rO   
exog_index	predictedclspredicted_pandaspredicted_expecteds                r%   check_predict_typesrd   n   s    CZ
39>"1"#56677F GFFFFFCCCCCCQQQQQQQQ gz733G'J899 EFFMMOO$$$F1I$$&&'''''!"1"%F 3 3%@@@@BJv,>,>,E,E,G,G H H"	$ 	$ 	$ 	$ 	rr
CKKq	0@0@0B0B$C$C"	$ 	$ 	$ 	$rr
CKKq	$:$:"	$ 	$ 	$ 	$ 3v;;''
KK''	!;!++bii;;ss6'D'D'DEE %>Q..biiBL S*===(")44 	E 24DEEEEE13CDDDDDr'   )__doc__numpyr   numpy.testingr   r   pandasr[   r&   r<   rP   rd    r'   r%   <module>rj      s   	 	     2 2 2 2 2 2 2 2    7 7 7:)' )' )'X7 7 7&8E 8E 8E 8E 8Er'   