
    !g                     X   d dl Zd dlmZmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ e	j                   j#                  d      Z e	j&                  d      d        Zd	 Zg d
g dg dgZ ej.                  g ddefdefddg      Z ej.                  g ddefdefg      Z ej.                  g dg dg dge      Z ej.                  g dg dg dg      Zd Zd Zd Z d Z!d Z"dd d!d" e# e$d#d$      D  cg c]  } d%|  	 c}       fd& e# e$d#d$      D  cg c]  } d'|  	 c}       ffZ%e	j                   jM                  d(e%e%D cg c]  }|d    	 c})      d*        Z'd+ Z(e	j                   jS                   e*ed,       d-.      d/        Z+d0 Z,d1 Z-yc c} w c c} w c c}w )2    N)assert_almost_equalassert_equal)SimpleTable)Descriptiondescribe	sign_testz=ignore::DeprecationWarning:statsmodels.stats.descriptivestatsfunction)scopec                      t         j                  j                  d      j                  d      } t	        j
                  t        j                  d      dz  d      }t	        j                  | |d      S )Nr   d   
   categorydtypeab)nprandomRandomStatestandard_normalpdSeriesarange	DataFramer   s     j/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/stats/tests/test_descriptivestats.pydfr      sR    
		a 005A
		"))C.2%Z8A<<aa())    c                  ^    g d} t        | d      \  }}t        |dd       t        |d       y )N)g333333@gffffff@      @g@g333333@      @g@gffffff@g@gffffff@g333333@r    )mu0gf?      )r   r   r   )xMps      r   test_sign_testr(      s/    ?AQC DAq 7A&Ar   )   BobTg333333?))   JohnFg      ?)   AliceTg333333?))      r   aa)r0      r   bb)r0   r$   r   ccalphabeta)gammaz|S1)deltaz|S2r   ))r/   r0   )r0   r2   )r0   r$   )r/   r0   r$   r$   )r0   r2   r2   r2   )r0   r$   r$   r2   )r/   r0   r2   r$   r#      )r9   r#   r$   r2   r0   r/   )	   r:   r:   r:   r:   r:   c                     t        j                  t        j                  d      t        j                  t        j
                  d      dz        dd      } t        j                  t              5  t        | dg       d d d        t        j                  t              5  t        | d	       d d d        t        j                  t              5  t        | d
dg       d d d        t        j                  t              5  t        | g d       d d d        t        j                  t              5  t        | d       d d d        t        j                  t              5  t        | dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)Nr   r   r   r   r   unknownstatsg333333ӿ)r5   r   percentiles)r      r-   r   ntopF)numericcategorical)
r   r   r   emptyr   r   pytestraises
ValueErrorr   r   s    r   test_description_exceptionsrL   <   sK   	hhsm"))BIIcNR,?"@A
B 
z	" +Byk*+	z	" $Bd#$	z	" .BQH-.	z	" 6B$456	z	" !BR !	z	" :B59: :+ +$ $. .6 6! !: :sH   0E8 FF F1F( F48FFFF%(F14F=c                 H   t        |       }t        |j                  t        j                        sJ t        |j
                  t        j                        sJ t        |j                  t        j                        sJ t        |j                         t              sJ t        |j                         j                         t              sJ dt        |      v sJ t        | j                        }t        |j                  t        j                        sJ t        |j
                  t        j                        sJ t        |j                  t        j                        sJ t        |j                         t              sJ t        |j                         j                         t              sJ dt        |      v sJ t        | j                        }t        |j                  t        j                        sJ t        |j
                  t        j                        sJ t        |j                  t        j                        sJ t        |j                         t              sJ t        |j                         j                         t              sJ dt        |      v sJ y )NDescriptive)r   
isinstanceframer   r   rE   rF   summaryr   as_textstrr   r   r   ress     r   test_description_basicrV   O   s   
b/Ccii...ckk2<<000coor||444ckkm[111ckkm++-s333CH$$$
bdd
Ccii...ckk2<<000coor||444ckkm[111ckkm++-s333CH$$$
bdd
Ccii...ckk2<<000coor||444ckkm[111ckkm++-s333CH$$$r   c                     t        j                  ddd      }t        | |      }g d}t        |j                  j
                  j                         |       y )Nr!   g     @W@   r?   ).nobsmissingmeanstd_errupper_cilower_cistdiqr
iqr_normalmad
mad_normalcoef_varrangemaxminskewkurtosisjarque_berajarque_bera_pvalmode	mode_freqmediandistincttop_1top_2top_3top_4top_5freq_1freq_2freq_3freq_4freq_5z7.0%z14.1%z21.3%z28.5%z35.6%z42.8%z50.0%z57.1%z64.3%z71.5%z78.6%z85.8%z93.0%)r   linspacer   r   rP   indextolist)r   r@   rU   r>   s       r   test_odd_percentilesr}   i   sD    ++c4,K
bk
2C,E '')51r   c                 R    t        | d      }d|j                  j                  v sJ y )N   rC   top_15)r   rP   r{   rT   s     r   test_large_ntopr   w   s$    
br
"Csyy&&&r   c                 @   t        |       }t        | d      }|j                  j                  j                  |j                  j                  j                  k  sJ |j                  j                  j                  |j                  j                  j                  kD  sJ y )NT)use_t)r   rP   r   r^   r]   )r   rU   res_ts      r   
test_use_tr   |   sk    
b/C$'E;;==!!CIIKK$8$8888;;==!!CIIKK$8$8888r   )ci)r^   r]   )rj   )rj   rk   )rl   )rl   rm   topr/   r9   top_freqfreq_stat)idsc                     t         j                  D cg c]  }| }}|j                  |d          t        | |      }|d   D ]  }||j                  j                  vrJ  y c c}w )Nr   r=   r/   )r   default_statisticsremoverP   r{   )r   r   st	all_statsrU   vals         r   test_special_statsr      sg    )<<==I=T!W
b	
*CAw *#))//)))* >s   	A$c                 t   t         j                  | d<   t        |       }|j                  j                  j                         }|j                  d   dk(  sJ d|v sJ d|v sJ t         j                  | d<   t        | j                        }|j                  j                         }|j                  d   dk(  sJ y )Ncr   r0   rZ   rY   )r   nanr   rP   r   dropnashape)r   rU   droppeds      r   test_empty_columnsr      s    ffBsG
b/Ciikk  "G==q   WffBsG
bdd
Cii G==q   r   NAzMust support NA)reasonc                 :   t        j                  t        j                  d            | d<   t        j                  t        j                  d      t        j                               | d<   t        j
                  | j                  | j                  d d d   df<   t         j                  | j                  | j                  d d d   df<   t        |       }t        j                  j                  |j                  j                  |j                  j                         y )Ng      Y@r   r   r   dr0   )r   r   r   r   
Int64Dtyper   locr{   r   r   testingassert_allcloserP   r   r   rT   s     r   test_extension_typesr      s    ii		%()BsGii		#bmmo>BsG!#BFF288CaC=#!#BFF288CaC=#
b/CJJsyy{{CIIKK8r   c                     t         j                  j                  t        | d         j                  j
                  d   t        j                  j                  | d                y)zQ
    Test the standard error of the mean matches result from scipy.stats.sem
    r   r\   N)	r   r   r   r   rP   r   scipyr>   semrK   s    r   test_std_errr      sG     JJBsG""&&y13 r   c                 |    t         j                  j                  t        |       t	        |       j
                         y )N)r   r   assert_frame_equalr   r   rP   rK   s    r   test_describer      s$    JJ!!(2,B0E0EFr   ).numpyr   numpy.testingr   r   pandasr   scipy.statsr   rH   statsmodels.iolib.tabler   "statsmodels.stats.descriptivestatsr   r   r   markfilterwarnings
pytestmarkfixturer   r(   data5arrayfloatintdata1data2data3data4rL   rV   r}   r   r   tuplere   SPECIALparametrizer   r   skipifhasattrr   r   r   )iss   00r   <module>r      s    ;    /  [[''C

 j!* "* 	 	=	%			 	gu%5$G	 	,l;5I$&8:LMN:&%42'
9 %8#
EuQ{3!T!:345Uq!5AeA3K567 W.Eqt.EF* G*! D))2CD9 E9Ga 45 /Fs   =FF"F'